diff --git a/COPYRIGHT b/COPYRIGHT index c1f400aff4e..137682bc514 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -16,7 +16,7 @@ AdoDb-Date 0.36 Modified BSD License Yes CKEditor 4.12.1 LGPL-2.1+ Yes Editor WYSIWYG EvalMath 1.0 BSD Yes Safe math expressions evaluation Escpos-php 2.2 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) +GeoIP2 0.2.0 LGPL-2.1+ Yes Lib to make geoip convert Mobiledetect 2.8.34 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 @@ -38,13 +38,12 @@ TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes JS libraries: Ace 1.4.8 BSD Yes JS library to get code syntaxique coloration in a textarea. -Chart 2.9.3 MIT License Yes JS library for graph +ChartJS 2.9.3 MIT License Yes JS library for graph jQuery 3.4.1 MIT License Yes JS library jQuery UI 1.12.1 GPL and MIT License Yes JS library plugin UI jQuery select2 4.0.13 GPL and Apache License Yes JS library plugin for sexier multiselect jQuery blockUI 2.70.0 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups) jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors -jQuery Flot 0.8.3 MIT License Yes JS library to build graph jQuery JCrop 0.9.8 GPL and MIT License Yes JS library plugin Crop (to crop images) jQuery Jeditable 1.7.1 GPL and MIT License Yes JS library plugin jeditable (to edit in place) jQuery jNotify 1.1.00 Apache Software License 2.0 Yes JS library plugin jNotify (to use ajax popups) @@ -61,7 +60,7 @@ Image libraries: Octicons 8.1 MIT Yes Font libraries: -Fontawesome 5.7.2 Font Awesome Free licence Yes +Fontawesome 5.13 Font Awesome Free licence Yes For licenses compatibility informations: diff --git a/ChangeLog b/ChangeLog index 7089658872e..0de59b03184 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,7 @@ English Dolibarr ChangeLog ***** ChangeLog for 12.0.0 compared to 11.0.0 ***** For Users: NEW: Module MO (Manufacturing Order) is available as stable module. +NEW: Add option MAIN_VIEW_LINE_NUMBER_IN_LIST for some lists. For Developers or integrators: * A new way to navigate between pages in list is available. To use it, you must @@ -24,8 +25,9 @@ Following changes may create regressions for some external modules, but were nec * Removed hidden constant MAIN_EXTRAFIELDS_IN_ONE_TD that was useless. * Reference of object including a "/" are no more allowed. It is never used by default but to support setup that introduced it, the "/" will be replaced by a "_" automatically when a reference (with a custom numbering mask that use it) is generated. - - +* Library jflot (replace with chartjs) and geoip (replaced with geoip2) were removed. +* Hidden constant COMMANDE_VALID_AFTER_CLOSE_PROPAL were renamed into ORDER_VALID_AFTER_CLOSE_PROPAL. + ***** ChangeLog for 11.0.3 compared to 11.0.2 ***** FIX: unit price for selected supplier products not set. NaN was used. @@ -405,6 +407,77 @@ Following changes may create regressions for some external modules, but were nec * The jquery plugin/dependency multiselect has been removed. It was not used by Dolibarr core. +***** ChangeLog for 10.0.7 compared to 10.0.6 ***** +FIX: 10.0 - missing translations for "orders" homepage "orders" box +FIX: 10.0 - status missing from last customer invoices box when using MAIN_STATUS_USES_CSS +FIX: 10.0 - translations for "orders" not loaded in the homepage box +FIX: #10309 +FIX: #12875 +FIX: #12932 +FIX: #12966 +FIX: #12973 +FIX: #13304 +FIX: advanced target emailing sql and ergonomy +FIX: an external user can not approved +FIX: Bad translation for productlot EatBy and SellBy +FIX: better check +FIX: better method to check user rights AND usergroup rights ! +FIX: CA by prod list filter +FIX: can be a string or integer +FIX: Check on unicity on prof id was not triggered sometimes +FIX: clone of purchase order +FIX: compatibility with multicompany (avoid duplicate data) +FIX: complex export model loading +FIX: date filter not used if no operator +FIX: date order was -1D and desc with label repetition +FIX: default lang selection when filter +FIX: dom and missing param +FIX: drafts are now implemented for stats +FIX: Error in log for email sending with smtps was not complete +FIX: Extrafield position in export field list must respect "pos" field +FIX: FEC export format +FIX: FEC export have specific name +FIX: fetching account on current entity +FIX: Filenames must not contains non ascii char or we will get non ascii +FIX: fk_type subscription list via api REST +FIX: Force FEC export to txt format +FIX: get remain to pay with rounding decimals +FIX: Invert isSellerInEEC and isBuyerInEEC +FIX: keep assigned users in session when loading projects and tasks +FIX: length, width and height units coherence in product table +FIX: links in products/services index +FIX: Mail smtps truncated if content has a line with single . +FIX: missing array option +FIX: missing global $conf +FIX: missing hook parameter +FIX: Missing Linked objects Fichinter Ref. in PDF formats +FIX: missing "statut" for getNomUrl() function +FIX: multicompany for discount +FIX: must be == and not = +FIX: Problem with column label in subscription list +FIX: regex for include or exclude categories in full arbo +FIX: Remove unexisting link +FIX: remove unused var, $usercancreate can be change by Multicompany +FIX: require category class in extrafield +FIX: round MT in accountancy books +FIX: search with '0' +FIX: send expense report mail in HTML format +FIX: SQL request and phpunit +FIX: substitute lines dates values on doc generator (ODT, ...) +FIX: test on 0 better than isset +FIX: The "automatic bind" was linked EEC to export accountancy code +FIX: thirdparty alias name desappeared if we change country with THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION conf +FIX: timezone must be tzserver and not tzuser as well as on contract card +FIX: typo on ckeck method +FIX: use "usergroup" instead "user" +FIX: Visualization rights correction on last modified contacts box +FIX: Warning on admin/export_files +FIX: We want to be able to import data for extrafields of entity 0 too +FIX: when we filter a list on a view status, we want this filter to be on bookmark that we create +FIX: wrong test +FIX: XSS vulnerability in description of list of audit events. +FIX: z-index for moretabsList with constant MAIN_MAXTABS_IN_CARD + ***** ChangeLog for 10.0.6 compared to 10.0.5 ***** FIX Regression of 10.0.5 to create/edit proposals and orders. FIX: #12760 #12763 #12755 #12765 #12751 diff --git a/build/exe/doliwamp/install_services.bat.install b/build/exe/doliwamp/install_services.bat.install index 5d0fe69350f..981c8b18b70 100644 --- a/build/exe/doliwamp/install_services.bat.install +++ b/build/exe/doliwamp/install_services.bat.install @@ -21,7 +21,7 @@ REM Mysql 5.1+ REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --install doliwampmysqld REM Mariadb REM The mysql_install_db allows to not provide files into mysql dir but does not return to prompt so install hangs -REM .\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysql_install_db.exe --datadir=WAMPROOT/bin/mariadb/data --port=WAMPMYSQLPORT --password=WAMPMYSQLNEWPASSWORD >> doliwamp.log 2>>&1 +REM .\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysql_install_db.exe --datadir=WAMPROOT/bin/mariadb/data --port=WAMPMYSQLPORT --password=WAMPMYSQLXXX >> doliwamp.log 2>>&1 .\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysql_install_db.exe --datadir=WAMPROOT/bin/mariadb/data --port=WAMPMYSQLPORT >> doliwamp.log 2>>&1 .\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysqld.exe --install doliwampmysqld >> doliwamp.log 2>>&1 diff --git a/dev/initdemo/documents_demo/medias/image/myimagesforemailing/dolicloud_logo_white.png b/dev/initdemo/documents_demo/medias/image/myimagesforemailing/dolicloud_logo_white.png index 3632504200d..88c47a678b5 100644 Binary files a/dev/initdemo/documents_demo/medias/image/myimagesforemailing/dolicloud_logo_white.png and b/dev/initdemo/documents_demo/medias/image/myimagesforemailing/dolicloud_logo_white.png differ diff --git a/dev/initdemo/documents_demo/mycompany/logos/mybigcompany.png b/dev/initdemo/documents_demo/mycompany/logos/mybigcompany.png index 62a96380acc..506d740d4c9 100644 Binary files a/dev/initdemo/documents_demo/mycompany/logos/mybigcompany.png and b/dev/initdemo/documents_demo/mycompany/logos/mybigcompany.png differ diff --git a/dev/initdemo/documents_demo/mycompany/logos/thumbs/mybigcompany_mini.png b/dev/initdemo/documents_demo/mycompany/logos/thumbs/mybigcompany_mini.png index d430eeb0980..8c3dec79a75 100644 Binary files a/dev/initdemo/documents_demo/mycompany/logos/thumbs/mybigcompany_mini.png and b/dev/initdemo/documents_demo/mycompany/logos/thumbs/mybigcompany_mini.png differ diff --git a/dev/initdemo/documents_demo/mycompany/logos/thumbs/mybigcompany_small.png b/dev/initdemo/documents_demo/mycompany/logos/thumbs/mybigcompany_small.png index 796575ccbb5..fe6101e55b7 100644 Binary files a/dev/initdemo/documents_demo/mycompany/logos/thumbs/mybigcompany_small.png and b/dev/initdemo/documents_demo/mycompany/logos/thumbs/mybigcompany_small.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLICLOUD/dolicloud_logo.png b/dev/initdemo/documents_demo/produit/DOLICLOUD/dolicloud_logo.png index 6cb078b8ef9..f18350d75db 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLICLOUD/dolicloud_logo.png and b/dev/initdemo/documents_demo/produit/DOLICLOUD/dolicloud_logo.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLICLOUD/thumbs/dolicloud_logo_mini.png b/dev/initdemo/documents_demo/produit/DOLICLOUD/thumbs/dolicloud_logo_mini.png index fdaaedc73ce..bd2deb60da4 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLICLOUD/thumbs/dolicloud_logo_mini.png and b/dev/initdemo/documents_demo/produit/DOLICLOUD/thumbs/dolicloud_logo_mini.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLICLOUD/thumbs/dolicloud_logo_small.png b/dev/initdemo/documents_demo/produit/DOLICLOUD/thumbs/dolicloud_logo_small.png index 948dc776a7f..4178ac51ab4 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLICLOUD/thumbs/dolicloud_logo_small.png and b/dev/initdemo/documents_demo/produit/DOLICLOUD/thumbs/dolicloud_logo_small.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_114x114.png b/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_114x114.png index 88c6bf0c3da..8ad1bf11bd9 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_114x114.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_114x114.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_180x120_en.png b/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_180x120_en.png index 4d00eb5e543..3a3d04e938a 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_180x120_en.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_180x120_en.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_screenshot_stats_720x1280.png b/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_screenshot_stats_720x1280.png index a26251d1daf..49f0ce1a07a 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_screenshot_stats_720x1280.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/DOLIDROID-dolidroid_screenshot_stats_720x1280.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_114x114_mini.png b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_114x114_mini.png index 5c69c05fbd4..d755c700a4a 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_114x114_mini.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_114x114_mini.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_114x114_small.png b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_114x114_small.png index 45baa2f9849..a575950c3ea 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_114x114_small.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_114x114_small.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_180x120_en_mini.png b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_180x120_en_mini.png index 1d4b86e68c1..a3f0416931f 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_180x120_en_mini.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_180x120_en_mini.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_180x120_en_small.png b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_180x120_en_small.png index 6d8bb34df69..3a3d04e938a 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_180x120_en_small.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_180x120_en_small.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_screenshot_stats_720x1280_mini.png b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_screenshot_stats_720x1280_mini.png index e82aa9faacd..6a54236917c 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_screenshot_stats_720x1280_mini.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_screenshot_stats_720x1280_mini.png differ diff --git a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_screenshot_stats_720x1280_small.png b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_screenshot_stats_720x1280_small.png index 2d45c50dea9..4c65ac9ad55 100644 Binary files a/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_screenshot_stats_720x1280_small.png and b/dev/initdemo/documents_demo/produit/DOLIDROID/thumbs/DOLIDROID-dolidroid_screenshot_stats_720x1280_small.png differ diff --git a/dev/initdemo/documents_demo/societe/1/logos/indiancompany.png b/dev/initdemo/documents_demo/societe/1/logos/indiancompany.png index f38da8ae4b1..e25c3b1a08d 100644 Binary files a/dev/initdemo/documents_demo/societe/1/logos/indiancompany.png and b/dev/initdemo/documents_demo/societe/1/logos/indiancompany.png differ diff --git a/dev/initdemo/documents_demo/societe/1/logos/thumbs/indiancompany_mini.png b/dev/initdemo/documents_demo/societe/1/logos/thumbs/indiancompany_mini.png index 06fd6f132ac..8580d277489 100644 Binary files a/dev/initdemo/documents_demo/societe/1/logos/thumbs/indiancompany_mini.png and b/dev/initdemo/documents_demo/societe/1/logos/thumbs/indiancompany_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/1/logos/thumbs/indiancompany_small.png b/dev/initdemo/documents_demo/societe/1/logos/thumbs/indiancompany_small.png index 1263124c435..15e4f65dcad 100644 Binary files a/dev/initdemo/documents_demo/societe/1/logos/thumbs/indiancompany_small.png and b/dev/initdemo/documents_demo/societe/1/logos/thumbs/indiancompany_small.png differ diff --git a/dev/initdemo/documents_demo/societe/10/logos/logo_nltechno_94x100.png b/dev/initdemo/documents_demo/societe/10/logos/logo_nltechno_94x100.png index 7e00ab58884..f21edd03fca 100644 Binary files a/dev/initdemo/documents_demo/societe/10/logos/logo_nltechno_94x100.png and b/dev/initdemo/documents_demo/societe/10/logos/logo_nltechno_94x100.png differ diff --git a/dev/initdemo/documents_demo/societe/10/logos/thumbs/logo_nltechno_94x100_mini.png b/dev/initdemo/documents_demo/societe/10/logos/thumbs/logo_nltechno_94x100_mini.png index 0a37bf0960b..74135116c5b 100644 Binary files a/dev/initdemo/documents_demo/societe/10/logos/thumbs/logo_nltechno_94x100_mini.png and b/dev/initdemo/documents_demo/societe/10/logos/thumbs/logo_nltechno_94x100_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/10/logos/thumbs/logo_nltechno_94x100_small.png b/dev/initdemo/documents_demo/societe/10/logos/thumbs/logo_nltechno_94x100_small.png index b1dd6abb37a..f21edd03fca 100644 Binary files a/dev/initdemo/documents_demo/societe/10/logos/thumbs/logo_nltechno_94x100_small.png and b/dev/initdemo/documents_demo/societe/10/logos/thumbs/logo_nltechno_94x100_small.png differ diff --git a/dev/initdemo/documents_demo/societe/11/logos/comapnycorp1company.png b/dev/initdemo/documents_demo/societe/11/logos/comapnycorp1company.png index 7d45cad6258..80c872115db 100644 Binary files a/dev/initdemo/documents_demo/societe/11/logos/comapnycorp1company.png and b/dev/initdemo/documents_demo/societe/11/logos/comapnycorp1company.png differ diff --git a/dev/initdemo/documents_demo/societe/11/logos/thumbs/comapnycorp1company_mini.png b/dev/initdemo/documents_demo/societe/11/logos/thumbs/comapnycorp1company_mini.png index 9e7260c4b2e..1fe85ef3dcb 100644 Binary files a/dev/initdemo/documents_demo/societe/11/logos/thumbs/comapnycorp1company_mini.png and b/dev/initdemo/documents_demo/societe/11/logos/thumbs/comapnycorp1company_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/11/logos/thumbs/comapnycorp1company_small.png b/dev/initdemo/documents_demo/societe/11/logos/thumbs/comapnycorp1company_small.png index 4bdbe89cd82..7ef1942d2c1 100644 Binary files a/dev/initdemo/documents_demo/societe/11/logos/thumbs/comapnycorp1company_small.png and b/dev/initdemo/documents_demo/societe/11/logos/thumbs/comapnycorp1company_small.png differ diff --git a/dev/initdemo/documents_demo/societe/13/logos/companycorp2company.png b/dev/initdemo/documents_demo/societe/13/logos/companycorp2company.png index 18917afb66d..3d8faa773c7 100644 Binary files a/dev/initdemo/documents_demo/societe/13/logos/companycorp2company.png and b/dev/initdemo/documents_demo/societe/13/logos/companycorp2company.png differ diff --git a/dev/initdemo/documents_demo/societe/13/logos/thumbs/companycorp2company_mini.png b/dev/initdemo/documents_demo/societe/13/logos/thumbs/companycorp2company_mini.png index 23517888243..217ae6dbc8b 100644 Binary files a/dev/initdemo/documents_demo/societe/13/logos/thumbs/companycorp2company_mini.png and b/dev/initdemo/documents_demo/societe/13/logos/thumbs/companycorp2company_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/13/logos/thumbs/companycorp2company_small.png b/dev/initdemo/documents_demo/societe/13/logos/thumbs/companycorp2company_small.png index ebedec3d973..cf5f12beafd 100644 Binary files a/dev/initdemo/documents_demo/societe/13/logos/thumbs/companycorp2company_small.png and b/dev/initdemo/documents_demo/societe/13/logos/thumbs/companycorp2company_small.png differ diff --git a/dev/initdemo/documents_demo/societe/17/logos/bookkeepercompany.png b/dev/initdemo/documents_demo/societe/17/logos/bookkeepercompany.png index 939f5d66763..770d3cd13cf 100644 Binary files a/dev/initdemo/documents_demo/societe/17/logos/bookkeepercompany.png and b/dev/initdemo/documents_demo/societe/17/logos/bookkeepercompany.png differ diff --git a/dev/initdemo/documents_demo/societe/17/logos/thumbs/bookkeepercompany_mini.png b/dev/initdemo/documents_demo/societe/17/logos/thumbs/bookkeepercompany_mini.png index 6ac0f3780fb..e3724e1ec12 100644 Binary files a/dev/initdemo/documents_demo/societe/17/logos/thumbs/bookkeepercompany_mini.png and b/dev/initdemo/documents_demo/societe/17/logos/thumbs/bookkeepercompany_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/17/logos/thumbs/bookkeepercompany_small.png b/dev/initdemo/documents_demo/societe/17/logos/thumbs/bookkeepercompany_small.png index 43e8750d6a1..2b9ff77ee88 100644 Binary files a/dev/initdemo/documents_demo/societe/17/logos/thumbs/bookkeepercompany_small.png and b/dev/initdemo/documents_demo/societe/17/logos/thumbs/bookkeepercompany_small.png differ diff --git a/dev/initdemo/documents_demo/societe/19/logos/magicfoodstore.png b/dev/initdemo/documents_demo/societe/19/logos/magicfoodstore.png index ec54049d984..d78d9e9d5d6 100644 Binary files a/dev/initdemo/documents_demo/societe/19/logos/magicfoodstore.png and b/dev/initdemo/documents_demo/societe/19/logos/magicfoodstore.png differ diff --git a/dev/initdemo/documents_demo/societe/19/logos/thumbs/magicfoodstore_mini.png b/dev/initdemo/documents_demo/societe/19/logos/thumbs/magicfoodstore_mini.png index 9f5f91afbc1..fed7f3629b4 100644 Binary files a/dev/initdemo/documents_demo/societe/19/logos/thumbs/magicfoodstore_mini.png and b/dev/initdemo/documents_demo/societe/19/logos/thumbs/magicfoodstore_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/19/logos/thumbs/magicfoodstore_small.png b/dev/initdemo/documents_demo/societe/19/logos/thumbs/magicfoodstore_small.png index 9b766a7be3b..57aadc08d34 100644 Binary files a/dev/initdemo/documents_demo/societe/19/logos/thumbs/magicfoodstore_small.png and b/dev/initdemo/documents_demo/societe/19/logos/thumbs/magicfoodstore_small.png differ diff --git a/dev/initdemo/documents_demo/societe/2/logos/teclibcompany.png b/dev/initdemo/documents_demo/societe/2/logos/teclibcompany.png index 23e65218842..7883e3daff3 100644 Binary files a/dev/initdemo/documents_demo/societe/2/logos/teclibcompany.png and b/dev/initdemo/documents_demo/societe/2/logos/teclibcompany.png differ diff --git a/dev/initdemo/documents_demo/societe/2/logos/thumbs/teclibcompany_mini.png b/dev/initdemo/documents_demo/societe/2/logos/thumbs/teclibcompany_mini.png index dbf9d4943a5..fe4d77c15b7 100644 Binary files a/dev/initdemo/documents_demo/societe/2/logos/thumbs/teclibcompany_mini.png and b/dev/initdemo/documents_demo/societe/2/logos/thumbs/teclibcompany_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/2/logos/thumbs/teclibcompany_small.png b/dev/initdemo/documents_demo/societe/2/logos/thumbs/teclibcompany_small.png index a4837f5b8b5..83dabf5fe30 100644 Binary files a/dev/initdemo/documents_demo/societe/2/logos/thumbs/teclibcompany_small.png and b/dev/initdemo/documents_demo/societe/2/logos/thumbs/teclibcompany_small.png differ diff --git a/dev/initdemo/documents_demo/societe/25/logos/printcompany.png b/dev/initdemo/documents_demo/societe/25/logos/printcompany.png index b745fc77174..ecfd3319ae6 100644 Binary files a/dev/initdemo/documents_demo/societe/25/logos/printcompany.png and b/dev/initdemo/documents_demo/societe/25/logos/printcompany.png differ diff --git a/dev/initdemo/documents_demo/societe/25/logos/thumbs/printcompany_mini.png b/dev/initdemo/documents_demo/societe/25/logos/thumbs/printcompany_mini.png index f7ec99d6ac0..dc3393180ab 100644 Binary files a/dev/initdemo/documents_demo/societe/25/logos/thumbs/printcompany_mini.png and b/dev/initdemo/documents_demo/societe/25/logos/thumbs/printcompany_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/25/logos/thumbs/printcompany_small.png b/dev/initdemo/documents_demo/societe/25/logos/thumbs/printcompany_small.png index 2d05e84fc40..2004096f024 100644 Binary files a/dev/initdemo/documents_demo/societe/25/logos/thumbs/printcompany_small.png and b/dev/initdemo/documents_demo/societe/25/logos/thumbs/printcompany_small.png differ diff --git a/dev/initdemo/documents_demo/societe/3/logos/spanishcompany.png b/dev/initdemo/documents_demo/societe/3/logos/spanishcompany.png index 730d8382aa0..d09f10ce509 100644 Binary files a/dev/initdemo/documents_demo/societe/3/logos/spanishcompany.png and b/dev/initdemo/documents_demo/societe/3/logos/spanishcompany.png differ diff --git a/dev/initdemo/documents_demo/societe/3/logos/thumbs/spanishcompany_mini.png b/dev/initdemo/documents_demo/societe/3/logos/thumbs/spanishcompany_mini.png index 41c2ee19178..20683a0b4b7 100644 Binary files a/dev/initdemo/documents_demo/societe/3/logos/thumbs/spanishcompany_mini.png and b/dev/initdemo/documents_demo/societe/3/logos/thumbs/spanishcompany_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/3/logos/thumbs/spanishcompany_small.png b/dev/initdemo/documents_demo/societe/3/logos/thumbs/spanishcompany_small.png index 5936e583596..a32addc0c12 100644 Binary files a/dev/initdemo/documents_demo/societe/3/logos/thumbs/spanishcompany_small.png and b/dev/initdemo/documents_demo/societe/3/logos/thumbs/spanishcompany_small.png differ diff --git a/dev/initdemo/documents_demo/societe/4/logos/thumbs/valeencompany_mini.png b/dev/initdemo/documents_demo/societe/4/logos/thumbs/valeencompany_mini.png index c32c8895116..7b47e76b414 100644 Binary files a/dev/initdemo/documents_demo/societe/4/logos/thumbs/valeencompany_mini.png and b/dev/initdemo/documents_demo/societe/4/logos/thumbs/valeencompany_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/4/logos/thumbs/valeencompany_small.png b/dev/initdemo/documents_demo/societe/4/logos/thumbs/valeencompany_small.png index f14c7e96b57..974cbc8fc34 100644 Binary files a/dev/initdemo/documents_demo/societe/4/logos/thumbs/valeencompany_small.png and b/dev/initdemo/documents_demo/societe/4/logos/thumbs/valeencompany_small.png differ diff --git a/dev/initdemo/documents_demo/societe/4/logos/valeencompany.png b/dev/initdemo/documents_demo/societe/4/logos/valeencompany.png index 7970901c038..f00f282d2f1 100644 Binary files a/dev/initdemo/documents_demo/societe/4/logos/valeencompany.png and b/dev/initdemo/documents_demo/societe/4/logos/valeencompany.png differ diff --git a/dev/initdemo/documents_demo/societe/5/logos/nocountrycomp.png b/dev/initdemo/documents_demo/societe/5/logos/nocountrycomp.png index 71db7eed091..10f96727522 100644 Binary files a/dev/initdemo/documents_demo/societe/5/logos/nocountrycomp.png and b/dev/initdemo/documents_demo/societe/5/logos/nocountrycomp.png differ diff --git a/dev/initdemo/documents_demo/societe/5/logos/thumbs/nocountrycomp_mini.png b/dev/initdemo/documents_demo/societe/5/logos/thumbs/nocountrycomp_mini.png index 191ee78d1f2..7106d111212 100644 Binary files a/dev/initdemo/documents_demo/societe/5/logos/thumbs/nocountrycomp_mini.png and b/dev/initdemo/documents_demo/societe/5/logos/thumbs/nocountrycomp_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/5/logos/thumbs/nocountrycomp_small.png b/dev/initdemo/documents_demo/societe/5/logos/thumbs/nocountrycomp_small.png index 84dfc601be6..0cc291e9676 100644 Binary files a/dev/initdemo/documents_demo/societe/5/logos/thumbs/nocountrycomp_small.png and b/dev/initdemo/documents_demo/societe/5/logos/thumbs/nocountrycomp_small.png differ diff --git a/dev/initdemo/documents_demo/societe/6/logos/swisstouch.png b/dev/initdemo/documents_demo/societe/6/logos/swisstouch.png index 49dcb0aeb6d..c33c392f5a7 100644 Binary files a/dev/initdemo/documents_demo/societe/6/logos/swisstouch.png and b/dev/initdemo/documents_demo/societe/6/logos/swisstouch.png differ diff --git a/dev/initdemo/documents_demo/societe/6/logos/thumbs/swisstouch_mini.png b/dev/initdemo/documents_demo/societe/6/logos/thumbs/swisstouch_mini.png index a9e676439f1..4451dca8967 100644 Binary files a/dev/initdemo/documents_demo/societe/6/logos/thumbs/swisstouch_mini.png and b/dev/initdemo/documents_demo/societe/6/logos/thumbs/swisstouch_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/6/logos/thumbs/swisstouch_small.png b/dev/initdemo/documents_demo/societe/6/logos/thumbs/swisstouch_small.png index f6409addeec..f699a373876 100644 Binary files a/dev/initdemo/documents_demo/societe/6/logos/thumbs/swisstouch_small.png and b/dev/initdemo/documents_demo/societe/6/logos/thumbs/swisstouch_small.png differ diff --git a/dev/initdemo/documents_demo/societe/7/logos/genericcustomer.png b/dev/initdemo/documents_demo/societe/7/logos/genericcustomer.png index 4c41073c3fa..e0fdc982568 100644 Binary files a/dev/initdemo/documents_demo/societe/7/logos/genericcustomer.png and b/dev/initdemo/documents_demo/societe/7/logos/genericcustomer.png differ diff --git a/dev/initdemo/documents_demo/societe/7/logos/thumbs/genericcustomer_mini.png b/dev/initdemo/documents_demo/societe/7/logos/thumbs/genericcustomer_mini.png index e84edc34cf8..243e1ecd62a 100644 Binary files a/dev/initdemo/documents_demo/societe/7/logos/thumbs/genericcustomer_mini.png and b/dev/initdemo/documents_demo/societe/7/logos/thumbs/genericcustomer_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/7/logos/thumbs/genericcustomer_small.png b/dev/initdemo/documents_demo/societe/7/logos/thumbs/genericcustomer_small.png index aea07e5b74a..d91f9e811ca 100644 Binary files a/dev/initdemo/documents_demo/societe/7/logos/thumbs/genericcustomer_small.png and b/dev/initdemo/documents_demo/societe/7/logos/thumbs/genericcustomer_small.png differ diff --git a/dev/initdemo/documents_demo/societe/contact/11/photos/ldestailleur_200x200.png b/dev/initdemo/documents_demo/societe/contact/11/photos/ldestailleur_200x200.png index a5bb2af60a4..ecd8d7bfda9 100644 Binary files a/dev/initdemo/documents_demo/societe/contact/11/photos/ldestailleur_200x200.png and b/dev/initdemo/documents_demo/societe/contact/11/photos/ldestailleur_200x200.png differ diff --git a/dev/initdemo/documents_demo/societe/contact/11/photos/thumbs/ldestailleur_200x200_mini.png b/dev/initdemo/documents_demo/societe/contact/11/photos/thumbs/ldestailleur_200x200_mini.png index c553f3a26f6..3b043cb580a 100644 Binary files a/dev/initdemo/documents_demo/societe/contact/11/photos/thumbs/ldestailleur_200x200_mini.png and b/dev/initdemo/documents_demo/societe/contact/11/photos/thumbs/ldestailleur_200x200_mini.png differ diff --git a/dev/initdemo/documents_demo/societe/contact/11/photos/thumbs/ldestailleur_200x200_small.png b/dev/initdemo/documents_demo/societe/contact/11/photos/thumbs/ldestailleur_200x200_small.png index deaccf65f1d..0a18a9a0183 100644 Binary files a/dev/initdemo/documents_demo/societe/contact/11/photos/thumbs/ldestailleur_200x200_small.png and b/dev/initdemo/documents_demo/societe/contact/11/photos/thumbs/ldestailleur_200x200_small.png differ diff --git a/dev/initdemo/documents_demo/ticket/TS1909-0002/dolibarr_screenshot1_300x188.png b/dev/initdemo/documents_demo/ticket/TS1909-0002/dolibarr_screenshot1_300x188.png index 8bddce84ebc..287fc32c31a 100644 Binary files a/dev/initdemo/documents_demo/ticket/TS1909-0002/dolibarr_screenshot1_300x188.png and b/dev/initdemo/documents_demo/ticket/TS1909-0002/dolibarr_screenshot1_300x188.png differ diff --git a/dev/initdemo/documents_demo/ticket/TS1909-0002/thumbs/dolibarr_screenshot1_300x188_mini.png b/dev/initdemo/documents_demo/ticket/TS1909-0002/thumbs/dolibarr_screenshot1_300x188_mini.png index 541898e12a8..0f4f8efe78e 100644 Binary files a/dev/initdemo/documents_demo/ticket/TS1909-0002/thumbs/dolibarr_screenshot1_300x188_mini.png and b/dev/initdemo/documents_demo/ticket/TS1909-0002/thumbs/dolibarr_screenshot1_300x188_mini.png differ diff --git a/dev/initdemo/documents_demo/ticket/TS1909-0002/thumbs/dolibarr_screenshot1_300x188_small.png b/dev/initdemo/documents_demo/ticket/TS1909-0002/thumbs/dolibarr_screenshot1_300x188_small.png index 8fd74bdf8bd..dc5e8a8e9cc 100644 Binary files a/dev/initdemo/documents_demo/ticket/TS1909-0002/thumbs/dolibarr_screenshot1_300x188_small.png and b/dev/initdemo/documents_demo/ticket/TS1909-0002/thumbs/dolibarr_screenshot1_300x188_small.png differ diff --git a/dev/resources/licence/quick-guide-gplv3-compatibility.png b/dev/resources/licence/quick-guide-gplv3-compatibility.png index 7b5cd09d053..e416be68d90 100644 Binary files a/dev/resources/licence/quick-guide-gplv3-compatibility.png and b/dev/resources/licence/quick-guide-gplv3-compatibility.png differ diff --git a/dev/setup/codesniffer/ruleset.xml b/dev/setup/codesniffer/ruleset.xml index 8bd3ff8b319..10d6e29bbe2 100644 --- a/dev/setup/codesniffer/ruleset.xml +++ b/dev/setup/codesniffer/ruleset.xml @@ -222,6 +222,9 @@ + + 0 + diff --git a/dev/setup/phpunit/eclipse_setup_for_pti_phpunit.png b/dev/setup/phpunit/eclipse_setup_for_pti_phpunit.png index 38943d43a3b..d1192bce00a 100644 Binary files a/dev/setup/phpunit/eclipse_setup_for_pti_phpunit.png and b/dev/setup/phpunit/eclipse_setup_for_pti_phpunit.png differ diff --git a/doc/images/appicon_128.png b/doc/images/appicon_128.png index acefe04b694..60b82198bbd 100644 Binary files a/doc/images/appicon_128.png and b/doc/images/appicon_128.png differ diff --git a/doc/images/appicon_14.png b/doc/images/appicon_14.png index 85e232ac086..6d41a440d25 100644 Binary files a/doc/images/appicon_14.png and b/doc/images/appicon_14.png differ diff --git a/doc/images/appicon_16.png b/doc/images/appicon_16.png index 56bf64125d7..0657833a8e7 100644 Binary files a/doc/images/appicon_16.png and b/doc/images/appicon_16.png differ diff --git a/doc/images/appicon_32.png b/doc/images/appicon_32.png index 1e875809439..8e456bb15e1 100644 Binary files a/doc/images/appicon_32.png and b/doc/images/appicon_32.png differ diff --git a/doc/images/appicon_64.png b/doc/images/appicon_64.png index b931c8f473a..220e09e97f5 100644 Binary files a/doc/images/appicon_64.png and b/doc/images/appicon_64.png differ diff --git a/doc/images/dolibarr_120x90.png b/doc/images/dolibarr_120x90.png index 3b2fccf35e3..88335ae1849 100644 Binary files a/doc/images/dolibarr_120x90.png and b/doc/images/dolibarr_120x90.png differ diff --git a/doc/images/dolibarr_124x124.png b/doc/images/dolibarr_124x124.png index dd5bbc7e9f3..43608028278 100644 Binary files a/doc/images/dolibarr_124x124.png and b/doc/images/dolibarr_124x124.png differ diff --git a/doc/images/dolibarr_192x192.png b/doc/images/dolibarr_192x192.png index c5935d60147..8b4c4a27622 100644 Binary files a/doc/images/dolibarr_192x192.png and b/doc/images/dolibarr_192x192.png differ diff --git a/doc/images/dolibarr_256x256.png b/doc/images/dolibarr_256x256.png index 970f841001b..3c3c61008ad 100644 Binary files a/doc/images/dolibarr_256x256.png and b/doc/images/dolibarr_256x256.png differ diff --git a/doc/images/dolibarr_48x48.png b/doc/images/dolibarr_48x48.png index 0a0704646f2..557eed6a7c0 100644 Binary files a/doc/images/dolibarr_48x48.png and b/doc/images/dolibarr_48x48.png differ diff --git a/doc/images/dolibarr_512x512.png b/doc/images/dolibarr_512x512.png index bd8d7ac3bfd..bbe16cbc6db 100644 Binary files a/doc/images/dolibarr_512x512.png and b/doc/images/dolibarr_512x512.png differ diff --git a/doc/images/dolibarr_73x73.png b/doc/images/dolibarr_73x73.png index 81b00b41730..8c86522a37a 100644 Binary files a/doc/images/dolibarr_73x73.png and b/doc/images/dolibarr_73x73.png differ diff --git a/doc/images/dolibarr_logo.png b/doc/images/dolibarr_logo.png old mode 100755 new mode 100644 index 8edd0660e60..48e71a064cc Binary files a/doc/images/dolibarr_logo.png and b/doc/images/dolibarr_logo.png differ diff --git a/doc/images/dolibarr_screenshot3_1280x800.png b/doc/images/dolibarr_screenshot3_1280x800.png index 60a5a2bd62d..2940959ae84 100644 Binary files a/doc/images/dolibarr_screenshot3_1280x800.png and b/doc/images/dolibarr_screenshot3_1280x800.png differ diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index 1afe2ecca18..f735a0a0cfc 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -332,7 +332,7 @@ if ($resql) else dol_print_error($db); print ""; print ajax_combobox("chartofaccounts"); - print ''; + print ''; print '
'; print '
'; @@ -357,7 +357,7 @@ if ($resql) print ''; } if (!empty($arrayfields['aa.pcg_type']['checked'])) print ''; - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (! empty($arrayfields['aa.reconcilable']['checked'])) print ' '; } + if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['aa.reconcilable']['checked'])) print ' '; } if (!empty($arrayfields['aa.active']['checked'])) print ' '; print ''; $searchpicto = $form->showFilterAndCheckAddButtons($massactionbutton ? 1 : 0, 'checkforselect', 1); @@ -371,7 +371,7 @@ if ($resql) if (!empty($arrayfields['aa.labelshort']['checked'])) print_liste_field_titre($arrayfields['aa.labelshort']['label'], $_SERVER["PHP_SELF"], "aa.labelshort", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['aa.account_parent']['checked'])) print_liste_field_titre($arrayfields['aa.account_parent']['label'], $_SERVER["PHP_SELF"], "aa.account_parent", "", $param, '', $sortfield, $sortorder, 'left '); if (!empty($arrayfields['aa.pcg_type']['checked'])) print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help']); - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (! empty($arrayfields['aa.reconcilable']['checked'])) print_liste_field_titre($arrayfields['aa.reconcilable']['label'], $_SERVER["PHP_SELF"], 'aa.reconcilable', '', $param, '', $sortfield, $sortorder); } + if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['aa.reconcilable']['checked'])) print_liste_field_titre($arrayfields['aa.reconcilable']['label'], $_SERVER["PHP_SELF"], 'aa.reconcilable', '', $param, '', $sortfield, $sortorder); } if (!empty($arrayfields['aa.active']['checked'])) print_liste_field_titre($arrayfields['aa.active']['label'], $_SERVER["PHP_SELF"], 'aa.active', '', $param, '', $sortfield, $sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); print "\n"; @@ -453,11 +453,11 @@ if ($resql) if (!empty($arrayfields['aa.reconcilable']['checked'])) { print ''; if (empty($obj->reconcilable)) { - print ''; + print ''; print img_picto($langs->trans("Disabled"), 'switch_off'); print ''; } else { - print ''; + print ''; print img_picto($langs->trans("Activated"), 'switch_on'); print ''; } diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index 7449750f958..708165fc757 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -237,8 +237,8 @@ if ($action == 'create') { print ''; // Label short - print '' . $langs->trans("LabelToShow") . ''; - print ''; + print ''.$langs->trans("LabelToShow").''; + print ''; // Account parent print ''.$langs->trans("Accountparent").''; @@ -300,8 +300,8 @@ elseif ($id > 0 || $ref) { print ''; // Label short - print '' . $langs->trans("LabelToShow") . ''; - print ''; + print ''.$langs->trans("LabelToShow").''; + print ''; // Account parent print ''.$langs->trans("Accountparent").''; @@ -351,8 +351,8 @@ elseif ($id > 0 || $ref) { print ''.$object->label.''; // Label to show - print '' . $langs->trans("LabelToShow") . ''; - print '' . $object->labelshort . ''; + print ''.$langs->trans("LabelToShow").''; + print ''.$object->labelshort.''; // Account parent $accp = new AccountingAccount($db); diff --git a/htdocs/accountancy/admin/closure.php b/htdocs/accountancy/admin/closure.php index cc69462d893..63b2131f309 100644 --- a/htdocs/accountancy/admin/closure.php +++ b/htdocs/accountancy/admin/closure.php @@ -23,12 +23,12 @@ */ require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; // Load translation files required by the page -$langs->loadLangs(array("compta","admin","accountancy")); +$langs->loadLangs(array("compta", "admin", "accountancy")); // Security check if (empty($user->rights->accounting->chartofaccount)) { @@ -38,7 +38,7 @@ if (empty($user->rights->accounting->chartofaccount)) { $action = GETPOST('action', 'aZ09'); -$list_account_main = array ( +$list_account_main = array( 'ACCOUNTING_RESULT_PROFIT', 'ACCOUNTING_RESULT_LOSS' ); @@ -52,23 +52,23 @@ if ($action == 'update') { $defaultjournal = GETPOST('ACCOUNTING_CLOSURE_DEFAULT_JOURNAL', 'alpha'); - if (! empty($defaultjournal)) { - if (! dolibarr_set_const($db, 'ACCOUNTING_CLOSURE_DEFAULT_JOURNAL', $defaultjournal, 'chaine', 0, '', $conf->entity)) { - $error ++; + if (!empty($defaultjournal)) { + if (!dolibarr_set_const($db, 'ACCOUNTING_CLOSURE_DEFAULT_JOURNAL', $defaultjournal, 'chaine', 0, '', $conf->entity)) { + $error++; } } else { - $error ++; + $error++; } foreach ($list_account_main as $constname) { $constvalue = GETPOST($constname, 'alpha'); - if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { - $error ++; + if (!dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) { + $error++; } } - if (! $error) { + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { setEventMessages($langs->trans("Error"), null, 'errors'); @@ -91,8 +91,8 @@ print load_fiche_titre($langs->trans('MenuClosureAccounts'), $linkback, 'title_a print ''.$langs->trans("DefaultClosureDesc").'
'; print '
'; -print '
'; -print ''; +print ''; +print ''; print ''; // Define main accounts for closure @@ -102,14 +102,14 @@ foreach ($list_account_main as $key) { print ''; // Param $label = $langs->trans($key); - $keydesc=$key.'_Desc'; + $keydesc = $key.'_Desc'; $htmltext = $langs->trans($keydesc); print ''; print $form->textwithpicto($label, $htmltext); print ''; // Value - print ''; // Do not force class=right, or it align also the content of the select box + print ''; // Do not force class=right, or it align also the content of the select box print $formaccounting->select_account($conf->global->$key, $key, 1, '', 1, 1); print ''; print ''; @@ -117,15 +117,15 @@ foreach ($list_account_main as $key) { // Journal print ''; -print '' . $langs->trans("ACCOUNTING_CLOSURE_DEFAULT_JOURNAL") . ''; +print ''.$langs->trans("ACCOUNTING_CLOSURE_DEFAULT_JOURNAL").''; print ''; -$defaultjournal=$conf->global->ACCOUNTING_CLOSURE_DEFAULT_JOURNAL; +$defaultjournal = $conf->global->ACCOUNTING_CLOSURE_DEFAULT_JOURNAL; print $formaccounting->select_journal($defaultjournal, "ACCOUNTING_CLOSURE_DEFAULT_JOURNAL", 9, 1, 0, 0); print ''; print "\n"; -print '
'; +print '
'; print '
'; diff --git a/htdocs/accountancy/admin/fiscalyear_card.php b/htdocs/accountancy/admin/fiscalyear_card.php index facbb5052e2..88890aa004f 100644 --- a/htdocs/accountancy/admin/fiscalyear_card.php +++ b/htdocs/accountancy/admin/fiscalyear_card.php @@ -274,23 +274,23 @@ if ($action == 'create') // Label print ''; - print $form->editfieldkey("Label", 'label', $object->label, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'alpha:32'); + print $form->editfieldkey("Label", 'label', $object->label, $object, 1, 'alpha:32'); print ''; - print $form->editfieldval("Label", 'label', $object->label, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'alpha:32'); + print $form->editfieldval("Label", 'label', $object->label, $object, 1, 'alpha:32'); print ""; // Date start print ''; - print $form->editfieldkey("DateStart", 'date_start', $object->date_start, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'datepicker'); + print $form->editfieldkey("DateStart", 'date_start', $object->date_start, $object, 1, 'datepicker'); print ''; - print $form->editfieldval("DateStart", 'date_start', $object->date_start, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'datepicker'); + print $form->editfieldval("DateStart", 'date_start', $object->date_start, $object, 1, 'datepicker'); print ''; // Date end print ''; - print $form->editfieldkey("DateEnd", 'date_end', $object->date_end, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'datepicker'); + print $form->editfieldkey("DateEnd", 'date_end', $object->date_end, $object, 1, 'datepicker'); print ''; - print $form->editfieldval("DateEnd", 'date_end', $object->date_end, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'datepicker'); + print $form->editfieldval("DateEnd", 'date_end', $object->date_end, $object, 1, 'datepicker'); print ''; // Statut diff --git a/htdocs/accountancy/admin/fiscalyear_info.php b/htdocs/accountancy/admin/fiscalyear_info.php index a02141f449e..f293c9b450b 100644 --- a/htdocs/accountancy/admin/fiscalyear_info.php +++ b/htdocs/accountancy/admin/fiscalyear_info.php @@ -22,23 +22,23 @@ */ require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/fiscalyear.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/class/fiscalyear.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","compta")); +$langs->loadLangs(array("admin", "compta")); // Security check if ($user->socid > 0) accessforbidden(); -if (! $user->rights->accounting->fiscalyear->write) +if (!$user->rights->accounting->fiscalyear->write) accessforbidden(); $id = GETPOST('id', 'int'); // View -$title = $langs->trans("Fiscalyear") . " - " . $langs->trans("Info"); +$title = $langs->trans("Fiscalyear")." - ".$langs->trans("Info"); $helpurl = ""; llxHeader("", $title, $helpurl); diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index bb6f95d9047..78f29e97595 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -71,9 +71,9 @@ if ($sortorder == "") $sortorder = "ASC"; if ($sortfield == "") $sortfield = "t.doc_date,t.rowid"; if (empty($search_date_start) && empty($search_date_end) && GETPOSTISSET('search_date_startday') && GETPOSTISSET('search_date_startmonth') && GETPOSTISSET('search_date_starthour')) { - $sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear "; - $sql.= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."'"; - $sql.= $db->plimit(1); + $sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear "; + $sql .= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."'"; + $sql .= $db->plimit(1); $res = $db->query($sql); if ($res->num_rows > 0) { @@ -220,15 +220,15 @@ if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } -$num=count($object->lines); +$num = count($object->lines); if ($action == 'delmouv') { - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?mvt_num=' . GETPOST('mvt_num'), $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvtPartial'), 'delmouvconfirm', '', 0, 1); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?mvt_num='.GETPOST('mvt_num'), $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvtPartial'), 'delmouvconfirm', '', 0, 1); print $formconfirm; } if ($action == 'delbookkeepingyear') { - $form_question = array (); + $form_question = array(); $delyear = GETPOST('delyear'); if (empty($delyear)) { @@ -249,7 +249,7 @@ if ($action == 'delbookkeepingyear') { } -print '
'; +print ''; print ''; print ''; if ($optioncss != '') print ''; @@ -259,11 +259,11 @@ print ''; print ''; -$newcardbutton.= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param); -$newcardbutton.= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', './card.php?action=create'); +$newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param); +$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', './card.php?action=create'); -if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); -if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); +if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, $viewflat.$newcardbutton, '', $limit); @@ -335,7 +335,7 @@ while ($i < min($num, $limit)) //if (empty($accountg)) $accountg = '-'; // Is it a break ? - if ($accountg != $displayed_account_number || ! isset($displayed_account_number)) { + if ($accountg != $displayed_account_number || !isset($displayed_account_number)) { // Affiche un Sous-Total par compte comptable if (isset($displayed_account_number)) { print ''.$langs->trans("SubTotal").':'.price($sous_total_debit).''.price($sous_total_credit).''; @@ -348,7 +348,7 @@ while ($i < min($num, $limit)) $colspan = 9; print ""; print ''; - if ($line->numero_compte != "" && $line->numero_compte != '-1') print length_accountg($line->numero_compte) . ' : ' . $object->get_compte_desc($line->numero_compte); + if ($line->numero_compte != "" && $line->numero_compte != '-1') print length_accountg($line->numero_compte).' : '.$object->get_compte_desc($line->numero_compte); else print ''.$langs->trans("Unknown").''; print ''; print ''; @@ -373,20 +373,20 @@ while ($i < min($num, $limit)) // Affiche un lien vers la facture client/fournisseur $doc_ref = preg_replace('/\(.*\)/', '', $line->doc_ref); - print strlen(length_accounta($line->subledger_account)) == 0 ? '' . $line->label_operation . '' : '' . $line->label_operation . '
(' . length_accounta($line->subledger_account) . ')'; + print strlen(length_accounta($line->subledger_account)) == 0 ? ''.$line->label_operation.'' : ''.$line->label_operation.'
('.length_accounta($line->subledger_account).')'; - print '' . ($line->debit ? price($line->debit) :''). ''; - print '' . ($line->credit ? price($line->credit) : '') . ''; + print ''.($line->debit ? price($line->debit) : '').''; + print ''.($line->credit ? price($line->credit) : '').''; $accountingjournal = new AccountingJournal($db); $result = $accountingjournal->fetch('', $line->code_journal); - $journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal); - print '' . $journaltoshow . ''; + $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal); + print ''.$journaltoshow.''; print ''; - print '' . img_edit() . ' '; - print '' . img_delete() . ''; + print ''.img_edit().' '; + print ''.img_delete().''; print ''; print "\n"; diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php b/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php index 1a212c00b84..0b3d98a2742 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php @@ -27,22 +27,22 @@ * \brief Tab to manage customer lettering */ require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php'; -require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/lettering.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; +require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("compta","accountancy")); +$langs->loadLangs(array("compta", "accountancy")); $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); -$socid = GETPOST('socid', 'int')?GETPOST('socid', 'int'):GETPOST('id', 'int'); +$socid = GETPOST('socid', 'int') ?GETPOST('socid', 'int') : GETPOST('id', 'int'); $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", 'alpha'); @@ -139,15 +139,15 @@ dol_fiche_head($head, 'lettering_customer', $langs->trans("ThirdParty"), 0, 'com $linkback = ''.$langs->trans("BackToList").''; -dol_banner_tab($object, 'socid', $linkback, ($user->socid?0:1), 'rowid', 'nom', '', '', 0, '', '', 'arearefnobottom'); +dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom', '', '', 0, '', '', 'arearefnobottom'); dol_fiche_end(); $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, "; $sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, "; $sql .= " bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code "; -$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; -$sql .= " WHERE (bk.subledger_account = '" . $object->code_compta . "' AND bk.numero_compte = '" . $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER . "' )"; +$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk"; +$sql .= " WHERE (bk.subledger_account = '".$object->code_compta."' AND bk.numero_compte = '".$conf->global->ACCOUNTING_ACCOUNT_CUSTOMER."' )"; /* if (dol_strlen($search_date_start) || dol_strlen($search_date_end)) { @@ -155,7 +155,7 @@ if (dol_strlen($search_date_start) || dol_strlen($search_date_end)) { } */ -$sql.= ' AND bk.entity IN ('.getEntity('accountingbookkeeping').')'; +$sql .= ' AND bk.entity IN ('.getEntity('accountingbookkeeping').')'; $sql .= $db->order($sortfield, $sortorder); $debit = 0; @@ -186,8 +186,8 @@ if (!$resql) { exit(); } -$param=''; -$param.="&socid=".urlencode($socid); +$param = ''; +$param .= "&socid=".urlencode($socid); $num = $db->num_rows($resql); @@ -195,10 +195,10 @@ dol_syslog("/accountancy/bookkeeping/thirdparty_lettering_customer.php", LOG_DEB if ($resql) { $i = 0; - $param="&socid=".$socid; - print ''; - print ''; - print ''; + $param = "&socid=".$socid; + print ''; + print ''; + print ''; $letteringbutton = ''; @@ -250,33 +250,33 @@ if ($resql) { $solde = 0; $tmp = ''; - while ( $obj = $db->fetch_object($resql) ) { + while ($obj = $db->fetch_object($resql)) { if ($tmp != $obj->lettering_code || empty($tmp)) $tmp = $obj->lettering_code; /*if ($tmp != $obj->lettering_code || empty($obj->lettering_code))*/ $solde += ($obj->credit - $obj->debit); print ''; //print '' . $obj->doc_type . '' . "\n"; - print '' . dol_print_date($db->jdate($obj->doc_date), 'day') . ''; - print '' . $obj->doc_ref . ''; - print '' . $obj->label_compte . ''; - print '' . price($obj->debit) . ''; - print '' . price($obj->credit) . ''; - print '' . price(round($solde, 2)) . ''; + print ''.dol_print_date($db->jdate($obj->doc_date), 'day').''; + print ''.$obj->doc_ref.''; + print ''.$obj->label_compte.''; + print ''.price($obj->debit).''; + print ''.price($obj->credit).''; + print ''.price(round($solde, 2)).''; // Journal $accountingjournal = new AccountingJournal($db); $result = $accountingjournal->fetch('', $obj->code_journal); - $journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0, 0, 0, '', 0) : $obj->code_journal); - print '' . $journaltoshow . ''; + $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $obj->code_journal); + print ''.$journaltoshow.''; if (empty($obj->lettering_code)) { - print ''; - print ''; + print ''; + print ''; print img_edit(); - print '' . "\n"; + print ''."\n"; } else { - print '' . $obj->lettering_code . ''; + print ''.$obj->lettering_code.''; print ''; } @@ -284,16 +284,16 @@ if ($resql) { } print ''; - print ''.$langs->trans("Total").':' . "\n"; - print '' . price($debit) . ''; - print '' . price($credit) . ''; + print ''.$langs->trans("Total").':'."\n"; + print ''.price($debit).''; + print ''.price($credit).''; print ''; print "\n"; print ''; - print ''.$langs->trans("Balancing").':' . "\n"; + print ''.$langs->trans("Balancing").':'."\n"; print ' '; - print '' . price($credit - $debit) . ''; + print ''.price($credit - $debit).''; print ''; print "\n"; diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php b/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php index f71b41a9c28..c6ab2fa81d6 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php @@ -26,22 +26,22 @@ * \brief Tab to setup lettering */ require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php'; -require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/lettering.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; +require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("compta","accountancy")); +$langs->loadLangs(array("compta", "accountancy")); $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); $show_files = GETPOST('show_files', 'int'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); -$socid = GETPOST('socid', 'int')?GETPOST('socid', 'int'):GETPOST('id', 'int'); +$socid = GETPOST('socid', 'int') ?GETPOST('socid', 'int') : GETPOST('id', 'int'); $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", 'alpha'); @@ -67,7 +67,7 @@ $search_doc_ref = GETPOST("search_doc_ref",'alpha'); $lettering = GETPOST('lettering', 'alpha'); if (!empty($lettering)) { - $action=$lettering; + $action = $lettering; } /* @@ -138,20 +138,20 @@ dol_fiche_head($head, 'lettering_supplier', $langs->trans("ThirdParty"), 0, 'com $linkback = ''.$langs->trans("BackToList").''; -dol_banner_tab($object, 'socid', $linkback, ($user->socid?0:1), 'rowid', 'nom', '', '', 0, '', '', 'arearefnobottom'); +dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom', '', '', 0, '', '', 'arearefnobottom'); dol_fiche_end(); $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, "; $sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, "; $sql .= " bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code, bk.date_validated "; -$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; -$sql .= " WHERE (bk.subledger_account = '" . $object->code_compta_fournisseur . "' AND bk.numero_compte = '" . $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER . "' )"; +$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk"; +$sql .= " WHERE (bk.subledger_account = '".$object->code_compta_fournisseur."' AND bk.numero_compte = '".$conf->global->ACCOUNTING_ACCOUNT_SUPPLIER."' )"; if (dol_strlen($search_date_start) || dol_strlen($search_date_end)) { $sql .= " AND (bk.doc_date BETWEEN '".$db->idate($search_date_start)."' AND '".$db->idate($search_date_end)."' )"; } -$sql.= ' AND bk.entity IN ('.getEntity('accountingbookkeeping').')'; -$sql.= $db->order($sortfield, $sortorder); +$sql .= ' AND bk.entity IN ('.getEntity('accountingbookkeeping').')'; +$sql .= $db->order($sortfield, $sortorder); $debit = 0; $credit = 0; @@ -173,17 +173,17 @@ while ($obj = $db->fetch_object($resql)) { $solde += ($obj->credit - $obj->debit); } -$sql.= $db->plimit($limit+1, $offset); +$sql .= $db->plimit($limit + 1, $offset); dol_syslog("/accountancy/bookkeeping/thirdparty_lettering_supplier.php", LOG_DEBUG); $resql = $db->query($sql); -if (! $resql) { +if (!$resql) { dol_print_error($db); exit; } -$param=''; -$param.="&socid=".urlencode($socid); +$param = ''; +$param .= "&socid=".urlencode($socid); $num = $db->num_rows($resql); @@ -193,10 +193,10 @@ if ($resql) { $num = $db->num_rows($resql); $i = 0; - $param="&socid=".$socid; - print ''; - print ''; - print ''; + $param = "&socid=".$socid; + print ''; + print ''; + print ''; $letteringbutton = ''; @@ -254,26 +254,26 @@ if ($resql) { print ''; //print '' . $obj->doc_type . '' . "\n"; - print '' . dol_print_date($db->jdate($obj->doc_date), 'day') . ''; - print '' . $obj->doc_ref . ''; - print '' . $obj->label_compte . ''; - print '' . price($obj->debit) . ''; - print '' . price($obj->credit) . ''; - print '' . price(round($solde, 2)) . ''; + print ''.dol_print_date($db->jdate($obj->doc_date), 'day').''; + print ''.$obj->doc_ref.''; + print ''.$obj->label_compte.''; + print ''.price($obj->debit).''; + print ''.price($obj->credit).''; + print ''.price(round($solde, 2)).''; // Journal $accountingjournal = new AccountingJournal($db); $result = $accountingjournal->fetch('', $obj->code_journal); - $journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0, 0, 0, '', 0) : $obj->code_journal); - print '' . $journaltoshow . ''; + $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $obj->code_journal); + print ''.$journaltoshow.''; - if (empty($obj->lettering_code) && empty($obj->date_validated) ) { - print ''; - print ''; + if (empty($obj->lettering_code) && empty($obj->date_validated)) { + print ''; + print ''; print img_edit(); - print '' . "\n"; + print ''."\n"; } else { - print '' . $obj->lettering_code . ''; + print ''.$obj->lettering_code.''; print ''; } @@ -281,16 +281,16 @@ if ($resql) { } print ''; - print ''.$langs->trans("Total").':' . "\n"; - print '' . price($debit) . ''; - print '' . price($credit) . ''; + print ''.$langs->trans("Total").':'."\n"; + print ''.price($debit).''; + print ''.price($credit).''; print ''; print "\n"; print ''; - print ''.$langs->trans("Balancing").':' . "\n"; + print ''.$langs->trans("Balancing").':'."\n"; print ' '; - print '' . price($credit - $debit) . ''; + print ''.price($credit - $debit).''; print ''; print "\n"; diff --git a/htdocs/accountancy/class/accountancycategory.class.php b/htdocs/accountancy/class/accountancycategory.class.php index 2f0cf264529..cc93232dcdc 100644 --- a/htdocs/accountancy/class/accountancycategory.class.php +++ b/htdocs/accountancy/class/accountancycategory.class.php @@ -24,7 +24,7 @@ */ // Class -require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; /** * Class to manage categories of an accounting account @@ -49,12 +49,12 @@ class AccountancyCategory // extends CommonObject /** * @var string ID to identify managed object */ - public $element='c_accounting_category'; + public $element = 'c_accounting_category'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='c_accounting_category'; + public $table_element = 'c_accounting_category'; /** * @var int ID @@ -150,15 +150,15 @@ class AccountancyCategory // extends CommonObject public function create($user, $notrigger = 0) { global $conf, $langs; - $error=0; + $error = 0; // Clean parameters - if (isset($this->code)) $this->code=trim($this->code); - if (isset($this->label)) $this->label=trim($this->label); - if (isset($this->range_account)) $this->range_account=trim($this->range_account); + if (isset($this->code)) $this->code = trim($this->code); + if (isset($this->label)) $this->label = trim($this->label); + if (isset($this->range_account)) $this->range_account = trim($this->range_account); if (isset($this->sens)) $this->sens = (int) $this->sens; if (isset($this->category_type)) $this->category_type = (int) $this->category_type; - if (isset($this->formula)) $this->formula=trim($this->formula); + if (isset($this->formula)) $this->formula = trim($this->formula); if (isset($this->position)) $this->position = (int) $this->position; if (isset($this->fk_country)) $this->fk_country = (int) $this->fk_country; if (isset($this->active)) $this->active = (int) $this->active; @@ -168,65 +168,47 @@ class AccountancyCategory // extends CommonObject // Insert request $sql = "INSERT INTO ".MAIN_DB_PREFIX."c_accounting_category("; - if ($this->rowid > 0) $sql.= "rowid, "; - $sql.= "code, "; - $sql.= "label, "; - $sql.= "range_account, "; - $sql.= "sens, "; - $sql.= "category_type, "; - $sql.= "formula, "; - $sql.= "position, "; - $sql.= "fk_country, "; - $sql.= "active, "; - $sql.= "entity"; - $sql.= ") VALUES ("; - if ($this->rowid > 0) $sql.= " ".$this->rowid.","; - $sql.= " ".(! isset($this->code)?'NULL':"'".$this->db->escape($this->code)."'").","; - $sql.= " ".(! isset($this->label)?'NULL':"'".$this->db->escape($this->label)."'").","; - $sql.= " ".(! isset($this->range_account)?'NULL':"'".$this->db->escape($this->range_account)."'").","; - $sql.= " ".(! isset($this->sens)?'NULL':"'".$this->db->escape($this->sens)."'").","; - $sql.= " ".(! isset($this->category_type)?'NULL':"'".$this->db->escape($this->category_type)."'").","; - $sql.= " ".(! isset($this->formula)?'NULL':"'".$this->db->escape($this->formula)."'").","; - $sql.= " ".(! isset($this->position)?'NULL':$this->db->escape($this->position)).","; - $sql.= " ".(! isset($this->fk_country)?'NULL':$this->db->escape($this->fk_country)).","; - $sql.= " ".(! isset($this->active)?'NULL':$this->db->escape($this->active)); - $sql.= ", ".$conf->entity; - $sql.= ")"; + if ($this->rowid > 0) $sql .= "rowid, "; + $sql .= "code, "; + $sql .= "label, "; + $sql .= "range_account, "; + $sql .= "sens, "; + $sql .= "category_type, "; + $sql .= "formula, "; + $sql .= "position, "; + $sql .= "fk_country, "; + $sql .= "active, "; + $sql .= "entity"; + $sql .= ") VALUES ("; + if ($this->rowid > 0) $sql .= " ".$this->rowid.","; + $sql .= " ".(!isset($this->code) ? 'NULL' : "'".$this->db->escape($this->code)."'").","; + $sql .= " ".(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'").","; + $sql .= " ".(!isset($this->range_account) ? 'NULL' : "'".$this->db->escape($this->range_account)."'").","; + $sql .= " ".(!isset($this->sens) ? 'NULL' : "'".$this->db->escape($this->sens)."'").","; + $sql .= " ".(!isset($this->category_type) ? 'NULL' : "'".$this->db->escape($this->category_type)."'").","; + $sql .= " ".(!isset($this->formula) ? 'NULL' : "'".$this->db->escape($this->formula)."'").","; + $sql .= " ".(!isset($this->position) ? 'NULL' : $this->db->escape($this->position)).","; + $sql .= " ".(!isset($this->fk_country) ? 'NULL' : $this->db->escape($this->fk_country)).","; + $sql .= " ".(!isset($this->active) ? 'NULL' : $this->db->escape($this->active)); + $sql .= ", ".$conf->entity; + $sql .= ")"; $this->db->begin(); dol_syslog(get_class($this)."::create", LOG_DEBUG); - $resql=$this->db->query($sql); - if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } - - if (! $error) - { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."c_accounting_category"); - - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - //if (! $notrigger) - //{ - - // // Call triggers - // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - // $interface=new Interfaces($this->db); - // $result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf); - // if ($result < 0) { $error++; $this->errors=$interface->errors; } - // // End call triggers - //} - } + $resql = $this->db->query($sql); + if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); } // Commit or rollback if ($error) { - foreach($this->errors as $errmsg) + foreach ($this->errors as $errmsg) { dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR); - $this->error.=($this->error?', '.$errmsg:$errmsg); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return -1*$error; + return -1 * $error; } else { @@ -247,27 +229,27 @@ class AccountancyCategory // extends CommonObject public function fetch($id, $code = '', $label = '') { $sql = "SELECT"; - $sql.= " t.rowid,"; - $sql.= " t.code,"; - $sql.= " t.label,"; - $sql.= " t.range_account,"; - $sql.= " t.sens,"; - $sql.= " t.category_type,"; - $sql.= " t.formula,"; - $sql.= " t.position,"; - $sql.= " t.fk_country,"; - $sql.= " t.active"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_accounting_category as t"; - if ($id) $sql.= " WHERE t.rowid = ".$id; + $sql .= " t.rowid,"; + $sql .= " t.code,"; + $sql .= " t.label,"; + $sql .= " t.range_account,"; + $sql .= " t.sens,"; + $sql .= " t.category_type,"; + $sql .= " t.formula,"; + $sql .= " t.position,"; + $sql .= " t.fk_country,"; + $sql .= " t.active"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as t"; + if ($id) $sql .= " WHERE t.rowid = ".$id; else { - $sql.= " WHERE t.entity IN (".getEntity('c_accounting_category').")"; // Dont't use entity if you use rowid - if ($code) $sql.= " AND t.code = '".$this->db->escape($code)."'"; - elseif ($label) $sql.= " AND t.label = '".$this->db->escape($label)."'"; + $sql .= " WHERE t.entity IN (".getEntity('c_accounting_category').")"; // Dont't use entity if you use rowid + if ($code) $sql .= " AND t.code = '".$this->db->escape($code)."'"; + elseif ($label) $sql .= " AND t.label = '".$this->db->escape($label)."'"; } dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { if ($this->db->num_rows($resql)) @@ -291,7 +273,7 @@ class AccountancyCategory // extends CommonObject } else { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } } @@ -307,15 +289,15 @@ class AccountancyCategory // extends CommonObject public function update($user = null, $notrigger = 0) { global $conf, $langs; - $error=0; + $error = 0; // Clean parameters - if (isset($this->code)) $this->code=trim($this->code); - if (isset($this->label)) $this->label=trim($this->label); - if (isset($this->range_account)) $this->range_account=trim($this->range_account); + if (isset($this->code)) $this->code = trim($this->code); + if (isset($this->label)) $this->label = trim($this->label); + if (isset($this->range_account)) $this->range_account = trim($this->range_account); if (isset($this->sens)) $this->sens = (int) $this->sens; if (isset($this->category_type)) $this->category_type = (int) $this->category_type; - if (isset($this->formula)) $this->formula=trim($this->formula); + if (isset($this->formula)) $this->formula = trim($this->formula); if (isset($this->position)) $this->position = (int) $this->position; if (isset($this->fk_country)) $this->fk_country = (int) $this->fk_country; if (isset($this->active)) $this->active = (int) $this->active; @@ -326,48 +308,33 @@ class AccountancyCategory // extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."c_accounting_category SET"; - $sql.= " code=".(isset($this->code)?"'".$this->db->escape($this->code)."'":"null").","; - $sql.= " label=".(isset($this->label)?"'".$this->db->escape($this->label)."'":"null").","; - $sql.= " range_account=".(isset($this->range_account)?"'".$this->db->escape($this->range_account)."'":"null").","; - $sql.= " sens=".(isset($this->sens)?$this->sens:"null").","; - $sql.= " category_type=".(isset($this->category_type)?$this->category_type:"null").","; - $sql.= " formula=".(isset($this->formula)?"'".$this->db->escape($this->formula)."'":"null").","; - $sql.= " position=".(isset($this->position)?$this->position:"null").","; - $sql.= " fk_country=".(isset($this->fk_country)?$this->fk_country:"null").","; - $sql.= " active=".(isset($this->active)?$this->active:"null").""; - $sql.= " WHERE rowid=".$this->id; + $sql .= " code=".(isset($this->code) ? "'".$this->db->escape($this->code)."'" : "null").","; + $sql .= " label=".(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null").","; + $sql .= " range_account=".(isset($this->range_account) ? "'".$this->db->escape($this->range_account)."'" : "null").","; + $sql .= " sens=".(isset($this->sens) ? $this->sens : "null").","; + $sql .= " category_type=".(isset($this->category_type) ? $this->category_type : "null").","; + $sql .= " formula=".(isset($this->formula) ? "'".$this->db->escape($this->formula)."'" : "null").","; + $sql .= " position=".(isset($this->position) ? $this->position : "null").","; + $sql .= " fk_country=".(isset($this->fk_country) ? $this->fk_country : "null").","; + $sql .= " active=".(isset($this->active) ? $this->active : "null").""; + $sql .= " WHERE rowid=".$this->id; $this->db->begin(); dol_syslog(get_class($this)."::update", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } - - //if (! $error) - //{ - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - //if (! $notrigger) - //{ - // // Call triggers - // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - // $interface=new Interfaces($this->db); - // $result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); - // if ($result < 0) { $error++; $this->errors=$interface->errors; } - // // End call triggers - //} - //} + if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); } // Commit or rollback if ($error) { - foreach($this->errors as $errmsg) + foreach ($this->errors as $errmsg) { dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR); - $this->error.=($this->error?', '.$errmsg:$errmsg); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return -1*$error; + return -1 * $error; } else { @@ -387,42 +354,27 @@ class AccountancyCategory // extends CommonObject public function delete($user, $notrigger = 0) { global $conf, $langs; - $error=0; + $error = 0; $sql = "DELETE FROM ".MAIN_DB_PREFIX."c_accounting_category"; - $sql.= " WHERE rowid=".$this->id; + $sql .= " WHERE rowid=".$this->id; $this->db->begin(); dol_syslog(get_class($this)."::delete", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } - - //if (! $error) - //{ - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - //if (! $notrigger) - //{ - // // Call triggers - // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - // $interface=new Interfaces($this->db); - // $result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); - // if ($result < 0) { $error++; $this->errors=$interface->errors; } - // // End call triggers - //} - //} + if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); } // Commit or rollback if ($error) { - foreach($this->errors as $errmsg) + foreach ($this->errors as $errmsg) { dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); - $this->error.=($this->error?', '.$errmsg:$errmsg); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return -1*$error; + return -1 * $error; } else { @@ -442,28 +394,28 @@ class AccountancyCategory // extends CommonObject { global $conf; $sql = "SELECT t.rowid, t.account_number, t.label"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t"; - $sql .= " WHERE t.fk_accounting_category = " . $id; - $sql .= " AND t.entity = " . $conf->entity; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t"; + $sql .= " WHERE t.fk_accounting_category = ".$id; + $sql .= " AND t.entity = ".$conf->entity; $this->lines_display = array(); - dol_syslog(__METHOD__ . " sql=" . $sql, LOG_DEBUG); + dol_syslog(__METHOD__." sql=".$sql, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); if ($num) { - while ( $obj = $this->db->fetch_object($resql) ) { + while ($obj = $this->db->fetch_object($resql)) { $this->lines_display[] = $obj; } } return $num; } else { - $this->error = "Error " . $this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); $this->errors[] = $this->error; - dol_syslog(__METHOD__ . " " . implode(',' . $this->errors), LOG_ERR); + dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR); - return - 1; + return -1; } } @@ -479,40 +431,40 @@ class AccountancyCategory // extends CommonObject global $conf; $sql = "SELECT t.numero_compte, t.label_operation, t.doc_ref"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as t"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as t"; $sql .= " WHERE t.numero_compte NOT IN ("; $sql .= " SELECT t.account_number"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t"; - $sql .= " WHERE t.fk_accounting_category = " . $id . " AND t.entity = " . $conf->entity.")"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t"; + $sql .= " WHERE t.fk_accounting_category = ".$id." AND t.entity = ".$conf->entity.")"; $sql .= " AND t.numero_compte IN ("; $sql .= " SELECT DISTINCT aa.account_number"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; - $sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; + $sql .= " AND asy.rowid = ".$conf->global->CHARTOFACCOUNTS; $sql .= " AND aa.active = 1"; - $sql .= " AND aa.entity = " . $conf->entity . ")"; + $sql .= " AND aa.entity = ".$conf->entity.")"; $sql .= " GROUP BY t.numero_compte, t.label_operation, t.doc_ref"; $sql .= " ORDER BY t.numero_compte"; - $this->lines_CptBk = array (); + $this->lines_CptBk = array(); dol_syslog(__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); if ($num) { - while ( $obj = $this->db->fetch_object($resql) ) { + while ($obj = $this->db->fetch_object($resql)) { $this->lines_cptbk[] = $obj; } } return $num; } else { - $this->error = "Error " . $this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); $this->errors[] = $this->error; - dol_syslog(__METHOD__ . " " . implode(',' . $this->errors), LOG_ERR); + dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR); - return - 1; + return -1; } } @@ -528,34 +480,34 @@ class AccountancyCategory // extends CommonObject global $conf; $sql = "SELECT aa.account_number as numero_compte, aa.label as label_compte"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; $sql .= " WHERE (aa.fk_accounting_category != ".$id." OR aa.fk_accounting_category IS NULL)"; - $sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS; + $sql .= " AND asy.rowid = ".$conf->global->CHARTOFACCOUNTS; $sql .= " AND aa.active = 1"; - $sql .= " AND aa.entity = " . $conf->entity; + $sql .= " AND aa.entity = ".$conf->entity; $sql .= " GROUP BY aa.account_number, aa.label"; $sql .= " ORDER BY aa.account_number, aa.label"; - $this->lines_CptBk = array (); + $this->lines_CptBk = array(); dol_syslog(__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); if ($num) { - while ( $obj = $this->db->fetch_object($resql) ) { + while ($obj = $this->db->fetch_object($resql)) { $this->lines_cptbk[] = $obj; } } return $num; } else { - $this->error = "Error " . $this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); $this->errors[] = $this->error; - dol_syslog(__METHOD__ . " " . implode(',' . $this->errors), LOG_ERR); + dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR); - return - 1; + return -1; } } @@ -575,42 +527,42 @@ class AccountancyCategory // extends CommonObject require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; $sql = "SELECT aa.rowid, aa.account_number"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; - $sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; + $sql .= " AND asy.rowid = ".$conf->global->CHARTOFACCOUNTS; $sql .= " AND aa.active = 1"; - $sql .= " AND aa.entity = " . $conf->entity; - $sql .= " ORDER BY LENGTH(aa.account_number) DESC;"; // LENGTH is ok with mysql and postgresql + $sql .= " AND aa.entity = ".$conf->entity; + $sql .= " ORDER BY LENGTH(aa.account_number) DESC;"; // LENGTH is ok with mysql and postgresql $this->db->begin(); dol_syslog(__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { - $error ++; - $this->errors[] = "Error " . $this->db->lasterror(); + if (!$resql) { + $error++; + $this->errors[] = "Error ".$this->db->lasterror(); $this->db->rollback(); return -1; } - $accountincptsadded=array(); + $accountincptsadded = array(); while ($obj = $this->db->fetch_object($resql)) { - $account_number_formated=length_accountg($obj->account_number); - if (! empty($accountincptsadded[$account_number_formated])) continue; + $account_number_formated = length_accountg($obj->account_number); + if (!empty($accountincptsadded[$account_number_formated])) continue; if (array_key_exists($account_number_formated, $cpts)) { - $accountincptsadded[$account_number_formated]=1; + $accountincptsadded[$account_number_formated] = 1; // We found an account number that is in list $cpts of account to add - $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account"; - $sql .= " SET fk_accounting_category=" . $id_cat; + $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account"; + $sql .= " SET fk_accounting_category=".$id_cat; $sql .= " WHERE rowid=".$obj->rowid; dol_syslog(__METHOD__, LOG_DEBUG); $resqlupdate = $this->db->query($sql); - if (! $resqlupdate) { - $error ++; - $this->errors[] = "Error " . $this->db->lasterror(); + if (!$resqlupdate) { + $error++; + $this->errors[] = "Error ".$this->db->lasterror(); } } } @@ -618,12 +570,12 @@ class AccountancyCategory // extends CommonObject // Commit or rollback if ($error) { foreach ($this->errors as $errmsg) { - dol_syslog(__METHOD__ . " " . $errmsg, LOG_ERR); - $this->error .= ($this->error ? ', ' . $errmsg : $errmsg); + dol_syslog(__METHOD__." ".$errmsg, LOG_ERR); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return - 1 * $error; + return -1 * $error; } else { $this->db->commit(); @@ -642,27 +594,27 @@ class AccountancyCategory // extends CommonObject { $error = 0; - $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account as aa"; + $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account as aa"; $sql .= " SET fk_accounting_category= 0"; - $sql .= " WHERE aa.rowid= " . $cpt_id; + $sql .= " WHERE aa.rowid= ".$cpt_id; $this->db->begin(); - dol_syslog(__METHOD__ . " sql=" . $sql, LOG_DEBUG); + dol_syslog(__METHOD__." sql=".$sql, LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { - $error ++; - $this->errors[] = "Error " . $this->db->lasterror(); + if (!$resql) { + $error++; + $this->errors[] = "Error ".$this->db->lasterror(); } // Commit or rollback if ($error) { foreach ($this->errors as $errmsg) { - dol_syslog(__METHOD__ . " " . $errmsg, LOG_ERR); - $this->error .= ($this->error ? ', ' . $errmsg : $errmsg); + dol_syslog(__METHOD__." ".$errmsg, LOG_ERR); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return - 1 * $error; + return -1 * $error; } else { $this->db->commit(); @@ -685,14 +637,14 @@ class AccountancyCategory // extends CommonObject } $sql = "SELECT t.rowid, t.account_number, t.label as account_label, cat.code, cat.position, cat.label as name_cat, cat.sens "; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t, " . MAIN_DB_PREFIX . "c_accounting_category as cat"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t, ".MAIN_DB_PREFIX."c_accounting_category as cat"; $sql .= " WHERE t.fk_accounting_category IN ( SELECT c.rowid "; - $sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as c"; $sql .= " WHERE c.active = 1"; - $sql .= " AND c.entity = " . $conf->entity; + $sql .= " AND c.entity = ".$conf->entity; $sql .= " AND (c.fk_country = ".$mysoc->country_id." OR c.fk_country = 0)"; $sql .= " AND cat.rowid = t.fk_accounting_category"; - $sql .= " AND t.entity = " . $conf->entity; + $sql .= " AND t.entity = ".$conf->entity; $sql .= " ORDER BY cat.position ASC"; $resql = $this->db->query($sql); @@ -700,11 +652,11 @@ class AccountancyCategory // extends CommonObject $i = 0; $obj = ''; $num = $this->db->num_rows($resql); - $data = array (); + $data = array(); if ($num) { - while ( $obj = $this->db->fetch_object($resql) ) { + while ($obj = $this->db->fetch_object($resql)) { $name_cat = $obj->name_cat; - $data[$name_cat][$i] = array ( + $data[$name_cat][$i] = array( 'id' => $obj->rowid, 'code' => $obj->code, 'position' => $obj->position, @@ -712,13 +664,13 @@ class AccountancyCategory // extends CommonObject 'account_label' => $obj->account_label, 'sens' => $obj->sens ); - $i ++; + $i++; } } return $data; } else { - $this->error = "Error " . $this->db->lasterror(); - dol_syslog(__METHOD__ . " " . $this->error, LOG_ERR); + $this->error = "Error ".$this->db->lasterror(); + dol_syslog(__METHOD__." ".$this->error, LOG_ERR); return -1; } @@ -744,34 +696,34 @@ class AccountancyCategory // extends CommonObject $this->sdcpermonth = array(); $sql = "SELECT SUM(t.debit) as debit, SUM(t.credit) as credit"; - if (is_array($cpt)) $sql.=", t.numero_compte as accountancy_account"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as t"; + if (is_array($cpt)) $sql .= ", t.numero_compte as accountancy_account"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as t"; //if (in_array($this->db->type, array('mysql', 'mysqli'))) $sql.=' USE INDEX idx_accounting_bookkeeping_doc_date'; $sql .= " WHERE t.entity = ".$conf->entity; if (is_array($cpt)) { - $listofaccount=''; - foreach($cpt as $cptcursor) + $listofaccount = ''; + foreach ($cpt as $cptcursor) { - if ($listofaccount) $listofaccount.=","; - $listofaccount.="'".$cptcursor."'"; + if ($listofaccount) $listofaccount .= ","; + $listofaccount .= "'".$cptcursor."'"; } - $sql .= " AND t.numero_compte IN (" .$listofaccount. ")"; + $sql .= " AND t.numero_compte IN (".$listofaccount.")"; } else { - $sql .= " AND t.numero_compte = '" . $this->db->escape($cpt) . "'"; + $sql .= " AND t.numero_compte = '".$this->db->escape($cpt)."'"; } - if (! empty($date_start) && ! empty($date_end) && (empty($month) || empty($year))) // If month/year provided, it is stronger than filter date_start/date_end + if (!empty($date_start) && !empty($date_end) && (empty($month) || empty($year))) // If month/year provided, it is stronger than filter date_start/date_end $sql .= " AND (t.doc_date BETWEEN '".$this->db->idate($date_start)."' AND '".$this->db->idate($date_end)."')"; - if (! empty($month) && ! empty($year)) { + if (!empty($month) && !empty($year)) { $sql .= " AND (t.doc_date BETWEEN '".$this->db->idate(dol_get_first_day($year, $month))."' AND '".$this->db->idate(dol_get_last_day($year, $month))."')"; } if ($thirdparty_code != 'nofilter') { $sql .= " AND t.thirdparty_code = '".$this->db->escape($thirdparty_code)."'"; } - if (is_array($cpt)) $sql.=" GROUP BY t.numero_compte"; + if (is_array($cpt)) $sql .= " GROUP BY t.numero_compte"; //print $sql; $resql = $this->db->query($sql); @@ -793,9 +745,9 @@ class AccountancyCategory // extends CommonObject } return $num; } else { - $this->error = "Error " . $this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); $this->errors[] = $this->error; - dol_syslog(__METHOD__ . " " . $this->error, LOG_ERR); + dol_syslog(__METHOD__." ".$this->error, LOG_ERR); return -1; } } @@ -816,10 +768,10 @@ class AccountancyCategory // extends CommonObject } $sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position, c.category_type, c.sens"; - $sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as c"; $sql .= " WHERE c.active = 1"; - $sql .= " AND c.entity = " . $conf->entity; - if ($categorytype >= 0) $sql.=" AND c.category_type = 1"; + $sql .= " AND c.entity = ".$conf->entity; + if ($categorytype >= 0) $sql .= " AND c.category_type = 1"; $sql .= " AND (c.fk_country = ".$mysoc->country_id." OR c.fk_country = 0)"; $sql .= " ORDER BY c.position ASC"; @@ -828,12 +780,12 @@ class AccountancyCategory // extends CommonObject $i = 0; $obj = ''; $num = $this->db->num_rows($resql); - $data = array (); + $data = array(); if ($num) { - while ( $i < $num ) { + while ($i < $num) { $obj = $this->db->fetch_object($resql); - $data[] = array ( + $data[] = array( 'rowid' => $obj->rowid, 'code' => $obj->code, 'label' => $obj->label, @@ -847,11 +799,11 @@ class AccountancyCategory // extends CommonObject } return $data; } else { - $this->error = "Error " . $this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); $this->errors[] = $this->error; - dol_syslog(__METHOD__ . " " . implode(',', $this->errors), LOG_ERR); + dol_syslog(__METHOD__." ".implode(',', $this->errors), LOG_ERR); - return - 1; + return -1; } } @@ -874,20 +826,20 @@ class AccountancyCategory // extends CommonObject exit(); } - if (! empty($cat_id)) + if (!empty($cat_id)) { $sql = "SELECT t.rowid, t.account_number, t.label as account_label"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t"; $sql .= " WHERE t.fk_accounting_category = ".$cat_id; - $sql .= " AND t.entity = " . $conf->entity; + $sql .= " AND t.entity = ".$conf->entity; $sql .= " ORDER BY t.account_number"; } else { $sql = "SELECT t.rowid, t.account_number, t.label as account_label"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t"; $sql .= " WHERE ".$predefinedgroupwhere; - $sql .= " AND t.entity = " . $conf->entity; + $sql .= " AND t.entity = ".$conf->entity; $sql .= " ORDER BY t.account_number"; } //echo $sql; @@ -901,7 +853,7 @@ class AccountancyCategory // extends CommonObject if ($num) { while ($obj = $this->db->fetch_object($resql)) { - $data[] = array ( + $data[] = array( 'id' => $obj->rowid, 'account_number' => $obj->account_number, 'account_label' => $obj->account_label, @@ -911,8 +863,8 @@ class AccountancyCategory // extends CommonObject } return $data; } else { - $this->error = "Error " . $this->db->lasterror(); - dol_syslog(__METHOD__ . " " . $this->error, LOG_ERR); + $this->error = "Error ".$this->db->lasterror(); + dol_syslog(__METHOD__." ".$this->error, LOG_ERR); return -1; } diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 6c628ae52c3..1e641564de4 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -1079,28 +1079,28 @@ class AccountancyExport foreach ($objectLines as $line) { // TYPE C - if($last_codeinvoice != $line->doc_ref){ + if ($last_codeinvoice != $line->doc_ref) { //recherche societe en fonction de son code client - $sql = "SELECT code_client, fk_forme_juridique, nom, address, zip, town, fk_pays, phone, siret FROM ".MAIN_DB_PREFIX."societe WHERE code_client = '".$line->thirdparty_code ."'"; + $sql = "SELECT code_client, fk_forme_juridique, nom, address, zip, town, fk_pays, phone, siret FROM ".MAIN_DB_PREFIX."societe WHERE code_client = '".$line->thirdparty_code."'"; $resql = $this->db->query($sql); - if($resql && $this->db->num_rows($resql)>0) + if ($resql && $this->db->num_rows($resql) > 0) { $soc = $this->db->fetch_object($resql); - $address=array('','',''); - if (strpos($soc->address, "\n")!==false) { + $address = array('', '', ''); + if (strpos($soc->address, "\n") !== false) { $address = explode("\n", $soc->address); - if (is_array($address) && count($address)>0) { - foreach($address as $key=>$data) { - $address[$key]=str_replace(array("\t", "\n", "\r"), "", $data); - $address[$key]=dol_trunc($address[$key], 40, 'right', 'UTF-8', 1); + if (is_array($address) && count($address) > 0) { + foreach ($address as $key=>$data) { + $address[$key] = str_replace(array("\t", "\n", "\r"), "", $data); + $address[$key] = dol_trunc($address[$key], 40, 'right', 'UTF-8', 1); } } } else { - $address[0] = substr(str_replace(array("\t", "\r"), " ", $soc->address), 0, 40); - $address[1] = substr(str_replace(array("\t", "\r"), " ", $soc->address), 41, 40); - $address[2] = substr(str_replace(array("\t", "\r"), " ", $soc->address), 82, 40); + $address[0] = substr(str_replace(array("\t", "\r"), " ", $soc->address), 0, 40); + $address[1] = substr(str_replace(array("\t", "\r"), " ", $soc->address), 41, 40); + $address[2] = substr(str_replace(array("\t", "\r"), " ", $soc->address), 82, 40); } $type_enregistrement = 'C'; @@ -1254,7 +1254,7 @@ class AccountancyExport $racine_subledger_account = ''; // for records of type E leave this field blank // } - print $racine_subledger_account . $separator; // deprecated CPTG & CPTA use instead + print $racine_subledger_account.$separator; // deprecated CPTG & CPTA use instead // MONT print price(abs($line->montant), 0, '', 1, 2).$separator; // CODC diff --git a/htdocs/accountancy/class/accountancysystem.class.php b/htdocs/accountancy/class/accountancysystem.class.php index 02d5f0bb183..719d33c8574 100644 --- a/htdocs/accountancy/class/accountancysystem.class.php +++ b/htdocs/accountancy/class/accountancysystem.class.php @@ -98,15 +98,15 @@ class AccountancySystem if ($rowid > 0 || $ref) { $sql = "SELECT a.rowid, a.pcg_version, a.label, a.active"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_system as a"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_system as a"; $sql .= " WHERE"; if ($rowid) { - $sql .= " a.rowid = '" . $rowid . "'"; + $sql .= " a.rowid = '".$rowid."'"; } elseif ($ref) { - $sql .= " a.pcg_version = '" . $this->db->escape($ref) . "'"; + $sql .= " a.pcg_version = '".$this->db->escape($ref)."'"; } - dol_syslog(get_class($this) . "::fetch sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { $obj = $this->db->fetch_object($result); @@ -124,11 +124,11 @@ class AccountancySystem return 0; } } else { - $this->error = "Error " . $this->db->lasterror(); - $this->errors[] = "Error " . $this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); + $this->errors[] = "Error ".$this->db->lasterror(); } } - return - 1; + return -1; } @@ -142,14 +142,14 @@ class AccountancySystem { $now = dol_now(); - $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_system"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."accounting_system"; $sql .= " (date_creation, fk_user_author, numero, label)"; - $sql .= " VALUES ('" . $this->db->idate($now) . "'," . $user->id . ",'" . $this->db->escape($this->numero) . "','" . $this->db->escape($this->label) . "')"; + $sql .= " VALUES ('".$this->db->idate($now)."',".$user->id.",'".$this->db->escape($this->numero)."','".$this->db->escape($this->label)."')"; - dol_syslog(get_class($this) . "::create sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { - $id = $this->db->last_insert_id(MAIN_DB_PREFIX . "accounting_system"); + $id = $this->db->last_insert_id(MAIN_DB_PREFIX."accounting_system"); if ($id > 0) { $this->rowid = $id; diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index 58e6bd600f6..a32918cc5bf 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -34,12 +34,12 @@ class AccountingAccount extends CommonObject /** * @var string Name of element */ - public $element='accounting_account'; + public $element = 'accounting_account'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='accounting_account'; + public $table_element = 'accounting_account'; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png @@ -150,7 +150,7 @@ class AccountingAccount extends CommonObject global $conf; $this->db = $db; - $this->next_prev_filter='fk_pcg_version IN (SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS . ')'; // Used to add a filter in Form::showrefnav method + $this->next_prev_filter = 'fk_pcg_version IN (SELECT pcg_version FROM '.MAIN_DB_PREFIX.'accounting_system WHERE rowid='.$conf->global->CHARTOFACCOUNTS.')'; // Used to add a filter in Form::showrefnav method } /** @@ -169,23 +169,23 @@ class AccountingAccount extends CommonObject if ($rowid || $account_number) { $sql = "SELECT a.rowid as rowid, a.datec, a.tms, a.fk_pcg_version, a.pcg_type, a.account_number, a.account_parent, a.label, a.labelshort, a.fk_accounting_category, a.fk_user_author, a.fk_user_modif, a.active, a.reconcilable"; $sql .= ", ca.label as category_label"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as a"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as a"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_accounting_category as ca ON a.fk_accounting_category = ca.rowid"; $sql .= " WHERE"; if ($rowid) { - $sql .= " a.rowid = " . (int) $rowid; + $sql .= " a.rowid = ".(int) $rowid; } elseif ($account_number) { - $sql .= " a.account_number = '" . $this->db->escape($account_number) . "'"; + $sql .= " a.account_number = '".$this->db->escape($account_number)."'"; $sql .= " AND a.entity = ".$conf->entity; } - if (! empty($limittocurrentchart)) { - $sql .= ' AND a.fk_pcg_version IN (SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $this->db->escape($conf->global->CHARTOFACCOUNTS) . ')'; + if (!empty($limittocurrentchart)) { + $sql .= ' AND a.fk_pcg_version IN (SELECT pcg_version FROM '.MAIN_DB_PREFIX.'accounting_system WHERE rowid='.$this->db->escape($conf->global->CHARTOFACCOUNTS).')'; } - if (! empty($limittoachartaccount)) { + if (!empty($limittoachartaccount)) { $sql .= " AND a.fk_pcg_version = '".$this->db->escape($limittoachartaccount)."'"; } - dol_syslog(get_class($this) . "::fetch sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { $obj = $this->db->fetch_object($result); @@ -215,8 +215,8 @@ class AccountingAccount extends CommonObject return 0; } } else { - $this->error = "Error " . $this->db->lasterror(); - $this->errors[] = "Error " . $this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); + $this->errors[] = "Error ".$this->db->lasterror(); } } return -1; @@ -255,7 +255,7 @@ class AccountingAccount extends CommonObject // Put here code to add control on parameters values // Insert request - $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_account("; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."accounting_account("; $sql .= "datec"; $sql .= ", entity"; $sql .= ", fk_pcg_version"; @@ -269,50 +269,48 @@ class AccountingAccount extends CommonObject $sql .= ", active"; $sql .= ", reconcilable"; $sql .= ") VALUES ("; - $sql .= " '" . $this->db->idate($now) . "'"; - $sql .= ", " . $conf->entity; - $sql .= ", " . (empty($this->fk_pcg_version) ? 'NULL' : "'" . $this->db->escape($this->fk_pcg_version) . "'"); - $sql .= ", " . (empty($this->pcg_type) ? 'NULL' : "'" . $this->db->escape($this->pcg_type) . "'"); - $sql .= ", " . (empty($this->account_number) ? 'NULL' : "'" . $this->db->escape($this->account_number) . "'"); - $sql .= ", " . (empty($this->account_parent) ? 0 : (int) $this->account_parent); - $sql .= ", " . (empty($this->label) ? "''" : "'" . $this->db->escape($this->label) . "'"); - $sql .= ", " . (empty($this->labelshort) ? "''" : "'" . $this->db->escape($this->labelshort) . "'"); - $sql .= ", " . (empty($this->account_category) ? 0 : (int) $this->account_category); - $sql .= ", " . $user->id; - $sql .= ", " . (int) $this->active; - $sql .= ", " . (int) $this->reconcilable; + $sql .= " '".$this->db->idate($now)."'"; + $sql .= ", ".$conf->entity; + $sql .= ", ".(empty($this->fk_pcg_version) ? 'NULL' : "'".$this->db->escape($this->fk_pcg_version)."'"); + $sql .= ", ".(empty($this->pcg_type) ? 'NULL' : "'".$this->db->escape($this->pcg_type)."'"); + $sql .= ", ".(empty($this->account_number) ? 'NULL' : "'".$this->db->escape($this->account_number)."'"); + $sql .= ", ".(empty($this->account_parent) ? 0 : (int) $this->account_parent); + $sql .= ", ".(empty($this->label) ? "''" : "'".$this->db->escape($this->label)."'"); + $sql .= ", ".(empty($this->labelshort) ? "''" : "'".$this->db->escape($this->labelshort)."'"); + $sql .= ", ".(empty($this->account_category) ? 0 : (int) $this->account_category); + $sql .= ", ".$user->id; + $sql .= ", ".(int) $this->active; + $sql .= ", ".(int) $this->reconcilable; $sql .= ")"; $this->db->begin(); - dol_syslog(get_class($this) . "::create sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { + if (!$resql) { $error++; - $this->errors[] = "Error " . $this->db->lasterror(); + $this->errors[] = "Error ".$this->db->lasterror(); } - if (! $error) { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "accounting_account"); + if (!$error) { + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."accounting_account"); - // if (! $notrigger) { // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. + // want this action to call a trigger. + //if (! $error && ! $notrigger) { // // Call triggers - // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - // $interface=new Interfaces($this->db); - // $result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf); - // if ($result < 0) { $error++; $this->errors=$interface->errors; } + // $result=$this->call_trigger('MYOBJECT_CREATE',$user); + // if ($result < 0) $error++; // // End call triggers - // } + //} } // Commit or rollback if ($error) { foreach ($this->errors as $errmsg) { - dol_syslog(get_class($this) . "::create " . $errmsg, LOG_ERR); - $this->error .= ($this->error ? ', ' . $errmsg : $errmsg); + dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); return -1 * $error; @@ -338,20 +336,20 @@ class AccountingAccount extends CommonObject $this->db->begin(); - $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account "; - $sql .= " SET fk_pcg_version = " . ($this->fk_pcg_version ? "'" . $this->db->escape($this->fk_pcg_version) . "'" : "null"); - $sql .= " , pcg_type = " . ($this->pcg_type ? "'" . $this->db->escape($this->pcg_type) . "'" : "null"); - $sql .= " , account_number = '" . $this->db->escape($this->account_number) . "'"; - $sql .= " , account_parent = " . (int) $this->account_parent; - $sql .= " , label = " . ($this->label ? "'" . $this->db->escape($this->label) . "'" : "''"); - $sql .= " , labelshort = " . ($this->labelshort ? "'" . $this->db->escape($this->labelshort) . "'" : "''"); - $sql .= " , fk_accounting_category = " . (empty($this->account_category) ? 0 : (int) $this->account_category); - $sql .= " , fk_user_modif = " . $user->id; - $sql .= " , active = " . (int) $this->active; - $sql .= " , reconcilable = " . (int) $this->reconcilable; - $sql .= " WHERE rowid = " . $this->id; + $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account "; + $sql .= " SET fk_pcg_version = ".($this->fk_pcg_version ? "'".$this->db->escape($this->fk_pcg_version)."'" : "null"); + $sql .= " , pcg_type = ".($this->pcg_type ? "'".$this->db->escape($this->pcg_type)."'" : "null"); + $sql .= " , account_number = '".$this->db->escape($this->account_number)."'"; + $sql .= " , account_parent = ".(int) $this->account_parent; + $sql .= " , label = ".($this->label ? "'".$this->db->escape($this->label)."'" : "''"); + $sql .= " , labelshort = ".($this->labelshort ? "'".$this->db->escape($this->labelshort)."'" : "''"); + $sql .= " , fk_accounting_category = ".(empty($this->account_category) ? 0 : (int) $this->account_category); + $sql .= " , fk_user_modif = ".$user->id; + $sql .= " , active = ".(int) $this->active; + $sql .= " , reconcilable = ".(int) $this->reconcilable; + $sql .= " WHERE rowid = ".$this->id; - dol_syslog(get_class($this) . "::update sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { $this->db->commit(); @@ -359,7 +357,7 @@ class AccountingAccount extends CommonObject } else { $this->error = $this->db->lasterror(); $this->db->rollback(); - return - 1; + return -1; } } @@ -372,13 +370,13 @@ class AccountingAccount extends CommonObject { global $langs; - $sql = "(SELECT fk_code_ventilation FROM " . MAIN_DB_PREFIX . "facturedet"; - $sql.= " WHERE fk_code_ventilation=" . $this->id . ")"; - $sql.= "UNION"; - $sql.= " (SELECT fk_code_ventilation FROM " . MAIN_DB_PREFIX . "facture_fourn_det"; - $sql.= " WHERE fk_code_ventilation=" . $this->id . ")"; + $sql = "(SELECT fk_code_ventilation FROM ".MAIN_DB_PREFIX."facturedet"; + $sql .= " WHERE fk_code_ventilation=".$this->id.")"; + $sql .= "UNION"; + $sql .= " (SELECT fk_code_ventilation FROM ".MAIN_DB_PREFIX."facture_fourn_det"; + $sql .= " WHERE fk_code_ventilation=".$this->id.")"; - dol_syslog(get_class($this) . "::checkUsage sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::checkUsage sql=".$sql, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { @@ -391,7 +389,7 @@ class AccountingAccount extends CommonObject } } else { $this->error = $this->db->lasterror(); - return - 1; + return -1; } } @@ -411,46 +409,32 @@ class AccountingAccount extends CommonObject if ($result > 0) { $this->db->begin(); - // if (! $error) { - // if (! $notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. + if (!$error) { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."accounting_account"; + $sql .= " WHERE rowid=".$this->id; - // // Call triggers - // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - // $interface=new Interfaces($this->db); - // $result=$interface->run_triggers('ACCOUNTANCY_ACCOUNT_DELETE',$this,$user,$langs,$conf); - // if ($result < 0) { $error++; $this->errors=$interface->errors; } - // // End call triggers - // } - // } - - if (! $error) { - $sql = "DELETE FROM " . MAIN_DB_PREFIX . "accounting_account"; - $sql .= " WHERE rowid=" . $this->id; - - dol_syslog(get_class($this) . "::delete sql=" . $sql); + dol_syslog(get_class($this)."::delete sql=".$sql); $resql = $this->db->query($sql); - if (! $resql) { - $error ++; - $this->errors[] = "Error " . $this->db->lasterror(); + if (!$resql) { + $error++; + $this->errors[] = "Error ".$this->db->lasterror(); } } // Commit or rollback if ($error) { foreach ($this->errors as $errmsg) { - dol_syslog(get_class($this) . "::delete " . $errmsg, LOG_ERR); - $this->error .= ($this->error ? ', ' . $errmsg : $errmsg); + dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return - 1 * $error; + return -1 * $error; } else { $this->db->commit(); return 1; } } else { - return - 1; + return -1; } } @@ -471,19 +455,19 @@ class AccountingAccount extends CommonObject global $langs, $conf, $user; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; - if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips + if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips $result = ''; - $url = DOL_URL_ROOT . '/accountancy/admin/card.php?id=' . $this->id; + $url = DOL_URL_ROOT.'/accountancy/admin/card.php?id='.$this->id; // Add param to save lastsearch_values or not - $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0); - if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1; - if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1; + if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1'; $picto = 'billr'; - $label=''; + $label = ''; if (empty($this->labelshort) || $withcompletelabel == 1) { @@ -492,28 +476,28 @@ class AccountingAccount extends CommonObject $labeltoshow = $this->labelshort; } - $label = '' . $langs->trans("ShowAccountingAccount") . ''; - if (! empty($this->account_number)) - $label .= '
'.$langs->trans('AccountAccounting') . ': ' . length_accountg($this->account_number); - if (! empty($labeltoshow)) - $label .= '
'.$langs->trans('Label') . ': ' . $labeltoshow; - if ($moretitle) $label.=' - '.$moretitle; + $label = ''.$langs->trans("ShowAccountingAccount").''; + if (!empty($this->account_number)) + $label .= '
'.$langs->trans('AccountAccounting').': '.length_accountg($this->account_number); + if (!empty($labeltoshow)) + $label .= '
'.$langs->trans('Label').': '.$labeltoshow; + if ($moretitle) $label .= ' - '.$moretitle; - $linkclose=''; + $linkclose = ''; if (empty($notooltip)) { - if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $label=$langs->trans("ShowAccoutingAccount"); - $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; + $label = $langs->trans("ShowAccoutingAccount"); + $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; } - $linkclose.= ' title="'.dol_escape_htmltag($label, 1).'"'; - $linkclose.=' class="classfortooltip"'; + $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose .= ' class="classfortooltip"'; } - $linkstart=''; - $linkend=''; + $linkstart = ''; + $linkend = ''; if ($nourl) { @@ -523,11 +507,11 @@ class AccountingAccount extends CommonObject } $label_link = length_accountg($this->account_number); - if ($withlabel) $label_link .= ' - ' . $labeltoshow; + if ($withlabel) $label_link .= ' - '.($nourl ? '' : '').$labeltoshow.($nourl ? '' : ''); - if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend); + if ($withpicto) $result .= ($linkstart.img_object(($notooltip ? '' : $label), $picto, ($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).$linkend); if ($withpicto && $withpicto != 2) $result .= ' '; - if ($withpicto != 2) $result.=$linkstart . $label_link . $linkend; + if ($withpicto != 2) $result .= $linkstart.$label_link.$linkend; return $result; } @@ -540,10 +524,10 @@ class AccountingAccount extends CommonObject public function info($id) { $sql = 'SELECT a.rowid, a.datec, a.fk_user_author, a.fk_user_modif, a.tms'; - $sql .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as a'; - $sql .= ' WHERE a.rowid = ' . $id; + $sql .= ' FROM '.MAIN_DB_PREFIX.'accounting_account as a'; + $sql .= ' WHERE a.rowid = '.$id; - dol_syslog(get_class($this) . '::info sql=' . $sql); + dol_syslog(get_class($this).'::info sql='.$sql); $result = $this->db->query($sql); if ($result) { @@ -594,11 +578,11 @@ class AccountingAccount extends CommonObject if ($result > 0) { $this->db->begin(); - $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account "; - $sql .= "SET " . $fieldtouse . " = '0'"; - $sql .= " WHERE rowid = " . $this->db->escape($id); + $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account "; + $sql .= "SET ".$fieldtouse." = '0'"; + $sql .= " WHERE rowid = ".$this->db->escape($id); - dol_syslog(get_class($this) . "::account_desactivate " . $fieldtouse . " sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::account_desactivate ".$fieldtouse." sql=".$sql, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { @@ -607,10 +591,10 @@ class AccountingAccount extends CommonObject } else { $this->error = $this->db->lasterror(); $this->db->rollback(); - return - 1; + return -1; } } else { - return - 1; + return -1; } } @@ -636,11 +620,11 @@ class AccountingAccount extends CommonObject $fieldtouse = 'reconcilable'; } - $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account "; - $sql .= "SET " . $fieldtouse . " = '1'"; - $sql .= " WHERE rowid = " . $this->db->escape($id); + $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account "; + $sql .= "SET ".$fieldtouse." = '1'"; + $sql .= " WHERE rowid = ".$this->db->escape($id); - dol_syslog(get_class($this) . "::account_activate " . $fieldtouse . " sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::account_activate ".$fieldtouse." sql=".$sql, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { $this->db->commit(); @@ -648,7 +632,7 @@ class AccountingAccount extends CommonObject } else { $this->error = $this->db->lasterror(); $this->db->rollback(); - return - 1; + return -1; } } diff --git a/htdocs/accountancy/class/accountingjournal.class.php b/htdocs/accountancy/class/accountingjournal.class.php index 1191187a139..727e68346fa 100644 --- a/htdocs/accountancy/class/accountingjournal.class.php +++ b/htdocs/accountancy/class/accountingjournal.class.php @@ -266,7 +266,7 @@ class AccountingJournal extends CommonObject } $label_link = $this->code; - if ($withlabel) $label_link .= ' - '.$langs->transnoentities($this->label); + if ($withlabel) $label_link .= ' - '.($nourl ? '' : '').$langs->transnoentities($this->label).($nourl ? '' : ''); $result .= $linkstart; if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 2da8e4e24e1..43762c2d36a 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -361,20 +361,20 @@ class BookKeeping extends CommonObject $sql .= ", '".$this->db->escape($this->doc_ref)."'"; $sql .= ", ".$this->fk_doc; $sql .= ", ".$this->fk_docdet; - $sql .= ", ".(!empty($this->thirdparty_code)?("'".$this->db->escape($this->thirdparty_code)."'"):"NULL"); - $sql .= ", ".(!empty($this->subledger_account)?("'".$this->db->escape($this->subledger_account)."'"):"NULL"); - $sql .= ", ".(!empty($this->subledger_label)?("'".$this->db->escape($this->subledger_label)."'"):"NULL"); + $sql .= ", ".(!empty($this->thirdparty_code) ? ("'".$this->db->escape($this->thirdparty_code)."'") : "NULL"); + $sql .= ", ".(!empty($this->subledger_account) ? ("'".$this->db->escape($this->subledger_account)."'") : "NULL"); + $sql .= ", ".(!empty($this->subledger_label) ? ("'".$this->db->escape($this->subledger_label)."'") : "NULL"); $sql .= ", '".$this->db->escape($this->numero_compte)."'"; - $sql .= ", ".(!empty($this->label_operation)?("'".$this->db->escape($this->label_operation)."'"):"NULL"); + $sql .= ", ".(!empty($this->label_operation) ? ("'".$this->db->escape($this->label_operation)."'") : "NULL"); $sql .= ", '".$this->db->escape($this->label_operation)."'"; $sql .= ", ".$this->debit; $sql .= ", ".$this->credit; $sql .= ", ".$this->montant; - $sql .= ", ".(!empty($this->sens)?("'".$this->db->escape($this->sens)."'"):"NULL"); + $sql .= ", ".(!empty($this->sens) ? ("'".$this->db->escape($this->sens)."'") : "NULL"); $sql .= ", '".$this->db->escape($this->fk_user_author)."'"; $sql .= ", '".$this->db->idate($now)."'"; $sql .= ", '".$this->db->escape($this->code_journal)."'"; - $sql .= ", ".(!empty($this->journal_label)?("'".$this->db->escape($this->journal_label)."'"):"NULL"); + $sql .= ", ".(!empty($this->journal_label) ? ("'".$this->db->escape($this->journal_label)."'") : "NULL"); $sql .= ", ".$this->db->escape($this->piece_num); $sql .= ", ".(!isset($this->entity) ? $conf->entity : $this->entity); $sql .= ")"; @@ -1397,7 +1397,7 @@ class BookKeeping extends CommonObject $sql = "DELETE"; $sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element.$mode; $sql .= " WHERE 1 = 1"; - $sql.= dolSqlDateFilter('doc_date', 0, $delmonth, $delyear); + $sql .= dolSqlDateFilter('doc_date', 0, $delmonth, $delyear); if (!empty($journal)) $sql .= " AND code_journal = '".$this->db->escape($journal)."'"; $sql .= " AND entity IN (".getEntity('accountancy').")"; diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php index 97d62ebb5dc..d663e0ec9c4 100644 --- a/htdocs/accountancy/class/lettering.class.php +++ b/htdocs/accountancy/class/lettering.class.php @@ -24,9 +24,9 @@ * \brief File of class for lettering */ -include_once DOL_DOCUMENT_ROOT . "/accountancy/class/bookkeeping.class.php"; -include_once DOL_DOCUMENT_ROOT . "/societe/class/societe.class.php"; -include_once DOL_DOCUMENT_ROOT . "/core/lib/date.lib.php"; +include_once DOL_DOCUMENT_ROOT."/accountancy/class/bookkeeping.class.php"; +include_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php"; +include_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; /** * Class Lettering @@ -64,15 +64,15 @@ class Lettering extends BookKeeping $sql = "SELECT DISTINCT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.subledger_account, "; $sql .= " bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant "; $sql .= " , bk.sens , bk.code_journal , bk.piece_num, bk.date_lettering, bu.url_id , bu.type "; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu ON(bk.fk_doc = bu.fk_bank AND bu.type IN ('payment', 'payment_supplier') ) "; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON(bk.fk_doc = bu.fk_bank AND bu.type IN ('payment', 'payment_supplier') ) "; $sql .= " WHERE ( "; if ($object->code_compta != "") - $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta."' "; if ($object->code_compta != "" && $object->code_compta_fournisseur != "") $sql .= " OR "; if ($object->code_compta_fournisseur != "") - $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta_fournisseur."' "; $sql .= " ) AND (bk.date_lettering ='' OR bk.date_lettering IS NULL) "; $sql .= " AND (bk.lettering_code != '' OR bk.lettering_code IS NULL) "; @@ -85,127 +85,127 @@ class Lettering extends BookKeeping if ($resql) { $num = $this->db->num_rows($resql); - while ($obj = $this->db->fetch_object($resql) ) { + while ($obj = $this->db->fetch_object($resql)) { $ids = array(); $ids_fact = array(); if ($obj->type == 'payment_supplier') { $sql = 'SELECT DISTINCT bk.rowid, facf.ref, facf.ref_supplier, payf.fk_bank, facf.rowid as fact_id'; - $sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf "; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = payf.fk_bank AND bk.code_journal='" . $obj->code_journal . "')"; - $sql .= " WHERE payfacf.fk_paiementfourn = '" . $obj->url_id . "' "; + $sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn facf "; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_bookkeeping as bk ON (bk.fk_doc = payf.fk_bank AND bk.code_journal='".$obj->code_journal."')"; + $sql .= " WHERE payfacf.fk_paiementfourn = '".$obj->url_id."' "; $sql .= " AND facf.entity = ".$conf->entity; - $sql .= " AND code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") "; + $sql .= " AND code_journal IN (SELECT code FROM ".MAIN_DB_PREFIX."accounting_journal WHERE nature=4 AND entity=".$conf->entity.") "; $sql .= " AND ( "; if ($object->code_compta != "") { - $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta."' "; } if ($object->code_compta != "" && $object->code_compta_fournisseur != "") { $sql .= " OR "; } if ($object->code_compta_fournisseur != "") { - $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta_fournisseur."' "; } $sql .= " ) "; $resql2 = $this->db->query($sql); if ($resql2) { - while ( $obj2 = $this->db->fetch_object($resql2) ) { + while ($obj2 = $this->db->fetch_object($resql2)) { $ids[$obj2->rowid] = $obj2->rowid; $ids_fact[] = $obj2->fact_id; } } else { $this->errors[] = $this->db->lasterror; - return - 1; + return -1; } if (count($ids_fact)) { $sql = 'SELECT bk.rowid, facf.ref, facf.ref_supplier '; - $sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf "; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON( bk.fk_doc = facf.rowid AND facf.rowid IN (" . implode(',', $ids_fact) . "))"; - $sql .= " WHERE bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=3 AND entity=".$conf->entity.") "; + $sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn facf "; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_bookkeeping as bk ON( bk.fk_doc = facf.rowid AND facf.rowid IN (".implode(',', $ids_fact)."))"; + $sql .= " WHERE bk.code_journal IN (SELECT code FROM ".MAIN_DB_PREFIX."accounting_journal WHERE nature=3 AND entity=".$conf->entity.") "; $sql .= " AND facf.entity = ".$conf->entity; $sql .= " AND ( "; if ($object->code_compta != "") { - $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta."' "; } if ($object->code_compta != "" && $object->code_compta_fournisseur != "") { $sql .= " OR "; } if ($object->code_compta_fournisseur != "") { - $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta_fournisseur."' "; } $sql .= ") "; $resql2 = $this->db->query($sql); if ($resql2) { - while ( $obj2 = $this->db->fetch_object($resql2) ) { + while ($obj2 = $this->db->fetch_object($resql2)) { $ids[$obj2->rowid] = $obj2->rowid; } } else { $this->errors[] = $this->db->lasterror; - return - 1; + return -1; } } } elseif ($obj->type == 'payment') { $sql = 'SELECT DISTINCT bk.rowid, fac.ref, fac.ref, pay.fk_bank, fac.rowid as fact_id'; - $sql .= " FROM " . MAIN_DB_PREFIX . "facture fac "; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement_facture as payfac ON payfac.fk_facture=fac.rowid"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement as pay ON payfac.fk_paiement=pay.rowid"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = pay.fk_bank AND bk.code_journal='" . $obj->code_journal . "')"; - $sql .= " WHERE payfac.fk_paiement = '" . $obj->url_id . "' "; - $sql .= " AND bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") "; - $sql .= " AND fac.entity IN (".getEntity('invoice', 0).")";// We don't share object for accountancy + $sql .= " FROM ".MAIN_DB_PREFIX."facture fac "; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."paiement_facture as payfac ON payfac.fk_facture=fac.rowid"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."paiement as pay ON payfac.fk_paiement=pay.rowid"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_bookkeeping as bk ON (bk.fk_doc = pay.fk_bank AND bk.code_journal='".$obj->code_journal."')"; + $sql .= " WHERE payfac.fk_paiement = '".$obj->url_id."' "; + $sql .= " AND bk.code_journal IN (SELECT code FROM ".MAIN_DB_PREFIX."accounting_journal WHERE nature=4 AND entity=".$conf->entity.") "; + $sql .= " AND fac.entity IN (".getEntity('invoice', 0).")"; // We don't share object for accountancy $sql .= " AND ( "; if ($object->code_compta != "") { - $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta."' "; } if ($object->code_compta != "" && $object->code_compta_fournisseur != "") { $sql .= " OR "; } if ($object->code_compta_fournisseur != "") { - $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta_fournisseur."' "; } - $sql .= " ) "; + $sql .= " )"; $resql2 = $this->db->query($sql); if ($resql2) { - while ( $obj2 = $this->db->fetch_object($resql2) ) { + while ($obj2 = $this->db->fetch_object($resql2)) { $ids[$obj2->rowid] = $obj2->rowid; $ids_fact[] = $obj2->fact_id; } } else { $this->errors[] = $this->db->lasterror; - return - 1; + return -1; } if (count($ids_fact)) { $sql = 'SELECT bk.rowid, fac.ref, fac.ref_supplier '; - $sql .= " FROM " . MAIN_DB_PREFIX . "facture fac "; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON( bk.fk_doc = fac.rowid AND fac.rowid IN (" . implode(',', $ids_fact) . "))"; - $sql .= " WHERE code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=2 AND entity=".$conf->entity.") "; - $sql .= " AND fac.entity IN (".getEntity('invoice', 0).")";// We don't share object for accountancy + $sql .= " FROM ".MAIN_DB_PREFIX."facture fac "; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_bookkeeping as bk ON( bk.fk_doc = fac.rowid AND fac.rowid IN (".implode(',', $ids_fact)."))"; + $sql .= " WHERE code_journal IN (SELECT code FROM ".MAIN_DB_PREFIX."accounting_journal WHERE nature=2 AND entity=".$conf->entity.") "; + $sql .= " AND fac.entity IN (".getEntity('invoice', 0).")"; // We don't share object for accountancy $sql .= " AND ( "; if ($object->code_compta != "") { - $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta."' "; } if ($object->code_compta != "" && $object->code_compta_fournisseur != "") { $sql .= " OR "; } if ($object->code_compta_fournisseur != "") { - $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; + $sql .= " bk.subledger_account = '".$object->code_compta_fournisseur."' "; } $sql .= " ) "; $resql2 = $this->db->query($sql); if ($resql2) { - while ( $obj2 = $this->db->fetch_object($resql2) ) { + while ($obj2 = $this->db->fetch_object($resql2)) { $ids[$obj2->rowid] = $obj2->rowid; } } else { $this->errors[] = $this->db->lasterror; - return - 1; + return -1; } } } @@ -217,10 +217,10 @@ class Lettering extends BookKeeping } if ($error) { foreach ($this->errors as $errmsg) { - dol_syslog(get_class($this) . "::" . __METHOD__ . $errmsg, LOG_ERR); - $this->error .= ($this->error ? ', ' . $errmsg : $errmsg); + dol_syslog(__METHOD__.' '.$errmsg, LOG_ERR); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } - return - 1 * $error; + return -1 * $error; } else { return 1; } @@ -237,33 +237,31 @@ class Lettering extends BookKeeping $error = 0; $lettre = 'AAA'; - dol_syslog(get_class($this) . "::" . __METHOD__, LOG_DEBUG); - - $sql = "SELECT DISTINCT lettering_code FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping WHERE "; + $sql = "SELECT DISTINCT lettering_code FROM ".MAIN_DB_PREFIX."accounting_bookkeeping WHERE "; $sql .= " lettering_code != '' ORDER BY lettering_code DESC limit 1; "; $result = $this->db->query($sql); if ($result) { $obj = $this->db->fetch_object($result); $lettre = (empty($obj->lettering_code) ? 'AAA' : $obj->lettering_code); - if (! empty($obj->lettering_code)) + if (!empty($obj->lettering_code)) $lettre++; } else { - $this->errors[] = 'Error' . $this->db->lasterror(); + $this->errors[] = 'Error'.$this->db->lasterror(); $error++; } - $sql = "SELECT SUM(ABS(debit)) as deb, SUM(ABS(credit)) as cred FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping WHERE "; - $sql .= " rowid IN (" . implode(',', $ids) . ") AND date_validated IS NULL "; + $sql = "SELECT SUM(ABS(debit)) as deb, SUM(ABS(credit)) as cred FROM ".MAIN_DB_PREFIX."accounting_bookkeeping WHERE "; + $sql .= " rowid IN (".implode(',', $ids).") AND date_validated IS NULL "; $result = $this->db->query($sql); if ($result) { $obj = $this->db->fetch_object($result); - if (! (round(abs($obj->deb), 2) === round(abs($obj->cred), 2))) { - $this->errors[] = 'Total not exacts ' . round(abs($obj->deb), 2) . ' vs ' . round(abs($obj->cred), 2); + if (!(round(abs($obj->deb), 2) === round(abs($obj->cred), 2))) { + $this->errors[] = 'Total not exacts '.round(abs($obj->deb), 2).' vs '.round(abs($obj->cred), 2); $error++; } } else { - $this->errors[] = 'Erreur sql' . $this->db->lasterror(); + $this->errors[] = 'Erreur sql'.$this->db->lasterror(); $error++; } @@ -271,43 +269,30 @@ class Lettering extends BookKeeping $now = dol_now(); - if (! $error) + if (!$error) { - $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_bookkeeping SET"; - $sql .= " lettering_code='" . $lettre . "'"; - $sql .= " , date_lettering = '" . $this->db->idate($now) . "'"; // todo correct date it's false - $sql .= " WHERE rowid IN (" . implode(',', $ids) . ") AND date_validated IS NULL "; + $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping SET"; + $sql .= " lettering_code='".$lettre."'"; + $sql .= " , date_lettering = '".$this->db->idate($now)."'"; // todo correct date it's false + $sql .= " WHERE rowid IN (".implode(',', $ids).") AND date_validated IS NULL "; $this->db->begin(); - dol_syslog(get_class($this) . "::update sql=" . $sql, LOG_DEBUG); + dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { + if (!$resql) { $error++; - $this->errors[] = "Error " . $this->db->lasterror(); + $this->errors[] = "Error ".$this->db->lasterror(); } } - if (! $error) { - if (! $notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. - - // // Call triggers - // include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - // $interface=new Interfaces($this->db); - // $result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); - // if ($result < 0) { $error++; $this->errors=$interface->errors; } - // // End call triggers - } - } // Commit or rollback if ($error) { foreach ($this->errors as $errmsg) { - dol_syslog(get_class($this) . "::update " . $errmsg, LOG_ERR); - $this->error .= ($this->error ? ', ' . $errmsg : $errmsg); + dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return - 1 * $error; + return -1 * $error; } else { $this->db->commit(); return 1; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 19a5adcca34..eff348816fb 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -167,7 +167,7 @@ if ($action == 'validatehistory') { $suggestedaccountingaccountfor = 'eecwithvat'; } elseif ($isSellerInEEC && $isBuyerInEEC && empty($objp->tva_intra)) { // European intravat sale, without VAT intra community number $objp->code_sell_p = $objp->code_sell; - $objp->aarowid_suggest = 0; // There is a doubt, no automatic binding + $objp->aarowid_suggest = 0; // There is a doubt, no automatic binding $suggestedaccountingaccountfor = 'eecwithoutvatnumber'; } elseif ($isSellerInEEC && $isBuyerInEEC) { // European intravat sale $objp->code_sell_p = $objp->code_sell_intra; diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index ec872726012..9dbb846370c 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -499,7 +499,7 @@ if ($result) { $suggestedaccountingaccountfor = 'eecwithvat'; } elseif ($isSellerInEEC && $isBuyerInEEC && empty($objp->tva_intra)) { // European intravat sale, without VAT intra community number $objp->code_sell_p = $objp->code_sell; - $objp->aarowid_suggest = $objp->aarowid; // There is a doubt for this case. Is it an error on vat or we just forgot to fill vat number ? + $objp->aarowid_suggest = $objp->aarowid; // There is a doubt for this case. Is it an error on vat or we just forgot to fill vat number ? $suggestedaccountingaccountfor = 'eecwithoutvatnumber'; } elseif ($isSellerInEEC && $isBuyerInEEC) { // European intravat sale $objp->code_sell_p = $objp->code_sell_intra; @@ -512,7 +512,7 @@ if ($result) { } } - if (! empty($objp->code_sell_p)) { + if (!empty($objp->code_sell_p)) { // Value was defined previously } else { $code_sell_p_notset = 'color:orange'; @@ -595,7 +595,7 @@ if ($result) { /*var_dump($suggestedid); var_dump($objp->code_sell_p); var_dump($objp->code_sell_l);*/ - if (empty($suggestedid) && empty($objp->code_sell_p) && ! empty($objp->code_sell_l) && empty($conf->global->ACCOUNTANCY_DO_NOT_AUTOFILL_ACCOUNT_WITH_GENERIC)) + if (empty($suggestedid) && empty($objp->code_sell_p) && !empty($objp->code_sell_l) && empty($conf->global->ACCOUNTANCY_DO_NOT_AUTOFILL_ACCOUNT_WITH_GENERIC)) { if (empty($accountingaccount_codetotid_cache[$objp->code_sell_l])) { @@ -632,7 +632,7 @@ if ($result) { print $db->error(); } if ($db->type == 'mysqli') { - $db->query("SET SQL_BIG_SELECTS=0"); // Enable MAX_JOIN_SIZE limitation + $db->query("SET SQL_BIG_SELECTS=0"); // Enable MAX_JOIN_SIZE limitation } // Add code to auto check the box when we select an account diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php index ec193b2922a..bc0cf66a938 100644 --- a/htdocs/accountancy/index.php +++ b/htdocs/accountancy/index.php @@ -90,10 +90,10 @@ if ($conf->accounting->enabled) print load_fiche_titre($langs->trans("AccountancyArea"), $resultboxes['selectboxlist'], 'accountancy', 0, '', '', $showtutorial); - print '
'; // hideobject is to start hidden + print '
'; // hideobject is to start hidden print "
\n"; print ''.$langs->trans("AccountancyAreaDescIntro")."
\n"; - print "
\n";print "
\n"; + print "
\n"; print "
\n"; print load_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."\n"; print '
'; diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index d849496d965..b3d1e6ce7f8 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -31,37 +31,37 @@ * \brief Page with bank journal */ require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/bank.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php'; -require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; -require_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php'; -require_once DOL_DOCUMENT_ROOT . '/adherents/class/adherent.class.php'; -require_once DOL_DOCUMENT_ROOT . '/compta/sociales/class/chargesociales.class.php'; -require_once DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php'; -require_once DOL_DOCUMENT_ROOT . '/don/class/don.class.php'; -require_once DOL_DOCUMENT_ROOT . '/don/class/paymentdonation.class.php'; -require_once DOL_DOCUMENT_ROOT . '/compta/tva/class/tva.class.php'; -require_once DOL_DOCUMENT_ROOT . '/salaries/class/paymentsalary.class.php'; -require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; -require_once DOL_DOCUMENT_ROOT . '/fourn/class/paiementfourn.class.php'; -require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.facture.class.php'; -require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; -require_once DOL_DOCUMENT_ROOT . '/societe/class/client.class.php'; -require_once DOL_DOCUMENT_ROOT . '/expensereport/class/expensereport.class.php'; -require_once DOL_DOCUMENT_ROOT . '/expensereport/class/paymentexpensereport.class.php'; -require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/paymentvarious.class.php'; -require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php'; -require_once DOL_DOCUMENT_ROOT . '/loan/class/loan.class.php'; -require_once DOL_DOCUMENT_ROOT . '/loan/class/paymentloan.class.php'; -require_once DOL_DOCUMENT_ROOT . '/adherents/class/subscription.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; +require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; +require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; +require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; +require_once DOL_DOCUMENT_ROOT.'/don/class/paymentdonation.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; +require_once DOL_DOCUMENT_ROOT.'/salaries/class/paymentsalary.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; +require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; +require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; +require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; +require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; +require_once DOL_DOCUMENT_ROOT.'/loan/class/paymentloan.class.php'; +require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php'; // Load translation files required by the page -$langs->loadLangs(array("companies","other","compta","banks","bills","donations","loan","accountancy","trips","salaries","hrm","members")); +$langs->loadLangs(array("companies", "other", "compta", "banks", "bills", "donations", "loan", "accountancy", "trips", "salaries", "hrm", "members")); // Multi journal $id_journal = GETPOST('id_journal', 'int'); @@ -95,13 +95,13 @@ $pastmonth = strftime("%m", dol_now()) - 1; $pastmonthyear = $year_current; if ($pastmonth == 0) { $pastmonth = 12; - $pastmonthyear --; + $pastmonthyear--; } $date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear); $date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear); -if (! GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form +if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form { $date_start = dol_get_first_day($pastmonthyear, $pastmonth, false); $date_end = dol_get_last_day($pastmonthyear, $pastmonth, false); @@ -112,26 +112,26 @@ $sql .= " ba.courant, ba.ref as baref, ba.account_number, ba.fk_accountancy_jour $sql .= " soc.code_compta, soc.code_compta_fournisseur, soc.rowid as socid, soc.nom as name, soc.email as email, bu1.type as typeop_company,"; $sql .= " u.accountancy_code, u.rowid as userid, u.lastname as lastname, u.firstname as firstname, u.email as useremail, bu2.type as typeop_user,"; $sql .= " bu3.type as typeop_payment, bu4.type as typeop_payment_supplier"; -$sql .= " FROM " . MAIN_DB_PREFIX . "bank as b"; -$sql .= " JOIN " . MAIN_DB_PREFIX . "bank_account as ba on b.fk_account=ba.rowid"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu1 ON bu1.fk_bank = b.rowid AND bu1.type='company'"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu2 ON bu2.fk_bank = b.rowid AND bu2.type='user'"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu3 ON bu3.fk_bank = b.rowid AND bu3.type='payment'"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu4 ON bu4.fk_bank = b.rowid AND bu4.type='payment_supplier'"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe as soc on bu1.url_id=soc.rowid"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "user as u on bu2.url_id=u.rowid"; -$sql .= " WHERE ba.fk_accountancy_journal=" . $id_journal; -$sql .= ' AND b.amount != 0 AND ba.entity IN ('.getEntity('bank_account', 0).')'; // We don't share object for accountancy +$sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; +$sql .= " JOIN ".MAIN_DB_PREFIX."bank_account as ba on b.fk_account=ba.rowid"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu1 ON bu1.fk_bank = b.rowid AND bu1.type='company'"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu2 ON bu2.fk_bank = b.rowid AND bu2.type='user'"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu3 ON bu3.fk_bank = b.rowid AND bu3.type='payment'"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu4 ON bu4.fk_bank = b.rowid AND bu4.type='payment_supplier'"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as soc on bu1.url_id=soc.rowid"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on bu2.url_id=u.rowid"; +$sql .= " WHERE ba.fk_accountancy_journal=".$id_journal; +$sql .= ' AND b.amount != 0 AND ba.entity IN ('.getEntity('bank_account', 0).')'; // We don't share object for accountancy if ($date_start && $date_end) - $sql .= " AND b.dateo >= '" . $db->idate($date_start) . "' AND b.dateo <= '" . $db->idate($date_end) . "'"; + $sql .= " AND b.dateo >= '".$db->idate($date_start)."' AND b.dateo <= '".$db->idate($date_end)."'"; // Already in bookkeeping or not if ($in_bookkeeping == 'already') { - $sql .= " AND (b.rowid IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='bank') )"; + $sql .= " AND (b.rowid IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='bank') )"; } if ($in_bookkeeping == 'notyet') { - $sql .= " AND (b.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='bank') )"; + $sql .= " AND (b.rowid NOT IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='bank') )"; } $sql .= " ORDER BY b.datev"; //print $sql; @@ -149,7 +149,7 @@ $paymentsalstatic = new PaymentSalary($db); $paymentexpensereportstatic = new PaymentExpenseReport($db); $paymentvariousstatic = new PaymentVarious($db); $paymentloanstatic = new PaymentLoan($db); -$accountLinestatic=new AccountLine($db); +$accountLinestatic = new AccountLine($db); $paymentsubscriptionstatic = new Subscription($db); $tmppayment = new Paiement($db); @@ -171,20 +171,20 @@ if ($result) { //print $sql; // Variables - $account_supplier = (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER != "") ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined'); // NotDefined is a reserved word - $account_customer = (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER != "") ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'); // NotDefined is a reserved word - $account_employee = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined'); // NotDefined is a reserved word - $account_pay_vat = (! empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : 'NotDefined'); // NotDefined is a reserved word - $account_pay_donation = (! empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : 'NotDefined'); // NotDefined is a reserved word - $account_pay_subscription = (! empty($conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT) ? $conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT : 'NotDefined'); // NotDefined is a reserved word - $account_transfer = (! empty($conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH) ? $conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH : 'NotDefined'); // NotDefined is a reserved word + $account_supplier = (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER != "") ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined'); // NotDefined is a reserved word + $account_customer = (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER != "") ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'); // NotDefined is a reserved word + $account_employee = (!empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined'); // NotDefined is a reserved word + $account_pay_vat = (!empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : 'NotDefined'); // NotDefined is a reserved word + $account_pay_donation = (!empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : 'NotDefined'); // NotDefined is a reserved word + $account_pay_subscription = (!empty($conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT) ? $conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT : 'NotDefined'); // NotDefined is a reserved word + $account_transfer = (!empty($conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH) ? $conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH : 'NotDefined'); // NotDefined is a reserved word $tabcompany = array(); $tabuser = array(); - $tabpay = array (); - $tabbq = array (); - $tabtp = array (); - $tabtype = array (); + $tabpay = array(); + $tabbq = array(); + $tabtp = array(); + $tabtype = array(); $tabmoreinfo = array(); // Loop on each line into llx_bank table. For each line, we should get: @@ -199,8 +199,8 @@ if ($result) { $lineisapurchase = -1; $lineisasale = -1; // Old method to detect if it's a sale or purchase - if ($obj->label == '(SupplierInvoicePayment)' || $obj->label == '(SupplierInvoicePaymentBack)') $lineisapurchase=1; - if ($obj->label == '(CustomerInvoicePayment)' || $obj->label == '(CustomerInvoicePaymentBack)') $lineisasale=1; + if ($obj->label == '(SupplierInvoicePayment)' || $obj->label == '(SupplierInvoicePaymentBack)') $lineisapurchase = 1; + if ($obj->label == '(CustomerInvoicePayment)' || $obj->label == '(CustomerInvoicePaymentBack)') $lineisasale = 1; // Try a more reliable method to detect if record is a supplier payment or a customer payment if ($lineisapurchase < 0) { @@ -221,9 +221,9 @@ if ($result) { if ($lineisapurchase > 0) $compta_soc = (($obj->code_compta_fournisseur != "") ? $obj->code_compta_fournisseur : $account_supplier); if ($lineisasale > 0) - $compta_soc = (! empty($obj->code_compta) ? $obj->code_compta : $account_customer); + $compta_soc = (!empty($obj->code_compta) ? $obj->code_compta : $account_customer); - $tabcompany[$obj->rowid] = array ( + $tabcompany[$obj->rowid] = array( 'id' => $obj->socid, 'name' => $obj->name, 'code_compta' => $compta_soc, @@ -231,9 +231,9 @@ if ($result) { ); // Set accountancy code for user - $compta_user = (! empty($obj->accountancy_code) ? $obj->accountancy_code : $account_employee); + $compta_user = (!empty($obj->accountancy_code) ? $obj->accountancy_code : $account_employee); - $tabuser[$obj->rowid] = array ( + $tabuser[$obj->rowid] = array( 'id' => $obj->userid, 'name' => dolGetFirstLastname($obj->firstname, $obj->lastname), 'lastname' => $obj->lastname, @@ -244,8 +244,8 @@ if ($result) { // Variable bookkeeping ($obj->rowid is Bank Id) $tabpay[$obj->rowid]["date"] = $obj->do; - $tabpay[$obj->rowid]["type_payment"] = $obj->fk_type; // CHQ, VIR, LIQ, CB, ... - $tabpay[$obj->rowid]["ref"] = $obj->label; // By default. Not unique. May be changed later + $tabpay[$obj->rowid]["type_payment"] = $obj->fk_type; // CHQ, VIR, LIQ, CB, ... + $tabpay[$obj->rowid]["ref"] = $obj->label; // By default. Not unique. May be changed later $tabpay[$obj->rowid]["fk_bank"] = $obj->rowid; $tabpay[$obj->rowid]["bank_account_ref"] = $obj->baref; $tabpay[$obj->rowid]["fk_bank_account"] = $obj->fk_account; @@ -254,14 +254,14 @@ if ($result) { } else { $tabpay[$obj->rowid]["lib"] = dol_trunc($obj->label, 60); } - $links = $object->get_url($obj->rowid); // Get an array('url'=>, 'url_id'=>, 'label'=>, 'type'=> 'fk_bank'=> ) + $links = $object->get_url($obj->rowid); // Get an array('url'=>, 'url_id'=>, 'label'=>, 'type'=> 'fk_bank'=> ) //var_dump($i); //var_dump($tabpay); //var_dump($tabcompany); // By default - $tabpay[$obj->rowid]['type'] = 'unknown'; // Can be SOLD, miscellaneous entry, payment of patient, or any old record with no links in bank_url. + $tabpay[$obj->rowid]['type'] = 'unknown'; // Can be SOLD, miscellaneous entry, payment of patient, or any old record with no links in bank_url. $tabtype[$obj->rowid] = 'unknown'; $tabmoreinfo[$obj->rowid] = array(); @@ -287,18 +287,18 @@ if ($result) { } if ($links[$key]['type'] == 'withdraw') { - $tabmoreinfo[$obj->rowid]['withdraw']=1; + $tabmoreinfo[$obj->rowid]['withdraw'] = 1; } if ($links[$key]['type'] == 'payment') { $paymentstatic->id = $links[$key]['url_id']; $paymentstatic->ref = $links[$key]['url_id']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentstatic->getNomUrl(2, '', ''); // TODO Do not include list of invoice in tooltip, the dol_string_nohtmltag is ko with this + $tabpay[$obj->rowid]["lib"] .= ' '.$paymentstatic->getNomUrl(2, '', ''); // TODO Do not include list of invoice in tooltip, the dol_string_nohtmltag is ko with this $tabpay[$obj->rowid]["paymentid"] = $paymentstatic->id; } elseif ($links[$key]['type'] == 'payment_supplier') { $paymentsupplierstatic->id = $links[$key]['url_id']; $paymentsupplierstatic->ref = $links[$key]['url_id']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentsupplierstatic->getNomUrl(2); + $tabpay[$obj->rowid]["lib"] .= ' '.$paymentsupplierstatic->getNomUrl(2); $tabpay[$obj->rowid]["paymentsupplierid"] = $paymentsupplierstatic->id; } elseif ($links[$key]['type'] == 'company') { $societestatic->id = $links[$key]['url_id']; @@ -313,13 +313,13 @@ if ($result) { $userstatic->firstname = $tabuser[$obj->rowid]['firstname']; $userstatic->lastname = $tabuser[$obj->rowid]['lastname']; if ($userstatic->id > 0) $tabpay[$obj->rowid]["soclib"] = $userstatic->getNomUrl(1, '', 30); - else $tabpay[$obj->rowid]["soclib"] = '???'; // Should not happen, but happens with old data when id of user was not saved on expense report payment. + else $tabpay[$obj->rowid]["soclib"] = '???'; // Should not happen, but happens with old data when id of user was not saved on expense report payment. if ($compta_user) $tabtp[$obj->rowid][$compta_user] += $obj->amount; } elseif ($links[$key]['type'] == 'sc') { $chargestatic->id = $links[$key]['url_id']; $chargestatic->ref = $links[$key]['url_id']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $chargestatic->getNomUrl(2); + $tabpay[$obj->rowid]["lib"] .= ' '.$chargestatic->getNomUrl(2); if (preg_match('/^\((.*)\)$/i', $links[$key]['label'], $reg)) { if ($reg[1] == 'socialcontribution') $reg[1] = 'SocialContribution'; @@ -332,13 +332,13 @@ if ($result) { $tabpay[$obj->rowid]["paymentscid"] = $chargestatic->id; $sqlmid = 'SELECT cchgsoc.accountancy_code'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "c_chargesociales cchgsoc "; - $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "chargesociales as chgsoc ON chgsoc.fk_type=cchgsoc.id"; - $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementcharge as paycharg ON paycharg.fk_charge=chgsoc.rowid"; - $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "bank_url as bkurl ON bkurl.url_id=paycharg.rowid"; - $sqlmid .= " WHERE bkurl.fk_bank=" . $obj->rowid; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."c_chargesociales cchgsoc "; + $sqlmid .= " INNER JOIN ".MAIN_DB_PREFIX."chargesociales as chgsoc ON chgsoc.fk_type=cchgsoc.id"; + $sqlmid .= " INNER JOIN ".MAIN_DB_PREFIX."paiementcharge as paycharg ON paycharg.fk_charge=chgsoc.rowid"; + $sqlmid .= " INNER JOIN ".MAIN_DB_PREFIX."bank_url as bkurl ON bkurl.url_id=paycharg.rowid"; + $sqlmid .= " WHERE bkurl.fk_bank=".$obj->rowid; - dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG); + dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=".$sqlmid, LOG_DEBUG); $resultmid = $db->query($sqlmid); if ($resultmid) { $objmid = $db->fetch_object($resultmid); @@ -348,14 +348,14 @@ if ($result) { $paymentdonstatic->id = $links[$key]['url_id']; $paymentdonstatic->ref = $links[$key]['url_id']; $paymentdonstatic->fk_donation = $links[$key]['url_id']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentdonstatic->getNomUrl(2); + $tabpay[$obj->rowid]["lib"] .= ' '.$paymentdonstatic->getNomUrl(2); $tabpay[$obj->rowid]["paymentdonationid"] = $paymentdonstatic->id; $tabtp[$obj->rowid][$account_pay_donation] += $obj->amount; } elseif ($links[$key]['type'] == 'member') { $paymentsubscriptionstatic->id = $links[$key]['url_id']; $paymentsubscriptionstatic->ref = $links[$key]['url_id']; $paymentsubscriptionstatic->label = $links[$key]['label']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentsubscriptionstatic->getNomUrl(2); + $tabpay[$obj->rowid]["lib"] .= ' '.$paymentsubscriptionstatic->getNomUrl(2); $tabpay[$obj->rowid]["paymentsubscriptionid"] = $paymentsubscriptionstatic->id; $paymentsubscriptionstatic->fetch($paymentsubscriptionstatic->id); $tabtp[$obj->rowid][$account_pay_subscription] += $obj->amount; @@ -363,14 +363,14 @@ if ($result) { $paymentvatstatic->id = $links[$key]['url_id']; $paymentvatstatic->ref = $links[$key]['url_id']; $paymentvatstatic->label = $links[$key]['label']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentvatstatic->getNomUrl(2); + $tabpay[$obj->rowid]["lib"] .= ' '.$paymentvatstatic->getNomUrl(2); $tabpay[$obj->rowid]["paymentvatid"] = $paymentvatstatic->id; $tabtp[$obj->rowid][$account_pay_vat] += $obj->amount; } elseif ($links[$key]['type'] == 'payment_salary') { $paymentsalstatic->id = $links[$key]['url_id']; $paymentsalstatic->ref = $links[$key]['url_id']; $paymentsalstatic->label = $links[$key]['label']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentsalstatic->getNomUrl(2); + $tabpay[$obj->rowid]["lib"] .= ' '.$paymentsalstatic->getNomUrl(2); $tabpay[$obj->rowid]["paymentsalid"] = $paymentsalstatic->id; } elseif ($links[$key]['type'] == 'payment_expensereport') { $paymentexpensereportstatic->id = $links[$key]['url_id']; @@ -380,25 +380,25 @@ if ($result) { $paymentvariousstatic->id = $links[$key]['url_id']; $paymentvariousstatic->ref = $links[$key]['url_id']; $paymentvariousstatic->label = $links[$key]['label']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentvariousstatic->getNomUrl(2); + $tabpay[$obj->rowid]["lib"] .= ' '.$paymentvariousstatic->getNomUrl(2); $tabpay[$obj->rowid]["paymentvariousid"] = $paymentvariousstatic->id; $paymentvariousstatic->fetch($paymentvariousstatic->id); - $account_various = (! empty($paymentvariousstatic->accountancy_code) ? $paymentvariousstatic->accountancy_code : 'NotDefined'); // NotDefined is a reserved word - $account_subledger = (! empty($paymentvariousstatic->subledger_account) ? $paymentvariousstatic->subledger_account : ''); // NotDefined is a reserved word + $account_various = (!empty($paymentvariousstatic->accountancy_code) ? $paymentvariousstatic->accountancy_code : 'NotDefined'); // NotDefined is a reserved word + $account_subledger = (!empty($paymentvariousstatic->subledger_account) ? $paymentvariousstatic->subledger_account : ''); // NotDefined is a reserved word $tabpay[$obj->rowid]["account_various"] = $account_various; $tabtp[$obj->rowid][$account_subledger] += $obj->amount; } elseif ($links[$key]['type'] == 'payment_loan') { $paymentloanstatic->id = $links[$key]['url_id']; $paymentloanstatic->ref = $links[$key]['url_id']; $paymentloanstatic->fk_loan = $links[$key]['url_id']; - $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentloanstatic->getNomUrl(2); + $tabpay[$obj->rowid]["lib"] .= ' '.$paymentloanstatic->getNomUrl(2); $tabpay[$obj->rowid]["paymentloanid"] = $paymentloanstatic->id; //$tabtp[$obj->rowid][$account_pay_loan] += $obj->amount; $sqlmid = 'SELECT pl.amount_capital, pl.amount_insurance, pl.amount_interest, l.accountancy_account_capital, l.accountancy_account_insurance, l.accountancy_account_interest'; - $sqlmid.= ' FROM '.MAIN_DB_PREFIX.'payment_loan as pl, '.MAIN_DB_PREFIX.'loan as l'; - $sqlmid.= ' WHERE l.rowid = pl.fk_loan AND pl.fk_bank = '.$obj->rowid; + $sqlmid .= ' FROM '.MAIN_DB_PREFIX.'payment_loan as pl, '.MAIN_DB_PREFIX.'loan as l'; + $sqlmid .= ' WHERE l.rowid = pl.fk_loan AND pl.fk_bank = '.$obj->rowid; - dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG); + dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=".$sqlmid, LOG_DEBUG); $resultmid = $db->query($sqlmid); if ($resultmid) { $objmid = $db->fetch_object($resultmid); @@ -408,7 +408,7 @@ if ($result) { } } elseif ($links[$key]['type'] == 'banktransfert') { $accountLinestatic->fetch($links[$key]['url_id']); - $tabpay[$obj->rowid]["lib"] .= ' '.$langs->trans("BankTransfer").'- ' .$accountLinestatic ->getNomUrl(1); + $tabpay[$obj->rowid]["lib"] .= ' '.$langs->trans("BankTransfer").'- '.$accountLinestatic ->getNomUrl(1); $tabtp[$obj->rowid][$account_transfer] += $obj->amount; $bankaccountstatic->fetch($tabpay[$obj->rowid]['fk_bank_account']); $tabpay[$obj->rowid]["soclib"] = $bankaccountstatic->getNomUrl(2); @@ -420,14 +420,14 @@ if ($result) { // If no links were found to know the amount on thirdparty, we try to guess it. // This may happens on bank entries without the links lines to 'company'. - if (empty($tabtp[$obj->rowid]) && ! empty($tabmoreinfo[$obj->rowid]['withdraw'])) // If we dont find 'company' link because it is an old 'withdraw' record + if (empty($tabtp[$obj->rowid]) && !empty($tabmoreinfo[$obj->rowid]['withdraw'])) // If we dont find 'company' link because it is an old 'withdraw' record { foreach ($links as $key => $val) { if ($links[$key]['type'] == 'payment') { // Get thirdparty $tmppayment->fetch($links[$key]['url_id']); $arrayofamounts = $tmppayment->getAmountsArray(); - foreach($arrayofamounts as $invoiceid => $amount) + foreach ($arrayofamounts as $invoiceid => $amount) { $tmpinvoice->fetch($invoiceid); $tmpinvoice->fetch_thirdparty(); @@ -478,7 +478,7 @@ var_dump($tabtp); var_dump($tabtype);*/ // Write bookkeeping -if (! $error && $action == 'writebookkeeping') { +if (!$error && $action == 'writebookkeeping') { $now = dol_now(); $error = 0; @@ -501,7 +501,7 @@ if (! $error && $action == 'writebookkeeping') { var_dump($tabbq);exit;*/ // Bank - if (! $errorforline && is_array($tabbq[$key])) + if (!$errorforline && is_array($tabbq[$key])) { // Line into bank account foreach ($tabbq[$key] as $k => $mt) @@ -509,9 +509,9 @@ if (! $error && $action == 'writebookkeeping') { if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . " - "; - $reflabel.= $langs->trans("Bank").' '.dol_string_nohtmltag($val['bank_account_ref']); - if (! empty($val['soclib'])) $reflabel .= " - " . dol_string_nohtmltag($val['soclib']); + if (!empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib'])." - "; + $reflabel .= $langs->trans("Bank").' '.dol_string_nohtmltag($val['bank_account_ref']); + if (!empty($val['soclib'])) $reflabel .= " - ".dol_string_nohtmltag($val['soclib']); $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; @@ -528,7 +528,7 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt >= 0 ? $mt : 0); - $bookkeeping->credit = ($mt < 0 ? - $mt : 0); + $bookkeeping->credit = ($mt < 0 ? -$mt : 0); $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; $bookkeeping->fk_user_author = $user->id; @@ -562,7 +562,7 @@ if (! $error && $action == 'writebookkeeping') { } // Third party - if (! $errorforline) + if (!$errorforline) { if (is_array($tabtp[$key])) { @@ -571,14 +571,14 @@ if (! $error && $action == 'writebookkeeping') { if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . ($val['soclib']?" - ":""); + if (!empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']).($val['soclib'] ? " - " : ""); if ($tabtype[$key] == 'banktransfert') { - $reflabel.= dol_string_nohtmltag($langs->transnoentitiesnoconv('TransitionalAccount').' '.$account_transfer); + $reflabel .= dol_string_nohtmltag($langs->transnoentitiesnoconv('TransitionalAccount').' '.$account_transfer); } else { - $reflabel.= dol_string_nohtmltag($val['soclib']); + $reflabel .= dol_string_nohtmltag($val['soclib']); } $bookkeeping = new BookKeeping($db); @@ -590,7 +590,7 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->label_operation = $reflabel; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; - $bookkeeping->debit = ($mt < 0 ? - $mt : 0); + $bookkeeping->debit = ($mt < 0 ? -$mt : 0); $bookkeeping->credit = ($mt >= 0) ? $mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; @@ -598,15 +598,15 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->date_creation = $now; if ($tabtype[$key] == 'payment') { // If payment is payment of customer invoice, we get ref of invoice - $bookkeeping->subledger_account = $k; // For payment, the subledger account is stored as $key of $tabtp - $bookkeeping->subledger_label = $tabcompany[$key]['name']; // $tabcompany is defined only if we are sure there is 1 thirdparty for the bank transaction + $bookkeeping->subledger_account = $k; // For payment, the subledger account is stored as $key of $tabtp + $bookkeeping->subledger_label = $tabcompany[$key]['name']; // $tabcompany is defined only if we are sure there is 1 thirdparty for the bank transaction $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; $accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER, true); $bookkeeping->label_compte = $accountingaccount->label; } elseif ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice - $bookkeeping->subledger_account = $k; // For payment, the subledger account is stored as $key of $tabtp - $bookkeeping->subledger_label = $tabcompany[$key]['name']; // $tabcompany is defined only if we are sure there is 1 thirdparty for the bank transaction + $bookkeeping->subledger_account = $k; // For payment, the subledger account is stored as $key of $tabtp + $bookkeeping->subledger_label = $tabcompany[$key]['name']; // $tabcompany is defined only if we are sure there is 1 thirdparty for the bank transaction $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; $accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER, true); @@ -715,8 +715,8 @@ if (! $error && $action == 'writebookkeeping') { if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . " - "; - $reflabel.= dol_string_nohtmltag('WaitingAccount'); + if (!empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib'])." - "; + $reflabel .= dol_string_nohtmltag('WaitingAccount'); $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; @@ -726,7 +726,7 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->fk_docdet = $val["fk_bank"]; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; - $bookkeeping->debit = ($mt < 0 ? - $mt : 0); + $bookkeeping->debit = ($mt < 0 ? -$mt : 0); $bookkeeping->credit = ($mt >= 0) ? $mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; @@ -767,7 +767,7 @@ if (! $error && $action == 'writebookkeeping') { setEventMessages('Try to insert a non balanced transaction in book for '.$ref.'. Canceled. Surely a bug.', null, 'errors'); } - if (! $errorforline) + if (!$errorforline) { $db->commit(); } @@ -776,11 +776,11 @@ if (! $error && $action == 'writebookkeeping') { //print 'KO for line '.$key.' '.$error.'
'; $db->rollback(); - $MAXNBERRORS=5; + $MAXNBERRORS = 5; if ($error >= $MAXNBERRORS) { setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped").' (>'.$MAXNBERRORS.')', null, 'errors'); - break; // Break in the foreach + break; // Break in the foreach } } } @@ -802,15 +802,15 @@ if (! $error && $action == 'writebookkeeping') { // Must reload data, so we make a redirect if (count($tabpay) != $error) { - $param='id_journal='.$id_journal; - $param.='&date_startday='.$date_startday; - $param.='&date_startmonth='.$date_startmonth; - $param.='&date_startyear='.$date_startyear; - $param.='&date_endday='.$date_endday; - $param.='&date_endmonth='.$date_endmonth; - $param.='&date_endyear='.$date_endyear; - $param.='&in_bookkeeping='.$in_bookkeeping; - header("Location: ".$_SERVER['PHP_SELF'].($param?'?'.$param:'')); + $param = 'id_journal='.$id_journal; + $param .= '&date_startday='.$date_startday; + $param .= '&date_startmonth='.$date_startmonth; + $param .= '&date_startyear='.$date_startyear; + $param .= '&date_endday='.$date_endday; + $param .= '&date_endmonth='.$date_endmonth; + $param .= '&date_endyear='.$date_endyear; + $param .= '&in_bookkeeping='.$in_bookkeeping; + header("Location: ".$_SERVER['PHP_SELF'].($param ? '?'.$param : '')); exit; } } @@ -823,20 +823,20 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! $filename = 'journal'; $type_export = 'journal'; - include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php'; + include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php'; // CSV header line - print '"' . $langs->transnoentitiesnoconv("BankId").'"' . $sep; - print '"' . $langs->transnoentitiesnoconv("Date") . '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("PaymentMode") . '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("AccountAccounting") . '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("LedgerAccount") . '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("SubledgerAccount") . '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("Label"). '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("Debit") . '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("Credit") . '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("Journal") . '"' . $sep; - print '"' . $langs->transnoentitiesnoconv("Note") . '"' . $sep; + print '"'.$langs->transnoentitiesnoconv("BankId").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("Date").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("PaymentMode").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("AccountAccounting").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("LedgerAccount").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("SubledgerAccount").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("Label").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("Debit").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("Credit").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("Journal").'"'.$sep; + print '"'.$langs->transnoentitiesnoconv("Note").'"'.$sep; print "\n"; foreach ($tabpay as $key => $val) @@ -850,21 +850,21 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . " - "; - $reflabel.= $langs->trans("Bank").' '.dol_string_nohtmltag($val['bank_account_ref']); - if (! empty($val['soclib'])) $reflabel .= " - " . dol_string_nohtmltag($val['soclib']); + if (!empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib'])." - "; + $reflabel .= $langs->trans("Bank").' '.dol_string_nohtmltag($val['bank_account_ref']); + if (!empty($val['soclib'])) $reflabel .= " - ".dol_string_nohtmltag($val['soclib']); - print '"' . $key . '"' . $sep; - print '"' . $date . '"' . $sep; - print '"' . $val["type_payment"] . '"' . $sep; - print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep; - print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep; - print " " . $sep; - print '"' . $reflabel . '"' . $sep; - print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep; - print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep; - print '"' . $journal . '"' . $sep; - print '"' . dol_string_nohtmltag($ref) . '"' . $sep; + print '"'.$key.'"'.$sep; + print '"'.$date.'"'.$sep; + print '"'.$val["type_payment"].'"'.$sep; + print '"'.length_accountg(html_entity_decode($k)).'"'.$sep; + print '"'.length_accountg(html_entity_decode($k)).'"'.$sep; + print " ".$sep; + print '"'.$reflabel.'"'.$sep; + print '"'.($mt >= 0 ? price($mt) : '').'"'.$sep; + print '"'.($mt < 0 ? price(-$mt) : '').'"'.$sep; + print '"'.$journal.'"'.$sep; + print '"'.dol_string_nohtmltag($ref).'"'.$sep; print "\n"; } } @@ -875,37 +875,37 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . ($val['soclib']?" - ":""); + if (!empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']).($val['soclib'] ? " - " : ""); if ($tabtype[$key] == 'banktransfert') { - $reflabel.= dol_string_nohtmltag($langs->transnoentitiesnoconv('TransitionalAccount').' '.$account_transfer); + $reflabel .= dol_string_nohtmltag($langs->transnoentitiesnoconv('TransitionalAccount').' '.$account_transfer); } else { - $reflabel.= dol_string_nohtmltag($val['soclib']); + $reflabel .= dol_string_nohtmltag($val['soclib']); } - print '"' . $key . '"' . $sep; - print '"' . $date . '"' . $sep; - print '"' . $val["type_payment"] . '"' . $sep; - print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep; + print '"'.$key.'"'.$sep; + print '"'.$date.'"'.$sep; + print '"'.$val["type_payment"].'"'.$sep; + print '"'.length_accounta(html_entity_decode($k)).'"'.$sep; if ($tabtype[$key] == 'payment_supplier') { - print '"' . $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER . '"' . $sep; - } elseif($tabtype[$key] == 'payment') { - print '"' . $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER . '"' . $sep; - } elseif($tabtype[$key] == 'payment_expensereport') { - print '"' . $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT . '"' . $sep; - } elseif($tabtype[$key] == 'payment_salary') { - print '"' . $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT . '"' . $sep; + print '"'.$conf->global->ACCOUNTING_ACCOUNT_SUPPLIER.'"'.$sep; + } elseif ($tabtype[$key] == 'payment') { + print '"'.$conf->global->ACCOUNTING_ACCOUNT_CUSTOMER.'"'.$sep; + } elseif ($tabtype[$key] == 'payment_expensereport') { + print '"'.$conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT.'"'.$sep; + } elseif ($tabtype[$key] == 'payment_salary') { + print '"'.$conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT.'"'.$sep; } else { - print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep; + print '"'.length_accounta(html_entity_decode($k)).'"'.$sep; } - print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep; - print '"' . $reflabel . '"' . $sep; - print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep; - print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep; - print '"' . $journal . '"' . $sep; - print '"' . dol_string_nohtmltag($ref) . '"' . $sep; + print '"'.length_accounta(html_entity_decode($k)).'"'.$sep; + print '"'.$reflabel.'"'.$sep; + print '"'.($mt < 0 ? price(-$mt) : '').'"'.$sep; + print '"'.($mt >= 0 ? price($mt) : '').'"'.$sep; + print '"'.$journal.'"'.$sep; + print '"'.dol_string_nohtmltag($ref).'"'.$sep; print "\n"; } } @@ -914,20 +914,20 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . " - "; - $reflabel.= dol_string_nohtmltag('WaitingAccount'); + if (!empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib'])." - "; + $reflabel .= dol_string_nohtmltag('WaitingAccount'); - print '"' . $key . '"' . $sep; - print '"' . $date . '"' . $sep; - print '"' . $val["type_payment"] . '"' . $sep; - print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep; - print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep; - print "" . $sep; - print '"' . $reflabel . '"' . $sep; - print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep; - print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep; - print '"' . $journal . '"' . $sep; - print '"' . dol_string_nohtmltag($ref) . '"' . $sep; + print '"'.$key.'"'.$sep; + print '"'.$date.'"'.$sep; + print '"'.$val["type_payment"].'"'.$sep; + print '"'.length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE).'"'.$sep; + print '"'.length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE).'"'.$sep; + print "".$sep; + print '"'.$reflabel.'"'.$sep; + print '"'.($mt < 0 ? price(-$mt) : '').'"'.$sep; + print '"'.($mt >= 0 ? price($mt) : '').'"'.$sep; + print '"'.$journal.'"'.$sep; + print '"'.dol_string_nohtmltag($ref).'"'.$sep; print "\n"; } } @@ -954,16 +954,16 @@ if (empty($action) || $action == 'view') { llxHeader('', $langs->trans("FinanceJournal")); - $nom = $langs->trans("FinanceJournal") . ' | ' . $accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); - $builddate=dol_now(); + $nom = $langs->trans("FinanceJournal").' | '.$accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); + $builddate = dol_now(); //$description = $langs->trans("DescFinanceJournal") . '
'; - $description.= $langs->trans("DescJournalOnlyBindedVisible").'
'; + $description .= $langs->trans("DescJournalOnlyBindedVisible").'
'; - $listofchoices=array('notyet'=>$langs->trans("NotYetInGeneralLedger"), 'already'=>$langs->trans("AlreadyInGeneralLedger")); - $period = $form->selectDate($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0) . ' - ' . $form->selectDate($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0); - $period .= ' - ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1); + $listofchoices = array('notyet'=>$langs->trans("NotYetInGeneralLedger"), 'already'=>$langs->trans("AlreadyInGeneralLedger")); + $period = $form->selectDate($date_start ? $date_start : -1, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end ? $date_end : -1, 'date_end', 0, 0, 0, '', 1, 0); + $period .= ' - '.$langs->trans("JournalizationInLedgerStatus").' '.$form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1); - $varlink = 'id_journal=' . $id_journal; + $varlink = 'id_journal='.$id_journal; journalHead($nom, '', $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink); @@ -994,15 +994,15 @@ if (empty($action) || $action == 'view') { print '
'; - if (! empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print ''; + if (!empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print ''; if (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "") || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' || ($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') { - print ''; + print ''; } else { - if ($in_bookkeeping == 'notyet') print ''; - else print '' . $langs->trans("WriteBookKeeping") . ''; + if ($in_bookkeeping == 'notyet') print ''; + else print ''.$langs->trans("WriteBookKeeping").''; } print '
'; @@ -1033,14 +1033,14 @@ if (empty($action) || $action == 'view') { print '
'; print ""; print ""; - print ""; - print ""; - print ""; - print ""; - print ""; - print '"; - print '"; - print '"; + print ""; + print ""; + print ""; + print ""; + print ""; + print '"; + print '"; + print '"; print "\n"; $r = ''; @@ -1057,15 +1057,15 @@ if (empty($action) || $action == 'view') { if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= $val['lib'] . " - "; - $reflabel.= $langs->trans("Bank").' '.$val['bank_account_ref']; - if (! empty($val['soclib'])) $reflabel .= " - " . $val['soclib']; + if (!empty($val['lib'])) $reflabel .= $val['lib']." - "; + $reflabel .= $langs->trans("Bank").' '.$val['bank_account_ref']; + if (!empty($val['soclib'])) $reflabel .= " - ".$val['soclib']; //var_dump($tabpay[$key]); print ''; print ''; - print ""; - print ""; + print ""; + print ""; // Ledger account print ""; - print '"; - print '"; - print '"; + print '"; + print '"; + print '"; print ""; } } @@ -1100,20 +1100,20 @@ if (empty($action) || $action == 'view') { if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= $val['lib'] . ($val['soclib']?" - ":""); + if (!empty($val['lib'])) $reflabel .= $val['lib'].($val['soclib'] ? " - " : ""); if ($tabtype[$key] == 'banktransfert') { - $reflabel.= $langs->trans('TransitionalAccount').' '.$account_transfer; + $reflabel .= $langs->trans('TransitionalAccount').' '.$account_transfer; } else { - $reflabel.= $val['soclib']; + $reflabel .= $val['soclib']; } print ''; print ''; - print ""; - print ""; + print ""; + print ""; // Ledger account print ""; - print ""; - print '"; - print '"; - print '"; + print ""; + print '"; + print '"; + print '"; print ""; } } @@ -1199,13 +1199,13 @@ if (empty($action) || $action == 'view') { if ($mt) { $reflabel = ''; - if (! empty($val['lib'])) $reflabel .= $val['lib'] . " - "; - $reflabel.= 'WaitingAccount'; + if (!empty($val['lib'])) $reflabel .= $val['lib']." - "; + $reflabel .= 'WaitingAccount'; print ''; print ''; - print ""; - print ""; + print ""; + print ""; // Ledger account print ""; - print ""; - print '"; - print '"; - print '"; + print ""; + print '"; + print '"; + print '"; print ""; } } @@ -1287,63 +1287,63 @@ function getSourceDocRef($val, $typerecord) { $sqlmid = 'SELECT payfac.fk_facture as id, f.ref as ref'; $sqlmid .= " FROM ".MAIN_DB_PREFIX."paiement_facture as payfac, ".MAIN_DB_PREFIX."facture as f"; - $sqlmid .= " WHERE payfac.fk_facture = f.rowid AND payfac.fk_paiement=" . $val["paymentid"]; + $sqlmid .= " WHERE payfac.fk_facture = f.rowid AND payfac.fk_paiement=".$val["paymentid"]; $ref = $langs->transnoentitiesnoconv("Invoice"); } elseif ($typerecord == 'payment_supplier') { $sqlmid = 'SELECT payfac.fk_facturefourn as id, f.ref'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfac, ".MAIN_DB_PREFIX."facture_fourn as f"; - $sqlmid .= " WHERE payfac.fk_facturefourn = f.rowid AND payfac.fk_paiementfourn=" . $val["paymentsupplierid"]; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."paiementfourn_facturefourn as payfac, ".MAIN_DB_PREFIX."facture_fourn as f"; + $sqlmid .= " WHERE payfac.fk_facturefourn = f.rowid AND payfac.fk_paiementfourn=".$val["paymentsupplierid"]; $ref = $langs->transnoentitiesnoconv("SupplierInvoice"); } elseif ($typerecord == 'payment_expensereport') { $sqlmid = 'SELECT e.rowid as id, e.ref'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_expensereport as pe, " . MAIN_DB_PREFIX . "expensereport as e"; - $sqlmid .= " WHERE pe.rowid=" . $val["paymentexpensereport"]." AND pe.fk_expensereport = e.rowid"; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_expensereport as pe, ".MAIN_DB_PREFIX."expensereport as e"; + $sqlmid .= " WHERE pe.rowid=".$val["paymentexpensereport"]." AND pe.fk_expensereport = e.rowid"; $ref = $langs->transnoentitiesnoconv("ExpenseReport"); } elseif ($typerecord == 'payment_salary') { $sqlmid = 'SELECT s.rowid as ref'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_salary as s"; - $sqlmid .= " WHERE s.rowid=" . $val["paymentsalid"]; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_salary as s"; + $sqlmid .= " WHERE s.rowid=".$val["paymentsalid"]; $ref = $langs->transnoentitiesnoconv("SalaryPayment"); } elseif ($typerecord == 'sc') { $sqlmid = 'SELECT sc.rowid as ref'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "paiementcharge as sc"; - $sqlmid .= " WHERE sc.rowid=" . $val["paymentscid"]; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."paiementcharge as sc"; + $sqlmid .= " WHERE sc.rowid=".$val["paymentscid"]; $ref = $langs->transnoentitiesnoconv("SocialContribution"); } elseif ($typerecord == 'payment_vat') { $sqlmid = 'SELECT v.rowid as ref'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "tva as v"; - $sqlmid .= " WHERE v.rowid=" . $val["paymentvatid"]; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."tva as v"; + $sqlmid .= " WHERE v.rowid=".$val["paymentvatid"]; $ref = $langs->transnoentitiesnoconv("PaymentVat"); } elseif ($typerecord == 'payment_donation') { $sqlmid = 'SELECT payd.fk_donation as ref'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_donation as payd"; - $sqlmid .= " WHERE payd.fk_donation=" . $val["paymentdonationid"]; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_donation as payd"; + $sqlmid .= " WHERE payd.fk_donation=".$val["paymentdonationid"]; $ref = $langs->transnoentitiesnoconv("Donation"); } elseif ($typerecord == 'payment_loan') { $sqlmid = 'SELECT l.rowid as ref'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_loan as l"; - $sqlmid .= " WHERE l.rowid=" . $val["paymentloanid"]; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_loan as l"; + $sqlmid .= " WHERE l.rowid=".$val["paymentloanid"]; $ref = $langs->transnoentitiesnoconv("LoanPayment"); } elseif ($typerecord == 'payment_various') { $sqlmid = 'SELECT v.rowid as ref'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_various as v"; - $sqlmid .= " WHERE v.rowid=" . $val["paymentvariousid"]; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."payment_various as v"; + $sqlmid .= " WHERE v.rowid=".$val["paymentvariousid"]; $ref = $langs->transnoentitiesnoconv("VariousPayment"); } // Add warning @@ -1354,18 +1354,18 @@ function getSourceDocRef($val, $typerecord) if ($sqlmid) { - dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG); + dol_syslog("accountancy/journal/bankjournal.php::sqlmid=".$sqlmid, LOG_DEBUG); $resultmid = $db->query($sqlmid); if ($resultmid) { while ($objmid = $db->fetch_object($resultmid)) { - $ref.=' '.$objmid->ref; + $ref .= ' '.$objmid->ref; } } else dol_print_error($db); } - $ref = dol_trunc($langs->transnoentitiesnoconv("BankId").' '.$val['fk_bank'].' - '.$ref, 295); // 295 + 3 dots (...) is < than max size of 300 + $ref = dol_trunc($langs->transnoentitiesnoconv("BankId").' '.$val['fk_bank'].' - '.$ref, 295); // 295 + 3 dots (...) is < than max size of 300 return $ref; } diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 29131274c7a..d0a84c1236c 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -321,7 +321,7 @@ if ($action == 'writebookkeeping') { $accountingaccount->fetch($k, null, true); $bookkeeping->label_compte = $accountingaccount->label; - $bookkeeping->label_operation = $langs->trans("VAT"). ' '.join(', ', $def_tva[$key][$k]).' %'; + $bookkeeping->label_operation = $langs->trans("VAT").' '.join(', ', $def_tva[$key][$k]).' %'; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt > 0) ? $mt : 0; @@ -448,36 +448,36 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch(null, $k, true); if ($mt) { - print '"' . $date . '"' . $sep; - print '"' . $val["ref"] . '"' . $sep; - print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep; - print '"' . dol_trunc($accountingaccount->label, 32) . '"' . $sep; - print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep; - print '"' . ($mt < 0 ? price(- $mt) : '') . '"'; + print '"'.$date.'"'.$sep; + print '"'.$val["ref"].'"'.$sep; + print '"'.length_accountg(html_entity_decode($k)).'"'.$sep; + print '"'.dol_trunc($accountingaccount->label, 32).'"'.$sep; + print '"'.($mt >= 0 ? price($mt) : '').'"'.$sep; + print '"'.($mt < 0 ? price(-$mt) : '').'"'; print "\n"; } } // VAT foreach ($tabtva[$key] as $k => $mt) { if ($mt) { - print '"' . $date . '"' . $sep; - print '"' . $val["ref"] . '"' . $sep; - print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep; - print '"' . dol_trunc($langs->trans("VAT")) . '"' . $sep; - print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep; - print '"' . ($mt < 0 ? price(- $mt) : '') . '"'; + print '"'.$date.'"'.$sep; + print '"'.$val["ref"].'"'.$sep; + print '"'.length_accountg(html_entity_decode($k)).'"'.$sep; + print '"'.dol_trunc($langs->trans("VAT")).'"'.$sep; + print '"'.($mt >= 0 ? price($mt) : '').'"'.$sep; + print '"'.($mt < 0 ? price(-$mt) : '').'"'; print "\n"; } } // Third party foreach ($tabttc[$key] as $k => $mt) { - print '"' . $date . '"' . $sep; - print '"' . $val["ref"] . '"' . $sep; - print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep; - print '"' . dol_trunc($userstatic->name) . '"' . $sep; - print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep; - print '"' . ($mt >= 0 ? price($mt) : '') . '"'; + print '"'.$date.'"'.$sep; + print '"'.$val["ref"].'"'.$sep; + print '"'.length_accounta(html_entity_decode($k)).'"'.$sep; + print '"'.dol_trunc($userstatic->name).'"'.$sep; + print '"'.($mt < 0 ? price(-$mt) : '').'"'.$sep; + print '"'.($mt >= 0 ? price($mt) : '').'"'; } print "\n"; } @@ -641,8 +641,8 @@ if (empty($action) || $action == 'view') { if ($mt) { print ''; print ""; - print ""; - print ""; + print ""; + print ""; // Account print "'; - print ""; - print '"; - print '"; + print '"; + print '"; print ""; } } diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index c7fb4c06304..dd7dc1ca9e1 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -301,7 +301,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->date_creation = $now; $bookkeeping->doc_type = 'supplier_invoice'; $bookkeeping->fk_doc = $key; - $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add + $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add $bookkeeping->thirdparty_code = $companystatic->code_fournisseur; $bookkeeping->subledger_account = $tabcompany[$key]['code_compta_fournisseur']; $bookkeeping->subledger_label = $tabcompany[$key]['name']; @@ -310,7 +310,7 @@ if ($action == 'writebookkeeping') { $accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER, true); $bookkeeping->label_compte = $accountingaccount->label; - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("SubledgerAccount"); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16).' - '.$invoicestatic->ref_supplier.' - '.$langs->trans("SubledgerAccount"); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt <= 0) ? -$mt : 0; @@ -329,14 +329,14 @@ if ($action == 'writebookkeeping') { { $error++; $errorforline++; - $errorforinvoice[$key]='alreadyjournalized'; + $errorforinvoice[$key] = 'alreadyjournalized'; //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); } else { $error++; $errorforline++; - $errorforinvoice[$key]='other'; + $errorforinvoice[$key] = 'other'; setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } } @@ -344,7 +344,7 @@ if ($action == 'writebookkeeping') { } // Product / Service - if (! $errorforline) + if (!$errorforline) { foreach ($tabht[$key] as $k => $mt) { // get compte id and label @@ -356,13 +356,13 @@ if ($action == 'writebookkeeping') { $bookkeeping->date_creation = $now; $bookkeeping->doc_type = 'supplier_invoice'; $bookkeeping->fk_doc = $key; - $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add + $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add $bookkeeping->thirdparty_code = $companystatic->code_fournisseur; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; $bookkeeping->label_compte = $accountingaccount->label; - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $accountingaccount->label; + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16).' - '.$invoicestatic->ref_supplier.' - '.$accountingaccount->label; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt > 0) ? $mt : 0; @@ -381,14 +381,14 @@ if ($action == 'writebookkeeping') { { $error++; $errorforline++; - $errorforinvoice[$key]='alreadyjournalized'; + $errorforinvoice[$key] = 'alreadyjournalized'; //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); } else { $error++; $errorforline++; - $errorforinvoice[$key]='other'; + $errorforinvoice[$key] = 'other'; setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } } @@ -398,10 +398,10 @@ if ($action == 'writebookkeeping') { // VAT // var_dump($tabtva); - if (! $errorforline) + if (!$errorforline) { - $listoftax=array(0, 1, 2); - foreach($listoftax as $numtax) + $listoftax = array(0, 1, 2); + foreach ($listoftax as $numtax) { $arrayofvat = $tabtva; if ($numtax == 1) $arrayofvat = $tablocaltax1; @@ -416,7 +416,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->date_creation = $now; $bookkeeping->doc_type = 'supplier_invoice'; $bookkeeping->fk_doc = $key; - $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add + $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add $bookkeeping->thirdparty_code = $companystatic->code_fournisseur; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; @@ -425,7 +425,7 @@ if ($action == 'writebookkeeping') { $accountingaccount->fetch($k, null, true); $bookkeeping->label_compte = $accountingaccount->label; - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("VAT").' '.join(', ', $def_tva[$key][$k]) .' %' . ($numtax?' - Localtax '.$numtax:''); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16).' - '.$invoicestatic->ref_supplier.' - '.$langs->trans("VAT").' '.join(', ', $def_tva[$key][$k]).' %'.($numtax ? ' - Localtax '.$numtax : ''); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt > 0) ? $mt : 0; @@ -444,14 +444,14 @@ if ($action == 'writebookkeeping') { { $error++; $errorforline++; - $errorforinvoice[$key]='alreadyjournalized'; + $errorforinvoice[$key] = 'alreadyjournalized'; //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); } else { $error++; $errorforline++; - $errorforinvoice[$key]='other'; + $errorforinvoice[$key] = 'other'; setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } } @@ -462,7 +462,7 @@ if ($action == 'writebookkeeping') { // Counterpart of VAT for VAT NPR // var_dump($tabother); - if (! $errorforline && is_array($tabother[$key])) + if (!$errorforline && is_array($tabother[$key])) { foreach ($tabother[$key] as $k => $mt) { if ($mt) { @@ -478,7 +478,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("VAT").' NPR'; + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16).' - '.$invoicestatic->ref_supplier.' - '.$langs->trans("VAT").' NPR'; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt > 0) ? $mt : 0; @@ -513,7 +513,7 @@ if ($action == 'writebookkeeping') { } // Protection against a bug on lines before - if (! $errorforline && (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT'))) + if (!$errorforline && (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT'))) { $error++; $errorforline++; @@ -863,8 +863,8 @@ if (empty($action) || $action == 'view') { foreach ($tabttc[$key] as $k => $mt) { print ''; print ""; - print ""; - print ""; + print ""; + print ""; // Account print "'; - print ""; - print '"; - print '"; + print ""; + print '"; + print '"; print ""; } @@ -896,8 +896,8 @@ if (empty($action) || $action == 'view') { print ''; print ""; - print ""; - print ""; + print ""; + print ""; // Account print "'; $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; - print ""; - print '"; - print '"; + print ""; + print '"; + print '"; print ""; } diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 878270d3687..80603106cb3 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -99,31 +99,31 @@ $sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.ref_client, f.date_lim_r $sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.situation_percent, fd.vat_src_code,"; $sql .= " s.rowid as socid, s.nom as name, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; $sql .= " p.rowid as pid, p.ref as pref, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte"; -$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation"; -$sql .= " JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; -$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc"; +$sql .= " FROM ".MAIN_DB_PREFIX."facturedet as fd"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = fd.fk_product"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON aa.rowid = fd.fk_code_ventilation"; +$sql .= " JOIN ".MAIN_DB_PREFIX."facture as f ON f.rowid = fd.fk_facture"; +$sql .= " JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = f.fk_soc"; $sql .= " WHERE fd.fk_code_ventilation > 0"; -$sql .= " AND f.entity IN (".getEntity('invoice', 0).')'; // We don't share object for accountancy, we use source object sharing +$sql .= " AND f.entity IN (".getEntity('invoice', 0).')'; // We don't share object for accountancy, we use source object sharing $sql .= " AND f.fk_statut > 0"; -if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { // Non common setup - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; +if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { // Non common setup + $sql .= " AND f.type IN (".Facture::TYPE_STANDARD.",".Facture::TYPE_REPLACEMENT.",".Facture::TYPE_CREDIT_NOTE.",".Facture::TYPE_SITUATION.")"; } else { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; + $sql .= " AND f.type IN (".Facture::TYPE_STANDARD.",".Facture::TYPE_REPLACEMENT.",".Facture::TYPE_CREDIT_NOTE.",".Facture::TYPE_DEPOSIT.",".Facture::TYPE_SITUATION.")"; } $sql .= " AND fd.product_type IN (0,1)"; if ($date_start && $date_end) - $sql .= " AND f.datef >= '" . $db->idate($date_start) . "' AND f.datef <= '" . $db->idate($date_end) . "'"; + $sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; // Already in bookkeeping or not if ($in_bookkeeping == 'already') { - $sql .= " AND f.rowid IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; + $sql .= " AND f.rowid IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // $sql .= " AND fd.rowid IN (SELECT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // Useless, we save one line for all products with same account } if ($in_bookkeeping == 'notyet') { - $sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; + $sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // $sql .= " AND fd.rowid NOT IN (SELECT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // Useless, we save one line for all products with same account } $sql .= " ORDER BY f.datef"; @@ -312,7 +312,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->date_creation = $now; $bookkeeping->doc_type = 'customer_invoice'; $bookkeeping->fk_doc = $key; - $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add + $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add $bookkeeping->thirdparty_code = $companystatic->code_client; $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; $bookkeeping->subledger_label = $tabcompany[$key]['name']; @@ -321,7 +321,7 @@ if ($action == 'writebookkeeping') { $accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER, true); $bookkeeping->label_compte = $accountingaccount->label; - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("SubledgerAccount"); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16).' - '.$invoicestatic->ref.' - '.$langs->trans("SubledgerAccount"); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt >= 0) ? $mt : 0; @@ -340,14 +340,14 @@ if ($action == 'writebookkeeping') { { $error++; $errorforline++; - $errorforinvoice[$key]='alreadyjournalized'; + $errorforinvoice[$key] = 'alreadyjournalized'; //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); } else { $error++; $errorforline++; - $errorforinvoice[$key]='other'; + $errorforinvoice[$key] = 'other'; setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } } @@ -355,7 +355,7 @@ if ($action == 'writebookkeeping') { } // Product / Service - if (! $errorforline) + if (!$errorforline) { foreach ($tabht[$key] as $k => $mt) { // get compte id and label @@ -373,7 +373,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; $bookkeeping->label_compte = $accountingaccount->label; - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label; + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16).' - '.$invoicestatic->ref.' - '.$accountingaccount->label; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt < 0) ? -$mt : 0; @@ -408,10 +408,10 @@ if ($action == 'writebookkeeping') { } // VAT - if (! $errorforline) + if (!$errorforline) { - $listoftax=array(0, 1, 2); - foreach($listoftax as $numtax) + $listoftax = array(0, 1, 2); + foreach ($listoftax as $numtax) { $arrayofvat = $tabtva; if ($numtax == 1) $arrayofvat = $tablocaltax1; @@ -426,7 +426,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->date_creation = $now; $bookkeeping->doc_type = 'customer_invoice'; $bookkeeping->fk_doc = $key; - $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add + $bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add $bookkeeping->thirdparty_code = $companystatic->code_client; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; @@ -435,7 +435,7 @@ if ($action == 'writebookkeeping') { $accountingaccount->fetch($k, null, true); $bookkeeping->label_compte = $accountingaccount->label; - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT").' '.join(', ', $def_tva[$key][$k]) .' %' . ($numtax?' - Localtax '.$numtax:''); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16).' - '.$invoicestatic->ref.' - '.$langs->trans("VAT").' '.join(', ', $def_tva[$key][$k]).' %'.($numtax ? ' - Localtax '.$numtax : ''); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt < 0) ? -$mt : 0; @@ -471,7 +471,7 @@ if ($action == 'writebookkeeping') { } // Protection against a bug on lines before - if (! $errorforline && (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT'))) + if (!$errorforline && (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT'))) { $error++; $errorforline++; @@ -799,8 +799,8 @@ if (empty($action) || $action == 'view') { { print ''; print ""; - print ""; - print ""; + print ""; + print ""; // Account print "'; - print ""; - print '"; - print '"; + print ""; + print '"; + print '"; print ""; } @@ -833,8 +833,8 @@ if (empty($action) || $action == 'view') { print ''; print ""; - print ""; - print ""; + print ""; + print ""; // Account print "'; $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; - print ""; - print '"; - print '"; + print ""; + print '"; + print '"; print ""; } diff --git a/htdocs/adherents/admin/adherent.php b/htdocs/adherents/admin/adherent.php index 72c1e078ba0..6b2d432fe46 100644 --- a/htdocs/adherents/admin/adherent.php +++ b/htdocs/adherents/admin/adherent.php @@ -34,12 +34,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","members")); +$langs->loadLangs(array("admin", "members")); -if (! $user->admin) accessforbidden(); +if (!$user->admin) accessforbidden(); -$type=array('yesno','texte','chaine'); +$type = array('yesno', 'texte', 'chaine'); $action = GETPOST('action', 'alpha'); @@ -52,19 +52,19 @@ $action = GETPOST('action', 'alpha'); if ($action == 'updateall') { $db->begin(); - $res1=$res2=$res3=$res4=$res5=$res6=0; - $res1=dolibarr_set_const($db, 'ADHERENT_LOGIN_NOT_REQUIRED', GETPOST('ADHERENT_LOGIN_NOT_REQUIRED', 'alpha')?0:1, 'chaine', 0, '', $conf->entity); - $res2=dolibarr_set_const($db, 'ADHERENT_MAIL_REQUIRED', GETPOST('ADHERENT_MAIL_REQUIRED', 'alpha'), 'chaine', 0, '', $conf->entity); - $res3=dolibarr_set_const($db, 'ADHERENT_DEFAULT_SENDINFOBYMAIL', GETPOST('ADHERENT_DEFAULT_SENDINFOBYMAIL', 'alpha'), 'chaine', 0, '', $conf->entity); - $res4=dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity); + $res1 = $res2 = $res3 = $res4 = $res5 = $res6 = 0; + $res1 = dolibarr_set_const($db, 'ADHERENT_LOGIN_NOT_REQUIRED', GETPOST('ADHERENT_LOGIN_NOT_REQUIRED', 'alpha') ? 0 : 1, 'chaine', 0, '', $conf->entity); + $res2 = dolibarr_set_const($db, 'ADHERENT_MAIL_REQUIRED', GETPOST('ADHERENT_MAIL_REQUIRED', 'alpha'), 'chaine', 0, '', $conf->entity); + $res3 = dolibarr_set_const($db, 'ADHERENT_DEFAULT_SENDINFOBYMAIL', GETPOST('ADHERENT_DEFAULT_SENDINFOBYMAIL', 'alpha'), 'chaine', 0, '', $conf->entity); + $res4 = dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity); // Use vat for invoice creation if ($conf->facture->enabled) { - $res4=dolibarr_set_const($db, 'ADHERENT_VAT_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_VAT_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); - $res5=dolibarr_set_const($db, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); - if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) + $res4 = dolibarr_set_const($db, 'ADHERENT_VAT_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_VAT_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); + $res5 = dolibarr_set_const($db, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); + if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { - $res6=dolibarr_set_const($db, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); + $res6 = dolibarr_set_const($db, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity); } } if ($res1 < 0 || $res2 < 0 || $res3 < 0 || $res4 < 0 || $res5 < 0 || $res6 < 0) @@ -82,23 +82,23 @@ if ($action == 'updateall') // Action to update or add a constant if ($action == 'update' || $action == 'add') { - $constname=GETPOST('constname', 'alpha'); - $constvalue=(GETPOST('constvalue_'.$constname) ? GETPOST('constvalue_'.$constname) : GETPOST('constvalue')); + $constname = GETPOST('constname', 'alpha'); + $constvalue = (GETPOST('constvalue_'.$constname) ? GETPOST('constvalue_'.$constname) : GETPOST('constvalue')); - if (($constname=='ADHERENT_CARD_TYPE' || $constname=='ADHERENT_ETIQUETTE_TYPE' || $constname=='ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') && $constvalue == -1) $constvalue=''; - if ($constname=='ADHERENT_LOGIN_NOT_REQUIRED') // Invert choice + if (($constname == 'ADHERENT_CARD_TYPE' || $constname == 'ADHERENT_ETIQUETTE_TYPE' || $constname == 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') && $constvalue == -1) $constvalue = ''; + if ($constname == 'ADHERENT_LOGIN_NOT_REQUIRED') // Invert choice { - if ($constvalue) $constvalue=0; - else $constvalue=1; + if ($constvalue) $constvalue = 0; + else $constvalue = 1; } - $consttype=GETPOST('consttype', 'alpha'); - $constnote=GETPOST('constnote'); - $res=dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity); + $consttype = GETPOST('consttype', 'alpha'); + $constnote = GETPOST('constnote'); + $res = dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity); - if (! $res > 0) $error++; + if (!$res > 0) $error++; - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -111,7 +111,7 @@ if ($action == 'update' || $action == 'add') // Action to enable of a submodule of the adherent module if ($action == 'set') { - $result=dolibarr_set_const($db, GETPOST('name', 'alpha'), GETPOST('value'), '', 0, '', $conf->entity); + $result = dolibarr_set_const($db, GETPOST('name', 'alpha'), GETPOST('value'), '', 0, '', $conf->entity); if ($result < 0) { print $db->error(); @@ -121,7 +121,7 @@ if ($action == 'set') // Action to disable a submodule of the adherent module if ($action == 'unset') { - $result=dolibarr_del_const($db, GETPOST('name', 'alpha'), $conf->entity); + $result = dolibarr_del_const($db, GETPOST('name', 'alpha'), $conf->entity); if ($result < 0) { print $db->error(); @@ -136,12 +136,12 @@ if ($action == 'unset') $form = new Form($db); -$help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; +$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; llxHeader('', $langs->trans("MembersSetup"), $help_url); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("MembersSetup"), $linkback, 'title_setup'); @@ -162,25 +162,25 @@ print "\n"; // Login/Pass required for members print '\n"; // Mail required for members print '\n"; // Send mail information is on by default print '\n"; // Insert subscription into bank account print ''; -$arraychoices=array('0'=>$langs->trans("None")); -if (! empty($conf->banque->enabled)) $arraychoices['bankdirect']=$langs->trans("MoreActionBankDirect"); -if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) $arraychoices['invoiceonly']=$langs->trans("MoreActionInvoiceOnly"); -if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) $arraychoices['bankviainvoice']=$langs->trans("MoreActionBankViaInvoice"); +$arraychoices = array('0'=>$langs->trans("None")); +if (!empty($conf->banque->enabled)) $arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect"); +if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) $arraychoices['invoiceonly'] = $langs->trans("MoreActionInvoiceOnly"); +if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) $arraychoices['bankviainvoice'] = $langs->trans("MoreActionBankViaInvoice"); print '\n"; if ($conf->facture->enabled) { print ''; - if (! empty($conf->banque->enabled)) + if (!empty($conf->banque->enabled)) { print ''; } else @@ -208,7 +208,7 @@ if ($conf->facture->enabled) } print "\n"; - if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) + if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { print ''; print '\n"; // Amount print '\n"; // Can edit print '\n"; // Jump to an online payment page print '\n"; 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("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")."
" . $date . "" . $ref . "".$date."".$ref.""; $accounttoshow = length_accountg($k); @@ -1087,9 +1087,9 @@ if (empty($action) || $action == 'view') { print ""; 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 . "".$date."".$ref.""; $account_ledger = $k; @@ -1137,19 +1137,19 @@ if (empty($action) || $action == 'view') { } else { - print ''.$langs->trans('UnknownAccountForThirdparty', length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE)).''; // We will use a waiting account + print ''.$langs->trans('UnknownAccountForThirdparty', length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE)).''; // We will use a waiting account } } else { // We will refuse writing - $errorstring='UnknownAccountForThirdpartyBlocking'; - if ($tabtype[$key] == 'payment') $errorstring='MainAccountForCustomersNotDefined'; - if ($tabtype[$key] == 'payment_supplier') $errorstring='MainAccountForSuppliersNotDefined'; - if ($tabtype[$key] == 'payment_expensereport') $errorstring='MainAccountForUsersNotDefined'; - if ($tabtype[$key] == 'payment_salary') $errorstring='MainAccountForUsersNotDefined'; - if ($tabtype[$key] == 'payment_vat') $errorstring='MainAccountForVatPaymentNotDefined'; - if ($tabtype[$key] == 'member') $errorstring='MainAccountForSubscriptionPaymentNotDefined'; + $errorstring = 'UnknownAccountForThirdpartyBlocking'; + if ($tabtype[$key] == 'payment') $errorstring = 'MainAccountForCustomersNotDefined'; + if ($tabtype[$key] == 'payment_supplier') $errorstring = 'MainAccountForSuppliersNotDefined'; + if ($tabtype[$key] == 'payment_expensereport') $errorstring = 'MainAccountForUsersNotDefined'; + if ($tabtype[$key] == 'payment_salary') $errorstring = 'MainAccountForUsersNotDefined'; + if ($tabtype[$key] == 'payment_vat') $errorstring = 'MainAccountForVatPaymentNotDefined'; + if ($tabtype[$key] == 'member') $errorstring = 'MainAccountForSubscriptionPaymentNotDefined'; print ''.$langs->trans($errorstring).''; } } @@ -1169,7 +1169,7 @@ if (empty($action) || $action == 'view') { var_dump($tabtype[$key]); var_dump($tabbq[$key]);*/ //print ''.$langs->trans("ThirdpartyAccountNotDefined").''; - if (! empty($tabcompany[$key]['code_compta'])) + if (!empty($tabcompany[$key]['code_compta'])) { if (in_array($tabtype[$key], array('payment_various'))) { // For such case, if subledger is not defined, we won't use subledger accounts. @@ -1187,10 +1187,10 @@ if (empty($action) || $action == 'view') { } } print "" . $reflabel . "' . $val["type_payment"] . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "".$reflabel."'.$val["type_payment"]."'.($mt < 0 ? price(-$mt) : '')."'.($mt >= 0 ? price($mt) : '')."
" . $date . "" . $ref . "".$date."".$ref.""; /*if (empty($accounttoshow) || $accounttoshow == 'NotDefined') @@ -1223,10 +1223,10 @@ if (empty($action) || $action == 'view') { else print length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE); */ print "" . $reflabel . "' . $val["type_payment"] . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "".$reflabel."'.$val["type_payment"]."'.($mt < 0 ? price(-$mt) : '')."'.($mt >= 0 ? price($mt) : '')."
" . $date . "" . $expensereportstatic->getNomUrl(1) . "".$date."".$expensereportstatic->getNomUrl(1).""; $accountoshow = length_accountg($k); @@ -655,10 +655,10 @@ if (empty($action) || $action == 'view') { // Subledger account print ""; print '" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $langs->trans("VAT"). ' '.join(', ', $def_tva[$key][$k]).' %'.($numtax?' - Localtax '.$numtax:''); + print "".$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) : '')."
" . $date . "" . $invoicestatic->getNomUrl(1) . "".$date."".$invoicestatic->getNomUrl(1).""; $accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER); @@ -883,9 +883,9 @@ if (empty($action) || $action == 'view') { } else print $accountoshow; print '" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("SubledgerAccount") . "'. ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "".$companystatic->getNomUrl(0, 'supplier', 16).' - '.$invoicestatic->ref_supplier.' - '.$langs->trans("SubledgerAccount")."'.($mt < 0 ? price(-$mt) : '')."'.($mt >= 0 ? price($mt) : '')."
" . $date . "" . $invoicestatic->getNomUrl(1) . "".$date."".$invoicestatic->getNomUrl(1).""; $accountoshow = length_accountg($k); @@ -912,9 +912,9 @@ if (empty($action) || $action == 'view') { print '" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $accountingaccount->label . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "".$companystatic->getNomUrl(0, 'supplier', 16).' - '.$invoicestatic->ref_supplier.' - '.$accountingaccount->label."'.($mt >= 0 ? price($mt) : '')."'.($mt < 0 ? price(-$mt) : '')."
" . $date . "" . $invoicestatic->getNomUrl(1) . "".$date."".$invoicestatic->getNomUrl(1).""; $accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER); @@ -819,9 +819,9 @@ if (empty($action) || $action == 'view') { } else print $accountoshow; print '" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("SubledgerAccount") . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "".$companystatic->getNomUrl(0, 'customer', 16).' - '.$invoicestatic->ref.' - '.$langs->trans("SubledgerAccount")."'.($mt >= 0 ? price($mt) : '')."'.($mt < 0 ? price(-$mt) : '')."
" . $date . "" . $invoicestatic->getNomUrl(1) . "".$date."".$invoicestatic->getNomUrl(1).""; $accountoshow = length_accountg($k); @@ -849,9 +849,9 @@ if (empty($action) || $action == 'view') { print '" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "".$companystatic->getNomUrl(0, 'customer', 16).' - '.$invoicestatic->ref.' - '.$accountingaccount->label."'.($mt < 0 ? price(-$mt) : '')."'.($mt >= 0 ? price($mt) : '')."
'.$langs->trans("AdherentLoginRequired").''; -print $form->selectyesno('ADHERENT_LOGIN_NOT_REQUIRED', (! empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)?0:1), 1); +print $form->selectyesno('ADHERENT_LOGIN_NOT_REQUIRED', (!empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED) ? 0 : 1), 1); print "
'.$langs->trans("AdherentMailRequired").''; -print $form->selectyesno('ADHERENT_MAIL_REQUIRED', (! empty($conf->global->ADHERENT_MAIL_REQUIRED)?$conf->global->ADHERENT_MAIL_REQUIRED:0), 1); +print $form->selectyesno('ADHERENT_MAIL_REQUIRED', (!empty($conf->global->ADHERENT_MAIL_REQUIRED) ? $conf->global->ADHERENT_MAIL_REQUIRED : 0), 1); print "
'.$langs->trans("MemberSendInformationByMailByDefault").''; -print $form->selectyesno('ADHERENT_DEFAULT_SENDINFOBYMAIL', (! empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL)?$conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL:0), 1); +print $form->selectyesno('ADHERENT_DEFAULT_SENDINFOBYMAIL', (!empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL) ? $conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL : 0), 1); print "
'.$langs->trans("MoreActionsOnSubscription").''; print $form->selectarray('ADHERENT_BANK_USE', $arraychoices, $conf->global->ADHERENT_BANK_USE, 0); if ($conf->global->ADHERENT_BANK_USE == 'bankdirect' || $conf->global->ADHERENT_BANK_USE == 'bankviainvoice') @@ -194,10 +194,10 @@ print "
'.$langs->trans("VATToUseForSubscriptions").''; - print $form->selectarray('ADHERENT_VAT_FOR_SUBSCRIPTIONS', array('0'=>$langs->trans("NoVatOnSubscription"),'defaultforfoundationcountry'=>$langs->trans("Default")), (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS)?'0':$conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS), 0); + print $form->selectarray('ADHERENT_VAT_FOR_SUBSCRIPTIONS', array('0'=>$langs->trans("NoVatOnSubscription"), 'defaultforfoundationcountry'=>$langs->trans("Default")), (empty($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) ? '0' : $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS), 0); print '
'.$langs->trans("ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS").''; @@ -232,7 +232,7 @@ print '
'; /* * Edit info of model document */ -$constantes=array( +$constantes = array( 'ADHERENT_CARD_TYPE', // 'ADHERENT_CARD_BACKGROUND', 'ADHERENT_CARD_HEADER_TEXT', @@ -243,10 +243,10 @@ $constantes=array( print load_fiche_titre($langs->trans("MembersCards"), '', ''); -$helptext='*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; -$helptext.='__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, '; -$helptext.='__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, '; -$helptext.='__YEAR__, __MONTH__, __DAY__'; +$helptext = '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; +$helptext .= '__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, '; +$helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, '; +$helptext .= '__YEAR__, __MONTH__, __DAY__'; form_constantes($constantes, 0, $helptext); @@ -256,14 +256,14 @@ print '
'; /* * Edit info of model document */ -$constantes=array('ADHERENT_ETIQUETTE_TYPE','ADHERENT_ETIQUETTE_TEXT'); +$constantes = array('ADHERENT_ETIQUETTE_TYPE', 'ADHERENT_ETIQUETTE_TEXT'); print load_fiche_titre($langs->trans("MembersTickets"), '', ''); -$helptext='*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; -$helptext.='__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, '; -$helptext.='__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, '; -$helptext.='__YEAR__, __MONTH__, __DAY__'; +$helptext = '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; +$helptext .= '__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, '; +$helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, '; +$helptext .= '__YEAR__, __MONTH__, __DAY__'; form_constantes($constantes, 0, $helptext); diff --git a/htdocs/adherents/admin/adherent_emails.php b/htdocs/adherents/admin/adherent_emails.php index 9fef348315b..e0675a6124a 100644 --- a/htdocs/adherents/admin/adherent_emails.php +++ b/htdocs/adherents/admin/adherent_emails.php @@ -34,25 +34,25 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","members")); +$langs->loadLangs(array("admin", "members")); -if (! $user->admin) accessforbidden(); +if (!$user->admin) accessforbidden(); -$oldtypetonewone=array('texte'=>'text','chaine'=>'string'); // old type to new ones +$oldtypetonewone = array('texte'=>'text', 'chaine'=>'string'); // old type to new ones $action = GETPOST('action', 'alpha'); $error = 0; // Editing global variables not related to a specific theme -$constantes=array( +$constantes = array( 'MEMBER_REMINDER_EMAIL'=>array('type'=>'yesno', 'label'=>$langs->trans('MEMBER_REMINDER_EMAIL', $langs->transnoentities("Module2300Name"))), 'ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION' =>'emailtemplate:member', - 'ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER' =>'emailtemplate:member', /* old was ADHERENT_AUTOREGISTER_MAIL */ - 'ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_VALID */ - 'ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_COTIS */ - 'ADHERENT_EMAIL_TEMPLATE_CANCELATION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_RESIL */ + 'ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER' =>'emailtemplate:member', /* old was ADHERENT_AUTOREGISTER_MAIL */ + 'ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_VALID */ + 'ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_COTIS */ + 'ADHERENT_EMAIL_TEMPLATE_CANCELATION' =>'emailtemplate:member', /* old was ADHERENT_MAIL_RESIL */ 'ADHERENT_MAIL_FROM'=>'string', 'ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT'=>'string', 'ADHERENT_AUTOREGISTER_NOTIF_MAIL'=>'html', @@ -68,8 +68,8 @@ $constantes=array( if ($action == 'updateall') { $db->begin(); - $res1=$res2=$res3=$res4=$res5=$res6=0; - $res1=dolibarr_set_const($db, 'XXXX', GETPOST('ADHERENT_LOGIN_NOT_REQUIRED', 'alpha'), 'chaine', 0, '', $conf->entity); + $res1 = $res2 = $res3 = $res4 = $res5 = $res6 = 0; + $res1 = dolibarr_set_const($db, 'XXXX', GETPOST('ADHERENT_LOGIN_NOT_REQUIRED', 'alpha'), 'chaine', 0, '', $conf->entity); if ($res1 < 0 || $res2 < 0 || $res3 < 0 || $res4 < 0 || $res5 < 0 || $res6 < 0) { setEventMessages('ErrorFailedToSaveDate', null, 'errors'); @@ -86,19 +86,19 @@ if ($action == 'updateall') if ($action == 'update' || $action == 'add') { $constlineid = GETPOST('rowid', 'int'); - $constname=GETPOST('constname', 'alpha'); + $constname = GETPOST('constname', 'alpha'); - $constvalue=(GETPOSTISSET('constvalue_'.$constname) ? GETPOST('constvalue_'.$constname, 'alpha') : GETPOST('constvalue')); - $consttype=(GETPOSTISSET('consttype_'.$constname) ? GETPOST('consttype_'.$constname, 'alphanohtml') : GETPOST('consttype')); - $constnote=(GETPOSTISSET('constnote_'.$constname) ? GETPOST('constnote_'.$constname, 'none') : GETPOST('constnote')); + $constvalue = (GETPOSTISSET('constvalue_'.$constname) ? GETPOST('constvalue_'.$constname, 'alpha') : GETPOST('constvalue')); + $consttype = (GETPOSTISSET('consttype_'.$constname) ? GETPOST('consttype_'.$constname, 'alphanohtml') : GETPOST('consttype')); + $constnote = (GETPOSTISSET('constnote_'.$constname) ? GETPOST('constnote_'.$constname, 'none') : GETPOST('constnote')); $typetouse = empty($oldtypetonewone[$consttype]) ? $consttype : $oldtypetonewone[$consttype]; - $res=dolibarr_set_const($db, $constname, $constvalue, $typetouse, 0, $constnote, $conf->entity); + $res = dolibarr_set_const($db, $constname, $constvalue, $typetouse, 0, $constnote, $conf->entity); - if (! $res > 0) $error++; + if (!$res > 0) $error++; - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -111,7 +111,7 @@ if ($action == 'update' || $action == 'add') // Action to enable a submodule of the adherent module if ($action == 'set') { - $result=dolibarr_set_const($db, GETPOST('name', 'alpha'), GETPOST('value'), '', 0, '', $conf->entity); + $result = dolibarr_set_const($db, GETPOST('name', 'alpha'), GETPOST('value'), '', 0, '', $conf->entity); if ($result < 0) { print $db->error(); @@ -121,7 +121,7 @@ if ($action == 'set') // Action to disable a submodule of the adherent module if ($action == 'unset') { - $result=dolibarr_del_const($db, GETPOST('name', 'alpha'), $conf->entity); + $result = dolibarr_del_const($db, GETPOST('name', 'alpha'), $conf->entity); if ($result < 0) { print $db->error(); @@ -136,12 +136,12 @@ if ($action == 'unset') $form = new Form($db); -$help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; +$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; llxHeader('', $langs->trans("MembersSetup"), $help_url); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("MembersSetup"), $linkback, 'title_setup'); @@ -154,9 +154,9 @@ dol_fiche_head($head, 'emails', $langs->trans("Members"), -1, 'user'); //print ''; //print ''; -$helptext='*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; -$helptext.='__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, '; -$helptext.='__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, '; +$helptext = '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'
'; +$helptext .= '__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, '; +$helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, '; //$helptext.='__YEAR__, __MONTH__, __DAY__'; // Not supported form_constantes($constantes, 0, $helptext); diff --git a/htdocs/adherents/admin/adherent_extrafields.php b/htdocs/adherents/admin/adherent_extrafields.php index 6f2b899dc5c..73e1a519c59 100644 --- a/htdocs/adherents/admin/adherent_extrafields.php +++ b/htdocs/adherents/admin/adherent_extrafields.php @@ -29,19 +29,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","members")); +$langs->loadLangs(array("admin", "members")); $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='adherent'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'adherent'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -60,11 +60,11 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; $textobject = $langs->transnoentitiesnoconv("Members"); -$help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; +$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; llxHeader('', $langs->trans("MembersSetup"), $help_url); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("MembersSetup"), $linkback, 'title_setup'); @@ -105,7 +105,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print '

'; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/adherents/admin/adherent_type_extrafields.php b/htdocs/adherents/admin/adherent_type_extrafields.php index cd73320d02d..7864505f2e1 100644 --- a/htdocs/adherents/admin/adherent_type_extrafields.php +++ b/htdocs/adherents/admin/adherent_type_extrafields.php @@ -32,19 +32,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","members")); +$langs->loadLangs(array("admin", "members")); $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='adherent_type'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'adherent_type'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -61,13 +61,13 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("MembersTypes"); +$textobject = $langs->transnoentitiesnoconv("MembersTypes"); -$help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; +$help_url = 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'; llxHeader('', $langs->trans("MembersSetup"), $help_url); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("MembersSetup"), $linkback, 'title_setup'); @@ -108,7 +108,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/adherents/admin/website.php b/htdocs/adherents/admin/website.php index a2eead267af..a8cdc06784e 100644 --- a/htdocs/adherents/admin/website.php +++ b/htdocs/adherents/admin/website.php @@ -178,34 +178,34 @@ if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) $listofval = array(); $listofval += $adht->liste_array(); $forcetype = $conf->global->MEMBER_NEWFORM_FORCETYPE ?: -1; - print $form->selectarray("MEMBER_NEWFORM_FORCETYPE", $listofval, $forcetype, count($listofval)>1?1:0); + print $form->selectarray("MEMBER_NEWFORM_FORCETYPE", $listofval, $forcetype, count($listofval) > 1 ? 1 : 0); print "
'; print $langs->trans("DefaultAmount"); print ''; - print ''; + print ''; print "
'; print $langs->trans("CanEditAmount"); print ''; - print $form->selectyesno("MEMBER_NEWFORM_EDITAMOUNT", (! empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)?$conf->global->MEMBER_NEWFORM_EDITAMOUNT:0), 1); + print $form->selectyesno("MEMBER_NEWFORM_EDITAMOUNT", (!empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT) ? $conf->global->MEMBER_NEWFORM_EDITAMOUNT : 0), 1); print "
'; print $langs->trans("MEMBER_NEWFORM_PAYONLINE"); print ''; - $listofval=array(); - $listofval['-1']=$langs->trans('No'); - $listofval['all']=$langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')'; - if (! empty($conf->paybox->enabled)) $listofval['paybox']='Paybox'; - if (! empty($conf->paypal->enabled)) $listofval['paypal']='PayPal'; - if (! empty($conf->stripe->enabled)) $listofval['stripe']='Stripe'; - print $form->selectarray("MEMBER_NEWFORM_PAYONLINE", $listofval, (! empty($conf->global->MEMBER_NEWFORM_PAYONLINE)?$conf->global->MEMBER_NEWFORM_PAYONLINE:''), 0); + $listofval = array(); + $listofval['-1'] = $langs->trans('No'); + $listofval['all'] = $langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')'; + if (!empty($conf->paybox->enabled)) $listofval['paybox'] = 'Paybox'; + if (!empty($conf->paypal->enabled)) $listofval['paypal'] = 'PayPal'; + if (!empty($conf->stripe->enabled)) $listofval['stripe'] = 'Stripe'; + print $form->selectarray("MEMBER_NEWFORM_PAYONLINE", $listofval, (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) ? $conf->global->MEMBER_NEWFORM_PAYONLINE : ''), 0); print "
'; diff --git a/htdocs/adherents/agenda.php b/htdocs/adherents/agenda.php index 019f35f2908..20d712e6179 100644 --- a/htdocs/adherents/agenda.php +++ b/htdocs/adherents/agenda.php @@ -149,24 +149,24 @@ if ($object->id > 0) $newcardbutton = ''; - if (! empty($conf->agenda->enabled)) + if (!empty($conf->agenda->enabled)) { - $newcardbutton.= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create&backtopage=1&origin=member&originid='.$id); + $newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create&backtopage=1&origin=member&originid='.$id); } - if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { print '
'; - $param='&id='.$id; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; + $param = '&id='.$id; + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage; + if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit; print_barre_liste($langs->trans("ActionsOnMember"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', '', $newcardbutton, '', 0, 1, 1); // List of all actions - $filters=array(); - $filters['search_agenda_label']=$search_agenda_label; + $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); diff --git a/htdocs/adherents/canvas/actions_adherentcard_common.class.php b/htdocs/adherents/canvas/actions_adherentcard_common.class.php index 0f954ecf201..eeee48e2138 100644 --- a/htdocs/adherents/canvas/actions_adherentcard_common.class.php +++ b/htdocs/adherents/canvas/actions_adherentcard_common.class.php @@ -45,7 +45,7 @@ abstract class ActionsAdherentCardCommon /** * @var string Error code (or message) */ - public $error=''; + public $error = ''; /** * @var string[] Error codes (or messages) @@ -70,7 +70,7 @@ abstract class ActionsAdherentCardCommon else {*/ $object = new Adherent($this->db); - if (! empty($id)) $object->fetch($id); + if (!empty($id)) $object->fetch($id); $this->object = $object; //} } @@ -91,13 +91,13 @@ abstract class ActionsAdherentCardCommon if ($action == 'add' || $action == 'update') $this->assign_post(); - foreach($this->object as $key => $value) + foreach ($this->object as $key => $value) { $this->tpl[$key] = $value; } - $this->tpl['error']=$this->error; - $this->tpl['errors']=$this->errors; + $this->tpl['error'] = $this->error; + $this->tpl['errors'] = $this->errors; if ($action == 'create' || $action == 'edit') { @@ -139,10 +139,10 @@ abstract class ActionsAdherentCardCommon } // Zip - $this->tpl['select_zip'] = $formcompany->select_ziptown($this->object->zip, 'zipcode', array('town','selectcountry_id','state_id'), 6); + $this->tpl['select_zip'] = $formcompany->select_ziptown($this->object->zip, 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6); // Town - $this->tpl['select_town'] = $formcompany->select_ziptown($this->object->town, 'town', array('zipcode','selectcountry_id','state_id')); + $this->tpl['select_town'] = $formcompany->select_ziptown($this->object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id')); if (dol_strlen(trim($this->object->country_id)) == 0) $this->object->country_id = $objsoc->country_id; @@ -157,14 +157,14 @@ abstract class ActionsAdherentCardCommon else $this->tpl['select_state'] = $countrynotdefined; // Physical or Moral - $selectarray=array('0'=>$langs->trans("Physical"),'1'=>$langs->trans("Moral")); + $selectarray = array('0'=>$langs->trans("Physical"), '1'=>$langs->trans("Moral")); $this->tpl['select_morphy'] = $form->selectarray('morphy', $selectarray, $this->object->morphy, 0); } if ($action == 'view' || $action == 'edit' || $action == 'delete') { // Emailing - if (! empty($conf->mailing->enabled)) + if (!empty($conf->mailing->enabled)) { $langs->load("mails"); $this->tpl['nb_emailing'] = $this->object->getNbOfEMailings(); @@ -173,8 +173,8 @@ abstract class ActionsAdherentCardCommon // Dolibarr user if ($this->object->user_id) { - $dolibarr_user=new User($this->db); - $result=$dolibarr_user->fetch($this->object->user_id); + $dolibarr_user = new User($this->db); + $result = $dolibarr_user->fetch($this->object->user_id); $this->tpl['dolibarr_user'] = $dolibarr_user->getLoginUrl(1); } else $this->tpl['dolibarr_user'] = $langs->trans("NoDolibarrAccess"); @@ -200,14 +200,14 @@ abstract class ActionsAdherentCardCommon $this->tpl['address'] = dol_nl2br($this->object->address); - $this->tpl['zip'] = ($this->object->zip?$this->object->zip.' ':''); + $this->tpl['zip'] = ($this->object->zip ? $this->object->zip.' ' : ''); - $img=picto_from_langcode($this->object->country_code); - $this->tpl['country'] = ($img?$img.' ':'').$this->object->country; + $img = picto_from_langcode($this->object->country_code); + $this->tpl['country'] = ($img ? $img.' ' : '').$this->object->country; - $this->tpl['phone_perso'] = dol_print_phone($this->object->phone_perso, $this->object->country_code, 0, $this->object->id, 'AC_TEL'); - $this->tpl['phone_mobile'] = dol_print_phone($this->object->phone_mobile, $this->object->country_code, 0, $this->object->id, 'AC_TEL'); - $this->tpl['email'] = dol_print_email($this->object->email, 0, $this->object->id, 'AC_EMAIL'); + $this->tpl['phone_perso'] = dol_print_phone($this->object->phone_perso, $this->object->country_code, 0, $this->object->id, 'AC_TEL'); + $this->tpl['phone_mobile'] = dol_print_phone($this->object->phone_mobile, $this->object->country_code, 0, $this->object->id, 'AC_TEL'); + $this->tpl['email'] = dol_print_email($this->object->email, 0, $this->object->id, 'AC_EMAIL'); $this->tpl['visibility'] = $this->object->getmorphylib($this->object->morphy); @@ -219,13 +219,13 @@ abstract class ActionsAdherentCardCommon // Full firstname and lastname separated with a dot : firstname.lastname include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; - $login=dol_buildlogin($this->object->lastname, $this->object->firstname); + $login = dol_buildlogin($this->object->lastname, $this->object->firstname); - $generated_password=getRandomPassword(false); - $password=$generated_password; + $generated_password = getRandomPassword(false); + $password = $generated_password; // Create a form array - $formquestion=array( + $formquestion = array( array('label' => $langs->trans("LoginToCreate"), 'type' => 'text', 'name' => 'login', 'value' => $login), array('label' => $langs->trans("Password"), 'type' => 'text', 'name' => 'password', 'value' => $password)); @@ -244,35 +244,35 @@ abstract class ActionsAdherentCardCommon // phpcs:enable global $langs, $mysoc; - $this->object->old_name = $_POST["old_name"]; - $this->object->old_firstname = $_POST["old_firstname"]; + $this->object->old_name = $_POST["old_name"]; + $this->object->old_firstname = $_POST["old_firstname"]; - $this->object->fk_soc = $_POST["fk_soc"]; + $this->object->fk_soc = $_POST["fk_soc"]; $this->object->lastname = $_POST["lastname"]; $this->object->firstname = $_POST["firstname"]; - $this->object->civility_id = $_POST["civility_id"]; - $this->object->address = $_POST["address"]; - $this->object->zip = $_POST["zipcode"]; - $this->object->town = $_POST["town"]; - $this->object->country_id = $_POST["country_id"]?$_POST["country_id"]:$mysoc->country_id; - $this->object->state_id = $_POST["state_id"]; - $this->object->phone_perso = $_POST["phone_perso"]; - $this->object->phone_mobile = $_POST["phone_mobile"]; + $this->object->civility_id = $_POST["civility_id"]; + $this->object->address = $_POST["address"]; + $this->object->zip = $_POST["zipcode"]; + $this->object->town = $_POST["town"]; + $this->object->country_id = $_POST["country_id"] ? $_POST["country_id"] : $mysoc->country_id; + $this->object->state_id = $_POST["state_id"]; + $this->object->phone_perso = $_POST["phone_perso"]; + $this->object->phone_mobile = $_POST["phone_mobile"]; $this->object->email = $_POST["email"]; $this->object->note = $_POST["note"]; - $this->object->canvas = $_POST["canvas"]; + $this->object->canvas = $_POST["canvas"]; // We set country_id, and country_code label of the chosen country if ($this->object->country_id) { $sql = "SELECT code, label FROM ".MAIN_DB_PREFIX."c_country WHERE rowid = ".$this->object->country_id; - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $obj = $this->db->fetch_object($resql); $this->object->country_code = $obj->code; - $this->object->country = $langs->trans("Country".$obj->code)?$langs->trans("Country".$obj->code):$obj->libelle; + $this->object->country = $langs->trans("Country".$obj->code) ? $langs->trans("Country".$obj->code) : $obj->libelle; } else { diff --git a/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php b/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php index eb295431e8d..60bb2ecd034 100644 --- a/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php +++ b/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php @@ -42,7 +42,7 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon public function __construct($db, $dirmodule, $targetmodule, $canvas, $card) { $this->db = $db; - $this->dirmodule = $dirmodule; + $this->dirmodule = $dirmodule; $this->targetmodule = $targetmodule; $this->canvas = $canvas; $this->card = $card; @@ -56,13 +56,13 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon */ private function getTitle($action) { - global $langs,$conf; + global $langs, $conf; - $out=''; + $out = ''; - if ($action == 'view') $out.= (! empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("Adherent") : $langs->trans("ContactAddress")); - if ($action == 'edit') $out.= (! empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("EditAdherent") : $langs->trans("EditAdherentAddress")); - if ($action == 'create') $out.= (! empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("NewAdherent") : $langs->trans("NewAdherentAddress")); + if ($action == 'view') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("Adherent") : $langs->trans("ContactAddress")); + if ($action == 'edit') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("EditAdherent") : $langs->trans("EditAdherentAddress")); + if ($action == 'create') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("NewAdherent") : $langs->trans("NewAdherentAddress")); return $out; } @@ -88,7 +88,7 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon $this->tpl['title'] = $this->getTitle($action); $this->tpl['error'] = $this->error; - $this->tpl['errors']= $this->errors; + $this->tpl['errors'] = $this->errors; if ($action == 'view') { @@ -96,15 +96,15 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon $head = member_prepare_head($this->object); $title = $this->getTitle($action); - $this->tpl['showhead']=dol_get_fiche_head($head, 'card', $title, 0, 'adherent'); - $this->tpl['showend']=dol_get_fiche_end(); + $this->tpl['showhead'] = dol_get_fiche_head($head, 'card', $title, 0, 'adherent'); + $this->tpl['showend'] = dol_get_fiche_end(); $objsoc = new Societe($db); $objsoc->fetch($this->object->socid); - $this->tpl['actionstodo']=show_actions_todo($conf, $langs, $db, $objsoc, $this->object, 1); + $this->tpl['actionstodo'] = show_actions_todo($conf, $langs, $db, $objsoc, $this->object, 1); - $this->tpl['actionsdone']=show_actions_done($conf, $langs, $db, $objsoc, $this->object, 1); + $this->tpl['actionsdone'] = show_actions_done($conf, $langs, $db, $objsoc, $this->object, 1); } else { diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php index dcab3116f53..92f1e11d7a2 100644 --- a/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php +++ b/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php @@ -17,7 +17,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -30,9 +30,9 @@ if (empty($conf) || ! is_object($conf)) control->tpl['title']); -dol_htmloutput_errors((is_numeric($object->error)?'':$object->error), $object->errors); +dol_htmloutput_errors((is_numeric($object->error) ? '' : $object->error), $object->errors); -dol_htmloutput_errors((is_numeric($GLOBALS['error'])?'':$GLOBALS['error']), $GLOBALS['errors']); +dol_htmloutput_errors((is_numeric($GLOBALS['error']) ? '' : $GLOBALS['error']), $GLOBALS['errors']); dol_htmloutput_errors($this->control->tpl['error'], $this->control->tpl['errors']); diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php index d49d43825bb..36e2deab14c 100644 --- a/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php +++ b/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php @@ -17,7 +17,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -48,7 +48,7 @@ echo $this->control->tpl['ajax_selectcountry']; -control->tpl['company_id'])) { ?> +control->tpl['company_id'])) { ?> diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php index 51f121ad903..b738f549247 100644 --- a/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php +++ b/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php @@ -17,7 +17,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -30,8 +30,8 @@ echo "\n"; echo $this->control->tpl['showhead']; dol_htmloutput_errors($this->control->tpl['error'], $this->control->tpl['errors']); -if (! empty($this->control->tpl['action_create_user'])) echo $this->control->tpl['action_create_user']; -if (! empty($this->control->tpl['action_delete'])) echo $this->control->tpl['action_delete']; ?> +if (!empty($this->control->tpl['action_create_user'])) echo $this->control->tpl['action_create_user']; +if (!empty($this->control->tpl['action_delete'])) echo $this->control->tpl['action_delete']; ?> @@ -125,7 +125,7 @@ if (empty($user->socid)) { echo ''.$langs->trans('Modify').''; } - if (! $this->control->tpl['user_id'] && $user->rights->user->user->creer) { + if (!$this->control->tpl['user_id'] && $user->rights->user->user->creer) { echo ''.$langs->trans("CreateDolibarrLogin").''; } diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index bb6391dcb8c..c913d6a1b49 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -1773,8 +1773,10 @@ else if ($action != 'editlogin' && $action != 'editthirdparty') { // Send - if ($object->statut == 1) { - print ''; + if (empty($user->socid)) { + if ($object->statut == 1) { + print ''; + } } // Send card by email diff --git a/htdocs/adherents/cartes/carte.php b/htdocs/adherents/cartes/carte.php index 6736a22cd5d..86bf523ac51 100644 --- a/htdocs/adherents/cartes/carte.php +++ b/htdocs/adherents/cartes/carte.php @@ -29,22 +29,22 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/member/modules_cards.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/printsheet/modules_labels.php'; -$langs->loadLangs(array("members","errors")); +$langs->loadLangs(array("members", "errors")); // Choice of printing year or current year. $now = dol_now(); -$year=dol_print_date($now, '%Y'); -$month=dol_print_date($now, '%m'); -$day=dol_print_date($now, '%d'); -$foruserid=GETPOST('foruserid', 'alphanohtml'); -$foruserlogin=GETPOST('foruserlogin', 'alphanohtml'); -$mode=GETPOST('mode', 'aZ09'); -$model=GETPOST("model", 'aZ09'); // Doc template to use for business cards -$modellabel=GETPOST("modellabel", 'aZ09'); // Doc template to use for address sheet -$mesg=''; +$year = dol_print_date($now, '%Y'); +$month = dol_print_date($now, '%m'); +$day = dol_print_date($now, '%d'); +$foruserid = GETPOST('foruserid', 'alphanohtml'); +$foruserlogin = GETPOST('foruserlogin', 'alphanohtml'); +$mode = GETPOST('mode', 'aZ09'); +$model = GETPOST("model", 'aZ09'); // Doc template to use for business cards +$modellabel = GETPOST("modellabel", 'aZ09'); // Doc template to use for address sheet +$mesg = ''; -$adherentstatic=new Adherent($db); -$object=new Adherent($db); +$adherentstatic = new Adherent($db); +$object = new Adherent($db); $extrafields = new ExtraFields($db); // Fetch optionals attributes and labels @@ -57,29 +57,29 @@ $extrafields->fetch_name_optionals_label($object->table_element); if ($mode == 'cardlogin' && empty($foruserlogin)) { - $mesg=$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Login")); + $mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Login")); } -if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg) +if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) { - $arrayofmembers=array(); + $arrayofmembers = array(); // request taking into account member with up to date subscriptions $sql = "SELECT d.rowid, d.firstname, d.lastname, d.login, d.societe as company, d.datefin,"; - $sql.= " d.address, d.zip, d.town, d.country, d.birth, d.email, d.photo,"; - $sql.= " t.libelle as type,"; - $sql.= " c.code as country_code, c.label as country"; + $sql .= " d.address, d.zip, d.town, d.country, d.birth, d.email, d.photo,"; + $sql .= " t.libelle as type,"; + $sql .= " c.code as country_code, c.label as country"; // Add fields from extrafields - if (! empty($extrafields->attributes[$object->table_element]['label'])) - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); - $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON d.country = c.rowid"; - if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."adherent_extrafields as ef on (d.rowid = ef.fk_object)"; - $sql.= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1"; - $sql.= " AND d.entity IN (".getEntity('adherent').")"; - if (is_numeric($foruserid)) $sql.=" AND d.rowid=".$foruserid; - if ($foruserlogin) $sql.=" AND d.login='".$db->escape($foruserlogin)."'"; - $sql.= " ORDER BY d.rowid ASC"; + if (!empty($extrafields->attributes[$object->table_element]['label'])) + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); + $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON d.country = c.rowid"; + if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."adherent_extrafields as ef on (d.rowid = ef.fk_object)"; + $sql .= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1"; + $sql .= " AND d.entity IN (".getEntity('adherent').")"; + if (is_numeric($foruserid)) $sql .= " AND d.rowid=".$foruserid; + if ($foruserlogin) $sql .= " AND d.login='".$db->escape($foruserlogin)."'"; + $sql .= " ORDER BY d.rowid ASC"; dol_syslog("Search members", LOG_DEBUG); $result = $db->query($sql); @@ -91,19 +91,19 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg { $objp = $db->fetch_object($result); - if ($objp->country == '-') $objp->country=''; + if ($objp->country == '-') $objp->country = ''; - $adherentstatic->id=$objp->rowid; - $adherentstatic->lastname=$objp->lastname; - $adherentstatic->firstname=$objp->firstname; + $adherentstatic->id = $objp->rowid; + $adherentstatic->lastname = $objp->lastname; + $adherentstatic->firstname = $objp->firstname; // Format extrafield so they can be parsed in function complete_substitutions_array if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { $adherentstatic->array_options = array(); - foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val) + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { - $tmpkey='options_'.$key; + $tmpkey = 'options_'.$key; if (!empty($objp->$tmpkey)) { $adherentstatic->array_options[$tmpkey] = $objp->$tmpkey; @@ -115,7 +115,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg } // List of values to scan for a replacement - $substitutionarray = array ( + $substitutionarray = array( '__ID__'=>$objp->rowid, '__LOGIN__'=>$objp->login, '__FIRSTNAME__'=>$objp->firstname, @@ -139,21 +139,21 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg complete_substitutions_array($substitutionarray, $langs, $adherentstatic); // For business cards - if (empty($mode) || $mode=='card' || $mode=='cardlogin') + if (empty($mode) || $mode == 'card' || $mode == 'cardlogin') { - $textleft=make_substitutions($conf->global->ADHERENT_CARD_TEXT, $substitutionarray); - $textheader=make_substitutions($conf->global->ADHERENT_CARD_HEADER_TEXT, $substitutionarray); - $textfooter=make_substitutions($conf->global->ADHERENT_CARD_FOOTER_TEXT, $substitutionarray); - $textright=make_substitutions($conf->global->ADHERENT_CARD_TEXT_RIGHT, $substitutionarray); + $textleft = make_substitutions($conf->global->ADHERENT_CARD_TEXT, $substitutionarray); + $textheader = make_substitutions($conf->global->ADHERENT_CARD_HEADER_TEXT, $substitutionarray); + $textfooter = make_substitutions($conf->global->ADHERENT_CARD_FOOTER_TEXT, $substitutionarray); + $textright = make_substitutions($conf->global->ADHERENT_CARD_TEXT_RIGHT, $substitutionarray); if (is_numeric($foruserid) || $foruserlogin) { $nb = $_Avery_Labels[$model]['NX'] * $_Avery_Labels[$model]['NY']; - if ($nb <= 0) $nb=1; // Protection to avoid empty page + if ($nb <= 0) $nb = 1; // Protection to avoid empty page - for($j=0;$j<$nb;$j++) + for ($j = 0; $j < $nb; $j++) { - $arrayofmembers[]=array( + $arrayofmembers[] = array( 'textleft'=>$textleft, 'textheader'=>$textheader, 'textfooter'=>$textfooter, @@ -165,7 +165,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg } else { - $arrayofmembers[]=array( + $arrayofmembers[] = array( 'textleft'=>$textleft, 'textheader'=>$textheader, 'textfooter'=>$textfooter, @@ -179,13 +179,13 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg // For labels if ($mode == 'label') { - if (empty($conf->global->ADHERENT_ETIQUETTE_TEXT)) $conf->global->ADHERENT_ETIQUETTE_TEXT="__FULLNAME__\n__ADDRESS__\n__ZIP__ __TOWN__\n__COUNTRY__"; - $textleft=make_substitutions($conf->global->ADHERENT_ETIQUETTE_TEXT, $substitutionarray); - $textheader=''; - $textfooter=''; - $textright=''; + if (empty($conf->global->ADHERENT_ETIQUETTE_TEXT)) $conf->global->ADHERENT_ETIQUETTE_TEXT = "__FULLNAME__\n__ADDRESS__\n__ZIP__ __TOWN__\n__COUNTRY__"; + $textleft = make_substitutions($conf->global->ADHERENT_ETIQUETTE_TEXT, $substitutionarray); + $textheader = ''; + $textfooter = ''; + $textright = ''; - $arrayofmembers[]=array('textleft'=>$textleft, + $arrayofmembers[] = array('textleft'=>$textleft, 'textheader'=>$textheader, 'textfooter'=>$textfooter, 'textright'=>$textright, @@ -197,29 +197,29 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg } // Build and output PDF - if (empty($mode) || $mode=='card' || $mode=='cardlogin') + if (empty($mode) || $mode == 'card' || $mode == 'cardlogin') { - if (! count($arrayofmembers)) + if (!count($arrayofmembers)) { - $mesg=$langs->trans("ErrorRecordNotFound"); + $mesg = $langs->trans("ErrorRecordNotFound"); } if (empty($model) || $model == '-1') { - $mesg=$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE")); + $mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE")); } - if (! $mesg) $result=members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs); + if (!$mesg) $result = members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs); } elseif ($mode == 'label') { - if (! count($arrayofmembers)) + if (!count($arrayofmembers)) { - $mesg=$langs->trans("ErrorRecordNotFound"); + $mesg = $langs->trans("ErrorRecordNotFound"); } if (empty($modellabel) || $modellabel == '-1') { - $mesg=$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE")); + $mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE")); } - if (! $mesg) $result=doc_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs); + if (!$mesg) $result = doc_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs); } if ($result <= 0) @@ -232,7 +232,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg dol_print_error($db); } - if (! $mesg) + if (!$mesg) { $db->close(); exit; @@ -244,7 +244,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg * View */ -$form=new Form($db); +$form = new Form($db); llxHeader('', $langs->trans("MembersCards")); @@ -257,40 +257,40 @@ dol_htmloutput_errors($mesg); print '
'; -print img_picto('', 'puce').' '.$langs->trans("DocForAllMembersCards", ($conf->global->ADHERENT_CARD_TYPE?$conf->global->ADHERENT_CARD_TYPE:$langs->transnoentitiesnoconv("None"))).' '; +print img_picto('', 'puce').' '.$langs->trans("DocForAllMembersCards", ($conf->global->ADHERENT_CARD_TYPE ? $conf->global->ADHERENT_CARD_TYPE : $langs->transnoentitiesnoconv("None"))).' '; print ''; -print ''; +print ''; print ''; print ''; print ''; print $langs->trans("DescADHERENT_CARD_TYPE").' '; // List of possible labels (defined into $_Avery_Labels variable set into format_cards.lib.php) -$arrayoflabels=array(); -foreach(array_keys($_Avery_Labels) as $codecards) +$arrayoflabels = array(); +foreach (array_keys($_Avery_Labels) as $codecards) { - $arrayoflabels[$codecards]=$_Avery_Labels[$codecards]['name']; + $arrayoflabels[$codecards] = $_Avery_Labels[$codecards]['name']; } asort($arrayoflabels); -print $form->selectarray('model', $arrayoflabels, (GETPOST('model')?GETPOST('model'):$conf->global->ADHERENT_CARD_TYPE), 1, 0, 0, '', 0, 0, 0, '', '', 1); +print $form->selectarray('model', $arrayoflabels, (GETPOST('model') ?GETPOST('model') : $conf->global->ADHERENT_CARD_TYPE), 1, 0, 0, '', 0, 0, 0, '', '', 1); print '
'; print ''; print '

'; -print img_picto('', 'puce').' '.$langs->trans("DocForOneMemberCards", ($conf->global->ADHERENT_CARD_TYPE?$conf->global->ADHERENT_CARD_TYPE:$langs->transnoentitiesnoconv("None"))).' '; +print img_picto('', 'puce').' '.$langs->trans("DocForOneMemberCards", ($conf->global->ADHERENT_CARD_TYPE ? $conf->global->ADHERENT_CARD_TYPE : $langs->transnoentitiesnoconv("None"))).' '; print ''; -print ''; +print ''; print ''; print ''; print $langs->trans("DescADHERENT_CARD_TYPE").' '; // List of possible labels (defined into $_Avery_Labels variable set into format_cards.lib.php) -$arrayoflabels=array(); -foreach(array_keys($_Avery_Labels) as $codecards) +$arrayoflabels = array(); +foreach (array_keys($_Avery_Labels) as $codecards) { - $arrayoflabels[$codecards]=$_Avery_Labels[$codecards]['name']; + $arrayoflabels[$codecards] = $_Avery_Labels[$codecards]['name']; } asort($arrayoflabels); -print $form->selectarray('model', $arrayoflabels, (GETPOST('model')?GETPOST('model'):$conf->global->ADHERENT_CARD_TYPE), 1, 0, 0, '', 0, 0, 0, '', '', 1); +print $form->selectarray('model', $arrayoflabels, (GETPOST('model') ?GETPOST('model') : $conf->global->ADHERENT_CARD_TYPE), 1, 0, 0, '', 0, 0, 0, '', '', 1); print '
'.$langs->trans("Login").': '; print '
'; print ''; @@ -299,18 +299,18 @@ print '

'; print img_picto('', 'puce').' '.$langs->trans("DocForLabels", $conf->global->ADHERENT_ETIQUETTE_TYPE).' '; print ''; -print ''; +print ''; print ''; print ''; print $langs->trans("DescADHERENT_ETIQUETTE_TYPE").' '; // List of possible labels (defined into $_Avery_Labels variable set into format_cards.lib.php) -$arrayoflabels=array(); -foreach(array_keys($_Avery_Labels) as $codecards) +$arrayoflabels = array(); +foreach (array_keys($_Avery_Labels) as $codecards) { - $arrayoflabels[$codecards]=$_Avery_Labels[$codecards]['name']; + $arrayoflabels[$codecards] = $_Avery_Labels[$codecards]['name']; } asort($arrayoflabels); -print $form->selectarray('modellabel', $arrayoflabels, (GETPOST('modellabel')?GETPOST('modellabel'):$conf->global->ADHERENT_ETIQUETTE_TYPE), 1, 0, 0, '', 0, 0, 0, '', '', 1); +print $form->selectarray('modellabel', $arrayoflabels, (GETPOST('modellabel') ?GETPOST('modellabel') : $conf->global->ADHERENT_ETIQUETTE_TYPE), 1, 0, 0, '', 0, 0, 0, '', '', 1); print '
'; print ''; diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index fa8ae9fc2f3..4225dad5f31 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -7,11 +7,12 @@ * Copyright (C) 2009-2017 Regis Houssin * Copyright (C) 2014-2018 Alexandre Spangaro * Copyright (C) 2015 Marcos García - * Copyright (C) 2015-2018 Frédéric France + * Copyright (C) 2015-2018 Frédéric France * Copyright (C) 2015 Raphaël Doursenaud * Copyright (C) 2016 Juanjo Menent - * Copyright (C) 2018-2019 Thibault FOUCART - * Copyright (C) 2019 Nicolas ZABOURI + * Copyright (C) 2018-2019 Thibault FOUCART + * Copyright (C) 2019 Nicolas ZABOURI + * Copyright (C) 2020 Josep Lluís Amador * * 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 @@ -272,7 +273,7 @@ class Adherent extends CommonObject 'zip' => array('type' => 'varchar(10)', 'label' => 'Zip', 'enabled' => 1, 'visible' => -1, 'position' => 80), 'town' => array('type' => 'varchar(50)', 'label' => 'Town', 'enabled' => 1, 'visible' => -1, 'position' => 85), 'state_id' => array('type' => 'integer', 'label' => 'State id', 'enabled' => 1, 'visible' => -1, 'position' => 90), - 'country' => array('type' => 'integer', 'label' => 'Country', 'enabled' => 1, 'visible' => -1, 'position' => 95), + 'country' => array('type' => 'integer:Ccountry:core/class/ccountry.class.php', 'label' => 'Country', 'enabled' => 1, 'visible' => -1, 'position' => 95), 'email' => array('type' => 'varchar(255)', 'label' => 'Email', 'enabled' => 1, 'visible' => -1, 'position' => 100), 'socialnetworks' => array('type' => 'text', 'label' => 'Socialnetworks', 'enabled' => 1, 'visible' => -1, 'position' => 105), 'phone' => array('type' => 'varchar(30)', 'label' => 'Phone', 'enabled' => 1, 'visible' => -1, 'position' => 115), @@ -1958,13 +1959,14 @@ class Adherent extends CommonObject * @param int $withpictoimg 0=No picto, 1=Include picto into link, 2=Only picto, -1=Include photo into link, -2=Only picto photo, -3=Only photo very small) * @param int $maxlen length max label * @param string $option Page for link ('card', 'category', 'subscription', ...) - * @param string $mode ''=Show firstname+lastname as label (using default order), 'firstname'=Show only firstname, 'login'=Show login, 'ref'=Show ref - * @param string $morecss Add more css on link - * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking - * @param int $notooltip 1=Disable tooltip + * @param string $mode ''=Show firstname+lastname as label (using default order), 'firstname'=Show only firstname, 'login'=Show login, 'ref'=Show ref + * @param string $morecss Add more css on link + * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking + * @param int $notooltip 1=Disable tooltip + * @param int $addlinktonotes 1=Add link to notes * @return string Chaine avec URL */ - public function getNomUrl($withpictoimg = 0, $maxlen = 0, $option = 'card', $mode = '', $morecss = '', $save_lastsearch_value = -1, $notooltip = 0) + public function getNomUrl($withpictoimg = 0, $maxlen = 0, $option = 'card', $mode = '', $morecss = '', $save_lastsearch_value = -1, $notooltip = 0, $addlinktonotes = 0) { global $conf, $langs; @@ -2046,6 +2048,17 @@ class Adherent extends CommonObject if ($withpictoimg) $result .= ''; $result .= $linkend; + if ($addlinktonotes) { + if ($this->note_private) { + $notetoshow = $langs->trans("ViewPrivateNote").':
'.dol_string_nohtmltag($this->note_private, 1); + $result .= ' '; + $result .= ''; + $result .= img_picto('', 'note'); + $result .= ''; + $result .= ''; + } + } + return $result; } diff --git a/htdocs/adherents/class/adherentstats.class.php b/htdocs/adherents/class/adherentstats.class.php index 1357e4a3b4b..bdb174cc0bd 100644 --- a/htdocs/adherents/class/adherentstats.class.php +++ b/htdocs/adherents/class/adherentstats.class.php @@ -23,8 +23,8 @@ * \brief Fichier de la classe de gestion des stats des adhérents */ -include_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php'; -include_once DOL_DOCUMENT_ROOT . '/adherents/class/subscription.class.php'; +include_once DOL_DOCUMENT_ROOT.'/core/class/stats.class.php'; +include_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php'; /** @@ -61,17 +61,17 @@ class AdherentStats extends Stats $this->socid = $socid; $this->userid = $userid; - $object=new Subscription($this->db); + $object = new Subscription($this->db); $this->from = MAIN_DB_PREFIX.$object->table_element." as p"; - $this->from.= ", ".MAIN_DB_PREFIX."adherent as m"; + $this->from .= ", ".MAIN_DB_PREFIX."adherent as m"; - $this->field='subscription'; + $this->field = 'subscription'; - $this->where.= " m.statut != 0"; - $this->where.= " AND p.fk_adherent = m.rowid AND m.entity IN (".getEntity('adherent').")"; + $this->where .= " m.statut != 0"; + $this->where .= " AND p.fk_adherent = m.rowid AND m.entity IN (".getEntity('adherent').")"; //if (!$user->rights->societe->client->voir && !$user->socid) $this->where .= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; - if($this->memberid) + if ($this->memberid) { $this->where .= " AND m.rowid = ".$this->memberid; } @@ -91,12 +91,12 @@ class AdherentStats extends Stats global $user; $sql = "SELECT date_format(p.dateadh,'%m') as dm, count(*)"; - $sql.= " FROM ".$this->from; + $sql .= " FROM ".$this->from; //if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE date_format(p.dateadh,'%Y') = '".$year."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " WHERE date_format(p.dateadh,'%Y') = '".$year."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); return $this->_getNbByMonth($year, $sql, $format); } @@ -111,11 +111,11 @@ class AdherentStats extends Stats global $user; $sql = "SELECT date_format(p.dateadh,'%Y') as dm, count(*)"; - $sql.= " FROM ".$this->from; + $sql .= " FROM ".$this->from; //if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); return $this->_getNbByYear($sql); } @@ -132,12 +132,12 @@ class AdherentStats extends Stats global $user; $sql = "SELECT date_format(p.dateadh,'%m') as dm, sum(p.".$this->field.")"; - $sql.= " FROM ".$this->from; + $sql .= " FROM ".$this->from; //if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE date_format(p.dateadh,'%Y') = '".$year."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " WHERE date_format(p.dateadh,'%Y') = '".$year."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); return $this->_getAmountByMonth($year, $sql, $format); } @@ -153,12 +153,12 @@ class AdherentStats extends Stats global $user; $sql = "SELECT date_format(p.dateadh,'%m') as dm, avg(p.".$this->field.")"; - $sql.= " FROM ".$this->from; + $sql .= " FROM ".$this->from; //if (!$user->rights->societe->client->voir && !$this->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE date_format(p.dateadh,'%Y') = '".$year."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " WHERE date_format(p.dateadh,'%Y') = '".$year."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); return $this->_getAverageByMonth($year, $sql); } @@ -174,11 +174,11 @@ class AdherentStats extends Stats global $user; $sql = "SELECT date_format(p.dateadh,'%Y') as year, count(*) as nb, sum(".$this->field.") as total, avg(".$this->field.") as avg"; - $sql.= " FROM ".$this->from; + $sql .= " FROM ".$this->from; //if (!$user->rights->societe->client->voir && !$this->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE ".$this->where; - $sql.= " GROUP BY year"; - $sql.= $this->db->order('year', 'DESC'); + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY year"; + $sql .= $this->db->order('year', 'DESC'); return $this->_getAllByYear($sql); } diff --git a/htdocs/adherents/class/api_members.class.php b/htdocs/adherents/class/api_members.class.php index 3a17f5c7c28..bbc03c3387f 100644 --- a/htdocs/adherents/class/api_members.class.php +++ b/htdocs/adherents/class/api_members.class.php @@ -59,17 +59,17 @@ class Members extends DolibarrApi */ public function get($id) { - if(! DolibarrApiAccess::$user->rights->adherent->lire) { + if (!DolibarrApiAccess::$user->rights->adherent->lire) { throw new RestException(401); } $member = new Adherent($this->db); $result = $member->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'member not found'); } - if( ! DolibarrApi::_checkAccessToResource('adherent', $member->id)) { + if (!DolibarrApi::_checkAccessToResource('adherent', $member->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -98,50 +98,50 @@ class Members extends DolibarrApi $obj_ret = array(); - if(! DolibarrApiAccess::$user->rights->adherent->lire) { + if (!DolibarrApiAccess::$user->rights->adherent->lire) { throw new RestException(401); } $sql = "SELECT t.rowid"; - $sql.= " FROM ".MAIN_DB_PREFIX."adherent as t"; - $sql.= ' WHERE t.entity IN ('.getEntity('adherent').')'; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent as t"; + $sql .= ' WHERE t.entity IN ('.getEntity('adherent').')'; if (!empty($typeid)) { - $sql.= ' AND t.fk_adherent_type='.$typeid; + $sql .= ' AND t.fk_adherent_type='.$typeid; } // Add sql filters if ($sqlfilters) { - if (! DolibarrApi::_checkFilters($sqlfilters)) + if (!DolibarrApi::_checkFilters($sqlfilters)) { throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); } - $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; - $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - $sql.= $db->order($sortfield, $sortorder); - if ($limit) { + $sql .= $db->order($sortfield, $sortorder); + if ($limit) { if ($page < 0) { $page = 0; } $offset = $limit * $page; - $sql.= $db->plimit($limit + 1, $offset); + $sql .= $db->plimit($limit + 1, $offset); } $result = $db->query($sql); if ($result) { - $i=0; + $i = 0; $num = $db->num_rows($result); $min = min($num, ($limit <= 0 ? $num : $limit)); while ($i < $min) { $obj = $db->fetch_object($result); $member = new Adherent($this->db); - if($member->fetch($obj->rowid)) { + if ($member->fetch($obj->rowid)) { $obj_ret[] = $this->_cleanObjectDatas($member); } $i++; @@ -150,7 +150,7 @@ class Members extends DolibarrApi else { throw new RestException(503, 'Error when retrieve member list : '.$db->lasterror()); } - if( ! count($obj_ret)) { + if (!count($obj_ret)) { throw new RestException(404, 'No member found'); } @@ -165,14 +165,14 @@ class Members extends DolibarrApi */ public function post($request_data = null) { - if(! DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->rights->adherent->creer) { throw new RestException(401); } // Check mandatory fields $result = $this->_validate($request_data); $member = new Adherent($this->db); - foreach($request_data as $field => $value) { + foreach ($request_data as $field => $value) { $member->$field = $value; } if ($member->create(DolibarrApiAccess::$user) < 0) { @@ -190,21 +190,21 @@ class Members extends DolibarrApi */ public function put($id, $request_data = null) { - if(! DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->rights->adherent->creer) { throw new RestException(401); } $member = new Adherent($this->db); $result = $member->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'member not found'); } - if( ! DolibarrApi::_checkAccessToResource('member', $member->id)) { + if (!DolibarrApi::_checkAccessToResource('member', $member->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - foreach($request_data as $field => $value) { + foreach ($request_data as $field => $value) { if ($field == 'id') continue; // Process the status separately because it must be updated using // the validate() and resiliate() methods of the class Adherent. @@ -245,20 +245,20 @@ class Members extends DolibarrApi */ public function delete($id) { - if(! DolibarrApiAccess::$user->rights->adherent->supprimer) { + if (!DolibarrApiAccess::$user->rights->adherent->supprimer) { throw new RestException(401); } $member = new Adherent($this->db); $result = $member->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'member not found'); } - if( ! DolibarrApi::_checkAccessToResource('member', $member->id)) { + if (!DolibarrApi::_checkAccessToResource('member', $member->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - if (! $member->delete($member->id, DolibarrApiAccess::$user)) { + if (!$member->delete($member->id, DolibarrApiAccess::$user)) { throw new RestException(401, 'error when deleting member'); } @@ -334,13 +334,13 @@ class Members extends DolibarrApi { $obj_ret = array(); - if(! DolibarrApiAccess::$user->rights->adherent->cotisation->lire) { + if (!DolibarrApiAccess::$user->rights->adherent->cotisation->lire) { throw new RestException(401); } $member = new Adherent($this->db); $result = $member->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'member not found'); } @@ -365,13 +365,13 @@ class Members extends DolibarrApi */ public function createSubscription($id, $start_date, $end_date, $amount, $label = '') { - if(! DolibarrApiAccess::$user->rights->adherent->cotisation->creer) { + if (!DolibarrApiAccess::$user->rights->adherent->cotisation->creer) { throw new RestException(401); } $member = new Adherent($this->db); $result = $member->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'member not found'); } @@ -393,7 +393,7 @@ class Members extends DolibarrApi */ public function getCategories($id, $sortfield = "s.rowid", $sortorder = 'ASC', $limit = 0, $page = 0) { - if (! DolibarrApiAccess::$user->rights->categorie->lire) { + if (!DolibarrApiAccess::$user->rights->categorie->lire) { throw new RestException(401); } diff --git a/htdocs/adherents/class/api_memberstypes.class.php b/htdocs/adherents/class/api_memberstypes.class.php index 987e3e2ea87..98cb25b7fc3 100644 --- a/htdocs/adherents/class/api_memberstypes.class.php +++ b/htdocs/adherents/class/api_memberstypes.class.php @@ -55,17 +55,17 @@ class MembersTypes extends DolibarrApi */ public function get($id) { - if(! DolibarrApiAccess::$user->rights->adherent->lire) { + if (!DolibarrApiAccess::$user->rights->adherent->lire) { throw new RestException(401); } $membertype = new AdherentType($this->db); $result = $membertype->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'member type not found'); } - if( ! DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) { + if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -92,40 +92,40 @@ class MembersTypes extends DolibarrApi $obj_ret = array(); - if(! DolibarrApiAccess::$user->rights->adherent->lire) { + if (!DolibarrApiAccess::$user->rights->adherent->lire) { throw new RestException(401); } $sql = "SELECT t.rowid"; - $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; - $sql.= ' WHERE t.entity IN ('.getEntity('member_type').')'; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; + $sql .= ' WHERE t.entity IN ('.getEntity('member_type').')'; // Add sql filters if ($sqlfilters) { - if (! DolibarrApi::_checkFilters($sqlfilters)) + if (!DolibarrApi::_checkFilters($sqlfilters)) { throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); } - $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; - $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - $sql.= $db->order($sortfield, $sortorder); - if ($limit) { + $sql .= $db->order($sortfield, $sortorder); + if ($limit) { if ($page < 0) { $page = 0; } $offset = $limit * $page; - $sql.= $db->plimit($limit + 1, $offset); + $sql .= $db->plimit($limit + 1, $offset); } $result = $db->query($sql); if ($result) { - $i=0; + $i = 0; $num = $db->num_rows($result); $min = min($num, ($limit <= 0 ? $num : $limit)); while ($i < $min) @@ -141,7 +141,7 @@ class MembersTypes extends DolibarrApi else { throw new RestException(503, 'Error when retrieve member type list : '.$db->lasterror()); } - if ( ! count($obj_ret)) { + if (!count($obj_ret)) { throw new RestException(404, 'No member type found'); } @@ -156,14 +156,14 @@ class MembersTypes extends DolibarrApi */ public function post($request_data = null) { - if (! DolibarrApiAccess::$user->rights->adherent->configurer) { + if (!DolibarrApiAccess::$user->rights->adherent->configurer) { throw new RestException(401); } // Check mandatory fields $result = $this->_validate($request_data); $membertype = new AdherentType($this->db); - foreach($request_data as $field => $value) { + foreach ($request_data as $field => $value) { $membertype->$field = $value; } if ($membertype->create(DolibarrApiAccess::$user) < 0) { @@ -181,21 +181,21 @@ class MembersTypes extends DolibarrApi */ public function put($id, $request_data = null) { - if (! DolibarrApiAccess::$user->rights->adherent->configurer) { + if (!DolibarrApiAccess::$user->rights->adherent->configurer) { throw new RestException(401); } $membertype = new AdherentType($this->db); $result = $membertype->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'member type not found'); } - if( ! DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) { + if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - foreach($request_data as $field => $value) { + foreach ($request_data as $field => $value) { if ($field == 'id') continue; // Process the status separately because it must be updated using // the validate() and resiliate() methods of the class AdherentType. @@ -222,20 +222,20 @@ class MembersTypes extends DolibarrApi */ public function delete($id) { - if (! DolibarrApiAccess::$user->rights->adherent->configurer) { + if (!DolibarrApiAccess::$user->rights->adherent->configurer) { throw new RestException(401); } $membertype = new AdherentType($this->db); $result = $membertype->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'member type not found'); } - if ( ! DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) { + if (!DolibarrApi::_checkAccessToResource('member', $membertype->id, 'adherent_type')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - if (! $membertype->delete()) { + if (!$membertype->delete()) { throw new RestException(401, 'error when deleting member type'); } diff --git a/htdocs/adherents/class/api_subscriptions.class.php b/htdocs/adherents/class/api_subscriptions.class.php index 101ed822466..c9804e5d802 100644 --- a/htdocs/adherents/class/api_subscriptions.class.php +++ b/htdocs/adherents/class/api_subscriptions.class.php @@ -58,13 +58,13 @@ class Subscriptions extends DolibarrApi */ public function get($id) { - if(! DolibarrApiAccess::$user->rights->adherent->cotisation->lire) { + if (!DolibarrApiAccess::$user->rights->adherent->cotisation->lire) { throw new RestException(401); } $subscription = new Subscription($this->db); $result = $subscription->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'Subscription not found'); } @@ -91,45 +91,45 @@ class Subscriptions extends DolibarrApi $obj_ret = array(); - if(! DolibarrApiAccess::$user->rights->adherent->cotisation->lire) { + if (!DolibarrApiAccess::$user->rights->adherent->cotisation->lire) { throw new RestException(401); } $sql = "SELECT rowid"; - $sql.= " FROM ".MAIN_DB_PREFIX."subscription as t"; - $sql.= ' WHERE 1 = 1'; + $sql .= " FROM ".MAIN_DB_PREFIX."subscription as t"; + $sql .= ' WHERE 1 = 1'; // Add sql filters if ($sqlfilters) { - if (! DolibarrApi::_checkFilters($sqlfilters)) + if (!DolibarrApi::_checkFilters($sqlfilters)) { throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); } - $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; - $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - $sql.= $db->order($sortfield, $sortorder); - if ($limit) { + $sql .= $db->order($sortfield, $sortorder); + if ($limit) { if ($page < 0) { $page = 0; } $offset = $limit * $page; - $sql.= $db->plimit($limit + 1, $offset); + $sql .= $db->plimit($limit + 1, $offset); } $result = $db->query($sql); if ($result) { - $i=0; + $i = 0; $num = $db->num_rows($result); while ($i < min($limit, $num)) { $obj = $db->fetch_object($result); $subscription = new Subscription($this->db); - if($subscription->fetch($obj->rowid)) { + if ($subscription->fetch($obj->rowid)) { $obj_ret[] = $this->_cleanObjectDatas($subscription); } $i++; @@ -138,7 +138,7 @@ class Subscriptions extends DolibarrApi else { throw new RestException(503, 'Error when retrieve subscription list : '.$db->lasterror()); } - if( ! count($obj_ret)) { + if (!count($obj_ret)) { throw new RestException(404, 'No Subscription found'); } @@ -153,14 +153,14 @@ class Subscriptions extends DolibarrApi */ public function post($request_data = null) { - if(! DolibarrApiAccess::$user->rights->adherent->cotisation->creer) { + if (!DolibarrApiAccess::$user->rights->adherent->cotisation->creer) { throw new RestException(401); } // Check mandatory fields $result = $this->_validate($request_data); $subscription = new Subscription($this->db); - foreach($request_data as $field => $value) { + foreach ($request_data as $field => $value) { $subscription->$field = $value; } if ($subscription->create(DolibarrApiAccess::$user) < 0) { @@ -178,17 +178,17 @@ class Subscriptions extends DolibarrApi */ public function put($id, $request_data = null) { - if(! DolibarrApiAccess::$user->rights->adherent->creer) { + if (!DolibarrApiAccess::$user->rights->adherent->creer) { throw new RestException(401); } $subscription = new Subscription($this->db); $result = $subscription->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'Subscription not found'); } - foreach($request_data as $field => $value) { + foreach ($request_data as $field => $value) { if ($field == 'id') continue; $subscription->$field = $value; } @@ -212,16 +212,16 @@ class Subscriptions extends DolibarrApi public function delete($id) { // The right to delete a subscription comes with the right to create one. - if(! DolibarrApiAccess::$user->rights->adherent->cotisation->creer) { + if (!DolibarrApiAccess::$user->rights->adherent->cotisation->creer) { throw new RestException(401); } $subscription = new Subscription($this->db); $result = $subscription->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'Subscription not found'); } - if (! $subscription->delete(DolibarrApiAccess::$user)) { + if (!$subscription->delete(DolibarrApiAccess::$user)) { throw new RestException(401, 'error when deleting subscription'); } diff --git a/htdocs/adherents/class/subscription.class.php b/htdocs/adherents/class/subscription.class.php index 99a0c113e9a..e512e1152bb 100644 --- a/htdocs/adherents/class/subscription.class.php +++ b/htdocs/adherents/class/subscription.class.php @@ -35,12 +35,12 @@ class Subscription extends CommonObject /** * @var string ID to identify managed object */ - public $element='subscription'; + public $element = 'subscription'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='subscription'; + public $table_element = 'subscription'; /** * @var int Does myobject support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by fk_soc, 'field@table'=Test with link by field@table @@ -50,7 +50,7 @@ class Subscription extends CommonObject /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png */ - public $picto='payment'; + public $picto = 'payment'; /** * Date creation record (datec) @@ -93,7 +93,7 @@ class Subscription extends CommonObject */ public $fk_bank; - public $fields=array( + public $fields = array( 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>10), 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>15), 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>20), @@ -133,12 +133,12 @@ class Subscription extends CommonObject $error = 0; - $now=dol_now(); + $now = dol_now(); // Check parameters if ($this->datef <= $this->dateh) { - $this->error=$langs->trans("ErrorBadValueForDate"); + $this->error = $langs->trans("ErrorBadValueForDate"); return -1; } if (empty($this->datec)) $this->datec = $now; @@ -149,37 +149,37 @@ class Subscription extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."subscription (fk_adherent, fk_type, datec, dateadh, datef, subscription, note)"; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; - $member=new Adherent($this->db); - $result=$member->fetch($this->fk_adherent); + $member = new Adherent($this->db); + $result = $member->fetch($this->fk_adherent); if ($this->fk_type == null) { // If type not defined, we use the type of member - $type=$member->typeid; + $type = $member->typeid; } else { - $type=$this->fk_type; + $type = $this->fk_type; } - $sql.= " VALUES (".$this->fk_adherent.", '".$type."', '".$this->db->idate($now)."',"; - $sql.= " '".$this->db->idate($this->dateh)."',"; - $sql.= " '".$this->db->idate($this->datef)."',"; - $sql.= " ".$this->amount.","; - $sql.= " '".$this->db->escape($this->note_public?$this->note_public:$this->note)."')"; + $sql .= " VALUES (".$this->fk_adherent.", '".$type."', '".$this->db->idate($now)."',"; + $sql .= " '".$this->db->idate($this->dateh)."',"; + $sql .= " '".$this->db->idate($this->datef)."',"; + $sql .= " ".$this->amount.","; + $sql .= " '".$this->db->escape($this->note_public ? $this->note_public : $this->note)."')"; $resql = $this->db->query($sql); - if (! $resql) { + if (!$resql) { $error++; $this->errors[] = $this->db->lasterror(); } - if (! $error) + if (!$error) { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element); + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.$this->table_element); $this->fk_type = $type; } - if (! $error && ! $notrigger) + if (!$error && !$notrigger) { $this->context = array('member'=>$member); // Call triggers - $result=$this->call_trigger('MEMBER_SUBSCRIPTION_CREATE', $user); + $result = $this->call_trigger('MEMBER_SUBSCRIPTION_CREATE', $user); if ($result < 0) { $error++; } // End call triggers } @@ -203,16 +203,16 @@ class Subscription extends CommonObject */ public function fetch($rowid) { - $sql ="SELECT rowid, fk_type, fk_adherent, datec,"; - $sql.=" tms,"; - $sql.=" dateadh as dateh,"; - $sql.=" datef,"; - $sql.=" subscription, note, fk_bank"; - $sql.=" FROM ".MAIN_DB_PREFIX."subscription"; - $sql.=" WHERE rowid=".$rowid; + $sql = "SELECT rowid, fk_type, fk_adherent, datec,"; + $sql .= " tms,"; + $sql .= " dateadh as dateh,"; + $sql .= " datef,"; + $sql .= " subscription, note, fk_bank"; + $sql .= " FROM ".MAIN_DB_PREFIX."subscription"; + $sql .= " WHERE rowid=".$rowid; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { if ($this->db->num_rows($resql)) @@ -240,7 +240,7 @@ class Subscription extends CommonObject } else { - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); return -1; } } @@ -275,14 +275,14 @@ class Subscription extends CommonObject if ($resql) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; - $member=new Adherent($this->db); - $result=$member->fetch($this->fk_adherent); - $result=$member->update_end_date($user); + $member = new Adherent($this->db); + $result = $member->fetch($this->fk_adherent); + $result = $member->update_end_date($user); - if (! $error && ! $notrigger) { + if (!$error && !$notrigger) { $this->context = array('member'=>$member); // Call triggers - $result=$this->call_trigger('MEMBER_SUBSCRIPTION_MODIFY', $user); + $result = $this->call_trigger('MEMBER_SUBSCRIPTION_MODIFY', $user); if ($result < 0) { $error++; } //Do also here what you must do to rollback action if trigger fail // End call triggers } @@ -290,7 +290,7 @@ class Subscription extends CommonObject else { $error++; - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); } // Commit or rollback @@ -318,39 +318,39 @@ class Subscription extends CommonObject if ($this->fk_bank > 0) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; - $accountline=new AccountLine($this->db); - $result=$accountline->fetch($this->fk_bank); + $accountline = new AccountLine($this->db); + $result = $accountline->fetch($this->fk_bank); } $this->db->begin(); - if (! $error) { - if (! $notrigger) { + if (!$error) { + if (!$notrigger) { // Call triggers - $result=$this->call_trigger('MEMBER_SUBSCRIPTION_DELETE', $user); + $result = $this->call_trigger('MEMBER_SUBSCRIPTION_DELETE', $user); if ($result < 0) { $error++; } // Do also here what you must do to rollback action if trigger fail // End call triggers } } - if (! $error) + if (!$error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."subscription WHERE rowid = ".$this->id; dol_syslog(get_class($this)."::delete", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { - $num=$this->db->affected_rows($resql); + $num = $this->db->affected_rows($resql); if ($num) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; - $member=new Adherent($this->db); - $result=$member->fetch($this->fk_adherent); - $result=$member->update_end_date($user); + $member = new Adherent($this->db); + $result = $member->fetch($this->fk_adherent); + $result = $member->update_end_date($user); if ($this->fk_bank > 0 && is_object($accountline) && $accountline->id > 0) // If we found bank account line (this means this->fk_bank defined) { - $result=$accountline->delete($user); // Return false if refused because line is conciliated + $result = $accountline->delete($user); // Return false if refused because line is conciliated if ($result > 0) { $this->db->commit(); @@ -358,7 +358,7 @@ class Subscription extends CommonObject } else { - $this->error=$accountline->error; + $this->error = $accountline->error; $this->db->rollback(); return -1; } @@ -378,7 +378,7 @@ class Subscription extends CommonObject else { $error++; - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); } } @@ -407,29 +407,29 @@ class Subscription extends CommonObject { global $langs; - $result=''; + $result = ''; $langs->load("members"); - $label=$langs->trans("ShowSubscription").': '.$this->ref; + $label = $langs->trans("ShowSubscription").': '.$this->ref; $url = DOL_URL_ROOT.'/adherents/subscription/card.php?rowid='.$this->id; if ($option != 'nolink') { // Add param to save lastsearch_values or not - $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0); - if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1; - if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1; + if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1'; } $linkstart = ''; $linkend = ''; - $picto='payment'; + $picto = 'payment'; $result .= $linkstart; - if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); - if ($withpicto != 2) $result.= $this->ref; + if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + if ($withpicto != 2) $result .= $this->ref; $result .= $linkend; return $result; @@ -471,11 +471,11 @@ class Subscription extends CommonObject public function info($id) { $sql = 'SELECT c.rowid, c.datec,'; - $sql.= ' c.tms as datem'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'subscription as c'; - $sql.= ' WHERE c.rowid = '.$id; + $sql .= ' c.tms as datem'; + $sql .= ' FROM '.MAIN_DB_PREFIX.'subscription as c'; + $sql .= ' WHERE c.rowid = '.$id; - $result=$this->db->query($sql); + $result = $this->db->query($sql); if ($result) { if ($this->db->num_rows($result)) diff --git a/htdocs/adherents/document.php b/htdocs/adherents/document.php index ca74d9bcbda..cc3e06207be 100644 --- a/htdocs/adherents/document.php +++ b/htdocs/adherents/document.php @@ -34,45 +34,45 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; // Load translation files required by the page -$langs->loadLangs(array("companies","members","other")); +$langs->loadLangs(array("companies", "members", "other")); -$id=GETPOST('id', 'int'); -$action=GETPOST('action', 'alpha'); -$confirm=GETPOST('confirm', 'alpha'); +$id = GETPOST('id', 'int'); +$action = GETPOST('action', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); // Security check -$result=restrictedArea($user, 'adherent', $id); +$result = restrictedArea($user, 'adherent', $id); // Get parameters $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $conf->liste_limit * $page ; +$offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="name"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "name"; $form = new Form($db); -$object=new Adherent($db); -$membert=new AdherentType($db); -$result=$object->fetch($id); +$object = new Adherent($db); +$membert = new AdherentType($db); +$result = $object->fetch($id); if ($result < 0) { dol_print_error($db); exit; } -$upload_dir = $conf->adherent->dir_output . "/" . get_exdir(0, 0, 0, 1, $object, 'member'); +$upload_dir = $conf->adherent->dir_output."/".get_exdir(0, 0, 0, 1, $object, 'member'); /* * Actions */ -include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php'; +include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; /* @@ -81,24 +81,24 @@ include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php'; $form = new Form($db); -$title=$langs->trans("Member") . " - " . $langs->trans("Documents"); -$helpurl="EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros"; +$title = $langs->trans("Member")." - ".$langs->trans("Documents"); +$helpurl = "EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros"; llxHeader("", $title, $helpurl); if ($id > 0) { - $result=$membert->fetch($object->typeid); + $result = $membert->fetch($object->typeid); if ($result > 0) { // Build file list - $filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); - $totalsize=0; - foreach($filearray as $key => $file) + $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); + $totalsize = 0; + foreach ($filearray as $key => $file) { - $totalsize+=$file['size']; + $totalsize += $file['size']; } - if (! empty($conf->notification->enabled)) + if (!empty($conf->notification->enabled)) $langs->load("mails"); $head = member_prepare_head($object); @@ -154,8 +154,8 @@ if ($id > 0) $modulepart = 'member'; $permission = $user->rights->adherent->creer; $permtoedit = $user->rights->adherent->creer; - $param = '&id=' . $object->id; - include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; + $param = '&id='.$object->id; + include_once DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; print "

"; } else diff --git a/htdocs/adherents/htpasswd.php b/htdocs/adherents/htpasswd.php index 84fc6bc9824..b7aa8da5d14 100644 --- a/htdocs/adherents/htpasswd.php +++ b/htdocs/adherents/htpasswd.php @@ -27,7 +27,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; // Security check -if (! $user->rights->adherent->export) accessforbidden(); +if (!$user->rights->adherent->export) accessforbidden(); /* @@ -36,30 +36,30 @@ if (! $user->rights->adherent->export) accessforbidden(); llxHeader(); -$now=dol_now(); +$now = dol_now(); -if (empty($sortorder)) { $sortorder="ASC"; } -if (empty($sortfield)) { $sortfield="d.login"; } -if (! isset($statut)) +if (empty($sortorder)) { $sortorder = "ASC"; } +if (empty($sortfield)) { $sortfield = "d.login"; } +if (!isset($statut)) { $statut = 1; } -if (! isset($cotis)) +if (!isset($cotis)) { // by default, members must be up to date of subscription - $cotis=1; + $cotis = 1; } $sql = "SELECT d.login, d.pass, d.datefin"; $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d "; $sql .= " WHERE d.statut = ".$statut; -if ($cotis==1) +if ($cotis == 1) { $sql .= " AND datefin > '".$db->idate($now)."'"; } -$sql.= $db->order($sortfield, $sortorder); +$sql .= $db->order($sortfield, $sortorder); //$sql.=$db->plimit($conf->liste_limit, $offset); $resql = $db->query($sql); @@ -74,7 +74,7 @@ if ($resql) while ($i < $num) { $objp = $db->fetch_object($result); - $htpass=crypt($objp->pass, makesalt()); + $htpass = crypt($objp->pass, makesalt()); print $objp->login.":".$htpass."
\n"; $i++; } diff --git a/htdocs/adherents/index.php b/htdocs/adherents/index.php index 029cf868bb0..44fcb397ddc 100644 --- a/htdocs/adherents/index.php +++ b/htdocs/adherents/index.php @@ -48,28 +48,28 @@ $result = restrictedArea($user, 'adherent'); llxHeader('', $langs->trans("Members"), 'EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros'); -$staticmember=new Adherent($db); -$statictype=new AdherentType($db); -$subscriptionstatic=new Subscription($db); +$staticmember = new Adherent($db); +$statictype = new AdherentType($db); +$subscriptionstatic = new Subscription($db); print load_fiche_titre($langs->trans("MembersArea"), '', 'members'); -$Adherents=array(); -$AdherentsAValider=array(); -$MemberUpToDate=array(); -$AdherentsResilies=array(); +$Adherents = array(); +$AdherentsAValider = array(); +$MemberUpToDate = array(); +$AdherentsResilies = array(); -$AdherentType=array(); +$AdherentType = array(); // Type of membership $sql = "SELECT t.rowid, t.libelle as label, t.subscription,"; -$sql.= " d.statut, count(d.rowid) as somme"; -$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as d"; -$sql.= " ON t.rowid = d.fk_adherent_type"; -$sql.= " AND d.entity IN (".getEntity('adherent').")"; -$sql.= " WHERE t.entity IN (".getEntity('member_type').")"; -$sql.= " GROUP BY t.rowid, t.libelle, t.subscription, d.statut"; +$sql .= " d.statut, count(d.rowid) as somme"; +$sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as d"; +$sql .= " ON t.rowid = d.fk_adherent_type"; +$sql .= " AND d.entity IN (".getEntity('adherent').")"; +$sql .= " WHERE t.entity IN (".getEntity('member_type').")"; +$sql .= " GROUP BY t.rowid, t.libelle, t.subscription, d.statut"; dol_syslog("index.php::select nb of members per type", LOG_DEBUG); $result = $db->query($sql); @@ -81,32 +81,32 @@ if ($result) { $objp = $db->fetch_object($result); - $adhtype=new AdherentType($db); - $adhtype->id=$objp->rowid; - $adhtype->subscription=$objp->subscription; - $adhtype->label=$objp->label; - $AdherentType[$objp->rowid]=$adhtype; + $adhtype = new AdherentType($db); + $adhtype->id = $objp->rowid; + $adhtype->subscription = $objp->subscription; + $adhtype->label = $objp->label; + $AdherentType[$objp->rowid] = $adhtype; - if ($objp->statut == -1) { $MemberToValidate[$objp->rowid]=$objp->somme; } - if ($objp->statut == 1) { $MembersValidated[$objp->rowid]=$objp->somme; } - if ($objp->statut == 0) { $MembersResiliated[$objp->rowid]=$objp->somme; } + if ($objp->statut == -1) { $MemberToValidate[$objp->rowid] = $objp->somme; } + if ($objp->statut == 1) { $MembersValidated[$objp->rowid] = $objp->somme; } + if ($objp->statut == 0) { $MembersResiliated[$objp->rowid] = $objp->somme; } $i++; } $db->free($result); } -$now=dol_now(); +$now = dol_now(); // Members up to date list // current rule: uptodate = the end date is in future whatever is type // old rule: uptodate = if type does not need payment, that end date is null, if type need payment that end date is in future) $sql = "SELECT count(*) as somme , d.fk_adherent_type"; -$sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t"; -$sql.= " WHERE d.entity IN (".getEntity('adherent').")"; -$sql.= " AND d.statut = 1 AND (d.datefin >= '".$db->idate($now)."' OR t.subscription = 0)"; -$sql.= " AND t.rowid = d.fk_adherent_type"; -$sql.= " GROUP BY d.fk_adherent_type"; +$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t"; +$sql .= " WHERE d.entity IN (".getEntity('adherent').")"; +$sql .= " AND d.statut = 1 AND (d.datefin >= '".$db->idate($now)."' OR t.subscription = 0)"; +$sql .= " AND t.rowid = d.fk_adherent_type"; +$sql .= " GROUP BY d.fk_adherent_type"; dol_syslog("index.php::select nb of uptodate members by type", LOG_DEBUG); $result = $db->query($sql); @@ -191,10 +191,10 @@ if ($conf->use_javascript_ajax) } $total = $SommeA + $SommeB + $SommeC + $SommeD; $dataseries = array(); - $dataseries[] = array($langs->trans("MenuMembersNotUpToDate"), round($SommeB)); - $dataseries[] = array($langs->trans("MenuMembersUpToDate"), round($SommeC)); - $dataseries[] = array($langs->trans("MembersStatusResiliated"), round($SommeD)); - $dataseries[] = array($langs->trans("MembersStatusToValid"), round($SommeA)); + $dataseries[] = array($langs->transnoentitiesnoconv("MenuMembersNotUpToDate"), round($SommeB)); + $dataseries[] = array($langs->transnoentitiesnoconv("MenuMembersUpToDate"), round($SommeC)); + $dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusResiliated"), round($SommeD)); + $dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusToValid"), round($SommeA)); include_once DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php'; @@ -220,15 +220,15 @@ if ($conf->use_javascript_ajax) print '
'; // List of subscription by year -$Total=array(); -$Number=array(); -$tot=0; -$numb=0; +$Total = array(); +$Number = array(); +$tot = 0; +$numb = 0; $sql = "SELECT c.subscription, c.dateadh as dateh"; -$sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."subscription as c"; -$sql.= " WHERE d.entity IN (".getEntity('adherent').")"; -$sql.= " AND d.rowid = c.fk_adherent"; +$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."subscription as c"; +$sql .= " WHERE d.entity IN (".getEntity('adherent').")"; +$sql .= " AND d.rowid = c.fk_adherent"; $result = $db->query($sql); @@ -323,26 +323,26 @@ if ($resql) { $obj = $db->fetch_object($resql); print '
'; - $staticmember->id=$obj->rowid; - $staticmember->lastname=$obj->lastname; - $staticmember->firstname=$obj->firstname; - if (! empty($obj->fk_soc)) + $staticmember->id = $obj->rowid; + $staticmember->lastname = $obj->lastname; + $staticmember->firstname = $obj->firstname; + if (!empty($obj->fk_soc)) { $staticmember->fk_soc = $obj->fk_soc; $staticmember->fetch_thirdparty(); - $staticmember->name=$staticmember->thirdparty->name; + $staticmember->name = $staticmember->thirdparty->name; } else { - $staticmember->name=$obj->company; + $staticmember->name = $obj->company; } - $staticmember->ref=$staticmember->getFullName($langs); - $statictype->id=$obj->typeid; - $statictype->label=$obj->label; + $staticmember->ref = $staticmember->getFullName($langs); + $statictype->id = $obj->typeid; + $statictype->label = $obj->label; print ''; print ''; print ''; - print ''; + print ''; print ''; $i++; } diff --git a/htdocs/adherents/ldap.php b/htdocs/adherents/ldap.php index 99326241485..6a49f99fbf4 100644 --- a/htdocs/adherents/ldap.php +++ b/htdocs/adherents/ldap.php @@ -30,21 +30,21 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; // Load translation files required by the page -$langs->loadLangs(array("companies","members","ldap","admin")); +$langs->loadLangs(array("companies", "members", "ldap", "admin")); $rowid = GETPOST('id', 'int'); $action = GETPOST('action', 'aZ09'); // Protection -$socid=0; +$socid = 0; if ($user->socid > 0) { $socid = $user->socid; } $object = new Adherent($db); -$result=$object->fetch($rowid); -if (! $result) +$result = $object->fetch($rowid); +if (!$result) { dol_print_error($db, "Failed to get adherent: ".$object->error); exit; @@ -57,16 +57,16 @@ if (! $result) if ($action == 'dolibarr2ldap') { - $ldap=new Ldap(); - $result=$ldap->connect_bind(); + $ldap = new Ldap(); + $result = $ldap->connect_bind(); if ($result > 0) { - $info=$object->_load_ldap_info(); - $dn=$object->_load_ldap_dn($info); - $olddn=$dn; // We can say that old dn = dn as we force synchro + $info = $object->_load_ldap_info(); + $dn = $object->_load_ldap_dn($info); + $olddn = $dn; // We can say that old dn = dn as we force synchro - $result=$ldap->update($dn, $info, $user, $olddn); + $result = $ldap->update($dn, $info, $user, $olddn); } if ($result >= 0) { @@ -104,7 +104,7 @@ print '
'.$staticmember->getNomUrl(1, 32).''.$statictype->getNomUrl(1, 32).''.dol_print_date($db->jdate($obj->datem), 'dayhour').''.$staticmember->LibStatut($obj->statut, ($obj->subscription=='yes'?1:0), $db->jdate($obj->date_end_subscription), 3).''.$staticmember->LibStatut($obj->statut, ($obj->subscription == 'yes' ? 1 : 0), $db->jdate($obj->date_end_subscription), 3).'
'; print ''; // If there is a link to password not crypted, we show value in database here so we can compare because it is shown nowhere else -if (! empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) +if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) { print ''; print ''; @@ -142,14 +142,14 @@ dol_fiche_end(); print '
'; -if (! empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTIVE != 'ldap2dolibarr') +if (!empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTIVE != 'ldap2dolibarr') { print ''; } print "
\n"; -if (! empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTIVE != 'ldap2dolibarr') print "
\n"; +if (!empty($conf->global->LDAP_MEMBER_ACTIVE) && $conf->global->LDAP_MEMBER_ACTIVE != 'ldap2dolibarr') print "
\n"; @@ -164,12 +164,12 @@ print ''; print ''; // Lecture LDAP -$ldap=new Ldap(); -$result=$ldap->connect_bind(); +$ldap = new Ldap(); +$result = $ldap->connect_bind(); if ($result > 0) { - $info=$object->_load_ldap_info(); - $dn=$object->_load_ldap_dn($info, 1); + $info = $object->_load_ldap_info(); + $dn = $object->_load_ldap_dn($info, 1); $search = "(".$object->_load_ldap_dn($info, 2).")"; if (empty($dn)) @@ -184,15 +184,15 @@ if ($result > 0) //print_r($records); // Show tree - if (((! is_numeric($records)) || $records != 0) && (! isset($records['count']) || $records['count'] > 0)) + if (((!is_numeric($records)) || $records != 0) && (!isset($records['count']) || $records['count'] > 0)) { - if (! is_array($records)) + if (!is_array($records)) { print ''; } else { - $result=show_ldap_content($records, 0, $records['count'], true); + $result = show_ldap_content($records, 0, $records['count'], true); } } else diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php index aa487ad4174..7ed417750a7 100644 --- a/htdocs/adherents/list.php +++ b/htdocs/adherents/list.php @@ -52,6 +52,7 @@ $search_lastname = GETPOST("search_lastname", 'alpha'); $search_firstname = GETPOST("search_firstname", 'alpha'); $search_gender = GETPOST("search_gender", 'alpha'); $search_civility = GETPOST("search_civility", 'alpha'); +$search_company = GETPOST('search_company', 'alphanohtml'); $search_login = GETPOST("search_login", 'alpha'); $search_address = GETPOST("search_address", 'alpha'); $search_zip = GETPOST("search_zip", 'alpha'); @@ -105,6 +106,9 @@ $fieldstosearchall = array( 'd.address'=>'Address', 'd.zip'=>'Zip', 'd.town'=>'Town', + 'd.phone'=>"Phone", + 'd.phone_perso'=>"PhonePerso", + 'd.phone_mobile'=>"PhoneMobile", 'd.note_public'=>'NotePublic', 'd.note_private'=>'NotePrivate', ); @@ -254,6 +258,8 @@ $sql = "SELECT d.rowid, d.login, d.lastname, d.firstname, d.gender, d.societe as $sql .= " d.civility, d.datefin, d.address, d.zip, d.town, d.state_id, d.country,"; $sql .= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.skype, d.birth, d.public, d.photo,"; $sql .= " d.fk_adherent_type as type_id, d.morphy, d.statut, d.datec as date_creation, d.tms as date_update,"; +$sql .= " d.note_private, d.note_public,"; +$sql .= " s.nom,"; $sql .= " t.libelle as type, t.subscription,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; // Add fields from extrafields @@ -269,6 +275,7 @@ if (is_array($extrafields->attributes[$object->table_element]['label']) && count if (!empty($search_categ) || !empty($catid)) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_member as cm ON d.rowid = cm.fk_member"; // We need this table joined to the select in order to filter by categ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = d.country)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = d.state_id)"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on (s.rowid = d.fk_soc)"; $sql .= ", ".MAIN_DB_PREFIX."adherent_type as t"; $sql .= " WHERE d.fk_adherent_type = t.rowid "; if ($catid > 0) $sql .= " AND cm.fk_categorie = ".$db->escape($catid); @@ -289,6 +296,7 @@ if ($search_firstname) $sql .= natural_search("d.firstname", $search_firstname); if ($search_lastname) $sql .= natural_search(array("d.firstname", "d.lastname", "d.societe"), $search_lastname); if ($search_gender != '' && $search_gender != '-1') $sql .= " AND d.gender = '".$search_gender."'"; if ($search_login) $sql .= natural_search("d.login", $search_login); +if ($search_company) $sql .= natural_search("s.nom", $search_company); if ($search_email) $sql .= natural_search("d.email", $search_email); if ($search_town) $sql .= natural_search("d.town", $search_town); if ($search_zip) $sql .= natural_search("d.zip", $search_zip); @@ -417,10 +425,9 @@ print ''; print ''; print ''; -print ''; print ''; -print_barre_liste($titre, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'members', 0, $newcardbutton, '', $limit); +print_barre_liste($titre, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'members', 0, $newcardbutton, '', $limit, 0, 0, 1); $topicmail = "Information"; $modelmail = "member"; @@ -682,6 +689,8 @@ while ($i < min($num, $limit)) $memberstatic->socid = $obj->fk_soc; $memberstatic->photo = $obj->photo; $memberstatic->morphy = $obj->morphy; + $memberstatic->note_public = $obj->note_public; + $memberstatic->note_private = $obj->note_private; if (!empty($obj->fk_soc)) { $memberstatic->fetch_thirdparty(); @@ -703,7 +712,7 @@ while ($i < min($num, $limit)) if (!empty($arrayfields['d.ref']['checked'])) { print "\n"; if (!$i) $totalarray['nbfield']++; } @@ -940,8 +949,6 @@ print "
'.$langs->trans("Login").' / '.$langs->trans("Id").''.$object->login.' 
'.$langs->trans("LDAPFieldPasswordNotCrypted").''.$object->pass.''.$langs->trans("Value").'
'.$langs->trans("ErrorFailedToReadLDAP").'
"; - print $memberstatic->getNomUrl(-1, 0, 'card', 'ref'); + print $memberstatic->getNomUrl(-1, 0, 'card', 'ref', '', -1, 0, 1); print "
\n"; print "
"; print ''; -if ($num > $limit || $page) print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'generic', 0, '', '', $limit, 1); - // End of page llxFooter(); $db->close(); diff --git a/htdocs/adherents/note.php b/htdocs/adherents/note.php index 7e8175793fd..ee72c920e2f 100644 --- a/htdocs/adherents/note.php +++ b/htdocs/adherents/note.php @@ -29,23 +29,23 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; // Load translation files required by the page -$langs->loadLangs(array("companies","members","bills")); +$langs->loadLangs(array("companies", "members", "bills")); -$action=GETPOST('action', 'alpha'); -$id=GETPOST('id', 'int'); +$action = GETPOST('action', 'alpha'); +$id = GETPOST('id', 'int'); // Security check -$result=restrictedArea($user, 'adherent', $id); +$result = restrictedArea($user, 'adherent', $id); $object = new Adherent($db); -$result=$object->fetch($id); +$result = $object->fetch($id); if ($result > 0) { $adht = new AdherentType($db); - $result=$adht->fetch($object->typeid); + $result = $adht->fetch($object->typeid); } -$permissionnote=$user->rights->adherent->creer; // Used by the include of actions_setnotes.inc.php +$permissionnote = $user->rights->adherent->creer; // Used by the include of actions_setnotes.inc.php /* * Actions @@ -58,8 +58,8 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, /* * View */ -$title=$langs->trans("Member") . " - " . $langs->trans("Note"); -$helpurl="EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros"; +$title = $langs->trans("Member")." - ".$langs->trans("Note"); +$helpurl = "EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros"; llxHeader("", $title, $helpurl); $form = new Form($db); @@ -110,8 +110,8 @@ if ($id) print '
'; - $cssclass='titlefield'; - $permission = $user->rights->adherent->creer; // Used by the include of notes.tpl.php + $cssclass = 'titlefield'; + $permission = $user->rights->adherent->creer; // Used by the include of notes.tpl.php include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; diff --git a/htdocs/adherents/stats/byproperties.php b/htdocs/adherents/stats/byproperties.php index e75e1a61e70..7927c2e3f00 100644 --- a/htdocs/adherents/stats/byproperties.php +++ b/htdocs/adherents/stats/byproperties.php @@ -29,7 +29,7 @@ $graphwidth = 700; $mapratio = 0.5; $graphheight = round($graphwidth * $mapratio); -$mode=GETPOST('mode')?GETPOST('mode'):''; +$mode = GETPOST('mode') ?GETPOST('mode') : ''; // Security check @@ -38,57 +38,57 @@ if ($user->socid > 0) $action = ''; $socid = $user->socid; } -$result=restrictedArea($user, 'adherent', '', '', 'cotisation'); +$result = restrictedArea($user, 'adherent', '', '', 'cotisation'); $year = strftime("%Y", time()); -$startyear=$year-2; -$endyear=$year; +$startyear = $year - 2; +$endyear = $year; // Load translation files required by the page -$langs->loadLangs(array("companies","members")); +$langs->loadLangs(array("companies", "members")); /* * View */ -$memberstatic=new Adherent($db); +$memberstatic = new Adherent($db); llxHeader('', $langs->trans("MembersStatisticsByProperties"), '', '', 0, 0, array('https://www.google.com/jsapi')); -$title=$langs->trans("MembersStatisticsByProperties"); +$title = $langs->trans("MembersStatisticsByProperties"); -print load_fiche_titre($title, ''); +print load_fiche_titre($title, '', 'object_group'); dol_mkdir($dir); -$tab='byproperties'; +$tab = 'byproperties'; $data = array(); -$sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, d.morphy as code"; -$sql.=" FROM ".MAIN_DB_PREFIX."adherent as d"; -$sql.=" LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; -$sql.=" WHERE d.entity IN (".getEntity('adherent').")"; -$sql.=" AND d.statut = 1"; -$sql.=" GROUP BY d.morphy"; +$sql .= "SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, d.morphy as code"; +$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; +$sql .= " WHERE d.entity IN (".getEntity('adherent').")"; +$sql .= " AND d.statut = 1"; +$sql .= " GROUP BY d.morphy"; -$foundphy=$foundmor=0; +$foundphy = $foundmor = 0; // Define $data array dol_syslog("Count member", LOG_DEBUG); -$resql=$db->query($sql); +$resql = $db->query($sql); if ($resql) { - $num=$db->num_rows($resql); - $i=0; + $num = $db->num_rows($resql); + $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); if ($obj->code == 'phy') $foundphy++; if ($obj->code == 'mor') $foundmor++; - $data[]=array('label'=>$obj->code, 'nb'=>$obj->nb, 'lastdate'=>$db->jdate($obj->lastdate), 'lastsubscriptiondate'=>$db->jdate($obj->lastsubscriptiondate)); + $data[] = array('label'=>$obj->code, 'nb'=>$obj->nb, 'lastdate'=>$db->jdate($obj->lastdate), 'lastsubscriptiondate'=>$db->jdate($obj->lastsubscriptiondate)); $i++; } @@ -106,14 +106,15 @@ dol_fiche_head($head, 'statsbyproperties', $langs->trans("Statistics"), -1, 'use // Print title -if (! count($data)) +if (!count($data)) { print $langs->trans("NoValidatedMemberYet").'
'; print '
'; } else { - print load_fiche_titre($langs->trans("MembersByNature"), '', ''); + print $langs->trans("MembersByNature").'
'; + print '
'; } // Print array @@ -125,8 +126,8 @@ print ''.$langs->trans("LastMemberDate").''; print ''.$langs->trans("LatestSubscriptionDate").''; print ''; -if (! $foundphy) $data[]=array('label'=>'phy','nb'=>'0','lastdate'=>'', 'lastsubscriptiondate'=>''); -if (! $foundmor) $data[]=array('label'=>'mor','nb'=>'0','lastdate'=>'', 'lastsubscriptiondate'=>''); +if (!$foundphy) $data[] = array('label'=>'phy', 'nb'=>'0', 'lastdate'=>'', 'lastsubscriptiondate'=>''); +if (!$foundmor) $data[] = array('label'=>'mor', 'nb'=>'0', 'lastdate'=>'', 'lastsubscriptiondate'=>''); foreach ($data as $val) { diff --git a/htdocs/adherents/stats/geo.php b/htdocs/adherents/stats/geo.php index 956a71112cb..5b51008a9a2 100644 --- a/htdocs/adherents/stats/geo.php +++ b/htdocs/adherents/stats/geo.php @@ -26,11 +26,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; -$graphwidth=DolGraph::getDefaultGraphSizeForStats('width', 700); +$graphwidth = DolGraph::getDefaultGraphSizeForStats('width', 700); $mapratio = 0.5; $graphheight = round($graphwidth * $mapratio); -$mode=GETPOST('mode')?GETPOST('mode'):''; +$mode = GETPOST('mode') ?GETPOST('mode') : ''; // Security check @@ -39,32 +39,32 @@ if ($user->socid > 0) $action = ''; $socid = $user->socid; } -$result=restrictedArea($user, 'adherent', '', '', 'cotisation'); +$result = restrictedArea($user, 'adherent', '', '', 'cotisation'); $year = strftime("%Y", time()); -$startyear=$year-2; -$endyear=$year; +$startyear = $year - 2; +$endyear = $year; // Load translation files required by the page -$langs->loadLangs(array("companies","members")); +$langs->loadLangs(array("companies", "members")); /* * View */ -$arrayjs=array('https://www.google.com/jsapi'); -if (! empty($conf->dol_use_jmobile)) $arrayjs=array(); +$arrayjs = array('https://www.google.com/jsapi'); +if (!empty($conf->dol_use_jmobile)) $arrayjs = array(); -$title=$langs->trans("Statistics"); -if ($mode == 'memberbycountry') $title=$langs->trans("MembersStatisticsByCountries"); -if ($mode == 'memberbystate') $title=$langs->trans("MembersStatisticsByState"); -if ($mode == 'memberbytown') $title=$langs->trans("MembersStatisticsByTown"); -if ($mode == 'memberbyregion') $title=$langs->trans("MembersStatisticsByRegion"); +$title = $langs->trans("Statistics"); +if ($mode == 'memberbycountry') $title = $langs->trans("MembersStatisticsByCountries"); +if ($mode == 'memberbystate') $title = $langs->trans("MembersStatisticsByState"); +if ($mode == 'memberbytown') $title = $langs->trans("MembersStatisticsByTown"); +if ($mode == 'memberbyregion') $title = $langs->trans("MembersStatisticsByRegion"); llxHeader('', $title, '', '', 0, 0, $arrayjs); -print load_fiche_titre($title, $mesg); +print load_fiche_titre($title, '', 'object_group'); dol_mkdir($dir); @@ -73,92 +73,92 @@ if ($mode) // Define sql if ($mode == 'memberbycountry') { - $label=$langs->trans("Country"); - $tab='statscountry'; + $label = $langs->trans("Country"); + $tab = 'statscountry'; $data = array(); - $sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, c.code, c.label"; - $sql.=" FROM ".MAIN_DB_PREFIX."adherent as d"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_country as c on d.country = c.rowid"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; - $sql.=" WHERE d.entity IN (".getEntity('adherent').")"; - $sql.=" AND d.statut = 1"; - $sql.=" GROUP BY c.label, c.code"; + $sql .= "SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, c.code, c.label"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c on d.country = c.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; + $sql .= " WHERE d.entity IN (".getEntity('adherent').")"; + $sql .= " AND d.statut = 1"; + $sql .= " GROUP BY c.label, c.code"; //print $sql; } if ($mode == 'memberbystate') { - $label=$langs->trans("Country"); - $label2=$langs->trans("State"); - $tab='statsstate'; + $label = $langs->trans("Country"); + $label2 = $langs->trans("State"); + $tab = 'statsstate'; $data = array(); - $sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, co.code, co.label, c.nom as label2"; // - $sql.=" FROM ".MAIN_DB_PREFIX."adherent as d"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_departements as c on d.state_id = c.rowid"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_regions as r on c.fk_region = r.code_region"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_country as co on d.country = co.rowid"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; - $sql.=" WHERE d.entity IN (".getEntity('adherent').")"; - $sql.=" AND d.statut = 1"; - $sql.=" GROUP BY co.label, co.code, c.nom"; + $sql .= "SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, co.code, co.label, c.nom as label2"; // + $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as c on d.state_id = c.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_regions as r on c.fk_region = r.code_region"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as co on d.country = co.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; + $sql .= " WHERE d.entity IN (".getEntity('adherent').")"; + $sql .= " AND d.statut = 1"; + $sql .= " GROUP BY co.label, co.code, c.nom"; //print $sql; } if ($mode == 'memberbyregion') // { - $label=$langs->trans("Country"); - $label2=$langs->trans("Region"); //département - $tab='statsregion'; //onglet + $label = $langs->trans("Country"); + $label2 = $langs->trans("Region"); //département + $tab = 'statsregion'; //onglet $data = array(); //tableau de donnée - $sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, co.code, co.label, r.nom as label2"; - $sql.=" FROM ".MAIN_DB_PREFIX."adherent as d"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_departements as c on d.state_id = c.rowid"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_regions as r on c.fk_region = r.code_region"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_country as co on d.country = co.rowid"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; - $sql.=" WHERE d.entity IN (".getEntity('adherent').")"; - $sql.=" AND d.statut = 1"; - $sql.=" GROUP BY co.label, co.code, r.nom"; //+ + $sql .= "SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, co.code, co.label, r.nom as label2"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as c on d.state_id = c.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_regions as r on c.fk_region = r.code_region"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as co on d.country = co.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; + $sql .= " WHERE d.entity IN (".getEntity('adherent').")"; + $sql .= " AND d.statut = 1"; + $sql .= " GROUP BY co.label, co.code, r.nom"; //+ //print $sql; } if ($mode == 'memberbytown') { - $label=$langs->trans("Country"); - $label2=$langs->trans("Town"); - $tab='statstown'; + $label = $langs->trans("Country"); + $label2 = $langs->trans("Town"); + $tab = 'statstown'; $data = array(); - $sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, c.code, c.label, d.town as label2"; - $sql.=" FROM ".MAIN_DB_PREFIX."adherent as d"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_country as c on d.country = c.rowid"; - $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; - $sql.=" WHERE d.entity IN (".getEntity('adherent').")"; - $sql.=" AND d.statut = 1"; - $sql.=" GROUP BY c.label, c.code, d.town"; + $sql .= "SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, MAX(s.dateadh) as lastsubscriptiondate, c.code, c.label, d.town as label2"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c on d.country = c.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."subscription as s ON s.fk_adherent = d.rowid"; + $sql .= " WHERE d.entity IN (".getEntity('adherent').")"; + $sql .= " AND d.statut = 1"; + $sql .= " GROUP BY c.label, c.code, d.town"; //print $sql; } - $langsen=new Translate('', $conf); + $langsen = new Translate('', $conf); $langsen->setDefaultLang('en_US'); $langsen->load("dict"); //print $langsen->trans("Country"."FI");exit; // Define $data array dol_syslog("Count member", LOG_DEBUG); - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { - $num=$db->num_rows($resql); - $i=0; + $num = $db->num_rows($resql); + $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); if ($mode == 'memberbycountry') { - $data[]=array('label'=>(($obj->code && $langs->trans("Country".$obj->code)!="Country".$obj->code)?$langs->trans("Country".$obj->code):($obj->label?$obj->label:$langs->trans("Unknown"))), - 'label_en'=>(($obj->code && $langsen->transnoentitiesnoconv("Country".$obj->code)!="Country".$obj->code)?$langsen->transnoentitiesnoconv("Country".$obj->code):($obj->label?$obj->label:$langs->trans("Unknown"))), + $data[] = array('label'=>(($obj->code && $langs->trans("Country".$obj->code) != "Country".$obj->code) ? $langs->trans("Country".$obj->code) : ($obj->label ? $obj->label : $langs->trans("Unknown"))), + 'label_en'=>(($obj->code && $langsen->transnoentitiesnoconv("Country".$obj->code) != "Country".$obj->code) ? $langsen->transnoentitiesnoconv("Country".$obj->code) : ($obj->label ? $obj->label : $langs->trans("Unknown"))), 'code'=>$obj->code, 'nb'=>$obj->nb, 'lastdate'=>$db->jdate($obj->lastdate), @@ -167,10 +167,10 @@ if ($mode) } if ($mode == 'memberbyregion') //+ { - $data[]=array( - 'label'=>(($obj->code && $langs->trans("Country".$obj->code)!="Country".$obj->code)?$langs->trans("Country".$obj->code):($obj->label?$obj->label:$langs->trans("Unknown"))), - 'label_en'=>(($obj->code && $langsen->transnoentitiesnoconv("Country".$obj->code)!="Country".$obj->code)?$langsen->transnoentitiesnoconv("Country".$obj->code):($obj->label?$obj->label:$langs->trans("Unknown"))), - 'label2'=>($obj->label2?$obj->label2:$langs->trans("Unknown")), + $data[] = array( + 'label'=>(($obj->code && $langs->trans("Country".$obj->code) != "Country".$obj->code) ? $langs->trans("Country".$obj->code) : ($obj->label ? $obj->label : $langs->trans("Unknown"))), + 'label_en'=>(($obj->code && $langsen->transnoentitiesnoconv("Country".$obj->code) != "Country".$obj->code) ? $langsen->transnoentitiesnoconv("Country".$obj->code) : ($obj->label ? $obj->label : $langs->trans("Unknown"))), + 'label2'=>($obj->label2 ? $obj->label2 : $langs->trans("Unknown")), 'nb'=>$obj->nb, 'lastdate'=>$db->jdate($obj->lastdate), 'lastsubscriptiondate'=>$db->jdate($obj->lastsubscriptiondate) @@ -178,9 +178,9 @@ if ($mode) } if ($mode == 'memberbystate') { - $data[]=array('label'=>(($obj->code && $langs->trans("Country".$obj->code)!="Country".$obj->code)?$langs->trans("Country".$obj->code):($obj->label?$obj->label:$langs->trans("Unknown"))), - 'label_en'=>(($obj->code && $langsen->transnoentitiesnoconv("Country".$obj->code)!="Country".$obj->code)?$langsen->transnoentitiesnoconv("Country".$obj->code):($obj->label?$obj->label:$langs->trans("Unknown"))), - 'label2'=>($obj->label2?$obj->label2:$langs->trans("Unknown")), + $data[] = array('label'=>(($obj->code && $langs->trans("Country".$obj->code) != "Country".$obj->code) ? $langs->trans("Country".$obj->code) : ($obj->label ? $obj->label : $langs->trans("Unknown"))), + 'label_en'=>(($obj->code && $langsen->transnoentitiesnoconv("Country".$obj->code) != "Country".$obj->code) ? $langsen->transnoentitiesnoconv("Country".$obj->code) : ($obj->label ? $obj->label : $langs->trans("Unknown"))), + 'label2'=>($obj->label2 ? $obj->label2 : $langs->trans("Unknown")), 'nb'=>$obj->nb, 'lastdate'=>$db->jdate($obj->lastdate), 'lastsubscriptiondate'=>$db->jdate($obj->lastsubscriptiondate) @@ -188,9 +188,9 @@ if ($mode) } if ($mode == 'memberbytown') { - $data[]=array('label'=>(($obj->code && $langs->trans("Country".$obj->code)!="Country".$obj->code)?$langs->trans("Country".$obj->code):($obj->label?$obj->label:$langs->trans("Unknown"))), - 'label_en'=>(($obj->code && $langsen->transnoentitiesnoconv("Country".$obj->code)!="Country".$obj->code)?$langsen->transnoentitiesnoconv("Country".$obj->code):($obj->label?$obj->label:$langs->trans("Unknown"))), - 'label2'=>($obj->label2?$obj->label2:$langs->trans("Unknown")), + $data[] = array('label'=>(($obj->code && $langs->trans("Country".$obj->code) != "Country".$obj->code) ? $langs->trans("Country".$obj->code) : ($obj->label ? $obj->label : $langs->trans("Unknown"))), + 'label_en'=>(($obj->code && $langsen->transnoentitiesnoconv("Country".$obj->code) != "Country".$obj->code) ? $langsen->transnoentitiesnoconv("Country".$obj->code) : ($obj->label ? $obj->label : $langs->trans("Unknown"))), + 'label2'=>($obj->label2 ? $obj->label2 : $langs->trans("Unknown")), 'nb'=>$obj->nb, 'lastdate'=>$db->jdate($obj->lastdate), 'lastsubscriptiondate'=>$db->jdate($obj->lastsubscriptiondate) @@ -214,7 +214,7 @@ dol_fiche_head($head, $tab, $langs->trans("Statistics"), -1, 'user'); // Print title -if ($mode && ! count($data)) +if ($mode && !count($data)) { print $langs->trans("NoValidatedMemberYet").'
'; print '
'; @@ -224,7 +224,7 @@ else if ($mode == 'memberbycountry') print $langs->trans("MembersByCountryDesc").'
'; elseif ($mode == 'memberbystate') print $langs->trans("MembersByStateDesc").'
'; elseif ($mode == 'memberbytown') print $langs->trans("MembersByTownDesc").'
'; - elseif ($mode == 'memberbyregion') print $langs->trans("MembersByRegion").'
';//+ + elseif ($mode == 'memberbyregion') print $langs->trans("MembersByRegion").'
'; //+ else { print $langs->trans("MembersStatisticsDesc").'
'; @@ -234,8 +234,8 @@ else print ''.$langs->trans("MembersStatisticsByState").'
'; print '
'; print ''.$langs->trans("MembersStatisticsByTown").'
'; - print '
';//+ - print ''.$langs->trans("MembersStatisticsByRegion").'
';//+ + print '
'; //+ + print ''.$langs->trans("MembersStatisticsByRegion").'
'; //+ } print '
'; } @@ -260,16 +260,16 @@ if (count($arrayjs) && $mode == 'memberbycountry') print "\tdata.addColumn('number', 'Number');\n"; // loop and dump - $i=0; - foreach($data as $val) + $i = 0; + foreach ($data as $val) { - $valcountry=strtoupper($val['code']); // Should be ISO-3166 code (faster) + $valcountry = strtoupper($val['code']); // Should be ISO-3166 code (faster) //$valcountry=ucfirst($val['label_en']); if ($valcountry == 'Great Britain') { $valcountry = 'United Kingdom'; } // fix case of uk (when we use labels) print "\tdata.setValue(".$i.", 0, \"".$valcountry."\");\n"; print "\tdata.setValue(".$i.", 1, ".$val['nb'].");\n"; // Google's Geomap only supports up to 400 entries - if ($i >= 400){ break; } + if ($i >= 400) { break; } $i++; } diff --git a/htdocs/adherents/stats/index.php b/htdocs/adherents/stats/index.php index 10eca32ac13..cb0e6a463e4 100644 --- a/htdocs/adherents/stats/index.php +++ b/htdocs/adherents/stats/index.php @@ -28,11 +28,11 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherentstats.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; -$WIDTH=DolGraph::getDefaultGraphSizeForStats('width'); -$HEIGHT=DolGraph::getDefaultGraphSizeForStats('height'); +$WIDTH = DolGraph::getDefaultGraphSizeForStats('width'); +$HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); -$userid=GETPOST('userid', 'int'); if ($userid < 0) $userid=0; -$socid=GETPOST('socid', 'int'); if ($socid < 0) $socid=0; +$userid = GETPOST('userid', 'int'); if ($userid < 0) $userid = 0; +$socid = GETPOST('socid', 'int'); if ($socid < 0) $socid = 0; // Security check if ($user->socid > 0) @@ -40,28 +40,28 @@ if ($user->socid > 0) $action = ''; $socid = $user->socid; } -$result=restrictedArea($user, 'adherent', '', '', 'cotisation'); +$result = restrictedArea($user, 'adherent', '', '', 'cotisation'); $year = strftime("%Y", time()); -$startyear=$year-2; -$endyear=$year; +$startyear = $year - 2; +$endyear = $year; // Load translation files required by the page -$langs->loadLangs(array("companies","members")); +$langs->loadLangs(array("companies", "members")); /* * View */ -$form=new Form($db); +$form = new Form($db); $title = $langs->trans("SubscriptionsStatistics"); llxHeader('', $title); print load_fiche_titre($title, '', 'members'); -$dir=$conf->adherent->dir_temp; +$dir = $conf->adherent->dir_temp; dol_mkdir($dir); @@ -79,13 +79,13 @@ $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=memberstats&file=subscripti $px1 = new DolGraph(); $mesg = $px1->isGraphKo(); -if (! $mesg) +if (!$mesg) { $px1->SetData($data); - $i=$startyear; + $i = $startyear; while ($i <= $endyear) { - $legend[]=$i; + $legend[] = $i; $i++; } $px1->SetLegend($legend); @@ -96,7 +96,7 @@ if (! $mesg) $px1->SetYLabel($langs->trans("NbOfSubscriptions")); $px1->SetShading(3); $px1->SetHorizTickIncrement(1); - $px1->mode='depth'; + $px1->mode = 'depth'; $px1->SetTitle($langs->trans("NbOfSubscriptions")); $px1->draw($filenamenb, $fileurlnb); @@ -112,13 +112,13 @@ $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=memberstats&file=subscr $px2 = new DolGraph(); $mesg = $px2->isGraphKo(); -if (! $mesg) +if (!$mesg) { $px2->SetData($data); - $i=$startyear; + $i = $startyear; while ($i <= $endyear) { - $legend[]=$i; + $legend[] = $i; $i++; } $px2->SetLegend($legend); @@ -129,7 +129,7 @@ if (! $mesg) $px2->SetYLabel($langs->trans("AmountOfSubscriptions")); $px2->SetShading(3); $px2->SetHorizTickIncrement(1); - $px2->mode='depth'; + $px2->mode = 'depth'; $px2->SetTitle($langs->trans("AmountOfSubscriptions")); $px2->draw($filenameamount, $fileurlamount); @@ -174,11 +174,11 @@ print ''.$langs->trans("AmountTotal").''; print ''.$langs->trans("AmountAverage").''; print ''; -$oldyear=0; +$oldyear = 0; foreach ($data as $val) { $year = $val['year']; - while ($oldyear > $year+1) + while ($oldyear > $year + 1) { // If we have empty year $oldyear--; print ''; @@ -202,7 +202,7 @@ foreach ($data as $val) print ''.price(price2num($val['total'], 'MT'), 1).''; print ''.price(price2num($val['avg'], 'MT'), 1).''; print ''; - $oldyear=$year; + $oldyear = $year; } print ''; diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php index 12301b272a6..47866fc8981 100644 --- a/htdocs/adherents/subscription.php +++ b/htdocs/adherents/subscription.php @@ -81,33 +81,33 @@ if ($rowid) $result = $object->fetch($rowid); // Define variables to know what current user can do on users - $canadduser=($user->admin || $user->rights->user->user->creer); + $canadduser = ($user->admin || $user->rights->user->user->creer); // Define variables to know what current user can do on properties of user linked to edited member if ($object->user_id) { // $user is the user editing, $object->user_id is the user's id linked to the edited member - $caneditfielduser=( (($user->id == $object->user_id) && $user->rights->user->self->creer) - || (($user->id != $object->user_id) && $user->rights->user->user->creer) ); - $caneditpassworduser=( (($user->id == $object->user_id) && $user->rights->user->self->password) - || (($user->id != $object->user_id) && $user->rights->user->user->password) ); + $caneditfielduser = ((($user->id == $object->user_id) && $user->rights->user->self->creer) + || (($user->id != $object->user_id) && $user->rights->user->user->creer)); + $caneditpassworduser = ((($user->id == $object->user_id) && $user->rights->user->self->password) + || (($user->id != $object->user_id) && $user->rights->user->user->password)); } } // Define variables to know what current user can do on members -$canaddmember=$user->rights->adherent->creer; +$canaddmember = $user->rights->adherent->creer; // Define variables to know what current user can do on properties of a member if ($rowid) { - $caneditfieldmember=$user->rights->adherent->creer; + $caneditfieldmember = $user->rights->adherent->creer; } // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('subscription')); // PDF -$hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); -$hidedesc = (GETPOST('hidedesc', 'int') ? GETPOST('hidedesc', 'int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0)); -$hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); +$hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); +$hidedesc = (GETPOST('hidedesc', 'int') ? GETPOST('hidedesc', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0)); +$hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); /* diff --git a/htdocs/adherents/subscription/info.php b/htdocs/adherents/subscription/info.php index f3d9fc5790c..78b3fd4384b 100644 --- a/htdocs/adherents/subscription/info.php +++ b/htdocs/adherents/subscription/info.php @@ -29,12 +29,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php'; // Load translation files required by the page -$langs->loadLangs(array("companies","members","bills","users")); +$langs->loadLangs(array("companies", "members", "bills", "users")); if (!$user->rights->adherent->lire) accessforbidden(); -$rowid=GETPOST("rowid", 'int'); +$rowid = GETPOST("rowid", 'int'); diff --git a/htdocs/adherents/subscription/list.php b/htdocs/adherents/subscription/list.php index c75041705df..b9f5611f7e8 100644 --- a/htdocs/adherents/subscription/list.php +++ b/htdocs/adherents/subscription/list.php @@ -33,6 +33,7 @@ $langs->loadLangs(array("members", "companies")); $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); +$contextpage = GETPOST('contextpage', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'myobjectlist'; // To manage different context of search @@ -117,7 +118,6 @@ if (empty($reshook)) // Purge search criteria if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers { - $search = ""; $search_type = ""; $search_ref = ""; $search_lastname = ""; @@ -338,7 +338,7 @@ if (!empty($arrayfields['t.libelle']['checked'])) if (!empty($arrayfields['d.bank']['checked'])) { print ''; - $form->select_comptes($search_account, 'search_account', 0, '', 1); + $form->select_comptes($search_account, 'search_account', 0, '', 1, '', 0, 'maxwidth150'); print ''; } @@ -444,7 +444,7 @@ while ($i < min($num, $limit)) // Type if (!empty($arrayfields['d.fk_type']['checked'])) { - print ''; + print ''; if ($typeid > 0) { print $adht->getNomUrl(1); @@ -464,14 +464,14 @@ while ($i < min($num, $limit)) // Firstname if (!empty($arrayfields['d.firstname']['checked'])) { - print ''.$adherent->firstname.''; + print ''.$adherent->firstname.''; if (!$i) $totalarray['nbfield']++; } // Login if (!empty($arrayfields['d.login']['checked'])) { - print ''.$adherent->login.''; + print ''.$adherent->login.''; if (!$i) $totalarray['nbfield']++; } @@ -487,7 +487,7 @@ while ($i < min($num, $limit)) // Banque if (!empty($arrayfields['d.bank']['checked'])) { - print ""; + print ''; if ($obj->fk_account > 0) { $accountstatic->id = $obj->fk_account; diff --git a/htdocs/adherents/type_translation.php b/htdocs/adherents/type_translation.php index 26850c72b84..4c68b82784f 100644 --- a/htdocs/adherents/type_translation.php +++ b/htdocs/adherents/type_translation.php @@ -71,21 +71,21 @@ if ($action == 'vadd' && $cancel != $langs->trans("Cancel") && $user->rights->ad $current_lang = $langs->getDefaultLang(); // update of object - if ( $_POST["forcelangprod"] == $current_lang ) + if ($_POST["forcelangprod"] == $current_lang) { $object->label = $_POST["libelle"]; - $object->description = dol_htmlcleanlastbr($_POST["desc"]); + $object->description = dol_htmlcleanlastbr($_POST["desc"]); $object->other = dol_htmlcleanlastbr($_POST["other"]); } else { $object->multilangs[$_POST["forcelangprod"]]["label"] = $_POST["libelle"]; - $object->multilangs[$_POST["forcelangprod"]]["description"] = dol_htmlcleanlastbr($_POST["desc"]); + $object->multilangs[$_POST["forcelangprod"]]["description"] = dol_htmlcleanlastbr($_POST["desc"]); $object->multilangs[$_POST["forcelangprod"]]["other"] = dol_htmlcleanlastbr($_POST["other"]); } // backup into database - if ( $object->setMultiLangs($user) > 0 ) + if ($object->setMultiLangs($user) > 0) { $action = ''; } diff --git a/htdocs/admin/accountant.php b/htdocs/admin/accountant.php index b5a6e2e3dfe..7a436c5a363 100644 --- a/htdocs/admin/accountant.php +++ b/htdocs/admin/accountant.php @@ -28,27 +28,27 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -$action=GETPOST('action', 'aZ09'); -$contextpage=GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'adminaccoutant'; // To manage different context of search +$action = GETPOST('action', 'aZ09'); +$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'adminaccoutant'; // To manage different context of search // Load translation files required by the page $langs->loadLangs(array('admin', 'companies')); -if (! $user->admin) accessforbidden(); +if (!$user->admin) accessforbidden(); -$error=0; +$error = 0; /* * Actions */ -$parameters=array(); -$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); -if ( ($action == 'update' && ! GETPOST("cancel", 'alpha')) -|| ($action == 'updateedit') ) +if (($action == 'update' && !GETPOST("cancel", 'alpha')) +|| ($action == 'updateedit')) { dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NAME", GETPOST("nom", 'nohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ADDRESS", GETPOST("address", 'nohtml'), 'chaine', 0, '', $conf->entity); @@ -64,7 +64,7 @@ if ( ($action == 'update' && ! GETPOST("cancel", 'alpha')) dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_CODE", GETPOST("code", 'nohtml'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NOTE", GETPOST("note", 'none'), 'chaine', 0, '', $conf->entity); - if ($action != 'updateedit' && ! $error) + if ($action != 'updateedit' && !$error) { header("Location: ".$_SERVER["PHP_SELF"]); exit; @@ -75,7 +75,7 @@ if ( ($action == 'update' && ! GETPOST("cancel", 'alpha')) * View */ -$help_url=''; +$help_url = ''; llxHeader('', $langs->trans("CompanyFoundation"), $help_url); print load_fiche_titre($langs->trans("CompanyFoundation"), '', 'title_setup'); @@ -84,11 +84,11 @@ $head = company_admin_prepare_head(); dol_fiche_head($head, 'accountant', $langs->trans("Company"), -1, 'company'); -$form=new Form($db); -$formother=new FormOther($db); -$formcompany=new FormCompany($db); +$form = new Form($db); +$formother = new FormOther($db); +$formcompany = new FormCompany($db); -$countrynotdefined=''.$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; +$countrynotdefined = ''.$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; print ''.$langs->trans("AccountantDesc")."
\n"; print "
\n"; @@ -109,22 +109,22 @@ print '
' print ''; print ''; -print ''; +print '
'; print ''."\n"; // Name print ''."\n"; +print 'global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' autofocus="autofocus"').'>'."\n"; // Address print ''."\n"; +print ''."\n"; print ''."\n"; +print ''."\n"; print ''."\n"; +print ''."\n"; // Country print ''."\n"; print ''; +print ''; print ''."\n"; print ''; +print ''; print ''."\n"; print ''; +print ''; print ''."\n"; // Web print ''; +print ''; print ''."\n"; // Code print ''."\n"; +print ''."\n"; // Note print ''; + } else { + print ''; + } } +print "
'.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
'; -print 'global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' autofocus="autofocus"').'>
'; -print '
'; -print '
'; -print '
'; @@ -139,28 +139,28 @@ print '
'; print img_picto('', 'object_phoning', '', false, 0, 0, '', 'paddingright'); -print '
'; print img_picto('', 'object_phoning_fax', '', false, 0, 0, '', 'paddingright'); -print '
'; print img_picto('', 'object_email', '', false, 0, 0, '', 'paddingright'); -print '
'; print img_picto('', 'globe', '', false, 0, 0, '', 'paddingright'); -print '
'; -print '
'; diff --git a/htdocs/admin/agenda.php b/htdocs/admin/agenda.php index b01f96019b5..b6231a45a10 100644 --- a/htdocs/admin/agenda.php +++ b/htdocs/admin/agenda.php @@ -172,7 +172,7 @@ if (!empty($triggers)) // If 'element' value is myobject@mymodule instead of mymodule $tmparray = explode('@', $module); - if (! empty($tmparray[1])) { + if (!empty($tmparray[1])) { $module = $tmparray[1]; } diff --git a/htdocs/admin/agenda_extrafields.php b/htdocs/admin/agenda_extrafields.php index b4d71415e05..a0197f70274 100644 --- a/htdocs/admin/agenda_extrafields.php +++ b/htdocs/admin/agenda_extrafields.php @@ -41,13 +41,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='actioncomm'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'actioncomm'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -64,15 +64,15 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("Agenda"); +$textobject = $langs->transnoentitiesnoconv("Agenda"); -$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; +$wikihelp = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; llxHeader('', $langs->trans("AgendaSetup"), $wikihelp); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("AgendaSetup"), $linkback, 'title_setup'); -$head=agenda_prepare_head(); +$head = agenda_prepare_head(); dol_fiche_head($head, 'attributes', $langs->trans("Agenda"), -1, 'action'); @@ -109,7 +109,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php index 9eddccd0ba9..77113ff1e13 100644 --- a/htdocs/admin/agenda_extsites.php +++ b/htdocs/admin/agenda_extsites.php @@ -38,14 +38,14 @@ if (!$user->admin) accessforbidden(); $langs->loadLangs(array('agenda', 'admin', 'other')); $def = array(); -$actiontest=GETPOST('test', 'alpha'); -$actionsave=GETPOST('save', 'alpha'); +$actiontest = GETPOST('test', 'alpha'); +$actionsave = GETPOST('save', 'alpha'); -if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5; -$MAXAGENDA=$conf->global->AGENDA_EXT_NB; +if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB = 5; +$MAXAGENDA = $conf->global->AGENDA_EXT_NB; // List of available colors -$colorlist=array('BECEDD','DDBECE','BFDDBE','F598B4','F68654','CBF654','A4A4A5'); +$colorlist = array('BECEDD', 'DDBECE', 'BFDDBE', 'F598B4', 'F68654', 'CBF654', 'A4A4A5'); /* @@ -56,23 +56,23 @@ if ($actionsave) { $db->begin(); - $disableext=GETPOST('AGENDA_DISABLE_EXT', 'alpha'); - $res=dolibarr_set_const($db, 'AGENDA_DISABLE_EXT', $disableext, 'chaine', 0, '', $conf->entity); + $disableext = GETPOST('AGENDA_DISABLE_EXT', 'alpha'); + $res = dolibarr_set_const($db, 'AGENDA_DISABLE_EXT', $disableext, 'chaine', 0, '', $conf->entity); - $i=1; $errorsaved=0; - $error=0; + $i = 1; $errorsaved = 0; + $error = 0; // Save agendas while ($i <= $MAXAGENDA) { - $name=trim(GETPOST('AGENDA_EXT_NAME'.$i, 'alpha')); - $src=trim(GETPOST('AGENDA_EXT_SRC'.$i, 'alpha')); - $offsettz=trim(GETPOST('AGENDA_EXT_OFFSETTZ'.$i, 'alpha')); - $color=trim(GETPOST('AGENDA_EXT_COLOR'.$i, 'alpha')); - if ($color=='-1') $color=''; - $enabled=trim(GETPOST('AGENDA_EXT_ENABLED'.$i, 'alpha')); + $name = trim(GETPOST('AGENDA_EXT_NAME'.$i, 'alpha')); + $src = trim(GETPOST('AGENDA_EXT_SRC'.$i, 'alpha')); + $offsettz = trim(GETPOST('AGENDA_EXT_OFFSETTZ'.$i, 'alpha')); + $color = trim(GETPOST('AGENDA_EXT_COLOR'.$i, 'alpha')); + if ($color == '-1') $color = ''; + $enabled = trim(GETPOST('AGENDA_EXT_ENABLED'.$i, 'alpha')); - if (! empty($src) && ! dol_is_url($src)) + if (!empty($src) && !dol_is_url($src)) { setEventMessages($langs->trans("ErrorParamMustBeAnUrl"), null, 'errors'); $error++; @@ -81,29 +81,29 @@ if ($actionsave) } //print '-name='.$name.'-color='.$color; - $res=dolibarr_set_const($db, 'AGENDA_EXT_NAME'.$i, $name, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; - $res=dolibarr_set_const($db, 'AGENDA_EXT_SRC'.$i, $src, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; - $res=dolibarr_set_const($db, 'AGENDA_EXT_OFFSETTZ'.$i, $offsettz, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; - $res=dolibarr_set_const($db, 'AGENDA_EXT_COLOR'.$i, $color, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; - $res=dolibarr_set_const($db, 'AGENDA_EXT_ENABLED'.$i, $enabled, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; + $res = dolibarr_set_const($db, 'AGENDA_EXT_NAME'.$i, $name, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; + $res = dolibarr_set_const($db, 'AGENDA_EXT_SRC'.$i, $src, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; + $res = dolibarr_set_const($db, 'AGENDA_EXT_OFFSETTZ'.$i, $offsettz, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; + $res = dolibarr_set_const($db, 'AGENDA_EXT_COLOR'.$i, $color, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; + $res = dolibarr_set_const($db, 'AGENDA_EXT_ENABLED'.$i, $enabled, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; $i++; } // Save nb of agenda - if (! $error) + if (!$error) { - $res=dolibarr_set_const($db, 'AGENDA_EXT_NB', trim(GETPOST('AGENDA_EXT_NB', 'int')), 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; - if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5; - $MAXAGENDA=empty($conf->global->AGENDA_EXT_NB)?5:$conf->global->AGENDA_EXT_NB; + $res = dolibarr_set_const($db, 'AGENDA_EXT_NB', trim(GETPOST('AGENDA_EXT_NB', 'int')), 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; + if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB = 5; + $MAXAGENDA = empty($conf->global->AGENDA_EXT_NB) ? 5 : $conf->global->AGENDA_EXT_NB; } - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -119,24 +119,24 @@ if ($actionsave) * View */ -$form=new Form($db); -$formadmin=new FormAdmin($db); -$formother=new FormOther($db); +$form = new Form($db); +$formadmin = new FormAdmin($db); +$formother = new FormOther($db); -$arrayofjs=array(); -$arrayofcss=array(); +$arrayofjs = array(); +$arrayofcss = array(); -$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; +$wikihelp = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; llxHeader('', $langs->trans("AgendaSetup"), $wikihelp, '', 0, 0, $arrayofjs, $arrayofcss); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("AgendaSetup"), $linkback, 'title_setup'); print ''; print ''; print ''; -$head=agenda_prepare_head(); +$head = agenda_prepare_head(); dol_fiche_head($head, 'extsites', $langs->trans("Agenda"), -1, 'action'); @@ -144,8 +144,8 @@ print ''.$langs->trans("AgendaExtSitesDesc")."\n"; -$selectedvalue=$conf->global->AGENDA_DISABLE_EXT; -if ($selectedvalue==1) $selectedvalue=0; else $selectedvalue=1; +$selectedvalue = $conf->global->AGENDA_DISABLE_EXT; +if ($selectedvalue == 1) $selectedvalue = 0; else $selectedvalue = 1; print ""; @@ -199,30 +199,30 @@ print "'; print ""; -$i=1; +$i = 1; while ($i <= $MAXAGENDA) { - $key=$i; - $name='AGENDA_EXT_NAME'.$key; - $src='AGENDA_EXT_SRC'.$key; - $offsettz='AGENDA_EXT_OFFSETTZ'.$key; - $color='AGENDA_EXT_COLOR'.$key; - $enabled='AGENDA_EXT_ENABLED'.$key; + $key = $i; + $name = 'AGENDA_EXT_NAME'.$key; + $src = 'AGENDA_EXT_SRC'.$key; + $offsettz = 'AGENDA_EXT_OFFSETTZ'.$key; + $color = 'AGENDA_EXT_COLOR'.$key; + $enabled = 'AGENDA_EXT_ENABLED'.$key; print ''; // Nb print '"; // Name - print ''; + print ''; // URL - print ''; + print ''; // Offset TZ - print ''; + print ''; // Color (Possible colors are limited by Google) print ''; print ""; $i++; diff --git a/htdocs/admin/agenda_other.php b/htdocs/admin/agenda_other.php index 4960f044065..10bfa13d1ce 100644 --- a/htdocs/admin/agenda_other.php +++ b/htdocs/admin/agenda_other.php @@ -324,7 +324,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) } print ''; -print ''; +print ''; print ''; print '
".$form->textwithpicto($langs->trans("FixTZ"), $langs->trans("FillFix print ''.$langs->trans("Color").'
'.$langs->trans("AgendaExtNb", $key)."'; //print $formadmin->selectColor($conf->global->$color, "google_agenda_color".$key, $colorlist); - print $formother->selectColor((GETPOST("AGENDA_EXT_COLOR".$key)?GETPOST("AGENDA_EXT_COLOR".$key):$conf->global->$color), "AGENDA_EXT_COLOR".$key, 'extsitesconfig', 1, '', 'hideifnotset'); + print $formother->selectColor((GETPOST("AGENDA_EXT_COLOR".$key) ?GETPOST("AGENDA_EXT_COLOR".$key) : $conf->global->$color), "AGENDA_EXT_COLOR".$key, 'extsitesconfig', 1, '', 'hideifnotset'); print '
'."\n"; diff --git a/htdocs/admin/agenda_reminder.php b/htdocs/admin/agenda_reminder.php index b641dd74fe2..3d51bd3158c 100644 --- a/htdocs/admin/agenda_reminder.php +++ b/htdocs/admin/agenda_reminder.php @@ -30,7 +30,7 @@ if (!$user->admin) accessforbidden(); // Load translation files required by the page -$langs->loadLangs(array("admin","other","agenda")); +$langs->loadLangs(array("admin", "other", "agenda")); $action = GETPOST('action', 'alpha'); $value = GETPOST('value', 'alpha'); @@ -48,8 +48,8 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) { - $code=$reg[1]; - $value=(GETPOST($code, 'alpha') ? GETPOST($code, 'alpha') : 1); + $code = $reg[1]; + $value = (GETPOST($code, 'alpha') ? GETPOST($code, 'alpha') : 1); if (dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity) > 0) { Header("Location: ".$_SERVER["PHP_SELF"]); @@ -63,7 +63,7 @@ if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) { - $code=$reg[1]; + $code = $reg[1]; if (dolibarr_del_const($db, $code, $conf->entity) > 0) { Header("Location: ".$_SERVER["PHP_SELF"]); @@ -83,21 +83,21 @@ if ($action == 'set') } elseif ($action == 'specimen') // For orders { - $modele=GETPOST('module', 'alpha'); + $modele = GETPOST('module', 'alpha'); $commande = new CommandeFournisseur($db); $commande->initAsSpecimen(); - $commande->thirdparty=$specimenthirdparty; + $commande->thirdparty = $specimenthirdparty; // Search template files - $file=''; $classname=''; $filefound=0; - $dirmodels=array_merge(array('/'), (array) $conf->modules_parts['models']); - foreach($dirmodels as $reldir) + $file = ''; $classname = ''; $filefound = 0; + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { - $file=dol_buildpath($reldir."core/modules/action/doc/pdf_".$modele.".modules.php", 0); + $file = dol_buildpath($reldir."core/modules/action/doc/pdf_".$modele.".modules.php", 0); if (file_exists($file)) { - $filefound=1; + $filefound = 1; $classname = "pdf_".$modele; break; } @@ -166,21 +166,21 @@ elseif ($action == 'setdoc') * View */ -$formactions=new FormActions($db); -$dirmodels=array_merge(array('/'), (array) $conf->modules_parts['models']); +$formactions = new FormActions($db); +$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); llxHeader(); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("AgendaSetup"), $linkback, 'title_setup'); -$head=agenda_prepare_head(); +$head = agenda_prepare_head(); dol_fiche_head($head, 'reminders', $langs->trans("Agenda"), -1, 'action'); print ''; -print ''; +print ''; print ''; print '
'."\n"; diff --git a/htdocs/admin/barcode.php b/htdocs/admin/barcode.php index c5cefe48674..e577942ab21 100644 --- a/htdocs/admin/barcode.php +++ b/htdocs/admin/barcode.php @@ -89,17 +89,17 @@ elseif ($action == 'update') elseif ($action == 'updateengine') { $sql = "SELECT rowid, coder"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_barcode_type"; - $sql.= " WHERE entity = ".$conf->entity; - $sql.= " ORDER BY code"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_barcode_type"; + $sql .= " WHERE entity = ".$conf->entity; + $sql .= " ORDER BY code"; - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); $i = 0; - while ($i < $num) + while ($i < $num) { $obj = $db->fetch_object($resql); @@ -109,12 +109,12 @@ elseif ($action == 'updateengine') $code_id = $obj->rowid; $sqlp = "UPDATE ".MAIN_DB_PREFIX."c_barcode_type"; - $sqlp.= " SET coder = '" . $coder."'"; - $sqlp.= " WHERE rowid = ". $code_id; - $sqlp.= " AND entity = ".$conf->entity; + $sqlp .= " SET coder = '".$coder."'"; + $sqlp .= " WHERE rowid = ".$code_id; + $sqlp .= " AND entity = ".$conf->entity; - $upsql=$db->query($sqlp); - if (! $upsql) dol_print_error($db); + $upsql = $db->query($sqlp); + if (!$upsql) dol_print_error($db); } $i++; @@ -209,18 +209,18 @@ print '' print "\n"; $sql = "SELECT rowid, code as encoding, libelle as label, coder, example"; -$sql.= " FROM ".MAIN_DB_PREFIX."c_barcode_type"; -$sql.= " WHERE entity = ".$conf->entity; -$sql.= " ORDER BY code"; +$sql .= " FROM ".MAIN_DB_PREFIX."c_barcode_type"; +$sql .= " WHERE entity = ".$conf->entity; +$sql .= " ORDER BY code"; dol_syslog("admin/barcode.php", LOG_DEBUG); -$resql=$db->query($sql); +$resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); $i = 0; - while ($i < $num) + while ($i < $num) { $obj = $db->fetch_object($resql); diff --git a/htdocs/admin/boxes.php b/htdocs/admin/boxes.php index 76fc188bc0c..c6ff9e94749 100644 --- a/htdocs/admin/boxes.php +++ b/htdocs/admin/boxes.php @@ -473,7 +473,7 @@ print ''; print ''; // Activate FileCache - Developement -if ($conf->global->MAIN_FEATURES_LEVEL == 2 || ! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { +if ($conf->global->MAIN_FEATURES_LEVEL == 2 || !empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { print ''; diff --git a/htdocs/admin/chequereceipts.php b/htdocs/admin/chequereceipts.php index f5f0f6eb752..8b5e7c433bf 100644 --- a/htdocs/admin/chequereceipts.php +++ b/htdocs/admin/chequereceipts.php @@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/paiement/cheque/class/remisecheque.class.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","companies","bills","other","banks")); +$langs->loadLangs(array("admin", "companies", "bills", "other", "banks")); if (!$user->admin) accessforbidden(); @@ -51,13 +51,13 @@ if (empty($conf->global->CHEQUERECEIPTS_ADDON)) $conf->global->CHEQUERECEIPTS_AD if ($action == 'updateMask') { - $maskconstchequereceipts=GETPOST('maskconstchequereceipts', 'alpha'); - $maskchequereceipts=GETPOST('maskchequereceipts', 'alpha'); + $maskconstchequereceipts = GETPOST('maskconstchequereceipts', 'alpha'); + $maskchequereceipts = GETPOST('maskchequereceipts', 'alpha'); if ($maskconstchequereceipts) $res = dolibarr_set_const($db, $maskconstchequereceipts, $maskchequereceipts, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; + if (!$res > 0) $error++; - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -74,13 +74,13 @@ if ($action == 'setmod') if ($action == 'set_BANK_CHEQUERECEIPT_FREE_TEXT') { - $freetext = GETPOST('BANK_CHEQUERECEIPT_FREE_TEXT', 'none'); // No alpha here, we want exact string + $freetext = GETPOST('BANK_CHEQUERECEIPT_FREE_TEXT', 'none'); // No alpha here, we want exact string $res = dolibarr_set_const($db, "BANK_CHEQUERECEIPT_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; + if (!$res > 0) $error++; - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -94,12 +94,12 @@ if ($action == 'set_BANK_CHEQUERECEIPT_FREE_TEXT') * View */ -$dirmodels=array_merge(array('/'), (array) $conf->modules_parts['models']); +$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); llxHeader("", $langs->trans("BankSetupModule")); -$form=new Form($db); +$form = new Form($db); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("BankSetupModule"), $linkback, 'title_setup'); $head = bank_admin_prepare_head(null); @@ -130,25 +130,25 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - if (! is_dir($dir.$file) || (substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS')) + if (!is_dir($dir.$file) || (substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS')) { $filebis = $file; - $name = substr($file, 4, dol_strlen($file) -16); + $name = substr($file, 4, dol_strlen($file) - 16); $classname = preg_replace('/\.php$/', '', $file); // For compatibility - if (! is_file($dir.$filebis)) + if (!is_file($dir.$filebis)) { $filebis = $file."/".$file.".modules.php"; $classname = "mod_chequereceipt_".$file; } // Check if there is a filter on country preg_match('/\-(.*)_(.*)$/', $classname, $reg); - if (! empty($reg[2]) && $reg[2] != strtoupper($mysoc->country_code)) continue; + if (!empty($reg[2]) && $reg[2] != strtoupper($mysoc->country_code)) continue; $classname = preg_replace('/\-.*$/', '', $classname); - if (! class_exists($classname) && is_readable($dir.$filebis) && (preg_match('/mod_/', $filebis) || preg_match('/mod_/', $classname)) && substr($filebis, dol_strlen($filebis)-3, 3) == 'php') + if (!class_exists($classname) && is_readable($dir.$filebis) && (preg_match('/mod_/', $filebis) || preg_match('/mod_/', $classname)) && substr($filebis, dol_strlen($filebis) - 3, 3) == 'php') { // Charging the numbering class require_once $dir.$filebis; @@ -156,13 +156,13 @@ foreach ($dirmodels as $reldir) $module = new $classname($db); // Show modules according to features level - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; if ($module->isEnabled()) { print ''."\n"; @@ -188,21 +188,21 @@ foreach ($dirmodels as $reldir) } print ''; - $chequereceipts=new RemiseCheque($db); + $chequereceipts = new RemiseCheque($db); $chequereceipts->initAsSpecimen(); // Example - $htmltooltip=''; - $htmltooltip.=''.$langs->trans("Version").': '.$module->getVersion().'
'; - $nextval=$module->getNextValue($mysoc, $chequereceipts); + $htmltooltip = ''; + $htmltooltip .= ''.$langs->trans("Version").': '.$module->getVersion().'
'; + $nextval = $module->getNextValue($mysoc, $chequereceipts); if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval - $htmltooltip.=$langs->trans("NextValue").': '; + $htmltooltip .= $langs->trans("NextValue").': '; if ($nextval) { - if (preg_match('/^Error/', $nextval) || $nextval=='NotConfigured') + if (preg_match('/^Error/', $nextval) || $nextval == 'NotConfigured') $nextval = $langs->trans($nextval); - $htmltooltip.=$nextval.'
'; + $htmltooltip .= $nextval.'
'; } else { - $htmltooltip.=$langs->trans($module->error).'
'; + $htmltooltip .= $langs->trans($module->error).'
'; } } @@ -211,7 +211,7 @@ foreach ($dirmodels as $reldir) if ($conf->global->CHEQUERECEIPTS_ADDON.'.php' == $file) // If module is the one used, we show existing errors { - if (! empty($module->error)) dol_htmloutput_mesg($module->error, '', 'error', 1); + if (!empty($module->error)) dol_htmloutput_mesg($module->error, '', 'error', 1); } print ''; @@ -247,15 +247,15 @@ print ''; print ''; print "\n"; -$substitutionarray=pdf_getSubstitutionArray($langs, null, null, 2); -$substitutionarray['__(AnyTranslationKey)__']=$langs->trans("Translation"); +$substitutionarray = pdf_getSubstitutionArray($langs, null, null, 2); +$substitutionarray['__(AnyTranslationKey)__'] = $langs->trans("Translation"); $htmltext = ''.$langs->trans("AvailableVariables").':
'; -foreach($substitutionarray as $key => $val) $htmltext.=$key.'
'; -$htmltext.='
'; +foreach ($substitutionarray as $key => $val) $htmltext .= $key.'
'; +$htmltext .= ''; print ''; print ''; + } else { + print ''; + } } + +print "
'.$langs->trans("CodeBarGenerator").'
'.$langs->trans("EnableFileCache").''; print $form->selectyesno('MAIN_ACTIVATE_FILECACHE', $conf->global->MAIN_ACTIVATE_FILECACHE, 1); print '
'; - print (empty($module->name)?$name:$module->name); + print (empty($module->name) ? $name : $module->name); print "\n"; print $module->info(); @@ -171,9 +171,9 @@ foreach ($dirmodels as $reldir) // Show example of numbering module print ''; - $tmp=$module->getExample(); + $tmp = $module->getExample(); if (preg_match('/^Error/', $tmp)) print '
'.$langs->trans($tmp).'
'; - elseif ($tmp=='NotConfigured') print $langs->trans($tmp); + elseif ($tmp == 'NotConfigured') print $langs->trans($tmp); else print $tmp; print '
  
'; print $form->textwithpicto($langs->trans("FreeLegalTextOnChequeReceipts"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; -$variablename='BANK_CHEQUERECEIPT_FREE_TEXT'; +$variablename = 'BANK_CHEQUERECEIPT_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { print ''; @@ -263,7 +263,7 @@ if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print '
'; diff --git a/htdocs/admin/clicktodial.php b/htdocs/admin/clicktodial.php index 3fb3340a702..36205697e89 100644 --- a/htdocs/admin/clicktodial.php +++ b/htdocs/admin/clicktodial.php @@ -40,8 +40,8 @@ $action = GETPOST('action', 'aZ09'); if ($action == 'setvalue' && $user->admin) { - $result1=dolibarr_set_const($db, "CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS", GETPOST("CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS"), 'chaine', 0, '', $conf->entity); - $result2=dolibarr_set_const($db, "CLICKTODIAL_URL", GETPOST("CLICKTODIAL_URL"), 'chaine', 0, '', $conf->entity); + $result1 = dolibarr_set_const($db, "CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS", GETPOST("CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS"), 'chaine', 0, '', $conf->entity); + $result2 = dolibarr_set_const($db, "CLICKTODIAL_URL", GETPOST("CLICKTODIAL_URL"), 'chaine', 0, '', $conf->entity); if ($result1 >= 0 && $result2 >= 0) { @@ -60,10 +60,10 @@ if ($action == 'setvalue' && $user->admin) $user->fetch_clicktodial(); -$wikihelp='EN:Module_ClickToDial_En|FR:Module_ClickToDial|ES:Módulo_ClickTodial_Es'; +$wikihelp = 'EN:Module_ClickToDial_En|FR:Module_ClickToDial|ES:Módulo_ClickTodial_Es'; llxHeader('', $langs->trans("ClickToDialSetup"), $wikihelp); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ClickToDialSetup"), $linkback, 'title_setup'); print ''.$langs->trans("ClickToDialDesc")."
\n"; @@ -90,7 +90,7 @@ print '
'; print $langs->trans("DefaultLink").''; -print 'global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS?' disabled="disabled"':'').' value="'.$conf->global->CLICKTODIAL_URL.'">
'; +print 'global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS ? ' disabled="disabled"' : '').' value="'.$conf->global->CLICKTODIAL_URL.'">
'; print ajax_autoselect('CLICKTODIAL_URL'); print '
'; print $langs->trans("ClickToDialUrlDesc").'
'; @@ -111,24 +111,24 @@ print '

'; - print ''; + print ''; print $langs->trans("LinkToTestClickToDial", $user->login).' : '; print ''; print ''; print ''; - $setupcomplete=1; - if (preg_match('/__LOGIN__/', $conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_login)) $setupcomplete=0; - if (preg_match('/__PASSWORD__/', $conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_password)) $setupcomplete=0; - if (preg_match('/__PHONEFROM__/', $conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_poste)) $setupcomplete=0; + $setupcomplete = 1; + if (preg_match('/__LOGIN__/', $conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_login)) $setupcomplete = 0; + if (preg_match('/__PASSWORD__/', $conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_password)) $setupcomplete = 0; + if (preg_match('/__PHONEFROM__/', $conf->global->CLICKTODIAL_URL) && empty($user->clicktodial_poste)) $setupcomplete = 0; if ($setupcomplete) { diff --git a/htdocs/admin/commande_fournisseur_dispatch_extrafields.php b/htdocs/admin/commande_fournisseur_dispatch_extrafields.php index b7e874beec2..8d5925e363d 100644 --- a/htdocs/admin/commande_fournisseur_dispatch_extrafields.php +++ b/htdocs/admin/commande_fournisseur_dispatch_extrafields.php @@ -46,13 +46,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->trans($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='commande_fournisseur_dispatch'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'commande_fournisseur_dispatch'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -69,11 +69,11 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("Receptions"); +$textobject = $langs->transnoentitiesnoconv("Receptions"); llxHeader('', $langs->trans("ReceptionsSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ReceptionsSetup"), $linkback, 'title_setup'); print "
\n"; @@ -114,7 +114,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index 222cc292ace..3229eda7365 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -41,7 +41,7 @@ $action = GETPOST('action', 'aZ09'); $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'admincompany'; // To manage different context of search // Load translation files required by the page -$langs->loadLangs(array('admin', 'companies')); +$langs->loadLangs(array('admin', 'companies', 'bills')); if (!$user->admin) accessforbidden(); @@ -410,7 +410,7 @@ print '
'; print ''; -print ''; +print '
'; print ''."\n"; // Name @@ -493,7 +493,7 @@ if (!empty($mysoc->logo_mini)) { print ''; print ''; } - print ''; + print ''; } else { print ''; } @@ -511,7 +511,7 @@ if (!empty($mysoc->logo_squarred_mini)) { print ''; print ''; } - print ''; + print ''; } else { print ''; } @@ -527,13 +527,13 @@ print '
'.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
'; // Social networks print '
'; -print ''; +print '
'; print ''; print ''; print "\n"; $listofnetworks = array('facebook'=>'facebook', 'twitter'=>'twitter', 'linkedin'=>'linkedin', 'instagram'=>'instagram', 'youtube'=>'youtube', 'github'=>'github'); -foreach($listofnetworks as $networkkey => $networkicon) { +foreach ($listofnetworks as $networkkey => $networkicon) { print '
'.$langs->trans("SocialNetworksInformation").''.$langs->trans("Value").'
'; print ''; $networkconst = 'MAIN_INFO_SOCIETE_'.strtoupper($networkkey).'_URL'; @@ -547,7 +547,7 @@ print "
"; print '
'; // IDs of the company (country-specific) -print ''; +print '
'; print ''; $langs->load("companies"); @@ -680,7 +680,7 @@ print '
'.$langs->trans("CompanyIds").''.$langs->trans("Value").'
'; // Fiscal year start print '
'; -print ''; +print '
'; print ''; print ''; print "\n"; @@ -689,17 +689,19 @@ print ''; print "
'.$langs->trans("FiscalYearInformation").''.$langs->trans("Value").'
"; - - -// Fiscal options print '
'; -print ''; + + +// Sales taxes (VAT, IRPF, ...) +print load_fiche_titre($langs->trans("TypeOfSaleTaxes")); + +print '
'; print ''; print ''; print ''; print "\n"; - +// Main tax print ""; print '\n"; print "
'.$langs->trans("VATManagement").''.$langs->trans("Description").' 
'; $tooltiphelp = ''; @@ -717,19 +719,16 @@ print "
"; -/* - * Local Taxes - */ +// Second tax +print '
'; +print ''; +print ''; +print ''; +print ''; +print "\n"; + if ($mysoc->useLocalTax(1)) { - // Local Tax 1 - print '
'; - print '
'.$form->textwithpicto($langs->transcountry("LocalTax1Management", $mysoc->country_code), $langs->transcountry("LocalTax1IsUsedDesc", $mysoc->country_code)).''.$langs->trans("Description").' 
'; - print ''; - print ''; - print ''; - print "\n"; - // Note: When option is not set, it must not appears as set on on, because there is no default value for this option print ""; print '\n"; - print "
'.$langs->transcountry("LocalTax1Management", $mysoc->country_code).''.$langs->trans("Description").' 
global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on") ? " checked" : "")."> ".$langs->transcountry("LocalTax1IsUsed", $mysoc->country_code)."'; @@ -756,18 +755,27 @@ if ($mysoc->useLocalTax(1)) $tooltiphelp = ($tooltiphelp != "LocalTax1IsNotUsedExample" ? "".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code)."\n" : ""); print ""; print "
"; +} else { + if (empty($mysoc->country_code)) + { + print '
'.$countrynotdefined.'
'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryVAT"), $langs->transnoentitiesnoconv("LocalTax1Management")).'
"; + +// Third tax system +print '
'; +print ''; +print ''; +print ''; +print ''; +print "\n"; + if ($mysoc->useLocalTax(2)) { - // Local Tax 2 - print '
'; - print '
'.$form->textwithpicto($langs->transcountry("LocalTax2Management", $mysoc->country_code), $langs->transcountry("LocalTax2IsUsedDesc", $mysoc->country_code)).''.$langs->trans("Description").' 
'; - print ''; - print ''; - print ''; - print "\n"; - // Note: When option is not set, it must not appears as set on on, because there is no default value for this option print ""; print '\n"; - print "
'.$langs->transcountry("LocalTax2Management", $mysoc->country_code).''.$langs->trans("Description").' 
global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on") ? " checked" : "")."> ".$langs->transcountry("LocalTax2IsUsed", $mysoc->country_code)."'; @@ -793,9 +801,45 @@ if ($mysoc->useLocalTax(2)) print ""; print ""; print "
"; +} else { + if (empty($mysoc->country_code)) + { + print '
'.$countrynotdefined.'
'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryVAT"), $langs->transnoentitiesnoconv("LocalTax2Management")).'
"; + + +// Tax stamp +print '
'; +print ''; +print ''; +print ''; +print ''; +print "\n"; +if ($mysoc->useRevenueStamp()) +{ + // Note: When option is not set, it must not appears as set on on, because there is no default value for this option + print '"; + print '\n"; +} else { + if (empty($mysoc->country_code)) + { + print ''; + } else { + print ''; + } +} + +print "
'.$form->textwithpicto($langs->trans("RevenueStamp"), $langs->trans("RevenueStampDesc")).''.$langs->trans("Description").' 
'; + print $langs->trans("UseRevenueStamp"); + print "'; + print $langs->trans("UseRevenueStampExample", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryRevenueStamp")); + print "
'.$countrynotdefined.'
'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryRevenueStamp"), $langs->transnoentitiesnoconv("RevenueStamp")).'
"; + print '
'; print ''; diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index 70b6f303627..cdfa15d9069 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -83,7 +83,7 @@ if ($action == 'update') } } - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -99,9 +99,9 @@ if ($action == 'update') llxHeader(); -$form=new Form($db); +$form = new Form($db); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans('ComptaSetup'), $linkback, 'title_setup'); print '
'; diff --git a/htdocs/admin/confexped.php b/htdocs/admin/confexped.php index b3265479d38..fd93b0fa83d 100644 --- a/htdocs/admin/confexped.php +++ b/htdocs/admin/confexped.php @@ -35,7 +35,7 @@ $langs->loadLangs(array('admin', 'sendings', 'deliveries')); if (!$user->admin) accessforbidden(); -$action=GETPOST('action', 'alpha'); +$action = GETPOST('action', 'alpha'); /* @@ -43,7 +43,7 @@ $action=GETPOST('action', 'alpha'); */ // Shipment note -if (! empty($conf->expedition->enabled) && empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) +if (!empty($conf->expedition->enabled) && empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { // This option should always be set to on when module is on. dolibarr_set_const($db, "MAIN_SUBMODULE_EXPEDITION", "1", 'chaine', 0, '', $conf->entity); @@ -66,7 +66,7 @@ if ($action == 'disable_sending') // Delivery note if ($action == 'activate_delivery') { - dolibarr_set_const($db, "MAIN_SUBMODULE_EXPEDITION", "1", 'chaine', 0, '', $conf->entity); // We must also enable this + dolibarr_set_const($db, "MAIN_SUBMODULE_EXPEDITION", "1", 'chaine', 0, '', $conf->entity); // We must also enable this dolibarr_set_const($db, "MAIN_SUBMODULE_LIVRAISON", "1", 'chaine', 0, '', $conf->entity); header("Location: confexped.php"); exit; @@ -84,11 +84,11 @@ elseif ($action == 'disable_delivery') */ $dir = DOL_DOCUMENT_ROOT."/core/modules/expedition/"; -$form=new Form($db); +$form = new Form($db); llxHeader("", $langs->trans("SendingsSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SendingsSetup"), $linkback, 'title_setup'); print '
'; $head = expedition_admin_prepare_head(); diff --git a/htdocs/admin/const.php b/htdocs/admin/const.php index 1f04b96f670..59ac87a2c56 100644 --- a/htdocs/admin/const.php +++ b/htdocs/admin/const.php @@ -30,22 +30,22 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; // Load translation files required by the page $langs->load("admin"); -if (! $user->admin) +if (!$user->admin) accessforbidden(); -$rowid=GETPOST('rowid', 'int'); -$entity=GETPOST('entity', 'int'); -$action=GETPOST('action', 'alpha'); -$update=GETPOST('update', 'alpha'); -$delete=GETPOST('delete', 'none'); // Do not use alpha here -$debug=GETPOST('debug', 'int'); -$consts=GETPOST('const', 'array'); -$constname=GETPOST('constname', 'alphanohtml'); -$constvalue=GETPOST('constvalue', 'none'); // We shoul dbe able to send everything here -$constnote=GETPOST('constnote', 'alpha'); +$rowid = GETPOST('rowid', 'int'); +$entity = GETPOST('entity', 'int'); +$action = GETPOST('action', 'alpha'); +$update = GETPOST('update', 'alpha'); +$delete = GETPOST('delete', 'none'); // Do not use alpha here +$debug = GETPOST('debug', 'int'); +$consts = GETPOST('const', 'array'); +$constname = GETPOST('constname', 'alphanohtml'); +$constvalue = GETPOST('constvalue', 'none'); // We shoul dbe able to send everything here +$constnote = GETPOST('constnote', 'alpha'); // Load variable for pagination -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); @@ -63,7 +63,7 @@ if (empty($sortorder)) $sortorder = 'ASC'; if ($action == 'add' || (GETPOST('add') && $action != 'update')) { - $error=0; + $error = 0; if (empty($constname)) { @@ -76,15 +76,15 @@ if ($action == 'add' || (GETPOST('add') && $action != 'update')) $error++; } - if (! $error) + if (!$error) { if (dolibarr_set_const($db, $constname, $constvalue, 'chaine', 1, $constnote, $entity) >= 0) { setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); - $action=""; - $constname=""; - $constvalue=""; - $constnote=""; + $action = ""; + $constname = ""; + $constvalue = ""; + $constnote = ""; } else { @@ -94,12 +94,12 @@ if ($action == 'add' || (GETPOST('add') && $action != 'update')) } // Mass update -if (! empty($consts) && $action == 'update') +if (!empty($consts) && $action == 'update') { - $nbmodified=0; - foreach($consts as $const) + $nbmodified = 0; + foreach ($consts as $const) { - if (! empty($const["check"])) + if (!empty($const["check"])) { if (dolibarr_set_const($db, $const["name"], $const["value"], $const["type"], 1, $const["note"], $const["entity"]) >= 0) { @@ -112,16 +112,16 @@ if (! empty($consts) && $action == 'update') } } if ($nbmodified > 0) setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); - $action=''; + $action = ''; } // Mass delete -if (! empty($consts) && $action == 'delete') +if (!empty($consts) && $action == 'delete') { - $nbdeleted=0; - foreach($consts as $const) + $nbdeleted = 0; + foreach ($consts as $const) { - if (! empty($const["check"])) // Is checkbox checked + if (!empty($const["check"])) // Is checkbox checked { if (dolibarr_del_const($db, $const["rowid"], -1) >= 0) { @@ -134,7 +134,7 @@ if (! empty($consts) && $action == 'delete') } } if ($nbdeleted > 0) setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); - $action=''; + $action = ''; } // Delete line from delete picto @@ -157,7 +157,7 @@ if ($action == 'delete') $form = new Form($db); -$wikihelp='EN:Setup_Other|FR:Paramétrage_Divers|ES:Configuración_Varios'; +$wikihelp = 'EN:Setup_Other|FR:Paramétrage_Divers|ES:Configuración_Varios'; llxHeader('', $langs->trans("Setup"), $wikihelp); // Add logic to show/hide buttons @@ -191,7 +191,7 @@ print "
\n"; $param = ''; -print 'entity) && $debug)?'?debug=1':'').'" method="POST">'; +print 'entity) && $debug) ? '?debug=1' : '').'" method="POST">'; print ''; print ''; print ''; @@ -204,7 +204,7 @@ print getTitleFieldOfList('Name', 0, $_SERVER['PHP_SELF'], 'name', '', $param, ' print getTitleFieldOfList("Value", 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder); print getTitleFieldOfList("Comment", 0, $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder); print getTitleFieldOfList('DateModificationShort', 0, $_SERVER['PHP_SELF'], 'tms', '', $param, '', $sortfield, $sortorder, 'center ')."\n"; -if (! empty($conf->multicompany->enabled) && !$user->entity) +if (!empty($conf->multicompany->enabled) && !$user->entity) { print getTitleFieldOfList('Entity', 0, $_SERVER['PHP_SELF'], 'tms', '', $param, '', $sortfield, $sortorder, 'center ')."\n"; } @@ -215,16 +215,16 @@ print "\n"; // Line to add new record print "\n"; -print ''."\n"; +print ''."\n"; print ''; -print ''; +print ''; print ''; -print ''; +print ''; print ''; print ''; print ''; // Limit to superadmin -if (! empty($conf->multicompany->enabled) && !$user->entity) +if (!empty($conf->multicompany->enabled) && !$user->entity) { print ''; print ''; @@ -243,19 +243,19 @@ print ''; // Show constants $sql = "SELECT"; -$sql.= " rowid"; -$sql.= ", ".$db->decrypt('name')." as name"; -$sql.= ", ".$db->decrypt('value')." as value"; -$sql.= ", type"; -$sql.= ", note"; -$sql.= ", tms"; -$sql.= ", entity"; -$sql.= " FROM ".MAIN_DB_PREFIX."const"; -$sql.= " WHERE entity IN (".$user->entity.",".$conf->entity.")"; +$sql .= " rowid"; +$sql .= ", ".$db->decrypt('name')." as name"; +$sql .= ", ".$db->decrypt('value')." as value"; +$sql .= ", type"; +$sql .= ", note"; +$sql .= ", tms"; +$sql .= ", entity"; +$sql .= " FROM ".MAIN_DB_PREFIX."const"; +$sql .= " WHERE entity IN (".$user->entity.",".$conf->entity.")"; if ((empty($user->entity) || $user->admin) && $debug) {} // to force for superadmin to debug -elseif (! GETPOST('visible') || GETPOST('visible') != 'all') $sql.= " AND visible = 1"; // We must always have this. Otherwise, array is too large and submitting data fails due to apache POST or GET limits -if (GETPOST('name')) $sql.=natural_search("name", GETPOST('name')); -$sql.= $db->order($sortfield, $sortorder); +elseif (!GETPOST('visible') || GETPOST('visible') != 'all') $sql .= " AND visible = 1"; // We must always have this. Otherwise, array is too large and submitting data fails due to apache POST or GET limits +if (GETPOST('name')) $sql .= natural_search("name", GETPOST('name')); +$sql .= $db->order($sortfield, $sortorder); dol_syslog("Const::listConstant", LOG_DEBUG); $result = $db->query($sql); @@ -291,7 +291,7 @@ if ($result) print ''; // Entity limit to superadmin - if (! empty($conf->multicompany->enabled) && !$user->entity) + if (!empty($conf->multicompany->enabled) && !$user->entity) { print ''; print ''; @@ -310,7 +310,7 @@ if ($result) } else { - print ''.img_delete().''; + print ''.img_delete().''; } print "\n"; diff --git a/htdocs/admin/debugbar.php b/htdocs/admin/debugbar.php index 9a702f56545..926080cb9b5 100644 --- a/htdocs/admin/debugbar.php +++ b/htdocs/admin/debugbar.php @@ -32,9 +32,9 @@ global $conf; if (!$user->admin) accessforbidden(); // Load translation files required by the page -$langs->loadLangs(array("admin","other")); +$langs->loadLangs(array("admin", "other")); -$error=0; +$error = 0; $action = GETPOST('action', 'aZ09'); @@ -54,7 +54,7 @@ if ($action == 'set') $error++; } - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -73,14 +73,14 @@ if ($action == 'set') llxHeader(); -$form=new Form($db); +$form = new Form($db); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("DebugBarSetup"), $linkback, 'title_setup'); //print load_fiche_titre($langs->trans("DebugBar")); -if (! function_exists('mb_check_encoding')) +if (!function_exists('mb_check_encoding')) { $langs->load("errors"); print info_admin($langs->trans("ErrorPHPNeedModule", 'mbstring'), 0, 0, 'error'); @@ -100,7 +100,7 @@ print '\n"; print ''.$langs->trans("DEBUGBAR_LOGS_LINES_NUMBER").''; -print ''; // This slow seriously output +print ''; // This slow seriously output print ' '.$langs->trans("WarningValueHigherSlowsDramaticalyOutput"); print ''; diff --git a/htdocs/admin/defaultvalues.php b/htdocs/admin/defaultvalues.php index 9daf076cc5e..094c4a8dd7c 100644 --- a/htdocs/admin/defaultvalues.php +++ b/htdocs/admin/defaultvalues.php @@ -38,6 +38,7 @@ if (!$user->admin) accessforbidden(); $id = GETPOST('rowid', 'int'); $action = GETPOST('action', 'alpha'); +$optioncss = GETPOST('optionscss', 'alphanohtml'); $mode = GETPOST('mode', 'aZ09') ?GETPOST('mode', 'aZ09') : 'createform'; // 'createform', 'filters', 'sortorder', 'focus' @@ -212,10 +213,10 @@ print "
\n"; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); -if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); -if ($defaulturl) $param .= '&defaulturl='.urlencode($defaulturl); -if ($defaultkey) $param .= '&defaultkey='.urlencode($defaultkey); -if ($defaultvalue) $param .= '&defaultvalue='.urlencode($defaultvalue); +if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); +if ($defaulturl) $param .= '&defaulturl='.urlencode($defaulturl); +if ($defaultkey) $param .= '&defaultkey='.urlencode($defaultkey); +if ($defaultvalue) $param .= '&defaultvalue='.urlencode($defaultvalue); print 'entity) && $debug) ? '?debug=1' : '').'" method="POST">'; @@ -252,7 +253,7 @@ $texthelp = $langs->trans("PageUrlForDefaultValues"); if ($mode == 'createform') $texthelp .= $langs->trans("PageUrlForDefaultValuesCreate", 'societe/card.php', 'societe/card.php?abc=val1&def=val2'); else $texthelp .= $langs->trans("PageUrlForDefaultValuesList", 'societe/list.php', 'societe/list.php?abc=val1&def=val2'); $texthelp .= '

'.$langs->trans("AlsoDefaultValuesAreEffectiveForActionCreate"); -$texturl = $form->textwithpicto($langs->trans("Url"), $texthelp); +$texturl = $form->textwithpicto($langs->trans("RelativeURL"), $texthelp); print_liste_field_titre($texturl, $_SERVER["PHP_SELF"], 'page,param', '', $param, '', $sortfield, $sortorder); // Field $texthelp = $langs->trans("TheKeyIsTheNameOfHtmlField"); diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php index 1944f140ef3..3ee262b464a 100644 --- a/htdocs/admin/delais.php +++ b/htdocs/admin/delais.php @@ -134,31 +134,31 @@ $modules = array( $labelmeteo = array(0=>$langs->trans("No"), 1=>$langs->trans("Yes"), 2=>$langs->trans("OnMobileOnly")); -if (! isset($conf->global->MAIN_DELAY_PROJECT_TO_CLOSE)) { - $conf->global->MAIN_DELAY_PROJECT_TO_CLOSE = 7; // Must be same value than into conf.class.php +if (!isset($conf->global->MAIN_DELAY_PROJECT_TO_CLOSE)) { + $conf->global->MAIN_DELAY_PROJECT_TO_CLOSE = 7; // Must be same value than into conf.class.php } -if (! isset($conf->global->MAIN_DELAY_TASKS_TODO)) { - $conf->global->MAIN_DELAY_TASKS_TODO = 7; // Must be same value than into conf.class.php +if (!isset($conf->global->MAIN_DELAY_TASKS_TODO)) { + $conf->global->MAIN_DELAY_TASKS_TODO = 7; // Must be same value than into conf.class.php } -if (! isset($conf->global->MAIN_DELAY_MEMBERS)) { - $conf->global->MAIN_DELAY_MEMBERS = 0; // Must be same value than into conf.class.php +if (!isset($conf->global->MAIN_DELAY_MEMBERS)) { + $conf->global->MAIN_DELAY_MEMBERS = 0; // Must be same value than into conf.class.php } -if (! isset($conf->global->MAIN_DELAY_ACTIONS_TODO)) { - $conf->global->MAIN_DELAY_ACTIONS_TODO = 7; // Must be same value than into conf.class.php +if (!isset($conf->global->MAIN_DELAY_ACTIONS_TODO)) { + $conf->global->MAIN_DELAY_ACTIONS_TODO = 7; // Must be same value than into conf.class.php } -if (! isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { +if (!isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { $conf->global->MAIN_DELAY_ORDERS_TO_PROCESS = 2; } -if (! isset($conf->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS)) { +if (!isset($conf->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS)) { $conf->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS = 7; } -if (! isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { +if (!isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { $conf->global->MAIN_DELAY_ORDERS_TO_PROCESS = 2; } -if (! isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { +if (!isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { $conf->global->MAIN_DELAY_ORDERS_TO_PROCESS = 2; } -if (! isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { +if (!isset($conf->global->MAIN_DELAY_ORDERS_TO_PROCESS)) { $conf->global->MAIN_DELAY_ORDERS_TO_PROCESS = 2; } diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 75fae3c7a86..7d12ffca433 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -58,7 +58,7 @@ if ($id == 10 && !empty($user->rights->accounting->chartofaccount)) $allowed = 1 if ($id == 17 && !empty($user->rights->accounting->chartofaccount)) $allowed = 1; // Dictionary with type of expense report and accounting account allowed to manager of chart account if (!$allowed) accessforbidden(); -$acts =array(); $actl =array(); +$acts = array(); $actl = array(); $acts[0] = "activate"; $acts[1] = "disable"; $actl[0] = img_picto($langs->trans("Disabled"), 'switch_off'); @@ -77,7 +77,7 @@ $pageprev = $page - 1; $pagenext = $page + 1; $search_country_id = GETPOST('search_country_id', 'int'); -if (! GETPOSTISSET('search_country_id') && $search_country_id == '' && ($id == 2 || $id == 3 || $id == 10)) // Not a so good idea to force on current country for all dictionaries. Some tables have entries that are for all countries, we must be able to see them, so this is done for dedicated dictionaries only. +if (!GETPOSTISSET('search_country_id') && $search_country_id == '' && ($id == 2 || $id == 3 || $id == 10)) // Not a so good idea to force on current country for all dictionaries. Some tables have entries that are for all countries, we must be able to see them, so this is done for dedicated dictionaries only. { $search_country_id = $mysoc->country_id; } @@ -445,7 +445,7 @@ $tabcond[16] = (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_ $tabcond[17] = (!empty($conf->deplacement->enabled) || !empty($conf->expensereport->enabled)); $tabcond[18] = !empty($conf->expedition->enabled) || !empty($conf->reception->enabled); $tabcond[19] = !empty($conf->societe->enabled); -$tabcond[20]= (! empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || ! empty($conf->supplier_order->enabled)); +$tabcond[20] = (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled)); $tabcond[21] = !empty($conf->propal->enabled); $tabcond[22] = (!empty($conf->commande->enabled) || !empty($conf->propal->enabled)); $tabcond[23] = true; @@ -489,7 +489,7 @@ $tabhelp[19] = array('code'=>$langs->trans("EnterAnyCode")); $tabhelp[20] = array('code'=>$langs->trans("EnterAnyCode")); $tabhelp[21] = array('code'=>$langs->trans("EnterAnyCode")); $tabhelp[22] = array('code'=>$langs->trans("EnterAnyCode")); -$tabhelp[23] = array('revenuestamp_type'=>'FixedOfPercent'); +$tabhelp[23] = array('revenuestamp_type'=>'FixedOrPercent'); $tabhelp[24] = array('code'=>$langs->trans("EnterAnyCode")); $tabhelp[25] = array('code'=>$langs->trans('EnterAnyCode')); //$tabhelp[26] = array('code'=>$langs->trans("EnterAnyCode")); diff --git a/htdocs/admin/dolistore/class/dolistore.class.php b/htdocs/admin/dolistore/class/dolistore.class.php index c0c611f35f5..251322ea798 100644 --- a/htdocs/admin/dolistore/class/dolistore.class.php +++ b/htdocs/admin/dolistore/class/dolistore.class.php @@ -17,7 +17,7 @@ */ include_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -if (! class_exists('PrestaShopWebservice')) // We keep this because some modules add this lib too into a different path. This is to avoid "Cannot declare class PrestaShopWebservice" errors. +if (!class_exists('PrestaShopWebservice')) // We keep this because some modules add this lib too into a different path. This is to avoid "Cannot declare class PrestaShopWebservice" errors. { include_once DOL_DOCUMENT_ROOT.'/admin/dolistore/class/PSWebServiceLibrary.class.php'; } diff --git a/htdocs/admin/dolistore/img/Download-128.png b/htdocs/admin/dolistore/img/Download-128.png index 89756d1f012..55f38e78324 100644 Binary files a/htdocs/admin/dolistore/img/Download-128.png and b/htdocs/admin/dolistore/img/Download-128.png differ diff --git a/htdocs/admin/dolistore/img/NoImageAvailable.png b/htdocs/admin/dolistore/img/NoImageAvailable.png index 9a88d4362da..467cc2e103d 100644 Binary files a/htdocs/admin/dolistore/img/NoImageAvailable.png and b/htdocs/admin/dolistore/img/NoImageAvailable.png differ diff --git a/htdocs/admin/dolistore/img/compatible.png b/htdocs/admin/dolistore/img/compatible.png index 93a85574165..1513d2ae58a 100644 Binary files a/htdocs/admin/dolistore/img/compatible.png and b/htdocs/admin/dolistore/img/compatible.png differ diff --git a/htdocs/admin/dolistore/img/dolistore.png b/htdocs/admin/dolistore/img/dolistore.png index d3fc61e7293..1fc740cfc23 100644 Binary files a/htdocs/admin/dolistore/img/dolistore.png and b/htdocs/admin/dolistore/img/dolistore.png differ diff --git a/htdocs/admin/dolistore/img/follow.png b/htdocs/admin/dolistore/img/follow.png index 78383c1157f..1605e92544f 100644 Binary files a/htdocs/admin/dolistore/img/follow.png and b/htdocs/admin/dolistore/img/follow.png differ diff --git a/htdocs/admin/dolistore/img/object_dolistore.png b/htdocs/admin/dolistore/img/object_dolistore.png index 213d0e0a3b7..f222312141a 100644 Binary files a/htdocs/admin/dolistore/img/object_dolistore.png and b/htdocs/admin/dolistore/img/object_dolistore.png differ diff --git a/htdocs/admin/ecm.php b/htdocs/admin/ecm.php index 66fa695c5b9..0c348b25f60 100644 --- a/htdocs/admin/ecm.php +++ b/htdocs/admin/ecm.php @@ -28,7 +28,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; // Load translation files required by the page $langs->load("admin"); -if (! $user->admin) accessforbidden(); +if (!$user->admin) accessforbidden(); /* @@ -36,7 +36,7 @@ if (! $user->admin) accessforbidden(); */ if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) { - $code=$reg[1]; + $code = $reg[1]; if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) { header("Location: ".$_SERVER["PHP_SELF"]); @@ -50,7 +50,7 @@ if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) { - $code=$reg[1]; + $code = $reg[1]; if (dolibarr_del_const($db, $code, $conf->entity) > 0) { header("Location: ".$_SERVER["PHP_SELF"]); @@ -67,10 +67,10 @@ if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) * View */ -$help_url=''; +$help_url = ''; llxHeader('', $langs->trans("ECMSetup"), $help_url); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ECMSetup"), $linkback, 'title_setup'); print '
'; @@ -100,7 +100,7 @@ else { print ''.img_picto($langs->trans("Disabled"), 'off').''; } - elseif(! empty($conf->global->USER_MAIL_REQUIRED)) + elseif (!empty($conf->global->USER_MAIL_REQUIRED)) { print ''.img_picto($langs->trans("Enabled"), 'on').''; } diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php index d4415c6c1b6..74592ff777a 100644 --- a/htdocs/admin/emailcollector_card.php +++ b/htdocs/admin/emailcollector_card.php @@ -231,7 +231,7 @@ if ($action == 'confirm_collect') $form = new Form($db); $formfile = new FormFile($db); -$help_url="EN:Module_EMail_Collector|FR:Module_Collecteur_de_courrier_électronique|ES:Module_EMail_Collector"; +$help_url = "EN:Module_EMail_Collector|FR:Module_Collecteur_de_courrier_électronique|ES:Module_EMail_Collector"; llxHeader('', 'EmailCollector', $help_url); @@ -577,14 +577,14 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea if ($conf->ticket->enabled) $arrayoftypes['ticket'] = 'CreateTicketAndThirdParty'; // support hook for add action - $parameters = array( 'arrayoftypes' => $arrayoftypes ) ; + $parameters = array('arrayoftypes' => $arrayoftypes); $res = $hookmanager->executeHooks('addMoreActionsEmailCollector', $parameters, $object, $action); - if($res) + if ($res) $arrayoftypes = $hookmanager->resArray; else - foreach($hookmanager->resArray as $k=>$desc) - $arrayoftypes[$k]=$desc; + foreach ($hookmanager->resArray as $k=>$desc) + $arrayoftypes[$k] = $desc; print $form->selectarray('operationtype', $arrayoftypes, '', 1, 0, 0, '', 1, 0, 0, '', 'maxwidth300'); diff --git a/htdocs/admin/emailcollector_list.php b/htdocs/admin/emailcollector_list.php index 120fce37b4c..d2c52da585b 100644 --- a/htdocs/admin/emailcollector_list.php +++ b/htdocs/admin/emailcollector_list.php @@ -170,7 +170,7 @@ if (empty($reshook)) $form = new Form($db); -$help_url="EN:Module_EMail_Collector|FR:Module_Collecteur_de_courrier_électronique|ES:Module_EMail_Collector"; +$help_url = "EN:Module_EMail_Collector|FR:Module_Collecteur_de_courrier_électronique|ES:Module_EMail_Collector"; $title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("EmailCollector")); diff --git a/htdocs/admin/events.php b/htdocs/admin/events.php index 65a03adc4f1..75976f0b07b 100644 --- a/htdocs/admin/events.php +++ b/htdocs/admin/events.php @@ -28,14 +28,26 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/events.class.php'; -if (!$user->admin) -accessforbidden(); +if (!$user->admin) { + accessforbidden(); +} // Load translation files required by the page $langs->loadLangs(array("users", "admin", "other")); $action = GETPOST('action', 'aZ09'); +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'myobjectlist'; // To manage different context of search +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +// Load variable for pagination +$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST('sortfield', 'alpha'); +$sortorder = GETPOST('sortorder', 'alpha'); +$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); +if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; $securityevent = new Events($db); $eventstolog = $securityevent->eventstolog; @@ -44,6 +56,7 @@ $eventstolog = $securityevent->eventstolog; /* * Actions */ + if ($action == "save") { $i = 0; @@ -67,6 +80,12 @@ if ($action == "save") * View */ +$form = new Form($db); + +$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; +$selectedfields = ''; +$selectedfields .= $form->showCheckAddButtons('checkforselect', 1); + $wikihelp = 'EN:Setup_Security|FR:Paramétrage_Sécurité|ES:Configuración_Seguridad'; llxHeader('', $langs->trans("Audit"), $wikihelp); @@ -85,9 +104,10 @@ $head = security_prepare_head(); dol_fiche_head($head, 'audit', $langs->trans("Security"), -1); -print ""; +print '
'; print ""; -print ""; +print getTitleFieldOfList("LogEvents", 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, '')."\n"; +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; print "\n"; // Loop on each event type foreach ($eventstolog as $key => $arr) @@ -96,10 +116,10 @@ foreach ($eventstolog as $key => $arr) { print ''; print ''; - print ''."\n"; } } @@ -109,7 +129,7 @@ dol_fiche_end(); print '
'; print "trans("Save")."\">"; -print "
"; +print ''; print "\n"; diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php index d76f77dd018..be9e7091300 100644 --- a/htdocs/admin/expedition.php +++ b/htdocs/admin/expedition.php @@ -37,18 +37,18 @@ require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; // Load translation files required by the page $langs->loadLangs(array("admin", "sendings", "deliveries", "other")); -if (! $user->admin) +if (!$user->admin) accessforbidden(); -$action=GETPOST('action', 'alpha'); -$value=GETPOST('value', 'alpha'); +$action = GETPOST('action', 'alpha'); +$value = GETPOST('value', 'alpha'); $label = GETPOST('label', 'alpha'); $scandir = GETPOST('scan_dir', 'alpha'); -$type='shipping'; +$type = 'shipping'; if (empty($conf->global->EXPEDITION_ADDON_NUMBER)) { - $conf->global->EXPEDITION_ADDON_NUMBER='mod_expedition_safor'; + $conf->global->EXPEDITION_ADDON_NUMBER = 'mod_expedition_safor'; } @@ -60,9 +60,9 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst=GETPOST('maskconstexpedition', 'alpha'); - $maskvalue=GETPOST('maskexpedition', 'alpha'); - if (! empty($maskconst)) + $maskconst = GETPOST('maskconstexpedition', 'alpha'); + $maskvalue = GETPOST('maskexpedition', 'alpha'); + if (!empty($maskconst)) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); if (isset($res)) @@ -76,7 +76,7 @@ if ($action == 'updateMask') elseif ($action == 'set_param') { - $freetext=GETPOST('SHIPPING_FREE_TEXT', 'none'); // No alpha here, we want exact string + $freetext = GETPOST('SHIPPING_FREE_TEXT', 'none'); // No alpha here, we want exact string $res = dolibarr_set_const($db, "SHIPPING_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); if ($res <= 0) { @@ -84,7 +84,7 @@ elseif ($action == 'set_param') setEventMessages($langs->trans("Error"), null, 'errors'); } - $draft=GETPOST('SHIPPING_DRAFT_WATERMARK', 'alpha'); + $draft = GETPOST('SHIPPING_DRAFT_WATERMARK', 'alpha'); $res = dolibarr_set_const($db, "SHIPPING_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); if ($res <= 0) { @@ -92,7 +92,7 @@ elseif ($action == 'set_param') setEventMessages($langs->trans("Error"), null, 'errors'); } - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -100,20 +100,20 @@ elseif ($action == 'set_param') elseif ($action == 'specimen') { - $modele=GETPOST('module', 'alpha'); + $modele = GETPOST('module', 'alpha'); $exp = new Expedition($db); $exp->initAsSpecimen(); // Search template files - $file=''; $classname=''; $filefound=0; - $dirmodels=array_merge(array('/'), (array) $conf->modules_parts['models']); - foreach($dirmodels as $reldir) + $file = ''; $classname = ''; $filefound = 0; + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { - $file=dol_buildpath($reldir."core/modules/expedition/doc/pdf_".$modele.".modules.php", 0); + $file = dol_buildpath($reldir."core/modules/expedition/doc/pdf_".$modele.".modules.php", 0); if (file_exists($file)) { - $filefound=1; + $filefound = 1; $classname = "pdf_".$modele; break; } @@ -186,13 +186,13 @@ elseif ($action == 'setmodel') * View */ -$dirmodels=array_merge(array('/'), (array) $conf->modules_parts['models']); +$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); -$form=new Form($db); +$form = new Form($db); llxHeader("", $langs->trans("SendingsSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SendingsSetup"), $linkback, 'title_setup'); print '
'; $head = expedition_admin_prepare_head(); @@ -223,11 +223,11 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - if (substr($file, 0, 15) == 'mod_expedition_' && substr($file, dol_strlen($file)-3, 3) == 'php') + if (substr($file, 0, 15) == 'mod_expedition_' && substr($file, dol_strlen($file) - 3, 3) == 'php') { - $file = substr($file, 0, dol_strlen($file)-4); + $file = substr($file, 0, dol_strlen($file) - 4); require_once $dir.$file.'.php'; @@ -236,7 +236,7 @@ foreach ($dirmodels as $reldir) if ($module->isEnabled()) { // Show modules according to features level - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; print '\n"; @@ -246,11 +246,11 @@ foreach ($dirmodels as $reldir) // Show example of numbering module print ''."\n"; @@ -267,21 +267,21 @@ foreach ($dirmodels as $reldir) } print ''; - $expedition=new Expedition($db); + $expedition = new Expedition($db); $expedition->initAsSpecimen(); // Info - $htmltooltip=''; - $htmltooltip.=''.$langs->trans("Version").': '.$module->getVersion().'
'; - $nextval=$module->getNextValue($mysoc, $expedition); + $htmltooltip = ''; + $htmltooltip .= ''.$langs->trans("Version").': '.$module->getVersion().'
'; + $nextval = $module->getNextValue($mysoc, $expedition); if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval - $htmltooltip.=''.$langs->trans("NextValue").': '; + $htmltooltip .= ''.$langs->trans("NextValue").': '; if ($nextval) { - if (preg_match('/^Error/', $nextval) || $nextval=='NotConfigured') + if (preg_match('/^Error/', $nextval) || $nextval == 'NotConfigured') $nextval = $langs->trans($nextval); - $htmltooltip.=$nextval.'
'; + $htmltooltip .= $nextval.'
'; } else { - $htmltooltip.=$langs->trans($module->error).'
'; + $htmltooltip .= $langs->trans($module->error).'
'; } } @@ -307,19 +307,19 @@ print '
".$langs->trans("LogEvents")."
'.$arr['id'].''; + print ''; $key = 'MAIN_LOGEVENTS_'.$arr['id']; $value = $conf->global->$key; - print ''; + print ''; print '
'.$module->nom."'; - $tmp=$module->getExample(); + $tmp = $module->getExample(); if (preg_match('/^Error/', $tmp)) { $langs->load("errors"); print '
'.$langs->trans($tmp).'
'; } - elseif ($tmp=='NotConfigured') print $langs->trans($tmp); + elseif ($tmp == 'NotConfigured') print $langs->trans($tmp); else print $tmp; print '

'; print load_fiche_titre($langs->trans("SendingsReceiptModel"), '', ''); // Defini tableau def de modele invoice -$type="shipping"; +$type = "shipping"; $def = array(); $sql = "SELECT nom"; -$sql.= " FROM ".MAIN_DB_PREFIX."document_model"; -$sql.= " WHERE type = '".$type."'"; -$sql.= " AND entity = ".$conf->entity; +$sql .= " FROM ".MAIN_DB_PREFIX."document_model"; +$sql .= " WHERE type = '".$type."'"; +$sql .= " AND entity = ".$conf->entity; -$resql=$db->query($sql); +$resql = $db->query($sql); if ($resql) { $i = 0; - $num_rows=$db->num_rows($resql); + $num_rows = $db->num_rows($resql); while ($i < $num_rows) { $array = $db->fetch_array($resql); @@ -346,42 +346,42 @@ clearstatcache(); foreach ($dirmodels as $reldir) { - foreach (array('','/doc') as $valdir) + foreach (array('', '/doc') as $valdir) { $dir = dol_buildpath($reldir."core/modules/expedition".$valdir); if (is_dir($dir)) { - $handle=opendir($dir); + $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - $filelist[]=$file; + $filelist[] = $file; } closedir($handle); arsort($filelist); - foreach($filelist as $file) + foreach ($filelist as $file) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { if (file_exists($dir.'/'.$file)) { - $name = substr($file, 4, dol_strlen($file) -16); - $classname = substr($file, 0, dol_strlen($file) -12); + $name = substr($file, 4, dol_strlen($file) - 16); + $classname = substr($file, 0, dol_strlen($file) - 12); require_once $dir.'/'.$file; $module = new $classname($db); - $modulequalified=1; - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0; - if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0; + $modulequalified = 1; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified = 0; + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified = 0; if ($modulequalified) { print ''; - print (empty($module->name)?$name:$module->name); + print (empty($module->name) ? $name : $module->name); print "\n"; if (method_exists($module, 'info')) print $module->info($langs); else print $module->description; @@ -416,18 +416,18 @@ foreach ($dirmodels as $reldir) print ''; // Info - $htmltooltip = ''.$langs->trans("Name").': '.$module->name; - $htmltooltip.='
'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); + $htmltooltip = ''.$langs->trans("Name").': '.$module->name; + $htmltooltip .= '
'.$langs->trans("Type").': '.($module->type ? $module->type : $langs->trans("Unknown")); if ($module->type == 'pdf') { - $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; + $htmltooltip .= '
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; } - $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; - $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1); - $htmltooltip.='
'.$langs->trans("PaymentMode").': '.yn($module->option_modereg, 1, 1); - $htmltooltip.='
'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg, 1, 1); - $htmltooltip.='
'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1); - $htmltooltip.='
'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark, 1, 1); + $htmltooltip .= '

'.$langs->trans("FeaturesSupported").':'; + $htmltooltip .= '
'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1); + $htmltooltip .= '
'.$langs->trans("PaymentMode").': '.yn($module->option_modereg, 1, 1); + $htmltooltip .= '
'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg, 1, 1); + $htmltooltip .= '
'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1); + $htmltooltip .= '
'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark, 1, 1); print ''; print $form->textwithpicto('', $htmltooltip, 1, 0); @@ -474,15 +474,15 @@ print ""; print "".$langs->trans("Parameter")."\n"; print ""; -$substitutionarray=pdf_getSubstitutionArray($langs, null, null, 2); -$substitutionarray['__(AnyTranslationKey)__']=$langs->trans("Translation"); +$substitutionarray = pdf_getSubstitutionArray($langs, null, null, 2); +$substitutionarray['__(AnyTranslationKey)__'] = $langs->trans("Translation"); $htmltext = ''.$langs->trans("AvailableVariables").':
'; -foreach($substitutionarray as $key => $val) $htmltext.=$key.'
'; -$htmltext.='
'; +foreach ($substitutionarray as $key => $val) $htmltext .= $key.'
'; +$htmltext .= ''; print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnShippings"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; -$variablename='SHIPPING_FREE_TEXT'; +$variablename = 'SHIPPING_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { print ''; @@ -490,7 +490,7 @@ if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print "\n"; diff --git a/htdocs/admin/expedition_extrafields.php b/htdocs/admin/expedition_extrafields.php index 69ad145e7df..6ff8cd42669 100644 --- a/htdocs/admin/expedition_extrafields.php +++ b/htdocs/admin/expedition_extrafields.php @@ -43,13 +43,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='expedition'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'expedition'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -66,11 +66,11 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("Sendings"); +$textobject = $langs->transnoentitiesnoconv("Sendings"); llxHeader('', $langs->trans("SendingsSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SendingsSetup"), $linkback, 'title_setup'); print "
\n"; @@ -111,7 +111,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/admin/expeditiondet_extrafields.php b/htdocs/admin/expeditiondet_extrafields.php index 51e3de9c80d..8b27aec895e 100644 --- a/htdocs/admin/expeditiondet_extrafields.php +++ b/htdocs/admin/expeditiondet_extrafields.php @@ -44,13 +44,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='expeditiondet'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'expeditiondet'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -67,11 +67,11 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("Sendings"); +$textobject = $langs->transnoentitiesnoconv("Sendings"); llxHeader('', $langs->trans("SendingsSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SendingsSetup"), $linkback, 'title_setup'); print "
\n"; @@ -112,7 +112,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/admin/expensereport.php b/htdocs/admin/expensereport.php index b55f5cba2bf..af1c7c88698 100644 --- a/htdocs/admin/expensereport.php +++ b/htdocs/admin/expensereport.php @@ -37,13 +37,13 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; // Load translation files required by the page $langs->loadLangs(array('admin', 'errors', 'trips', 'other')); -if (! $user->admin) accessforbidden(); +if (!$user->admin) accessforbidden(); $action = GETPOST('action', 'alpha'); $value = GETPOST('value', 'alpha'); $label = GETPOST('label', 'alpha'); $scandir = GETPOST('scan_dir', 'alpha'); -$type='expensereport'; +$type = 'expensereport'; /* @@ -54,13 +54,13 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; if ($action == 'updateMask') { - $maskconst=GETPOST('maskconst', 'alpha'); - $maskvalue=GETPOST('maskvalue', 'alpha'); + $maskconst = GETPOST('maskconst', 'alpha'); + $maskvalue = GETPOST('maskvalue', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; + if (!$res > 0) $error++; - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -72,22 +72,22 @@ if ($action == 'updateMask') elseif ($action == 'specimen') // For fiche inter { - $modele= GETPOST('module', 'alpha'); + $modele = GETPOST('module', 'alpha'); $inter = new ExpenseReport($db); $inter->initAsSpecimen(); - $inter->status = 0; // Force statut draft to show watermark - $inter->fk_statut = 0; // Force statut draft to show watermark + $inter->status = 0; // Force statut draft to show watermark + $inter->fk_statut = 0; // Force statut draft to show watermark // Search template files - $file=''; $classname=''; $filefound=0; - $dirmodels=array_merge(array('/'), (array) $conf->modules_parts['models']); - foreach($dirmodels as $reldir) + $file = ''; $classname = ''; $filefound = 0; + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { - $file=dol_buildpath($reldir."core/modules/expensereport/doc/pdf_".$modele.".modules.php", 0); + $file = dol_buildpath($reldir."core/modules/expensereport/doc/pdf_".$modele.".modules.php", 0); if (file_exists($file)) { - $filefound=1; + $filefound = 1; $classname = "pdf_".$modele; break; } @@ -166,15 +166,15 @@ elseif ($action == 'setoptions') { $db->begin(); - $freetext= GETPOST('EXPENSEREPORT_FREE_TEXT', 'none'); // No alpha here, we want exact string + $freetext = GETPOST('EXPENSEREPORT_FREE_TEXT', 'none'); // No alpha here, we want exact string $res1 = dolibarr_set_const($db, "EXPENSEREPORT_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - $draft= GETPOST('EXPENSEREPORT_DRAFT_WATERMARK', 'alpha'); + $draft = GETPOST('EXPENSEREPORT_DRAFT_WATERMARK', 'alpha'); $res2 = dolibarr_set_const($db, "EXPENSEREPORT_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (! $res1 > 0 || ! $res2 > 0) $error++; + if (!$res1 > 0 || !$res2 > 0) $error++; - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -191,17 +191,17 @@ elseif ($action == 'setoptions') * View */ -$dirmodels=array_merge(array('/'), (array) $conf->modules_parts['models']); +$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); llxHeader('', $langs->trans("ExpenseReportsSetup")); -$form=new Form($db); +$form = new Form($db); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ExpenseReportsSetup"), $linkback, 'title_setup'); -$head=expensereport_admin_prepare_head(); +$head = expensereport_admin_prepare_head(); dol_fiche_head($head, 'expensereport', $langs->trans("ExpenseReports"), -1, 'trip'); @@ -231,18 +231,18 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - if (substr($file, 0, 18) == 'mod_expensereport_' && substr($file, dol_strlen($file)-3, 3) == 'php') + if (substr($file, 0, 18) == 'mod_expensereport_' && substr($file, dol_strlen($file) - 3, 3) == 'php') { - $file = substr($file, 0, dol_strlen($file)-4); + $file = substr($file, 0, dol_strlen($file) - 4); require_once $dir.$file.'.php'; $module = new $file($db); // Show modules according to features level - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; if ($module->isEnabled()) @@ -253,9 +253,9 @@ foreach ($dirmodels as $reldir) // Show example of numbering model print ''; - $tmp=$module->getExample(); + $tmp = $module->getExample(); if (preg_match('/^Error/', $tmp)) print '
'.$langs->trans($tmp).'
'; - elseif ($tmp=='NotConfigured') print $langs->trans($tmp); + elseif ($tmp == 'NotConfigured') print $langs->trans($tmp); else print $tmp; print ''."\n"; @@ -272,21 +272,21 @@ foreach ($dirmodels as $reldir) } print ''; - $exp=new ExpenseReport($db); + $exp = new ExpenseReport($db); $exp->initAsSpecimen(); // Info - $htmltooltip=''; - $htmltooltip.=''.$langs->trans("Version").': '.$module->getVersion().'
'; - $nextval=$module->getNextValue($exp); + $htmltooltip = ''; + $htmltooltip .= ''.$langs->trans("Version").': '.$module->getVersion().'
'; + $nextval = $module->getNextValue($exp); if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval - $htmltooltip.=''.$langs->trans("NextValue").': '; + $htmltooltip .= ''.$langs->trans("NextValue").': '; if ($nextval) { - if (preg_match('/^Error/', $nextval) || $nextval=='NotConfigured') + if (preg_match('/^Error/', $nextval) || $nextval == 'NotConfigured') $nextval = $langs->trans($nextval); - $htmltooltip.=$nextval.'
'; + $htmltooltip .= $nextval.'
'; } else { - $htmltooltip.=$langs->trans($module->error).'
'; + $htmltooltip .= $langs->trans($module->error).'
'; } } @@ -311,17 +311,17 @@ print "
\n"; print load_fiche_titre($langs->trans("TemplatePDFExpenseReports"), '', ''); // Defini tableau def des modeles -$type='expensereport'; +$type = 'expensereport'; $def = array(); $sql = "SELECT nom"; -$sql.= " FROM ".MAIN_DB_PREFIX."document_model"; -$sql.= " WHERE type = '".$type."'"; -$sql.= " AND entity = ".$conf->entity; -$resql=$db->query($sql); +$sql .= " FROM ".MAIN_DB_PREFIX."document_model"; +$sql .= " WHERE type = '".$type."'"; +$sql .= " AND entity = ".$conf->entity; +$resql = $db->query($sql); if ($resql) { $i = 0; - $num_rows=$db->num_rows($resql); + $num_rows = $db->num_rows($resql); while ($i < $num_rows) { $array = $db->fetch_array($resql); @@ -352,17 +352,17 @@ foreach ($dirmodels as $reldir) if (is_dir($dir)) { - $handle=opendir($dir); + $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - $filelist[]=$file; + $filelist[] = $file; } closedir($handle); arsort($filelist); - foreach($filelist as $file) + foreach ($filelist as $file) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { @@ -416,15 +416,15 @@ foreach ($dirmodels as $reldir) print ''; // Info - $htmltooltip = ''.$langs->trans("Name").': '.$module->name; - $htmltooltip.='
'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); - $htmltooltip.='
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; - $htmltooltip.='

'.$langs->trans("FeaturesSupported").':'; - $htmltooltip.='
'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1); - $htmltooltip.='
'.$langs->trans("PaymentMode").': '.yn($module->option_modereg, 1, 1); - $htmltooltip.='
'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg, 1, 1); - $htmltooltip.='
'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1); - $htmltooltip.='
'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark, 1, 1); + $htmltooltip = ''.$langs->trans("Name").': '.$module->name; + $htmltooltip .= '
'.$langs->trans("Type").': '.($module->type ? $module->type : $langs->trans("Unknown")); + $htmltooltip .= '
'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur; + $htmltooltip .= '

'.$langs->trans("FeaturesSupported").':'; + $htmltooltip .= '
'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1); + $htmltooltip .= '
'.$langs->trans("PaymentMode").': '.yn($module->option_modereg, 1, 1); + $htmltooltip .= '
'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg, 1, 1); + $htmltooltip .= '
'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1); + $htmltooltip .= '
'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark, 1, 1); print ''; print $form->textwithpicto('', $htmltooltip, -1, 0); print ''; @@ -472,15 +472,15 @@ print ''.$langs->trans("Parameter").''; print ''; print "\n"; -$substitutionarray=pdf_getSubstitutionArray($langs, null, null, 2); -$substitutionarray['__(AnyTranslationKey)__']=$langs->trans("Translation"); +$substitutionarray = pdf_getSubstitutionArray($langs, null, null, 2); +$substitutionarray['__(AnyTranslationKey)__'] = $langs->trans("Translation"); $htmltext = ''.$langs->trans("AvailableVariables").':
'; -foreach($substitutionarray as $key => $val) $htmltext.=$key.'
'; -$htmltext.='
'; +foreach ($substitutionarray as $key => $val) $htmltext .= $key.'
'; +$htmltext .= ''; print ''; print $form->textwithpicto($langs->trans("FreeLegalTextOnExpenseReports"), $langs->trans("AddCRIfTooLong").'

'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'
'; -$variablename='EXPENSEREPORT_FREE_TEXT'; +$variablename = 'EXPENSEREPORT_FREE_TEXT'; if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) { print ''; @@ -488,7 +488,7 @@ if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) else { include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); + $doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes'); print $doleditor->Create(); } print ''."\n"; diff --git a/htdocs/admin/expensereport_extrafields.php b/htdocs/admin/expensereport_extrafields.php index 61dcf3dcf66..bc0f52120fb 100644 --- a/htdocs/admin/expensereport_extrafields.php +++ b/htdocs/admin/expensereport_extrafields.php @@ -40,13 +40,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='expensereport'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'expensereport'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -65,7 +65,7 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; llxHeader('', $langs->trans("ExpenseReportsSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ExpenseReportsSetup"), $linkback, 'title_setup'); $head = expensereport_admin_prepare_head(); @@ -105,7 +105,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/admin/expensereport_ik.php b/htdocs/admin/expensereport_ik.php index 0933d823297..83bb28ca440 100644 --- a/htdocs/admin/expensereport_ik.php +++ b/htdocs/admin/expensereport_ik.php @@ -31,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport_ik.class.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","trips","errors","other","dict")); +$langs->loadLangs(array("admin", "trips", "errors", "other", "dict")); if (!$user->admin) accessforbidden(); @@ -88,12 +88,12 @@ $rangesbycateg = ExpenseReportIk::getAllRanges(); llxHeader('', $langs->trans("ExpenseReportsSetup")); -$form=new Form($db); +$form = new Form($db); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ExpenseReportsIkSetup"), $linkback, 'title_setup'); -$head=expensereport_admin_prepare_head(); +$head = expensereport_admin_prepare_head(); dol_fiche_head($head, 'expenseik', $langs->trans("ExpenseReportsIk"), -1, 'trip'); echo $langs->trans('ExpenseReportIkDesc'); @@ -125,11 +125,11 @@ foreach ($rangesbycateg as $fk_c_exp_tax_cat => $Tab) if ($Tab['active'] == 0) continue; - $tranche=1; + $tranche = 1; foreach ($Tab['ranges'] as $k => $range) { - if (isset($Tab['ranges'][$k+1])) $label = $langs->trans('expenseReportRangeFromTo', $range->range_ik, ($Tab['ranges'][$k+1]->range_ik-1)); + if (isset($Tab['ranges'][$k + 1])) $label = $langs->trans('expenseReportRangeFromTo', $range->range_ik, ($Tab['ranges'][$k + 1]->range_ik - 1)); else $label = $langs->trans('expenseReportRangeMoreThan', $range->range_ik); if ($range->range_active == 0) $label = $form->textwithpicto($label, $langs->trans('expenseReportRangeDisabled'), 1, 'help', '', 0, 3); diff --git a/htdocs/admin/external_rss.php b/htdocs/admin/external_rss.php index 1b41205b3b5..cc2edb550a0 100644 --- a/htdocs/admin/external_rss.php +++ b/htdocs/admin/external_rss.php @@ -6,6 +6,7 @@ * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2020 Tobias Sekan * * 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 @@ -30,6 +31,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/rssparser.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php'; // Load translation files required by the page $langs->load("admin"); @@ -38,8 +40,8 @@ $langs->load("admin"); if (!$user->admin) accessforbidden(); $def = array(); -$lastexternalrss=0; -$action=GETPOST('action', 'aZ09'); +$lastexternalrss = 0; +$action = GETPOST('action', 'aZ09'); /* @@ -47,10 +49,10 @@ $action=GETPOST('action', 'aZ09'); */ // positionne la variable pour le nombre de rss externes -$sql ="SELECT ".$db->decrypt('name')." as name FROM ".MAIN_DB_PREFIX."const"; -$sql.=" WHERE ".$db->decrypt('name')." LIKE 'EXTERNAL_RSS_URLRSS_%'"; +$sql = "SELECT ".$db->decrypt('name')." as name FROM ".MAIN_DB_PREFIX."const"; +$sql .= " WHERE ".$db->decrypt('name')." LIKE 'EXTERNAL_RSS_URLRSS_%'"; //print $sql; -$result=$db->query($sql); // We can't use SELECT MAX() because EXTERNAL_RSS_URLRSS_10 is lower than EXTERNAL_RSS_URLRSS_9 +$result = $db->query($sql); // We can't use SELECT MAX() because EXTERNAL_RSS_URLRSS_10 is lower than EXTERNAL_RSS_URLRSS_9 if ($result) { while ($obj = $db->fetch_object($result)) @@ -66,12 +68,12 @@ else if ($action == 'add' || GETPOST("modify")) { - $external_rss_title = "external_rss_title_" . GETPOST("norss", 'int'); - $external_rss_urlrss = "external_rss_urlrss_" . GETPOST("norss", 'int'); + $external_rss_title = "external_rss_title_".GETPOST("norss", 'int'); + $external_rss_urlrss = "external_rss_urlrss_".GETPOST("norss", 'int'); - if (! empty($_POST[$external_rss_urlrss])) + if (!empty($_POST[$external_rss_urlrss])) { - $boxlabel='(ExternalRSSInformations)'; + $boxlabel = '(ExternalRSSInformations)'; //$external_rss_url = "external_rss_url_" . $_POST["norss"]; $db->begin(); @@ -95,16 +97,16 @@ if ($action == 'add' || GETPOST("modify")) { // Ajoute boite box_external_rss dans definition des boites $sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (file, note)"; - $sql.= " VALUES ('box_external_rss.php','".$db->escape(GETPOST("norss", 'int').' ('.GETPOST($external_rss_title, 'alpha')).")')"; - if (! $db->query($sql)) + $sql .= " VALUES ('box_external_rss.php','".$db->escape(GETPOST("norss", 'int').' ('.GETPOST($external_rss_title, 'alpha')).")')"; + if (!$db->query($sql)) { dol_print_error($db); $err++; } } - $result1=dolibarr_set_const($db, "EXTERNAL_RSS_TITLE_" . GETPOST("norss", 'int'), GETPOST($external_rss_title, 'alpha'), 'chaine', 0, '', $conf->entity); - if ($result1) $result2=dolibarr_set_const($db, "EXTERNAL_RSS_URLRSS_" . GETPOST("norss", 'int'), GETPOST($external_rss_urlrss, 'alpha'), 'chaine', 0, '', $conf->entity); + $result1 = dolibarr_set_const($db, "EXTERNAL_RSS_TITLE_".GETPOST("norss", 'int'), GETPOST($external_rss_title, 'alpha'), 'chaine', 0, '', $conf->entity); + if ($result1) $result2 = dolibarr_set_const($db, "EXTERNAL_RSS_URLRSS_".GETPOST("norss", 'int'), GETPOST($external_rss_urlrss, 'alpha'), 'chaine', 0, '', $conf->entity); if ($result1 && $result2) { @@ -128,27 +130,27 @@ if ($_POST["delete"]) // Supprime boite box_external_rss de definition des boites $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."boxes_def"; - $sql.= " WHERE file = 'box_external_rss.php' AND note LIKE '".$db->escape(GETPOST("norss", 'int'))." %'"; + $sql .= " WHERE file = 'box_external_rss.php' AND note LIKE '".$db->escape(GETPOST("norss", 'int'))." %'"; - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - $i=0; + $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes"; - $sql.= " WHERE entity = ".$conf->entity; - $sql.= " AND box_id = ".$obj->rowid; - $resql=$db->query($sql); + $sql .= " WHERE entity = ".$conf->entity; + $sql .= " AND box_id = ".$obj->rowid; + $resql = $db->query($sql); $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def"; - $sql.= " WHERE rowid = ".$obj->rowid; - $resql=$db->query($sql); + $sql .= " WHERE rowid = ".$obj->rowid; + $resql = $db->query($sql); - if (! $resql) + if (!$resql) { $db->rollback(); dol_print_error($db, "sql=".$sql); @@ -168,8 +170,8 @@ if ($_POST["delete"]) } - $result1=dolibarr_del_const($db, "EXTERNAL_RSS_TITLE_".GETPOST("norss", 'int'), $conf->entity); - if ($result1) $result2=dolibarr_del_const($db, "EXTERNAL_RSS_URLRSS_".GETPOST("norss", 'int'), $conf->entity); + $result1 = dolibarr_del_const($db, "EXTERNAL_RSS_TITLE_".GETPOST("norss", 'int'), $conf->entity); + if ($result1) $result2 = dolibarr_del_const($db, "EXTERNAL_RSS_URLRSS_".GETPOST("norss", 'int'), $conf->entity); if ($result1 && $result2) { @@ -192,7 +194,7 @@ if ($_POST["delete"]) llxHeader('', $langs->trans("ExternalRSSSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ExternalRSSSetup"), $linkback, 'title_setup'); print '
'; @@ -207,13 +209,13 @@ print ''.$langs->trans("Example").''; print ''; print ''; print ''.$langs->trans("Title").''; -print ''; +print ''; print ''.$langs->trans('RSSUrlExample').''; print ''; print ''; print ''.$langs->trans('RSSUrl').''; -print ''; +print ''; print 'http://news.google.com/news?ned=us&topic=h&output=rss
http://www.dolibarr.org/rss'; print ''; print ''; @@ -221,22 +223,26 @@ print ''; print '
'; print ''; print ''; -print ''; -print '


'; +print ''; +print '
'; print ''; +print '

'; +print ''.$langs->trans('RssNote').' - '.$langs->trans('JumpToBoxes').''; +print '

'; -$sql ="SELECT rowid, file, note FROM ".MAIN_DB_PREFIX."boxes_def"; -$sql.=" WHERE file = 'box_external_rss.php'"; -$sql.=" ORDER BY note"; +$sql = "SELECT rowid, file, note FROM ".MAIN_DB_PREFIX."boxes_def"; +$sql .= " WHERE file = 'box_external_rss.php'"; +$sql .= " ORDER BY note"; dol_syslog("select rss boxes", LOG_DEBUG); -$resql=$db->query($sql); +$resql = $db->query($sql); if ($resql) { - $num =$db->num_rows($resql); - $i=0; + $boxlist = InfoBox::listBoxes($db, 'activated', -1, null); + $num = $db->num_rows($resql); + $i = 0; while ($i < $num) { @@ -244,40 +250,40 @@ if ($resql) preg_match('/^([0-9]+)/i', $obj->note, $reg); $idrss = $reg[1]; - $keyrsstitle="EXTERNAL_RSS_TITLE_".$idrss; - $keyrssurl="EXTERNAL_RSS_URLRSS_".$idrss; + $keyrsstitle = "EXTERNAL_RSS_TITLE_".$idrss; + $keyrssurl = "EXTERNAL_RSS_URLRSS_".$idrss; //print "x".$idrss; - $rssparser=new RssParser($db); + $rssparser = new RssParser($db); $result = $rssparser->parser($conf->global->$keyrssurl, 5, 300, $conf->externalrss->dir_temp); print "
"; - print "
"; + print ''."\n"; - print ''; - print ''; + print '
'."\n"; + print ''."\n"; - print ""; - print ""; + print ''; + print ""; print ''; - print ""; + print ""."\n"; print ''; print ""; - print ""; - print ""; + print ""; + print ""."\n"; print ''; print ""; - print ""; - print ""; + print ""; + print ""."\n"; print ''; @@ -295,7 +301,7 @@ if ($resql) print ''; } print ""; - print ""; + print ""."\n"; // Logo if ($result > 0 && empty($rss->error)) @@ -303,18 +309,25 @@ if ($resql) print ''; print ""; print ''; - print ""; + print ""."\n"; } - print '
".$langs->trans("RSS")." ".($i+1)."
".$langs->trans("RSS")." ".($i + 1)."'; - print "trans("Modify")."\">"; + print ''; print "   "; - print "trans("Delete")."\">"; - print ""; + print ''; + print ''; print '
".$langs->trans("Title")."global->$keyrsstitle) . "\">
global->$keyrsstitle)."\">
".$langs->trans("URL")."global->$keyrssurl) . "\">
global->$keyrssurl)."\">
".$langs->trans("Logo")."'; - $imageurl=$rssparser->getImageUrl(); - $linkrss=$rssparser->getLink(); - if (! preg_match('/^http/', $imageurl)) $imageurl=$linkrss.$imageurl; + $imageurl = $rssparser->getImageUrl(); + $linkrss = $rssparser->getLink(); + if (!preg_match('/^http/', $imageurl)) $imageurl = $linkrss.$imageurl; if ($imageurl) print ''; else print $langs->trans("None"); print '
'; + // Active + $active = _isInBoxList($idrss, $boxlist) ? 'yes' : 'no'; + print ''; + print ''.$langs->trans('WidgetEnabled').''; + print ''.yn($active).''; + print ""."\n"; - print "
"; + print ''."\n"; + + print ""."\n"; $i++; } @@ -327,3 +340,23 @@ else // End of page llxFooter(); $db->close(); + +/** + * Check if the given RSS feed if inside the list of boxes/widgets + * + * @param int $idrss The id of the RSS feed + * @param array $boxlist A list with boxes/widgets + * @return bool true if the rss feed is inside the box/widget list, otherwise false + */ +function _isInBoxList($idrss, array $boxlist) +{ + foreach($boxlist as $box) + { + if($box->boxcode === "lastrssinfos" && strpos($box->note, $idrss) !== false) + { + return true; + } + } + + return false; +} diff --git a/htdocs/admin/facture_situation.php b/htdocs/admin/facture_situation.php index 65f7ca4b8de..ce327cc5187 100644 --- a/htdocs/admin/facture_situation.php +++ b/htdocs/admin/facture_situation.php @@ -245,13 +245,13 @@ function _printInputFormPart($confkey, $title = false, $desc = '', $metas = arra print ''; if ($type=='textarea') { - print ''; + print ''; }elseif($type=='input'){ print ''; } else{ // custom print $type; - } + } print ''; } diff --git a/htdocs/admin/fckeditor.php b/htdocs/admin/fckeditor.php index ad077361fe8..00995a302a5 100644 --- a/htdocs/admin/fckeditor.php +++ b/htdocs/admin/fckeditor.php @@ -39,7 +39,7 @@ $action = GETPOST('action', 'alpha'); // dolibarr_readonly // dolibarr_mailings // Full (not sure this one is used) -$mode=GETPOST('mode')?GETPOST('mode', 'alpha'):'dolibarr_notes'; +$mode = GETPOST('mode') ?GETPOST('mode', 'alpha') : 'dolibarr_notes'; if (!$user->admin) accessforbidden(); @@ -56,12 +56,12 @@ $modules = array( // Conditions pour que l'option soit proposee $conditions = array( 'SOCIETE' => 1, -'PRODUCTDESC' => (! empty($conf->product->enabled) || ! empty($conf->service->enabled)), -'DETAILS' => (! empty($conf->facture->enabled) || ! empty($conf->propal->enabled) || ! empty($conf->commande->enabled) || ! empty($conf->supplier_proposal->enabled) || ! empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || ! empty($conf->supplier_order->enabled) || ! empty($conf->supplier_invoice->enabled)), +'PRODUCTDESC' => (!empty($conf->product->enabled) || !empty($conf->service->enabled)), +'DETAILS' => (!empty($conf->facture->enabled) || !empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->supplier_proposal->enabled) || !empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)), 'USERSIGN' => 1, -'MAILING' => ! empty($conf->mailing->enabled), -'MAIL' => (! empty($conf->facture->enabled) || ! empty($conf->propal->enabled) || ! empty($conf->commande->enabled)), -'TICKET' => ! empty($conf->ticket->enabled) +'MAILING' => !empty($conf->mailing->enabled), +'MAIL' => (!empty($conf->facture->enabled) || !empty($conf->propal->enabled) || !empty($conf->commande->enabled)), +'TICKET' => !empty($conf->ticket->enabled) ); // Picto $picto = array( @@ -80,13 +80,13 @@ $picto = array( * Actions */ -foreach($modules as $const => $desc) +foreach ($modules as $const => $desc) { if ($action == 'activate_'.strtolower($const)) { dolibarr_set_const($db, "FCKEDITOR_ENABLE_".$const, "1", 'chaine', 0, '', $conf->entity); // Si fckeditor est active dans la description produit/service, on l'active dans les formulaires - if ($const == 'PRODUCTDESC' && ! empty($conf->global->PRODUIT_DESC_IN_FORM)) + if ($const == 'PRODUCTDESC' && !empty($conf->global->PRODUIT_DESC_IN_FORM)) { dolibarr_set_const($db, "FCKEDITOR_ENABLE_DETAILS", "1", 'chaine', 0, '', $conf->entity); } @@ -106,24 +106,24 @@ if (GETPOST('save', 'alpha')) $error = 0; $fckeditor_skin = GETPOST('fckeditor_skin', 'alpha'); - if (! empty($fckeditor_skin)) { - if (! dolibarr_set_const($db, 'FCKEDITOR_SKIN', $fckeditor_skin, 'chaine', 0, '', $conf->entity)) { - $error ++; + if (!empty($fckeditor_skin)) { + if (!dolibarr_set_const($db, 'FCKEDITOR_SKIN', $fckeditor_skin, 'chaine', 0, '', $conf->entity)) { + $error++; } } else { - $error ++; + $error++; } $fckeditor_test = GETPOST('formtestfield'); - if (! empty($fckeditor_test)) { - if (! dolibarr_set_const($db, 'FCKEDITOR_TEST', $fckeditor_test, 'chaine', 0, '', $conf->entity)) { - $error ++; + if (!empty($fckeditor_test)) { + if (!dolibarr_set_const($db, 'FCKEDITOR_TEST', $fckeditor_test, 'chaine', 0, '', $conf->entity)) { + $error++; } } else { - $error ++; + $error++; } - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -139,7 +139,7 @@ if (GETPOST('save', 'alpha')) llxHeader(); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("AdvancedEditor"), $linkback, 'title_setup'); print '
'; @@ -156,17 +156,17 @@ else print "\n"; // Modules - foreach($modules as $const => $desc) + foreach ($modules as $const => $desc) { // Si condition non remplie, on ne propose pas l'option - if (! $conditions[$const]) continue; + if (!$conditions[$const]) continue; print ''; print ''.img_object("", $picto[$const]).''; print ''.$langs->trans($desc).''; print ''; $constante = 'FCKEDITOR_ENABLE_'.$const; - $value = (isset($conf->global->$constante)?$conf->global->$constante:0); + $value = (isset($conf->global->$constante) ? $conf->global->$constante : 0); if ($value == 0) { print ''.img_picto($langs->trans("Disabled"), 'switch_off').''; @@ -185,31 +185,31 @@ else print '
'."\n"; print '
'."\n"; - print ''; + print ''; // Skins show_skin(null, 1); print '
'."\n"; - $listofmodes=array('dolibarr_mailings', 'dolibarr_notes', 'dolibarr_details', 'dolibarr_readonly', 'Full', 'Full_inline'); - $linkstomode=''; - foreach($listofmodes as $newmode) + $listofmodes = array('dolibarr_mailings', 'dolibarr_notes', 'dolibarr_details', 'dolibarr_readonly', 'Full', 'Full_inline'); + $linkstomode = ''; + foreach ($listofmodes as $newmode) { - if ($linkstomode) $linkstomode.=' - '; - $linkstomode.=''; - if ($mode == $newmode) $linkstomode.=''; - $linkstomode.=$newmode; - if ($mode == $newmode) $linkstomode.=''; - $linkstomode.=''; + if ($linkstomode) $linkstomode .= ' - '; + $linkstomode .= ''; + if ($mode == $newmode) $linkstomode .= ''; + $linkstomode .= $newmode; + if ($mode == $newmode) $linkstomode .= ''; + $linkstomode .= ''; } - $linkstomode.=''; + $linkstomode .= ''; print load_fiche_titre($langs->trans("TestSubmitForm"), $linkstomode, ''); print ''; if ($mode != 'Full_inline') { - $uselocalbrowser=true; - $readonly=($mode=='dolibarr_readonly'?1:0); - $editor=new DolEditor('formtestfield', isset($conf->global->FCKEDITOR_TEST)?$conf->global->FCKEDITOR_TEST:'Test', '', 200, $mode, 'In', true, $uselocalbrowser, 1, 120, 8, $readonly); + $uselocalbrowser = true; + $readonly = ($mode == 'dolibarr_readonly' ? 1 : 0); + $editor = new DolEditor('formtestfield', isset($conf->global->FCKEDITOR_TEST) ? $conf->global->FCKEDITOR_TEST : 'Test', '', 200, $mode, 'In', true, $uselocalbrowser, 1, 120, 8, $readonly); $editor->Create(); } else diff --git a/htdocs/admin/geoipmaxmind.php b/htdocs/admin/geoipmaxmind.php index 38074953e26..a661f3a8e9a 100644 --- a/htdocs/admin/geoipmaxmind.php +++ b/htdocs/admin/geoipmaxmind.php @@ -32,7 +32,7 @@ if (!$user->admin) accessforbidden(); // Load translation files required by the page -$langs->loadLangs(array("admin","errors")); +$langs->loadLangs(array("admin", "errors")); $action = GETPOST('action', 'aZ09'); @@ -43,25 +43,25 @@ $action = GETPOST('action', 'aZ09'); if ($action == 'set') { - $error=0; + $error = 0; - $gimcdf= GETPOST("GEOIPMAXMIND_COUNTRY_DATAFILE"); + $gimcdf = GETPOST("GEOIPMAXMIND_COUNTRY_DATAFILE"); - if (! $gimcdf && ! file_exists($gimcdf)) + if (!$gimcdf && !file_exists($gimcdf)) { setEventMessages($langs->trans("ErrorFileNotFound", $gimcdf), null, 'errors'); $error++; } - if (! $error) + if (!$error) { $res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity); - if (! $res1 > 0) $error++; + if (!$res1 > 0) $error++; $res2 = dolibarr_set_const($db, "GEOIPMAXMIND_COUNTRY_DATAFILE", $gimcdf, 'chaine', 0, '', $conf->entity); - if (! $res2 > 0) $error++; + if (!$res2 > 0) $error++; - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -72,26 +72,26 @@ if ($action == 'set') } } -if (! isset($conf->global->GEOIP_VERSION)) $conf->global->GEOIP_VERSION = '2'; +if (!isset($conf->global->GEOIP_VERSION)) $conf->global->GEOIP_VERSION = '2'; /* * View */ -$form=new Form($db); +$form = new Form($db); llxHeader(); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("GeoIPMaxmindSetup"), $linkback, 'title_setup'); print '
'; -$version=''; -$geoip=''; -if (! empty($conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE)) +$version = ''; +$geoip = ''; +if (!empty($conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE)) { - $geoip=new DolGeoIP('country', $conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE); + $geoip = new DolGeoIP('country', $conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE); } // Mode @@ -112,7 +112,7 @@ $arrayofvalues = array('php' => 'Native PHP functions', '1' => 'Embedded GeoIP v print $form->selectarray('geoipversion', $arrayofvalues, (isset($conf->global->GEOIP_VERSION) ? $conf->global->GEOIP_VERSION : '2')); if ($conf->global->GEOIP_VERSION == 'php') { - if ($geoip) $version=$geoip->getVersion(); + if ($geoip) $version = $geoip->getVersion(); if ($version) { print '
'.$langs->trans("Version").': '.$version; @@ -139,12 +139,12 @@ print '
'; print $langs->trans("NoteOnPathLocation").'
'; -$url1='http://www.maxmind.com/en/city?rId=awstats'; +$url1 = 'http://www.maxmind.com/en/city?rId=awstats'; print $langs->trans("YouCanDownloadFreeDatFileTo", ''.$url1.''); print '
'; -$url2='http://www.maxmind.com/en/city?rId=awstats'; +$url2 = 'http://www.maxmind.com/en/city?rId=awstats'; print $langs->trans("YouCanDownloadAdvancedDatFileTo", ''.$url2.''); if ($geoip) @@ -152,15 +152,15 @@ if ($geoip) print '

'; print '
'.$langs->trans("TestGeoIPResult", $ip).':'; - $ip='24.24.24.24'; + $ip = '24.24.24.24'; print '
'.$ip.' -> '; - $result=dol_print_ip($ip, 1); + $result = dol_print_ip($ip, 1); if ($result) print $result; else print $langs->trans("Error"); - $ip='2a01:e0a:7e:4a60:429a:23ff:f7b8:dc8a'; // should be France + $ip = '2a01:e0a:7e:4a60:429a:23ff:f7b8:dc8a'; // should be France print '
'.$ip.' -> '; - $result=dol_print_ip($ip, 1); + $result = dol_print_ip($ip, 1); if ($result) print $result; else print $langs->trans("Error"); @@ -175,18 +175,18 @@ if ($geoip) //var_dump($_SERVER); $ip = getUserRemoteIP(); //$ip='91.161.249.43'; - $isip=is_ip($ip); + $isip = is_ip($ip); if ($isip == 1) { print '
'.$ip.' -> '; - $result=dol_print_ip($ip, 1); + $result = dol_print_ip($ip, 1); if ($result) print $result; else print $langs->trans("Error"); } else { print '
'.$ip.' -> '; - $result=dol_print_ip($ip, 1); + $result = dol_print_ip($ip, 1); if ($result) print $result; else print $langs->trans("NotAPublicIp"); } diff --git a/htdocs/admin/holiday_extrafields.php b/htdocs/admin/holiday_extrafields.php index b9c32a8b9c9..fc0bac8a019 100644 --- a/htdocs/admin/holiday_extrafields.php +++ b/htdocs/admin/holiday_extrafields.php @@ -40,13 +40,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='holiday'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'holiday'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -65,7 +65,7 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; llxHeader('', $langs->trans("HolidaySetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("HolidaySetup"), $linkback, 'title_setup'); $head = holiday_admin_prepare_head(); @@ -105,7 +105,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php index 2f33b3ab49b..ab67974c920 100644 --- a/htdocs/admin/ihm.php +++ b/htdocs/admin/ihm.php @@ -154,8 +154,10 @@ if ($action == 'update') //dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT", GETPOST("MAIN_DISABLE_JAVASCRIPT", 'aZ09'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_BUTTON_HIDE_UNAUTHORIZED", GETPOST("MAIN_BUTTON_HIDE_UNAUTHORIZED", 'aZ09'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_START_WEEK", GETPOST("MAIN_START_WEEK", 'int'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_DAYS", GETPOST("MAIN_DEFAULT_WORKING_DAYS", 'int'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_HOURS", GETPOST("MAIN_DEFAULT_WORKING_HOURS", 'int'), 'chaine', 0, '', $conf->entity); + + dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_DAYS", GETPOST("MAIN_DEFAULT_WORKING_DAYS", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_HOURS", GETPOST("MAIN_DEFAULT_WORKING_HOURS", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION", GETPOST("MAIN_FIRSTNAME_NAME_POSITION", 'aZ09'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK", GETPOST('MAIN_HELPCENTER_DISABLELINK', 'aZ09'), 'chaine', 0, '', 0); // Param for all entities @@ -241,9 +243,9 @@ print ''; clearstatcache(); print '
'; -print ''; -print ''; -print ''; +print '
'.$langs->trans("Language").' 
'; +print ''; +print ''; // Default language @@ -268,9 +270,9 @@ showSkins(null, 1); print '
'; // Other -print '
'.$langs->trans("Language").' '; print '
'; -print ''; -print ''; +print '
'.$langs->trans("Miscellaneous").' 
'; +print ''; +print ''; // Disable javascript and ajax @@ -385,9 +387,9 @@ print '
'; // Other print '
'; -print '
'.$langs->trans("Miscellaneous").' '; print '
'; -print ''; -print ''; +print '
'.$langs->trans("LoginPage").' 
'; +print ''; +print ''; print ''; // Message on login page diff --git a/htdocs/admin/index.php b/htdocs/admin/index.php index c3ce7724752..1a55fbc04ee 100644 --- a/htdocs/admin/index.php +++ b/htdocs/admin/index.php @@ -39,23 +39,23 @@ $hookmanager->initHooks(array('homesetup')); $form = new Form($db); -$wikihelp='EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones'; +$wikihelp = 'EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones'; llxHeader('', $langs->trans("Setup"), $wikihelp); print load_fiche_titre($langs->trans("SetupArea"), '', 'tools'); -if (! empty($conf->global->MAIN_MOTD_SETUPPAGE)) +if (!empty($conf->global->MAIN_MOTD_SETUPPAGE)) { - $conf->global->MAIN_MOTD_SETUPPAGE=preg_replace('//i', '
', $conf->global->MAIN_MOTD_SETUPPAGE); - if (! empty($conf->global->MAIN_MOTD_SETUPPAGE)) + $conf->global->MAIN_MOTD_SETUPPAGE = preg_replace('//i', '
', $conf->global->MAIN_MOTD_SETUPPAGE); + if (!empty($conf->global->MAIN_MOTD_SETUPPAGE)) { - $i=0; + $i = 0; while (preg_match('/__\(([a-zA-Z|@]+)\)__/i', $conf->global->MAIN_MOTD_SETUPPAGE, $reg) && $i < 100) { - $tmp=explode('|', $reg[1]); - if (! empty($tmp[1])) $langs->load($tmp[1]); - $conf->global->MAIN_MOTD_SETUPPAGE=preg_replace('/__\('.preg_quote($reg[1]).'\)__/i', $langs->trans($tmp[0]), $conf->global->MAIN_MOTD_SETUPPAGE); + $tmp = explode('|', $reg[1]); + if (!empty($tmp[1])) $langs->load($tmp[1]); + $conf->global->MAIN_MOTD_SETUPPAGE = preg_replace('/__\('.preg_quote($reg[1]).'\)__/i', $langs->trans($tmp[0]), $conf->global->MAIN_MOTD_SETUPPAGE); $i++; } diff --git a/htdocs/admin/ldap.php b/htdocs/admin/ldap.php index edb0c800720..83505747fcd 100644 --- a/htdocs/admin/ldap.php +++ b/htdocs/admin/ldap.php @@ -40,38 +40,38 @@ if (!$user->admin) $action = GETPOST('action', 'aZ09'); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('adminldap','globaladmin')); +$hookmanager->initHooks(array('adminldap', 'globaladmin')); /* * Actions */ -$parameters=array(); -$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) { if ($action == 'setvalue' && $user->admin) { - $error=0; + $error = 0; $db->begin(); - if (! dolibarr_set_const($db, 'LDAP_SERVER_TYPE', GETPOST("type"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_SERVER_PROTOCOLVERSION', GETPOST("LDAP_SERVER_PROTOCOLVERSION"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_SERVER_HOST', GETPOST("host"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_SERVER_HOST_SLAVE', GETPOST("slave"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_SERVER_PORT', GETPOST("port"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_SERVER_DN', GETPOST("dn"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_ADMIN_DN', GETPOST("admin"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_ADMIN_PASS', GETPOST("pass"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_SERVER_USE_TLS', GETPOST("usetls"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_SYNCHRO_ACTIVE', GETPOST("activesynchro"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_ACTIVE', GETPOST("activecontact"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_ACTIVE', GETPOST("activemembers"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_TYPE_ACTIVE', GETPOST("activememberstypes"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_SERVER_TYPE', GETPOST("type"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_SERVER_PROTOCOLVERSION', GETPOST("LDAP_SERVER_PROTOCOLVERSION"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_SERVER_HOST', GETPOST("host"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_SERVER_HOST_SLAVE', GETPOST("slave"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_SERVER_PORT', GETPOST("port"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_SERVER_DN', GETPOST("dn"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_ADMIN_DN', GETPOST("admin"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_ADMIN_PASS', GETPOST("pass"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_SERVER_USE_TLS', GETPOST("usetls"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_SYNCHRO_ACTIVE', GETPOST("activesynchro"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_ACTIVE', GETPOST("activecontact"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_ACTIVE', GETPOST("activemembers"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_TYPE_ACTIVE', GETPOST("activememberstypes"), 'chaine', 0, '', $conf->entity)) $error++; - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -90,20 +90,20 @@ if (empty($reshook)) llxHeader('', $langs->trans("LDAPSetup"), 'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP'); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("LDAPSetup"), $linkback, 'title_setup'); $head = ldap_prepare_head(); // Test si fonction LDAP actives -if (! function_exists("ldap_connect")) +if (!function_exists("ldap_connect")) { setEventMessages($langs->trans("LDAPFunctionsNotAvailableOnPHP"), null, 'errors'); } -$form=new Form($db); +$form = new Form($db); print ''; @@ -121,56 +121,56 @@ print "\n"; // Synchro utilisateurs/groupes active print '
'; // Synchro contact active -if (! empty($conf->societe->enabled)) +if (!empty($conf->societe->enabled)) { print ''; } // Synchro member active -if (! empty($conf->adherent->enabled)) +if (!empty($conf->adherent->enabled)) { print ''; } // Synchro member type active -if (! empty($conf->adherent->enabled)) +if (!empty($conf->adherent->enabled)) { print ''; } // Fields from hook -$parameters=array(); -$reshook=$hookmanager->executeHooks('addAdminLdapOptions', $parameters); // Note that $action and $object may have been modified by hook +$parameters = array(); +$reshook = $hookmanager->executeHooks('addAdminLdapOptions', $parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; print ''; @@ -181,18 +181,18 @@ print "\n"; // Type print ''; // Version print ''; @@ -210,7 +210,7 @@ print ''; // Port print ''; // Utiliser TLS print ''; @@ -244,9 +244,9 @@ print ''; // Pass print '\n"; print ''; -print '"; +print '"; print ''; // Name print ''; -print '"; +print '"; print ''; // Firstname print ''; -print '"; +print '"; print ''; // Company print ''; -print '"; +print '"; print ''; // Mail print ''; -print '"; +print '"; print ''; // Phone pro print ''; -print '"; +print '"; print ''; // Phone home print ''; -print '"; +print '"; print ''; // Mobile print ''; -print '"; +print '"; print ''; // Skype print ''; -print '"; +print '"; print ''; // Fax print ''; -print '"; +print '"; print ''; // Address print ''; -print '"; +print '"; print ''; // ZIP print ''; -print '"; +print '"; print ''; // TOWN print ''; -print '"; +print '"; print ''; // COUNTRY print ''; -print '"; +print '"; print ''; print '
'.$langs->trans("LoginPage").' 
'.$langs->trans("LDAPDnSynchroActive").''; -$arraylist=array(); -$arraylist['0']=$langs->trans("No"); -$arraylist['ldap2dolibarr']=$langs->trans("LDAPToDolibarr"); -$arraylist['dolibarr2ldap']=$langs->trans("DolibarrToLDAP"); +$arraylist = array(); +$arraylist['0'] = $langs->trans("No"); +$arraylist['ldap2dolibarr'] = $langs->trans("LDAPToDolibarr"); +$arraylist['dolibarr2ldap'] = $langs->trans("DolibarrToLDAP"); print $form->selectarray('activesynchro', $arraylist, $conf->global->LDAP_SYNCHRO_ACTIVE); print ''.$langs->trans("LDAPDnSynchroActiveExample"); -if ($conf->global->LDAP_SYNCHRO_ACTIVE && ! $conf->global->LDAP_USER_DN) +if ($conf->global->LDAP_SYNCHRO_ACTIVE && !$conf->global->LDAP_USER_DN) { print '
'.$langs->trans("LDAPSetupNotComplete").''; } print '
'.$langs->trans("LDAPDnContactActive").''; - $arraylist=array(); - $arraylist['0']=$langs->trans("No"); - $arraylist['1']=$langs->trans("DolibarrToLDAP"); + $arraylist = array(); + $arraylist['0'] = $langs->trans("No"); + $arraylist['1'] = $langs->trans("DolibarrToLDAP"); print $form->selectarray('activecontact', $arraylist, $conf->global->LDAP_CONTACT_ACTIVE); print ''.$langs->trans("LDAPDnContactActiveExample").'
'.$langs->trans("LDAPDnMemberActive").''; - $arraylist=array(); - $arraylist['0']=$langs->trans("No"); - $arraylist['1']=$langs->trans("DolibarrToLDAP"); - $arraylist['ldap2dolibarr']=$langs->trans("LDAPToDolibarr").' ('.$langs->trans("SupportedForLDAPImportScriptOnly").')'; + $arraylist = array(); + $arraylist['0'] = $langs->trans("No"); + $arraylist['1'] = $langs->trans("DolibarrToLDAP"); + $arraylist['ldap2dolibarr'] = $langs->trans("LDAPToDolibarr").' ('.$langs->trans("SupportedForLDAPImportScriptOnly").')'; print $form->selectarray('activemembers', $arraylist, $conf->global->LDAP_MEMBER_ACTIVE); print ''.$langs->trans("LDAPDnMemberActiveExample").'
'.$langs->trans("LDAPDnMemberTypeActive").''; - $arraylist=array(); - $arraylist['0']=$langs->trans("No"); - $arraylist['1']=$langs->trans("DolibarrToLDAP"); - $arraylist['ldap2dolibarr']=$langs->trans("LDAPToDolibarr").' ('.$langs->trans("SupportedForLDAPImportScriptOnly").')'; + $arraylist = array(); + $arraylist['0'] = $langs->trans("No"); + $arraylist['1'] = $langs->trans("DolibarrToLDAP"); + $arraylist['ldap2dolibarr'] = $langs->trans("LDAPToDolibarr").' ('.$langs->trans("SupportedForLDAPImportScriptOnly").')'; print $form->selectarray('activememberstypes', $arraylist, $conf->global->LDAP_MEMBER_TYPE_ACTIVE); print ''.$langs->trans("LDAPDnMemberTypeActiveExample").'
'.$langs->trans("Type").''; -$arraylist=array(); -$arraylist['activedirectory']='Active Directory'; -$arraylist['openldap']='OpenLdap'; -$arraylist['egroupware']='Egroupware'; +$arraylist = array(); +$arraylist['activedirectory'] = 'Active Directory'; +$arraylist['openldap'] = 'OpenLdap'; +$arraylist['egroupware'] = 'Egroupware'; print $form->selectarray('type', $arraylist, $conf->global->LDAP_SERVER_TYPE); print ' 
'.$langs->trans("Version").''; -$arraylist=array(); -$arraylist['3']='Version 3'; -$arraylist['2']='Version 2'; +$arraylist = array(); +$arraylist['3'] = 'Version 3'; +$arraylist['2'] = 'Version 2'; print $form->selectarray('LDAP_SERVER_PROTOCOLVERSION', $arraylist, $conf->global->LDAP_SERVER_PROTOCOLVERSION); print ''.$langs->trans("LDAPServerProtocolVersion").'
'.$langs->trans("LDAPServerExample").'
'.$langs->trans("LDAPServerPort").''; -if (! empty($conf->global->LDAP_SERVER_PORT)) +if (!empty($conf->global->LDAP_SERVER_PORT)) { print ''; } @@ -227,9 +227,9 @@ print ''.$langs->trans("LDAPServerDnExample").'
'.$langs->trans("LDAPServerUseTLS").''; -$arraylist=array(); -$arraylist['0']=$langs->trans("No"); -$arraylist['1']=$langs->trans("Yes"); +$arraylist = array(); +$arraylist['0'] = $langs->trans("No"); +$arraylist['1'] = $langs->trans("Yes"); print $form->selectarray('usetls', $arraylist, $conf->global->LDAP_SERVER_USE_TLS); print ''.$langs->trans("LDAPServerUseTLSExample").'
'.$langs->trans("LDAPAdminDnExample").'
'.$langs->trans("LDAPPassword").''; -if (! empty($conf->global->LDAP_ADMIN_PASS)) +if (!empty($conf->global->LDAP_ADMIN_PASS)) { - print '';// je le met en visible pour test + print ''; // je le met en visible pour test } else { @@ -270,14 +270,14 @@ print '
'; */ if (function_exists("ldap_connect")) { - if (! empty($conf->global->LDAP_SERVER_HOST)) + if (!empty($conf->global->LDAP_SERVER_HOST)) { print ''.$langs->trans("LDAPTestConnect").'

'; } if ($_GET["action"] == 'test') { - $ldap = new Ldap(); // Les parametres sont passes et recuperes via $conf + $ldap = new Ldap(); // Les parametres sont passes et recuperes via $conf $result = $ldap->connect_bind(); if ($result > 0) @@ -287,7 +287,7 @@ if (function_exists("ldap_connect")) print ''.$langs->trans("LDAPTCPConnectOK", $conf->global->LDAP_SERVER_HOST, $conf->global->LDAP_SERVER_PORT).''; print '
'; - if ($conf->global->LDAP_ADMIN_DN && ! empty($conf->global->LDAP_ADMIN_PASS)) + if ($conf->global->LDAP_ADMIN_DN && !empty($conf->global->LDAP_ADMIN_PASS)) { if ($result == 2) { diff --git a/htdocs/admin/ldap_contacts.php b/htdocs/admin/ldap_contacts.php index d2984cab6bf..834bde4eea5 100644 --- a/htdocs/admin/ldap_contacts.php +++ b/htdocs/admin/ldap_contacts.php @@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/ldap.lib.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","errors")); +$langs->loadLangs(array("admin", "errors")); if (!$user->admin) accessforbidden(); @@ -46,35 +46,35 @@ $action = GETPOST('action', 'aZ09'); if ($action == 'setvalue' && $user->admin) { - $error=0; + $error = 0; $db->begin(); - if (! dolibarr_set_const($db, 'LDAP_CONTACT_DN', GETPOST("contactdn"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_OBJECT_CLASS', GETPOST("objectclass"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_DN', GETPOST("contactdn"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_OBJECT_CLASS', GETPOST("objectclass"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_FULLNAME', GETPOST("fieldfullname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_NAME', GETPOST("fieldname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_FIRSTNAME', GETPOST("fieldfirstname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_COMPANY', GETPOST("fieldcompany"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_MAIL', GETPOST("fieldmail"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_PHONE', GETPOST("fieldphone"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_HOMEPHONE', GETPOST("fieldhomephone"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_MOBILE', GETPOST("fieldmobile"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_SKYPE', GETPOST("fieldskype"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_FAX', GETPOST("fieldfax"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_ADDRESS', GETPOST("fieldaddress"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_ZIP', GETPOST("fieldzip"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_TOWN', GETPOST("fieldtown"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_COUNTRY', GETPOST("fieldcountry"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_FULLNAME', GETPOST("fieldfullname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_NAME', GETPOST("fieldname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_FIRSTNAME', GETPOST("fieldfirstname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_COMPANY', GETPOST("fieldcompany"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_MAIL', GETPOST("fieldmail"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_PHONE', GETPOST("fieldphone"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_HOMEPHONE', GETPOST("fieldhomephone"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_MOBILE', GETPOST("fieldmobile"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_SKYPE', GETPOST("fieldskype"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_FAX', GETPOST("fieldfax"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_ADDRESS', GETPOST("fieldaddress"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_ZIP', GETPOST("fieldzip"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_TOWN', GETPOST("fieldtown"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_CONTACT_FIELD_COUNTRY', GETPOST("fieldcountry"), 'chaine', 0, '', $conf->entity)) $error++; // This one must be after the others - $valkey=''; - $key=GETPOST("key"); - if ($key) $valkey=$conf->global->$key; - if (! dolibarr_set_const($db, 'LDAP_KEY_CONTACTS', $valkey, 'chaine', 0, '', $conf->entity)) $error++; + $valkey = ''; + $key = GETPOST("key"); + if ($key) $valkey = $conf->global->$key; + if (!dolibarr_set_const($db, 'LDAP_KEY_CONTACTS', $valkey, 'chaine', 0, '', $conf->entity)) $error++; - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -92,17 +92,17 @@ if ($action == 'setvalue' && $user->admin) * View */ -$form=new Form($db); +$form = new Form($db); llxHeader('', $langs->trans("LDAPSetup"), 'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP'); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("LDAPSetup"), $linkback, 'title_setup'); $head = ldap_prepare_head(); // Test si fonction LDAP actives -if (! function_exists("ldap_connect")) +if (!function_exists("ldap_connect")) { setEventMessages($langs->trans("LDAPFunctionsNotAvailableOnPHP"), null, 'errors'); } @@ -150,98 +150,98 @@ print "
'.$langs->trans("LDAPFieldFullname").''; print ''; print ''.$langs->trans("LDAPFieldFullnameExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_FULLNAME?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_FULLNAME ? ' checked' : '').">
'.$langs->trans("LDAPFieldName").''; print ''; print ''.$langs->trans("LDAPFieldNameExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_NAME?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_NAME ? ' checked' : '').">
'.$langs->trans("LDAPFieldFirstName").''; print ''; print ''.$langs->trans("LDAPFieldFirstNameExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_FIRSTNAME?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_FIRSTNAME ? ' checked' : '').">
'.$langs->trans("LDAPFieldCompany").''; print ''; print ''.$langs->trans("LDAPFieldCompanyExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_COMPANY?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_COMPANY ? ' checked' : '').">
'.$langs->trans("LDAPFieldMail").''; print ''; print ''.$langs->trans("LDAPFieldMailExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_MAIL?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_MAIL ? ' checked' : '').">
'.$langs->trans("LDAPFieldPhone").''; print ''; print ''.$langs->trans("LDAPFieldPhoneExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_PHONE?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_PHONE ? ' checked' : '').">
'.$langs->trans("LDAPFieldHomePhone").''; print ''; print ''.$langs->trans("LDAPFieldHomePhoneExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_HOMEPHONE?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_HOMEPHONE ? ' checked' : '').">
'.$langs->trans("LDAPFieldMobile").''; print ''; print ''.$langs->trans("LDAPFieldMobileExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_MOBILE?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_MOBILE ? ' checked' : '').">
'.$langs->trans("LDAPFieldSkype").''; print ''; print ''.$langs->trans("LDAPFieldSkypeExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_SKYPE?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_SKYPE ? ' checked' : '').">
'.$langs->trans("LDAPFieldFax").''; print ''; print ''.$langs->trans("LDAPFieldFaxExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_FAX?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_FAX ? ' checked' : '').">
'.$langs->trans("LDAPFieldAddress").''; print ''; print ''.$langs->trans("LDAPFieldAddressExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_ADDRESS?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_ADDRESS ? ' checked' : '').">
'.$langs->trans("LDAPFieldZip").''; print ''; print ''.$langs->trans("LDAPFieldZipExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_ZIP?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_ZIP ? ' checked' : '').">
'.$langs->trans("LDAPFieldTown").''; print ''; print ''.$langs->trans("LDAPFieldTownExample").'global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_TOWN?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_TOWN ? ' checked' : '').">
'.$langs->trans("LDAPFieldCountry").''; print ''; print ' global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS==$conf->global->LDAP_CONTACT_FIELD_COUNTRY?' checked':'').">global->LDAP_KEY_CONTACTS && $conf->global->LDAP_KEY_CONTACTS == $conf->global->LDAP_CONTACT_FIELD_COUNTRY ? ' checked' : '').">
'; @@ -258,11 +258,11 @@ print '
'; /* * Test de la connexion */ -$butlabel=$langs->trans("LDAPTestSynchroContact"); -$testlabel='test'; -$key=$conf->global->LDAP_KEY_CONTACTS; -$dn=$conf->global->LDAP_CONTACT_DN; -$objectclass=$conf->global->LDAP_CONTACT_OBJECT_CLASS; +$butlabel = $langs->trans("LDAPTestSynchroContact"); +$testlabel = 'test'; +$key = $conf->global->LDAP_KEY_CONTACTS; +$dn = $conf->global->LDAP_CONTACT_DN; +$objectclass = $conf->global->LDAP_CONTACT_OBJECT_CLASS; show_ldap_test_button($butlabel, $testlabel, $key, $dn, $objectclass); @@ -272,21 +272,21 @@ if (function_exists("ldap_connect")) if ($_GET["action"] == 'test') { // Creation objet - $object=new Contact($db); + $object = new Contact($db); $object->initAsSpecimen(); // Test synchro - $ldap=new Ldap(); - $result=$ldap->connect_bind(); + $ldap = new Ldap(); + $result = $ldap->connect_bind(); if ($result > 0) { - $info=$object->_load_ldap_info(); - $dn=$object->_load_ldap_dn($info); + $info = $object->_load_ldap_info(); + $dn = $object->_load_ldap_dn($info); - $result1=$ldap->delete($dn); // To be sure to delete existing records - $result2=$ldap->add($dn, $info, $user); // Now the test - $result3=$ldap->delete($dn); // Clean what we did + $result1 = $ldap->delete($dn); // To be sure to delete existing records + $result2 = $ldap->add($dn, $info, $user); // Now the test + $result3 = $ldap->delete($dn); // Clean what we did if ($result2 > 0) { diff --git a/htdocs/admin/ldap_members.php b/htdocs/admin/ldap_members.php index f2e8002c8df..f6fa74cb79d 100644 --- a/htdocs/admin/ldap_members.php +++ b/htdocs/admin/ldap_members.php @@ -47,51 +47,51 @@ $action = GETPOST('action', 'aZ09'); if ($action == 'setvalue' && $user->admin) { - $error=0; + $error = 0; $db->begin(); - if (! dolibarr_set_const($db, 'LDAP_MEMBER_DN', GETPOST("user"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_OBJECT_CLASS', GETPOST("objectclass"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FILTER', GETPOST("filterconnection"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_DN', GETPOST("user"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_OBJECT_CLASS', GETPOST("objectclass"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FILTER', GETPOST("filterconnection"), 'chaine', 0, '', $conf->entity)) $error++; // Members - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_FULLNAME', GETPOST("fieldfullname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_LOGIN', GETPOST("fieldlogin"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_LOGIN_SAMBA', GETPOST("fieldloginsamba"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_PASSWORD', GETPOST("fieldpassword"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_PASSWORD_CRYPTED', GETPOST("fieldpasswordcrypted"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_NAME', GETPOST("fieldname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_FIRSTNAME', GETPOST("fieldfirstname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_MAIL', GETPOST("fieldmail"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_PHONE', GETPOST("fieldphone"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_PHONE_PERSO', GETPOST("fieldphoneperso"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_MOBILE', GETPOST("fieldmobile"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_SKYPE', GETPOST("fieldskype"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_FAX', GETPOST("fieldfax"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_COMPANY', GETPOST("fieldcompany"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_ADDRESS', GETPOST("fieldaddress"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_ZIP', GETPOST("fieldzip"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_TOWN', GETPOST("fieldtown"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_COUNTRY', GETPOST("fieldcountry"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_DESCRIPTION', GETPOST("fielddescription"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_NOTE_PUBLIC', GETPOST("fieldnotepublic"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_BIRTHDATE', GETPOST("fieldbirthdate"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_STATUS', GETPOST("fieldstatus"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION', GETPOST("fieldendlastsubscription"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_FULLNAME', GETPOST("fieldfullname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_LOGIN', GETPOST("fieldlogin"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_LOGIN_SAMBA', GETPOST("fieldloginsamba"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_PASSWORD', GETPOST("fieldpassword"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_PASSWORD_CRYPTED', GETPOST("fieldpasswordcrypted"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_NAME', GETPOST("fieldname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_FIRSTNAME', GETPOST("fieldfirstname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_MAIL', GETPOST("fieldmail"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_PHONE', GETPOST("fieldphone"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_PHONE_PERSO', GETPOST("fieldphoneperso"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_MOBILE', GETPOST("fieldmobile"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_SKYPE', GETPOST("fieldskype"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_FAX', GETPOST("fieldfax"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_COMPANY', GETPOST("fieldcompany"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_ADDRESS', GETPOST("fieldaddress"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_ZIP', GETPOST("fieldzip"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_TOWN', GETPOST("fieldtown"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_COUNTRY', GETPOST("fieldcountry"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_DESCRIPTION', GETPOST("fielddescription"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_NOTE_PUBLIC', GETPOST("fieldnotepublic"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_MEMBER_FIELD_BIRTHDATE', GETPOST("fieldbirthdate"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_STATUS', GETPOST("fieldstatus"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION', GETPOST("fieldendlastsubscription"), 'chaine', 0, '', $conf->entity)) $error++; // Subscriptions - if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE', GETPOST("fieldfirstsubscriptiondate"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT', GETPOST("fieldfirstsubscriptionamount"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE', GETPOST("fieldlastsubscriptiondate"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT', GETPOST("fieldlastsubscriptionamount"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE', GETPOST("fieldfirstsubscriptiondate"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT', GETPOST("fieldfirstsubscriptionamount"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE', GETPOST("fieldlastsubscriptiondate"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT', GETPOST("fieldlastsubscriptionamount"), 'chaine', 0, '', $conf->entity)) $error++; // This one must be after the others - $valkey=''; - $key=GETPOST("key"); - if ($key) $valkey=$conf->global->$key; - if (! dolibarr_set_const($db, 'LDAP_KEY_MEMBERS', $valkey, 'chaine', 0, '', $conf->entity)) $error++; + $valkey = ''; + $key = GETPOST("key"); + if ($key) $valkey = $conf->global->$key; + if (!dolibarr_set_const($db, 'LDAP_KEY_MEMBERS', $valkey, 'chaine', 0, '', $conf->entity)) $error++; - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -109,17 +109,17 @@ if ($action == 'setvalue' && $user->admin) * View */ -$form=new Form($db); +$form = new Form($db); llxHeader('', $langs->trans("LDAPSetup"), 'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP'); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("LDAPSetup"), $linkback, 'title_setup'); $head = ldap_prepare_head(); // Test si fonction LDAP actives -if (! function_exists("ldap_connect")) +if (!function_exists("ldap_connect")) { setEventMessages($langs->trans("LDAPFunctionsNotAvailableOnPHP"), null, 'errors'); } @@ -176,14 +176,14 @@ print "\n"; print ''.$langs->trans("LDAPFieldFullname").''; print ''; print ''.$langs->trans("LDAPFieldFullnameExample").''; -print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_MEMBER_FIELD_FULLNAME)?' checked':'').">"; +print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS == $conf->global->LDAP_MEMBER_FIELD_FULLNAME) ? ' checked' : '').">"; print ''; // Name print ''.$langs->trans("LDAPFieldName").''; print ''; print ''.$langs->trans("LDAPFieldNameExample").''; -print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_MEMBER_FIELD_NAME)?' checked':'').">"; +print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS == $conf->global->LDAP_MEMBER_FIELD_NAME) ? ' checked' : '').">"; print ''; // Firstname @@ -197,14 +197,14 @@ print ''; print ''.$langs->trans("LDAPFieldLoginUnix").''; print ''; print ''.$langs->trans("LDAPFieldLoginExample").''; -print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_MEMBER_FIELD_LOGIN)?' checked':'').">"; +print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS == $conf->global->LDAP_MEMBER_FIELD_LOGIN) ? ' checked' : '').">"; print ''; // Login samba print ''.$langs->trans("LDAPFieldLoginSamba").''; print ''; print ''.$langs->trans("LDAPFieldLoginSambaExample").''; -print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_MEMBER_FIELD_LOGIN_SAMBA)?' checked':'').">"; +print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS == $conf->global->LDAP_MEMBER_FIELD_LOGIN_SAMBA) ? ' checked' : '').">"; print ''; // Password not crypted @@ -225,7 +225,7 @@ print ''; print ''.$langs->trans("LDAPFieldMail").''; print ''; print ''.$langs->trans("LDAPFieldMailExample").''; -print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_MEMBER_FIELD_MAIL)?' checked':'').">"; +print 'global->LDAP_KEY_MEMBERS && $conf->global->LDAP_KEY_MEMBERS == $conf->global->LDAP_MEMBER_FIELD_MAIL) ? ' checked' : '').">"; print ''; // Phone pro @@ -379,13 +379,13 @@ print ''; /* * Test de la connexion */ -if (! empty($conf->global->LDAP_MEMBER_ACTIVE)) +if (!empty($conf->global->LDAP_MEMBER_ACTIVE)) { - $butlabel=$langs->trans("LDAPTestSynchroMember"); - $testlabel='testmember'; - $key=$conf->global->LDAP_KEY_MEMBERS; - $dn=$conf->global->LDAP_MEMBER_DN; - $objectclass=$conf->global->LDAP_MEMBER_OBJECT_CLASS; + $butlabel = $langs->trans("LDAPTestSynchroMember"); + $testlabel = 'testmember'; + $key = $conf->global->LDAP_KEY_MEMBERS; + $dn = $conf->global->LDAP_MEMBER_DN; + $objectclass = $conf->global->LDAP_MEMBER_OBJECT_CLASS; show_ldap_test_button($butlabel, $testlabel, $key, $dn, $objectclass); } @@ -395,21 +395,21 @@ if (function_exists("ldap_connect")) if ($_GET["action"] == 'testmember') { // Creation objet - $object=new Adherent($db); + $object = new Adherent($db); $object->initAsSpecimen(); // Test synchro - $ldap=new Ldap(); - $result=$ldap->connect_bind(); + $ldap = new Ldap(); + $result = $ldap->connect_bind(); if ($result > 0) { - $info=$object->_load_ldap_info(); - $dn=$object->_load_ldap_dn($info); + $info = $object->_load_ldap_info(); + $dn = $object->_load_ldap_dn($info); - $result1=$ldap->delete($dn); // To be sure to delete existing records - $result2=$ldap->add($dn, $info, $user); // Now the test - $result3=$ldap->delete($dn); // Clean what we did + $result1 = $ldap->delete($dn); // To be sure to delete existing records + $result2 = $ldap->add($dn, $info, $user); // Now the test + $result3 = $ldap->delete($dn); // Clean what we did if ($result2 > 0) { diff --git a/htdocs/admin/ldap_users.php b/htdocs/admin/ldap_users.php index ef8937713dd..7781cf45676 100644 --- a/htdocs/admin/ldap_users.php +++ b/htdocs/admin/ldap_users.php @@ -48,44 +48,44 @@ $action = GETPOST('action', 'aZ09'); if ($action == 'setvalue' && $user->admin) { - $error=0; + $error = 0; $db->begin(); - if (! dolibarr_set_const($db, 'LDAP_USER_DN', GETPOST("user"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_USER_OBJECT_CLASS', GETPOST("objectclass"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FILTER_CONNECTION', GETPOST("filterconnection"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_FULLNAME', GETPOST("fieldfullname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN', GETPOST("fieldlogin"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN_SAMBA', GETPOST("fieldloginsamba"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_PASSWORD', GETPOST("fieldpassword"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_PASSWORD_CRYPTED', GETPOST("fieldpasswordcrypted"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_NAME', GETPOST("fieldname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_FIRSTNAME', GETPOST("fieldfirstname"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_MAIL', GETPOST("fieldmail"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_PHONE', GETPOST("fieldphone"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_MOBILE', GETPOST("fieldmobile"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_SKYPE', GETPOST("fieldskype"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_FAX', GETPOST("fieldfax"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_COMPANY', GETPOST("fieldcompany"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_ADDRESS', GETPOST("fieldaddress"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_ZIP', GETPOST("fieldzip"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_TOWN', GETPOST("fieldtown"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_COUNTRY', GETPOST("fieldcountry"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_DESCRIPTION', GETPOST("fielddescription"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_SID', GETPOST("fieldsid"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_TITLE', GETPOST("fieldtitle"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_GROUPID', GETPOST("fieldgroupid"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_USERID', GETPOST("fielduserid"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_HOMEDIRECTORY', GETPOST("fieldhomedirectory"), 'chaine', 0, '', $conf->entity)) $error++; - if (! dolibarr_set_const($db, 'LDAP_FIELD_HOMEDIRECTORYPREFIX', GETPOST("fieldhomedirectoryprefix"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_USER_DN', GETPOST("user"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_USER_OBJECT_CLASS', GETPOST("objectclass"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FILTER_CONNECTION', GETPOST("filterconnection"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_FULLNAME', GETPOST("fieldfullname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_LOGIN', GETPOST("fieldlogin"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_LOGIN_SAMBA', GETPOST("fieldloginsamba"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_PASSWORD', GETPOST("fieldpassword"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_PASSWORD_CRYPTED', GETPOST("fieldpasswordcrypted"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_NAME', GETPOST("fieldname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_FIRSTNAME', GETPOST("fieldfirstname"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_MAIL', GETPOST("fieldmail"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_PHONE', GETPOST("fieldphone"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_MOBILE', GETPOST("fieldmobile"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_SKYPE', GETPOST("fieldskype"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_FAX', GETPOST("fieldfax"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_COMPANY', GETPOST("fieldcompany"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_ADDRESS', GETPOST("fieldaddress"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_ZIP', GETPOST("fieldzip"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_TOWN', GETPOST("fieldtown"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_COUNTRY', GETPOST("fieldcountry"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_DESCRIPTION', GETPOST("fielddescription"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_SID', GETPOST("fieldsid"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_TITLE', GETPOST("fieldtitle"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_GROUPID', GETPOST("fieldgroupid"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_USERID', GETPOST("fielduserid"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_HOMEDIRECTORY', GETPOST("fieldhomedirectory"), 'chaine', 0, '', $conf->entity)) $error++; + if (!dolibarr_set_const($db, 'LDAP_FIELD_HOMEDIRECTORYPREFIX', GETPOST("fieldhomedirectoryprefix"), 'chaine', 0, '', $conf->entity)) $error++; // This one must be after the others - $valkey=''; - $key=GETPOST("key"); - if ($key) $valkey=$conf->global->$key; - if (! dolibarr_set_const($db, 'LDAP_KEY_USERS', $valkey, 'chaine', 0, '', $conf->entity)) $error++; + $valkey = ''; + $key = GETPOST("key"); + if ($key) $valkey = $conf->global->$key; + if (!dolibarr_set_const($db, 'LDAP_KEY_USERS', $valkey, 'chaine', 0, '', $conf->entity)) $error++; - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -103,17 +103,17 @@ if ($action == 'setvalue' && $user->admin) * Visu */ -$form=new Form($db); +$form = new Form($db); llxHeader('', $langs->trans("LDAPSetup"), 'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP'); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("LDAPSetup"), $linkback, 'title_setup'); $head = ldap_prepare_head(); // Test si fonction LDAP actives -if (! function_exists("ldap_connect")) +if (!function_exists("ldap_connect")) { setEventMessages($langs->trans("LDAPFunctionsNotAvailableOnPHP"), null, 'errors'); } @@ -170,35 +170,35 @@ print "\n"; print ''.$langs->trans("LDAPFieldFullname").''; print ''; print ''.$langs->trans("LDAPFieldFullnameExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_FULLNAME)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_FULLNAME) ? ' checked' : '').">"; print ''; // Name print ''.$langs->trans("LDAPFieldName").''; print ''; print ''.$langs->trans("LDAPFieldNameExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_NAME)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_NAME) ? ' checked' : '').">"; print ''; // Firstname print ''.$langs->trans("LDAPFieldFirstName").''; print ''; print ''.$langs->trans("LDAPFieldFirstNameExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_FIRSTNAME)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_FIRSTNAME) ? ' checked' : '').">"; print ''; // Login unix print ''.$langs->trans("LDAPFieldLoginUnix").''; print ''; print ''.$langs->trans("LDAPFieldLoginExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_LOGIN)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_LOGIN) ? ' checked' : '').">"; print ''; // Login samba print ''.$langs->trans("LDAPFieldLoginSamba").''; print ''; print ''.$langs->trans("LDAPFieldLoginSambaExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_LOGIN_SAMBA)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_LOGIN_SAMBA) ? ' checked' : '').">"; print ''; // Password not crypted @@ -219,35 +219,35 @@ print ''; print ''.$langs->trans("LDAPFieldMail").''; print ''; print ''.$langs->trans("LDAPFieldMailExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_MAIL)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_MAIL) ? ' checked' : '').">"; print ''; // Phone print ''.$langs->trans("LDAPFieldPhone").''; print ''; print ''.$langs->trans("LDAPFieldPhoneExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_PHONE)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_PHONE) ? ' checked' : '').">"; print ''; // Mobile print ''.$langs->trans("LDAPFieldMobile").''; print ''; print ''.$langs->trans("LDAPFieldMobileExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_MOBILE)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_MOBILE) ? ' checked' : '').">"; print ''; // Skype print ''.$langs->trans("LDAPFieldSkype").''; print ''; print ''.$langs->trans("LDAPFieldSkypeExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_SKYPE)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_SKYPE) ? ' checked' : '').">"; print ''; // Fax print ''.$langs->trans("LDAPFieldFax").''; print ''; print ''.$langs->trans("LDAPFieldFaxExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_FAX)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_FAX) ? ' checked' : '').">"; print ''; // Company @@ -303,7 +303,7 @@ print ''; print ''.$langs->trans("LDAPFieldSid").''; print ''; print ''.$langs->trans("LDAPFieldSidExample").''; -print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS==$conf->global->LDAP_FIELD_SID)?' checked':'').">"; +print 'global->LDAP_KEY_USERS && $conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_SID) ? ' checked' : '').">"; print ''; // Group id @@ -350,21 +350,21 @@ print ''; */ if ($conf->global->LDAP_SYNCHRO_ACTIVE == 'dolibarr2ldap') { - $butlabel=$langs->trans("LDAPTestSynchroUser"); - $testlabel='testuser'; - $key=$conf->global->LDAP_KEY_USERS; - $dn=$conf->global->LDAP_USER_DN; - $objectclass=$conf->global->LDAP_USER_OBJECT_CLASS; + $butlabel = $langs->trans("LDAPTestSynchroUser"); + $testlabel = 'testuser'; + $key = $conf->global->LDAP_KEY_USERS; + $dn = $conf->global->LDAP_USER_DN; + $objectclass = $conf->global->LDAP_USER_OBJECT_CLASS; show_ldap_test_button($butlabel, $testlabel, $key, $dn, $objectclass); } elseif ($conf->global->LDAP_SYNCHRO_ACTIVE == 'ldap2dolibarr') { - $butlabel=$langs->trans("LDAPTestSearch"); - $testlabel='testsearchuser'; - $key=$conf->global->LDAP_KEY_USERS; - $dn=$conf->global->LDAP_USER_DN; - $objectclass=$conf->global->LDAP_USER_OBJECT_CLASS; + $butlabel = $langs->trans("LDAPTestSearch"); + $testlabel = 'testsearchuser'; + $key = $conf->global->LDAP_KEY_USERS; + $dn = $conf->global->LDAP_USER_DN; + $objectclass = $conf->global->LDAP_USER_OBJECT_CLASS; show_ldap_test_button($butlabel, $testlabel, $key, $dn, $objectclass); } @@ -373,23 +373,23 @@ if (function_exists("ldap_connect")) if ($action == 'testuser') { // Creation objet - $object=new User($db); + $object = new User($db); $object->initAsSpecimen(); // TODO Mutualize code following with other ldap_xxxx.php pages // Test synchro - $ldap=new Ldap(); - $result=$ldap->connect_bind(); + $ldap = new Ldap(); + $result = $ldap->connect_bind(); if ($result > 0) { - $info=$object->_load_ldap_info(); - $dn=$object->_load_ldap_dn($info); + $info = $object->_load_ldap_info(); + $dn = $object->_load_ldap_dn($info); - $result1=$ldap->delete($dn); // To be sure to delete existing records - $result2=$ldap->add($dn, $info, $user); // Now the test - $result3=$ldap->delete($dn); // Clean what we did + $result1 = $ldap->delete($dn); // To be sure to delete existing records + $result2 = $ldap->add($dn, $info, $user); // Now the test + $result3 = $ldap->delete($dn); // Clean what we did if ($result2 > 0) { @@ -423,14 +423,14 @@ if (function_exists("ldap_connect")) if ($action == 'testsearchuser') { // Creation objet - $object=new User($db); + $object = new User($db); $object->initAsSpecimen(); // TODO Mutualize code following with other ldap_xxxx.php pages // Test synchro - $ldap=new Ldap(); - $result=$ldap->connect_bind(); + $ldap = new Ldap(); + $result = $ldap->connect_bind(); if ($result > 0) { @@ -454,7 +454,7 @@ if (function_exists("ldap_connect")) ); // Remove from required_fields all entries not configured in LDAP (empty) and duplicated - $required_fields=array_unique(array_values(array_filter($required_fields, "dol_validElement"))); + $required_fields = array_unique(array_values(array_filter($required_fields, "dol_validElement"))); // Get from LDAP database an array of results $ldapusers = $ldap->getRecords('*', $conf->global->LDAP_USER_DN, $conf->global->LDAP_KEY_USERS, $required_fields, 1); @@ -462,16 +462,16 @@ if (function_exists("ldap_connect")) if (is_array($ldapusers)) { - $liste=array(); + $liste = array(); foreach ($ldapusers as $key => $ldapuser) { // Define the label string for this user - $label=''; + $label = ''; foreach ($required_fields as $value) { if ($value) { - $label.=$value."=".$ldapuser[$value]." "; + $label .= $value."=".$ldapuser[$value]." "; } } $liste[$key] = $label; diff --git a/htdocs/admin/limits.php b/htdocs/admin/limits.php index 6f52d6dfd12..d828873be36 100644 --- a/htdocs/admin/limits.php +++ b/htdocs/admin/limits.php @@ -29,20 +29,20 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'; // Load translation files required by the page $langs->loadLangs(array('companies', 'products', 'admin')); -if (! $user->admin) accessforbidden(); +if (!$user->admin) accessforbidden(); $action = GETPOST('action', 'alpha'); $currencycode = GETPOST('currencycode', 'alpha'); -$mainmaxdecimalsunit = 'MAIN_MAX_DECIMALS_UNIT'.(! empty($currencycode)?'_'.$currencycode:''); -$mainmaxdecimalstot = 'MAIN_MAX_DECIMALS_TOT'.(! empty($currencycode)?'_'.$currencycode:''); -$mainmaxdecimalsshown = 'MAIN_MAX_DECIMALS_SHOWN'.(! empty($currencycode)?'_'.$currencycode:''); -$mainroundingruletot = 'MAIN_ROUNDING_RULE_TOT'.(! empty($currencycode)?'_'.$currencycode:''); +$mainmaxdecimalsunit = 'MAIN_MAX_DECIMALS_UNIT'.(!empty($currencycode) ? '_'.$currencycode : ''); +$mainmaxdecimalstot = 'MAIN_MAX_DECIMALS_TOT'.(!empty($currencycode) ? '_'.$currencycode : ''); +$mainmaxdecimalsshown = 'MAIN_MAX_DECIMALS_SHOWN'.(!empty($currencycode) ? '_'.$currencycode : ''); +$mainroundingruletot = 'MAIN_ROUNDING_RULE_TOT'.(!empty($currencycode) ? '_'.$currencycode : ''); if ($action == 'update') { - $error=0; - $MAXDEC=8; + $error = 0; + $MAXDEC = 8; if ($_POST[$mainmaxdecimalsunit] > $MAXDEC || $_POST[$mainmaxdecimalstot] > $MAXDEC || $_POST[$mainmaxdecimalsshown] > $MAXDEC) @@ -51,7 +51,7 @@ if ($action == 'update') setEventMessages($langs->trans("ErrorDecimalLargerThanAreForbidden", $MAXDEC), null, 'errors'); } - if ($_POST[$mainmaxdecimalsunit].(! empty($currencycode)?'_'.$currencycode:'') < 0 + if ($_POST[$mainmaxdecimalsunit].(!empty($currencycode) ? '_'.$currencycode : '') < 0 || $_POST[$mainmaxdecimalstot] < 0 || $_POST[$mainmaxdecimalsshown] < 0) { @@ -70,7 +70,7 @@ if ($action == 'update') } } - if (! $error) + if (!$error) { dolibarr_set_const($db, $mainmaxdecimalsunit, $_POST[$mainmaxdecimalsunit], 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, $mainmaxdecimalstot, $_POST[$mainmaxdecimalstot], 'chaine', 0, '', $conf->entity); @@ -78,7 +78,7 @@ if ($action == 'update') dolibarr_set_const($db, $mainroundingruletot, $_POST[$mainroundingruletot], 'chaine', 0, '', $conf->entity); - header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup".(! empty($currencycode)?'¤cycode='.$currencycode:'')); + header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup".(!empty($currencycode) ? '¤cycode='.$currencycode : '')); exit; } } @@ -88,22 +88,22 @@ if ($action == 'update') * View */ -$form=new Form($db); +$form = new Form($db); llxHeader(); print load_fiche_titre($langs->trans("LimitsSetup"), '', 'title_setup'); -$currencycode = (! empty($currencycode)?$currencycode:$conf->currency); -$aCurrencies = array($conf->currency); // Default currency always first position +$currencycode = (!empty($currencycode) ? $currencycode : $conf->currency); +$aCurrencies = array($conf->currency); // Default currency always first position -if (! empty($conf->multicurrency->enabled) && ! empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) +if (!empty($conf->multicurrency->enabled) && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/multicurrency.lib.php'; $sql = 'SELECT rowid, code FROM '.MAIN_DB_PREFIX.'multicurrency'; - $sql.= ' WHERE entity = '.$conf->entity; - $sql.= ' AND code != "'.$conf->currency.'"'; // Default currency always first position + $sql .= ' WHERE entity = '.$conf->entity; + $sql .= ' AND code != "'.$conf->currency.'"'; // Default currency always first position $resql = $db->query($sql); if ($resql) { @@ -113,7 +113,7 @@ if (! empty($conf->multicurrency->enabled) && ! empty($conf->global->MULTICURREN } } - if (! empty($aCurrencies) && count($aCurrencies) > 1) + if (!empty($aCurrencies) && count($aCurrencies) > 1) { $head = multicurrencyLimitPrepareHead($aCurrencies); dol_fiche_head($head, $currencycode, '', -1, "multicurrency"); @@ -128,7 +128,7 @@ if ($action == 'edit') print '
'; print ''; print ''; - if (! empty($conf->multicurrency->enabled) && ! empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { + if (!empty($conf->multicurrency->enabled) && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { print ''; } @@ -139,18 +139,18 @@ if ($action == 'edit') print ''; print $form->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_UNIT"), $langs->trans("ParameterActiveForNextInputOnly")); - print ''; + print ''; print ''; print $form->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_TOT"), $langs->trans("ParameterActiveForNextInputOnly")); - print ''; + print ''; print ''.$langs->trans("MAIN_MAX_DECIMALS_SHOWN").''; - print ''; + print ''; print ''; print $form->textwithpicto($langs->trans("MAIN_ROUNDING_RULE_TOT"), $langs->trans("ParameterActiveForNextInputOnly")); - print ''; + print ''; print ''; @@ -170,29 +170,29 @@ else print ''; print $form->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_UNIT"), $langs->trans("ParameterActiveForNextInputOnly")); - print ''.(isset($conf->global->$mainmaxdecimalsunit)?$conf->global->$mainmaxdecimalsunit:$conf->global->MAIN_MAX_DECIMALS_UNIT).''; + print ''.(isset($conf->global->$mainmaxdecimalsunit) ? $conf->global->$mainmaxdecimalsunit : $conf->global->MAIN_MAX_DECIMALS_UNIT).''; print ''; print $form->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_TOT"), $langs->trans("ParameterActiveForNextInputOnly")); - print ''.(isset($conf->global->$mainmaxdecimalstot)?$conf->global->$mainmaxdecimalstot:$conf->global->MAIN_MAX_DECIMALS_TOT).''; + print ''.(isset($conf->global->$mainmaxdecimalstot) ? $conf->global->$mainmaxdecimalstot : $conf->global->MAIN_MAX_DECIMALS_TOT).''; print ''.$langs->trans("MAIN_MAX_DECIMALS_SHOWN").''; - print ''.(isset($conf->global->$mainmaxdecimalsshown)?$conf->global->$mainmaxdecimalsshown:$conf->global->MAIN_MAX_DECIMALS_SHOWN).''; + print ''.(isset($conf->global->$mainmaxdecimalsshown) ? $conf->global->$mainmaxdecimalsshown : $conf->global->MAIN_MAX_DECIMALS_SHOWN).''; print ''; print $form->textwithpicto($langs->trans("MAIN_ROUNDING_RULE_TOT"), $langs->trans("ParameterActiveForNextInputOnly")); - print ''.(isset($conf->global->$mainroundingruletot)?$conf->global->$mainroundingruletot:$conf->global->MAIN_ROUNDING_RULE_TOT).''; + print ''.(isset($conf->global->$mainroundingruletot) ? $conf->global->$mainroundingruletot : $conf->global->MAIN_ROUNDING_RULE_TOT).''; print ''; print ''; } -if (! empty($conf->multicurrency->enabled) && ! empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) +if (!empty($conf->multicurrency->enabled) && !empty($conf->global->MULTICURRENCY_USE_LIMIT_BY_CURRENCY)) { - if (! empty($aCurrencies) && count($aCurrencies) > 1) + if (!empty($aCurrencies) && count($aCurrencies) > 1) { dol_fiche_end(); } @@ -201,7 +201,7 @@ if (! empty($conf->multicurrency->enabled) && ! empty($conf->global->MULTICURREN if (empty($mysoc->country_code)) { $langs->load("errors"); - $warnpicto=img_warning($langs->trans("WarningMandatorySetupNotComplete")); + $warnpicto = img_warning($langs->trans("WarningMandatorySetupNotComplete")); print '
'.$warnpicto.' '.$langs->trans("WarningMandatorySetupNotComplete").''; } else @@ -210,35 +210,35 @@ else print load_fiche_titre($langs->trans("ExamplesWithCurrentSetup"), '', ''); // Always show vat rates with vat 0 - $s=2/7;$qty=1;$vat=0; - $tmparray=calcul_price_total(1, $qty*price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); + $s = 2 / 7; $qty = 1; $vat = 0; + $tmparray = calcul_price_total(1, $qty * price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); print ''.$langs->trans("UnitPriceOfProduct").": ".price2num($s, 'MU'); print " x ".$langs->trans("Quantity").": ".$qty; print " - ".$langs->trans("VAT").": ".$vat.'%'; print '   ->   '.$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."
\n"; - $s=10/3;$qty=1;$vat=0; - $tmparray=calcul_price_total(1, $qty*price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); + $s = 10 / 3; $qty = 1; $vat = 0; + $tmparray = calcul_price_total(1, $qty * price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); print ''.$langs->trans("UnitPriceOfProduct").": ".price2num($s, 'MU'); print " x ".$langs->trans("Quantity").": ".$qty; print " - ".$langs->trans("VAT").": ".$vat.'%'; print '   ->   '.$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."
\n"; - $s=10/3;$qty=2;$vat=0; - $tmparray=calcul_price_total(1, $qty*price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); + $s = 10 / 3; $qty = 2; $vat = 0; + $tmparray = calcul_price_total(1, $qty * price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); print ''.$langs->trans("UnitPriceOfProduct").": ".price2num($s, 'MU'); print " x ".$langs->trans("Quantity").": ".$qty; print " - ".$langs->trans("VAT").": ".$vat.'%'; print '   ->   '.$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."
\n"; // Add vat rates examples specific to country - $vat_rates=array(); + $vat_rates = array(); - $sql="SELECT taux as vat_rate"; - $sql.=" FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c"; - $sql.=" WHERE t.active=1 AND t.fk_pays = c.rowid AND c.code='".$mysoc->country_code."' AND t.taux <> 0"; - $sql.=" ORDER BY t.taux ASC"; - $resql=$db->query($sql); + $sql = "SELECT taux as vat_rate"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c"; + $sql .= " WHERE t.active=1 AND t.fk_pays = c.rowid AND c.code='".$mysoc->country_code."' AND t.taux <> 0"; + $sql .= " ORDER BY t.taux ASC"; + $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -255,12 +255,12 @@ else if (count($vat_rates)) { - foreach($vat_rates as $vat) + foreach ($vat_rates as $vat) { - for ($qty=1; $qty<=2; $qty++) + for ($qty = 1; $qty <= 2; $qty++) { - $s=10/3; - $tmparray=calcul_price_total(1, $qty*price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); + $s = 10 / 3; + $tmparray = calcul_price_total(1, $qty * price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); print ''.$langs->trans("UnitPriceOfProduct").": ".price2num($s, 'MU'); print " x ".$langs->trans("Quantity").": ".$qty; print " - ".$langs->trans("VAT").": ".$vat.'%'; @@ -274,15 +274,15 @@ else // This example must be kept for test purpose with current value because value used (2/7, 10/3, and vat 0, 10) // were calculated to show all possible cases of rounding. If we change this, examples becomes useless or show the same rounding rule. - $s=10/3;$qty=1;$vat=10; - $tmparray=calcul_price_total(1, $qty*price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); + $s = 10 / 3; $qty = 1; $vat = 10; + $tmparray = calcul_price_total(1, $qty * price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); print ''.$langs->trans("UnitPriceOfProduct").": ".price2num($s, 'MU'); print " x ".$langs->trans("Quantity").": ".$qty; print " - ".$langs->trans("VAT").": ".$vat.'%'; print '   ->   '.$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."
\n"; - $s=10/3;$qty=2;$vat=10; - $tmparray=calcul_price_total(1, $qty*price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); + $s = 10 / 3; $qty = 2; $vat = 10; + $tmparray = calcul_price_total(1, $qty * price2num($s, 'MU'), 0, $vat, 0, 0, 0, 'HT', 0, 0, $mysoc); print ''.$langs->trans("UnitPriceOfProduct").": ".price2num($s, 'MU'); print " x ".$langs->trans("Quantity").": ".$qty; print " - ".$langs->trans("VAT").": ".$vat.'%'; diff --git a/htdocs/admin/livraison_extrafields.php b/htdocs/admin/livraison_extrafields.php index 814a865216d..5594273320f 100644 --- a/htdocs/admin/livraison_extrafields.php +++ b/htdocs/admin/livraison_extrafields.php @@ -43,13 +43,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='livraison'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'livraison'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -66,11 +66,11 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("Receivings"); +$textobject = $langs->transnoentitiesnoconv("Receivings"); llxHeader('', $langs->trans("SendingsSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SendingsSetup"), $linkback, 'title_setup'); print "
\n"; @@ -111,7 +111,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/admin/livraisondet_extrafields.php b/htdocs/admin/livraisondet_extrafields.php index 09bd37eb326..2c9aae6b253 100644 --- a/htdocs/admin/livraisondet_extrafields.php +++ b/htdocs/admin/livraisondet_extrafields.php @@ -44,13 +44,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='livraisondet'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'livraisondet'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -67,11 +67,11 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("Receivings"); +$textobject = $langs->transnoentitiesnoconv("Receivings"); llxHeader('', $langs->trans("SendingsSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SendingsSetup"), $linkback, 'title_setup'); print "
\n"; @@ -112,7 +112,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
"; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/admin/mailing.php b/htdocs/admin/mailing.php index 7598d2d8588..921a4a6338c 100644 --- a/htdocs/admin/mailing.php +++ b/htdocs/admin/mailing.php @@ -50,18 +50,18 @@ if ($action == 'setvalue') $checkread_key = GETPOST('MAILING_EMAIL_UNSUBSCRIBE_KEY', 'alpha'); $mailingdelay = GETPOST('MAILING_DELAY', 'int'); - $res=dolibarr_set_const($db, "MAILING_EMAIL_FROM", $mailfrom, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; - $res=dolibarr_set_const($db, "MAILING_EMAIL_ERRORSTO", $mailerror, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; - $res=dolibarr_set_const($db, "MAILING_DELAY", $mailingdelay, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; + $res = dolibarr_set_const($db, "MAILING_EMAIL_FROM", $mailfrom, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; + $res = dolibarr_set_const($db, "MAILING_EMAIL_ERRORSTO", $mailerror, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; + $res = dolibarr_set_const($db, "MAILING_DELAY", $mailingdelay, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; // Create temporary encryption key if nedded - $res=dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE_KEY", $checkread_key, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; + $res = dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE_KEY", $checkread_key, 'chaine', 0, '', $conf->entity); + if (!$res > 0) $error++; - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -80,10 +80,10 @@ if ($action == 'setvalue') llxHeader('', $langs->trans("MailingSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("MailingSetup"), $linkback, 'title_setup'); -if (! empty($conf->use_javascript_ajax)) +if (!empty($conf->use_javascript_ajax)) { print "\n".''; - $nbno=$nbtotal=0; + $nbno = $nbtotal = 0; - print load_fiche_titre($langs->trans("BarcodeInitForProductsOrServices"), '', 'products'); + print load_fiche_titre($langs->trans("BarcodeInitForProductsOrServices"), '', 'product'); print '
'."\n"; - $sql ="SELECT count(rowid) as nb, fk_product_type, datec"; - $sql.=" FROM ".MAIN_DB_PREFIX."product"; - $sql.=" WHERE barcode IS NULL OR barcode = ''"; - $sql.=" GROUP BY fk_product_type, datec"; - $sql.=" ORDER BY datec"; - $resql=$db->query($sql); + $sql = "SELECT count(rowid) as nb, fk_product_type, datec"; + $sql .= " FROM ".MAIN_DB_PREFIX."product"; + $sql .= " WHERE barcode IS NULL OR barcode = ''"; + $sql .= " GROUP BY fk_product_type, datec"; + $sql .= " ORDER BY datec"; + $resql = $db->query($sql); if ($resql) { - $num=$db->num_rows($resql); + $num = $db->num_rows($resql); - $i=0; - while($i < $num) + $i = 0; + while ($i < $num) { - $obj=$db->fetch_object($resql); - $nbno+=$obj->nb; + $obj = $db->fetch_object($resql); + $nbno += $obj->nb; $i++; } } else dol_print_error($db); - $sql="SELECT count(rowid) as nb FROM ".MAIN_DB_PREFIX."product"; - $resql=$db->query($sql); + $sql = "SELECT count(rowid) as nb FROM ".MAIN_DB_PREFIX."product"; + $resql = $db->query($sql); if ($resql) { - $obj=$db->fetch_object($resql); - $nbtotal=$obj->nb; + $obj = $db->fetch_object($resql); + $nbtotal = $obj->nb; } else dol_print_error($db); @@ -291,26 +291,26 @@ if ($conf->product->enabled || $conf->product->service) if (is_object($modBarCodeProduct)) { print $langs->trans("BarCodeNumberManager").": "; - $objproduct=new Product($db); - print ''.(isset($modBarCodeProduct->name)?$modBarCodeProduct->name:$modBarCodeProduct->nom).' - '.$langs->trans("NextValue").': '.$modBarCodeProduct->getNextValue($objproduct).'
'; - $disabled=0; + $objproduct = new Product($db); + print ''.(isset($modBarCodeProduct->name) ? $modBarCodeProduct->name : $modBarCodeProduct->nom).' - '.$langs->trans("NextValue").': '.$modBarCodeProduct->getNextValue($objproduct).'
'; + $disabled = 0; } else { - $disabled=1; - $titleno=$langs->trans("NoBarcodeNumberingTemplateDefined"); + $disabled = 1; + $titleno = $langs->trans("NoBarcodeNumberingTemplateDefined"); print ''.$langs->trans("NoBarcodeNumberingTemplateDefined").' ('.$langs->trans("ToGenerateCodeDefineAutomaticRuleFirst").')
'; } if (empty($nbno)) { - $disabled1=1; + $disabled1 = 1; } print '
'; //print ' '.$langs->trans("ResetBarcodeForAllRecords").'
'; - $moretags1=(($disabled||$disabled1)?' disabled title="'.dol_escape_htmltag($titleno).'"':''); + $moretags1 = (($disabled || $disabled1) ? ' disabled title="'.dol_escape_htmltag($titleno).'"' : ''); print ''; - $moretags2=(($nbno == $nbtotal)?' disabled':''); + $moretags2 = (($nbno == $nbtotal) ? ' disabled' : ''); print '   '; print ''; print '



'; diff --git a/htdocs/blockedlog/admin/blockedlog_list.php b/htdocs/blockedlog/admin/blockedlog_list.php index 3bd7f0097b9..d753b3a66ea 100644 --- a/htdocs/blockedlog/admin/blockedlog_list.php +++ b/htdocs/blockedlog/admin/blockedlog_list.php @@ -33,29 +33,29 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; // Load translation files required by the page $langs->loadLangs(array("admin", "other", "blockedlog", "bills")); -if ((! $user->admin && ! $user->rights->blockedlog->read) || empty($conf->blockedlog->enabled)) accessforbidden(); +if ((!$user->admin && !$user->rights->blockedlog->read) || empty($conf->blockedlog->enabled)) accessforbidden(); $action = GETPOST('action', 'alpha'); -$contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'blockedloglist'; // To manage different context of search -$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page -$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'blockedloglist'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $search_showonlyerrors = GETPOST('search_showonlyerrors', 'int'); -if ($search_showonlyerrors < 0) $search_showonlyerrors=0; +if ($search_showonlyerrors < 0) $search_showonlyerrors = 0; -$search_fk_user=GETPOST('search_fk_user', 'intcomma'); +$search_fk_user = GETPOST('search_fk_user', 'intcomma'); $search_start = -1; -if (GETPOST('search_startyear')!='') $search_start = dol_mktime(0, 0, 0, GETPOST('search_startmonth'), GETPOST('search_startday'), GETPOST('search_startyear')); +if (GETPOST('search_startyear') != '') $search_start = dol_mktime(0, 0, 0, GETPOST('search_startmonth'), GETPOST('search_startday'), GETPOST('search_startyear')); $search_end = -1; -if (GETPOST('search_endyear')!='') $search_end= dol_mktime(23, 59, 59, GETPOST('search_endmonth'), GETPOST('search_endday'), GETPOST('search_endyear')); +if (GETPOST('search_endyear') != '') $search_end = dol_mktime(23, 59, 59, GETPOST('search_endmonth'), GETPOST('search_endday'), GETPOST('search_endyear')); $search_code = GETPOST('search_code', 'alpha'); $search_ref = GETPOST('search_ref', 'alpha'); $search_amount = GETPOST('search_amount', 'alpha'); -if (($search_start == -1 || empty($search_start)) && ! GETPOSTISSET('search_startmonth')) $search_start = dol_time_plus_duree(dol_now(), '-1', 'w'); +if (($search_start == -1 || empty($search_start)) && !GETPOSTISSET('search_startmonth')) $search_start = dol_time_plus_duree(dol_now(), '-1', 'w'); // Load variable for pagination -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); @@ -64,8 +64,8 @@ $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (empty($sortfield)) $sortfield='rowid'; -if (empty($sortorder)) $sortorder='DESC'; +if (empty($sortfield)) $sortfield = 'rowid'; +if (empty($sortorder)) $sortorder = 'DESC'; $block_static = new BlockedLog($db); @@ -78,7 +78,7 @@ $result = restrictedArea($user, 'blockedlog', 0, ''); */ // Purge search criteria -if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') ||GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers +if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers { $search_fk_user = ''; $search_start = -1; @@ -87,8 +87,8 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_ref = ''; $search_amount = ''; $search_showonlyerrors = 0; - $toselect=''; - $search_array_options=array(); + $toselect = ''; + $search_array_options = array(); } if ($action === 'downloadblockchain') { @@ -98,7 +98,7 @@ if ($action === 'downloadblockchain') { header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); - header("Content-disposition: attachment; filename=\"" .$auth->signature. ".certif\""); + header("Content-disposition: attachment; filename=\"".$auth->signature.".certif\""); echo $bc; @@ -106,26 +106,26 @@ if ($action === 'downloadblockchain') { } elseif (GETPOST('downloadcsv', 'alpha')) { $error = 0; - $previoushash=''; - $firstid=''; + $previoushash = ''; + $firstid = ''; - if (! $error) + if (!$error) { // Get ID of first line $sql = "SELECT rowid,date_creation,tms,user_fullname,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user,object_data"; - $sql.= " FROM ".MAIN_DB_PREFIX."blockedlog"; - $sql.= " WHERE entity = ".$conf->entity; + $sql .= " FROM ".MAIN_DB_PREFIX."blockedlog"; + $sql .= " WHERE entity = ".$conf->entity; if (GETPOST('monthtoexport', 'int') > 0 || GETPOST('yeartoexport', 'int') > 0) { - $dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int')?GETPOST('monthtoexport', 'int'):1); - $datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int')?GETPOST('monthtoexport', 'int'):12); - $sql.= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'"; + $dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 1); + $datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 12); + $sql .= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'"; } - $sql.= " ORDER BY rowid ASC"; // Required so we get the first one - $sql.= $db->plimit(1); + $sql .= " ORDER BY rowid ASC"; // Required so we get the first one + $sql .= $db->plimit(1); $res = $db->query($sql); - if($res) + if ($res) { // Make the first fetch to get first line $obj = $db->fetch_object($res); @@ -147,26 +147,26 @@ if ($action === 'downloadblockchain') { } } - if (! $error) + if (!$error) { // Now restart request with all data = no limit(1) in sql request $sql = "SELECT rowid,date_creation,tms,user_fullname,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user,object_data"; - $sql.= " FROM ".MAIN_DB_PREFIX."blockedlog"; - $sql.= " WHERE entity = ".$conf->entity; + $sql .= " FROM ".MAIN_DB_PREFIX."blockedlog"; + $sql .= " WHERE entity = ".$conf->entity; if (GETPOST('monthtoexport', 'int') > 0 || GETPOST('yeartoexport', 'int') > 0) { - $dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int')?GETPOST('monthtoexport', 'int'):1); - $datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int')?GETPOST('monthtoexport', 'int'):12); - $sql.= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'"; + $dates = dol_get_first_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 1); + $datee = dol_get_last_day(GETPOST('yeartoexport', 'int'), GETPOST('monthtoexport', 'int') ?GETPOST('monthtoexport', 'int') : 12); + $sql .= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'"; } - $sql.= " ORDER BY rowid ASC"; // Required so later we can use the parameter $previoushash of checkSignature() + $sql .= " ORDER BY rowid ASC"; // Required so later we can use the parameter $previoushash of checkSignature() $res = $db->query($sql); - if($res) + if ($res) { header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); - header("Content-disposition: attachment; filename=\"unalterable-log-archive-" .$dolibarr_main_db_name."-".(GETPOST('yeartoexport', 'int')>0 ? GETPOST('yeartoexport', 'int').(GETPOST('monthtoexport', 'int')>0?sprintf("%02d", GETPOST('monthtoexport', 'int')):'').'-':'').$previoushash. ".csv\""); + header("Content-disposition: attachment; filename=\"unalterable-log-archive-".$dolibarr_main_db_name."-".(GETPOST('yeartoexport', 'int') > 0 ? GETPOST('yeartoexport', 'int').(GETPOST('monthtoexport', 'int') > 0 ?sprintf("%02d", GETPOST('monthtoexport', 'int')) : '').'-' : '').$previoushash.".csv\""); print $langs->transnoentities('Id') .';'.$langs->transnoentities('Date') @@ -204,7 +204,7 @@ if ($action === 'downloadblockchain') { $block_static->signature = $obj->signature; $block_static->object_data = $block_static->dolDecodeBlockedData($obj->object_data); - $checksignature = $block_static->checkSignature($previoushash); // If $previoushash is not defined, checkSignature will search it + $checksignature = $block_static->checkSignature($previoushash); // If $previoushash is not defined, checkSignature will search it if ($checksignature) { @@ -219,9 +219,9 @@ if ($action === 'downloadblockchain') { $loweridinerror = $obj->rowid; } - if ($i==0) + if ($i == 0) { - $statusofrecordnote = $langs->trans("PreviousFingerprint").': '.$previoushash.($statusofrecordnote?' - '.$statusofrecordnote:''); + $statusofrecordnote = $langs->trans("PreviousFingerprint").': '.$previoushash.($statusofrecordnote ? ' - '.$statusofrecordnote : ''); } print $obj->rowid .';'.$obj->date_creation @@ -258,15 +258,15 @@ if ($action === 'downloadblockchain') { * View */ -$form=new Form($db); +$form = new Form($db); if (GETPOST('withtab', 'alpha')) { - $title=$langs->trans("ModuleSetup").' '.$langs->trans('BlockedLog'); + $title = $langs->trans("ModuleSetup").' '.$langs->trans('BlockedLog'); } else { - $title=$langs->trans("BrowseBlockedLog"); + $title = $langs->trans("BrowseBlockedLog"); } llxHeader('', $langs->trans("BrowseBlockedLog")); @@ -274,7 +274,7 @@ llxHeader('', $langs->trans("BrowseBlockedLog")); $MAXLINES = 10000; $blocks = $block_static->getLog('all', 0, $MAXLINES, $sortfield, $sortorder, $search_fk_user, $search_start, $search_end, $search_ref, $search_amount, $search_code); -if (! is_array($blocks)) +if (!is_array($blocks)) { if ($blocks == -2) { @@ -287,17 +287,17 @@ if (! is_array($blocks)) } } -$linkback=''; +$linkback = ''; if (GETPOST('withtab', 'alpha')) { - $linkback=''.$langs->trans("BackToModuleList").''; + $linkback = ''.$langs->trans("BackToModuleList").''; } print load_fiche_titre($title, $linkback); if (GETPOST('withtab', 'alpha')) { - $head=blockedlogadmin_prepare_head(); + $head = blockedlogadmin_prepare_head(); dol_fiche_head($head, 'fingerprints', '', -1); } @@ -305,19 +305,19 @@ print ''.$langs->trans("Fingerprint print '
'; -$param=''; -if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); -if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); -if ($search_fk_user > 0) $param.='&search_fk_user='.urlencode($search_fk_user); -if ($search_startyear > 0) $param.='&search_startyear='.urlencode(GETPOST('search_startyear', 'int')); -if ($search_startmonth > 0) $param.='&search_startmonth='.urlencode(GETPOST('search_startmonth', 'int')); -if ($search_startday > 0) $param.='&search_startday='.urlencode(GETPOST('search_startday', 'int')); -if ($search_endyear > 0) $param.='&search_endyear='.urlencode(GETPOST('search_endyear', 'int')); -if ($search_endmonth > 0) $param.='&search_endmonth='.urlencode(GETPOST('search_endmonth', 'int')); -if ($search_endday > 0) $param.='&search_endday='.urlencode(GETPOST('search_endday', 'int')); -if ($search_showonlyerrors > 0) $param.='&search_showonlyerrors='.urlencode($search_showonlyerrors); -if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); -if (GETPOST('withtab', 'alpha')) $param.='&withtab='.urlencode(GETPOST('withtab', 'alpha')); +$param = ''; +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); +if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); +if ($search_fk_user > 0) $param .= '&search_fk_user='.urlencode($search_fk_user); +if ($search_startyear > 0) $param .= '&search_startyear='.urlencode(GETPOST('search_startyear', 'int')); +if ($search_startmonth > 0) $param .= '&search_startmonth='.urlencode(GETPOST('search_startmonth', 'int')); +if ($search_startday > 0) $param .= '&search_startday='.urlencode(GETPOST('search_startday', 'int')); +if ($search_endyear > 0) $param .= '&search_endyear='.urlencode(GETPOST('search_endyear', 'int')); +if ($search_endmonth > 0) $param .= '&search_endmonth='.urlencode(GETPOST('search_endmonth', 'int')); +if ($search_endday > 0) $param .= '&search_endday='.urlencode(GETPOST('search_endday', 'int')); +if ($search_showonlyerrors > 0) $param .= '&search_showonlyerrors='.urlencode($search_showonlyerrors); +if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); +if (GETPOST('withtab', 'alpha')) $param .= '&withtab='.urlencode(GETPOST('withtab', 'alpha')); // Add $param from extra fields //include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; @@ -326,30 +326,30 @@ print ''; print $langs->trans("RestrictYearToExport").': '; -$smonth=GETPOST('monthtoexport', 'int'); +$smonth = GETPOST('monthtoexport', 'int'); // Month -$retstring=''; -$retstring.=''; +$retstring .= ''; +for ($month = 1; $month <= 12; $month++) { - $retstring.='"; + $retstring .= '"; } -$retstring.=""; +$retstring .= ""; print $retstring; print ''; print ''; print ''; -if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY)) print ' | '.$langs->trans('DownloadBlockChain').''; +if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY)) print ' | '.$langs->trans('DownloadBlockChain').''; print '

'; print ''; print '
'; -print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table +print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table if ($optioncss != '') print ''; print ''; @@ -405,7 +405,7 @@ print ''; // Status print ''; -$array=array("1"=>$langs->trans("OnlyNonValid")); +$array = array("1"=>$langs->trans("OnlyNonValid")); print $form->selectarray('search_showonlyerrors', $array, $search_showonlyerrors, 1); print ''; @@ -414,7 +414,7 @@ print ''; // Action column print ''; -$searchpicto=$form->showFilterButtons(); +$searchpicto = $form->showFilterButtons(); print $searchpicto; print ''; @@ -435,7 +435,7 @@ print getTitleFieldOfList('', 0, $_SERVER["PHP_SELF"], '', '', $param, 'align="c print getTitleFieldOfList('', 0, $_SERVER["PHP_SELF"], '', '', $param, 'align="center"', $sortfield, $sortorder, '')."\n"; print ''; -if (! empty($conf->global->BLOCKEDLOG_SCAN_ALL_FOR_LOWERIDINERROR)) { +if (!empty($conf->global->BLOCKEDLOG_SCAN_ALL_FOR_LOWERIDINERROR)) { // This is version that is faster but require more memory and report errors that are outside the filter range // TODO Make a full scan of table in reverse order of id of $block, so we can use the parameter $previoushash into checkSignature to save requests @@ -444,17 +444,17 @@ if (! empty($conf->global->BLOCKEDLOG_SCAN_ALL_FOR_LOWERIDINERROR)) { else { // This is version that optimize the memory (but will not report errors that are outside the filter range) - $loweridinerror=0; - $checkresult=array(); + $loweridinerror = 0; + $checkresult = array(); if (is_array($blocks)) { - foreach($blocks as &$block) + foreach ($blocks as &$block) { - $checksignature = $block->checkSignature(); // Note: this make a sql request at each call, we can't avoid this as the sorting order is various - $checkresult[$block->id]=$checksignature; // false if error - if (! $checksignature) + $checksignature = $block->checkSignature(); // Note: this make a sql request at each call, we can't avoid this as the sorting order is various + $checkresult[$block->id] = $checksignature; // false if error + if (!$checksignature) { - if (empty($loweridinerror)) $loweridinerror=$block->id; + if (empty($loweridinerror)) $loweridinerror = $block->id; else $loweridinerror = min($loweridinerror, $block->id); } } @@ -463,12 +463,12 @@ else if (is_array($blocks)) { - foreach($blocks as &$block) + foreach ($blocks as &$block) { $object_link = $block->getObjectLink(); //if (empty($search_showonlyerrors) || ! $checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) - if (empty($search_showonlyerrors) || ! $checkresult[$block->id]) + if (empty($search_showonlyerrors) || !$checkresult[$block->id]) { print ''; @@ -506,7 +506,7 @@ if (is_array($blocks)) // Status print ''; - if (! $checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) // If error + if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) // If error { if ($checkresult[$block->id]) print img_picto($langs->trans('OkCheckFingerprintValidityButChainIsKo'), 'statut4'); else print img_picto($langs->trans('KoCheckFingerprintValidity'), 'statut8'); @@ -520,13 +520,13 @@ if (is_array($blocks)) // Note print ''; - if (! $checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) // If error + if (!$checkresult[$block->id] || ($loweridinerror && $block->id >= $loweridinerror)) // If error { if ($checkresult[$block->id]) print $form->textwithpicto('', $langs->trans('OkCheckFingerprintValidityButChainIsKo')); } - if(!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) { - print ' '.($block->certified ? img_picto($langs->trans('AddedByAuthority'), 'info') : img_picto($langs->trans('NotAddedByAuthorityYet'), 'info_black') ); + if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) { + print ' '.($block->certified ? img_picto($langs->trans('AddedByAuthority'), 'info') : img_picto($langs->trans('NotAddedByAuthorityYet'), 'info_black')); } print ''; @@ -572,7 +572,7 @@ jQuery(document).ready(function () { '."\n"; -if(!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) +if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) { ?> '; -$arrayofselected=is_array($toselect)?$toselect:array(); +$arrayofselected = is_array($toselect) ? $toselect : array(); -$param=''; -if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); -if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); -foreach($search as $key => $val) +$param = ''; +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); +if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); +foreach ($search as $key => $val) { - if (is_array($search[$key]) && count($search[$key])) foreach($search[$key] as $skey) $param.='&search_'.$key.'[]='.urlencode($skey); - else $param.= '&search_'.$key.'='.urlencode($search[$key]); + if (is_array($search[$key]) && count($search[$key])) foreach ($search[$key] as $skey) $param .= '&search_'.$key.'[]='.urlencode($skey); + else $param .= '&search_'.$key.'='.urlencode($search[$key]); } -if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); +if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); // Add $param from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; // List of mass actions available -$arrayofmassactions = array( +$arrayofmassactions = array( //'presend'=>$langs->trans("SendByMail"), 'enable'=>$langs->trans("Enable"), 'disable'=>$langs->trans("Disable"), ); if ($permissiontodelete) $arrayofmassactions['predelete'] = ''.$langs->trans("Delete"); -if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions=array(); -$massactionbutton=$form->selectMassAction('', $arrayofmassactions); +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array(); +$massactionbutton = $form->selectMassAction('', $arrayofmassactions); print ''; if ($optioncss != '') print ''; @@ -440,12 +440,11 @@ print ''; print ''; print ''; -print ''; print ''; $newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/bom/bom_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $user->rights->bom->write); -print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'cubes', 0, $newcardbutton, '', $limit); +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'bom', 0, $newcardbutton, '', $limit, 0, 0, 1); // Add code for pre mass action (confirmation or email presend form) $topicmail = "SendBillOfMaterialsRef"; diff --git a/htdocs/bom/class/api_boms.class.php b/htdocs/bom/class/api_boms.class.php index 6b629fd2852..d21d82b5ca9 100644 --- a/htdocs/bom/class/api_boms.class.php +++ b/htdocs/bom/class/api_boms.class.php @@ -63,16 +63,16 @@ class Boms extends DolibarrApi */ public function get($id) { - if (! DolibarrApiAccess::$user->rights->bom->read) { + if (!DolibarrApiAccess::$user->rights->bom->read) { throw new RestException(401); } $result = $this->bom->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'BOM not found'); } - if (! DolibarrApi::_checkAccessToResource('bom', $this->bom->id, 'bom_bom')) { + if (!DolibarrApi::_checkAccessToResource('bom', $this->bom->id, 'bom_bom')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -103,27 +103,27 @@ class Boms extends DolibarrApi $socid = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : ''; - $restrictonsocid = 0; // Set to 1 if there is a field socid in table of object + $restrictonsocid = 0; // Set to 1 if there is a field socid in table of object // If the internal user must only see his customers, force searching by him $search_sale = 0; - if ($restrictonsocid && ! DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) $search_sale = DolibarrApiAccess::$user->id; + if ($restrictonsocid && !DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) $search_sale = DolibarrApiAccess::$user->id; $sql = "SELECT t.rowid"; if ($restrictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) - $sql.= " FROM ".MAIN_DB_PREFIX.$tmpobject->table_element." as t"; + $sql .= " FROM ".MAIN_DB_PREFIX.$tmpobject->table_element." as t"; - if ($restrictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale - $sql.= " WHERE 1 = 1"; + if ($restrictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale + $sql .= " WHERE 1 = 1"; // Example of use $mode //if ($mode == 1) $sql.= " AND s.client IN (1, 3)"; //if ($mode == 2) $sql.= " AND s.client IN (2, 3)"; - if ($tmpobject->ismultientitymanaged) $sql.= ' AND t.entity IN ('.getEntity('bom').')'; - if ($restrictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= " AND t.fk_soc = sc.fk_soc"; - if ($restrictonsocid && $socid) $sql.= " AND t.fk_soc = ".$socid; - if ($restrictonsocid && $search_sale > 0) $sql.= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale + if ($tmpobject->ismultientitymanaged) $sql .= ' AND t.entity IN ('.getEntity('bom').')'; + if ($restrictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= " AND t.fk_soc = sc.fk_soc"; + if ($restrictonsocid && $socid) $sql .= " AND t.fk_soc = ".$socid; + if ($restrictonsocid && $search_sale > 0) $sql .= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale // Insert sale filter if ($restrictonsocid && $search_sale > 0) { @@ -131,23 +131,23 @@ class Boms extends DolibarrApi } if ($sqlfilters) { - if (! DolibarrApi::_checkFilters($sqlfilters)) + if (!DolibarrApi::_checkFilters($sqlfilters)) { throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); } - $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; - $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - $sql.= $db->order($sortfield, $sortorder); - if ($limit) { + $sql .= $db->order($sortfield, $sortorder); + if ($limit) { if ($page < 0) { $page = 0; } $offset = $limit * $page; - $sql.= $db->plimit($limit + 1, $offset); + $sql .= $db->plimit($limit + 1, $offset); } $result = $db->query($sql); @@ -168,7 +168,7 @@ class Boms extends DolibarrApi else { throw new RestException(503, 'Error when retrieve bom list'); } - if( ! count($obj_ret)) { + if (!count($obj_ret)) { throw new RestException(404, 'No bom found'); } return $obj_ret; @@ -182,16 +182,16 @@ class Boms extends DolibarrApi */ public function post($request_data = null) { - if(! DolibarrApiAccess::$user->rights->bom->write) { + if (!DolibarrApiAccess::$user->rights->bom->write) { throw new RestException(401); } // Check mandatory fields $result = $this->_validate($request_data); - foreach($request_data as $field => $value) { + foreach ($request_data as $field => $value) { $this->bom->$field = $value; } - if( ! $this->bom->create(DolibarrApiAccess::$user)) { + if (!$this->bom->create(DolibarrApiAccess::$user)) { throw new RestException(500, "Error creating BOM", array_merge(array($this->bom->error), $this->bom->errors)); } return $this->bom->id; @@ -207,25 +207,25 @@ class Boms extends DolibarrApi */ public function put($id, $request_data = null) { - if(! DolibarrApiAccess::$user->rights->bom->write) { + if (!DolibarrApiAccess::$user->rights->bom->write) { throw new RestException(401); } $result = $this->bom->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'BOM not found'); } - if( ! DolibarrApi::_checkAccessToResource('bom', $this->bom->id, 'bom_bom')) { + if (!DolibarrApi::_checkAccessToResource('bom', $this->bom->id, 'bom_bom')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - foreach($request_data as $field => $value) { + foreach ($request_data as $field => $value) { if ($field == 'id') continue; $this->bom->$field = $value; } - if($this->bom->update($id, DolibarrApiAccess::$user) > 0) + if ($this->bom->update($id, DolibarrApiAccess::$user) > 0) { return $this->get($id); } @@ -243,19 +243,19 @@ class Boms extends DolibarrApi */ public function delete($id) { - if (! DolibarrApiAccess::$user->rights->bom->delete) { + if (!DolibarrApiAccess::$user->rights->bom->delete) { throw new RestException(401); } $result = $this->bom->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'BOM not found'); } - if (! DolibarrApi::_checkAccessToResource('bom', $this->bom->id, 'bom_bom')) { + if (!DolibarrApi::_checkAccessToResource('bom', $this->bom->id, 'bom_bom')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - if (! $this->bom->delete(DolibarrApiAccess::$user)) + if (!$this->bom->delete(DolibarrApiAccess::$user)) { throw new RestException(500, 'Error when deleting BOM : '.$this->bom->error); } @@ -318,9 +318,9 @@ class Boms extends DolibarrApi unset($object->location_incoterms); // If object has lines, remove $db property - if (isset($object->lines) && is_array($object->lines) && count($object->lines) > 0) { + if (isset($object->lines) && is_array($object->lines) && count($object->lines) > 0) { $nboflines = count($object->lines); - for ($i=0; $i < $nboflines; $i++) + for ($i = 0; $i < $nboflines; $i++) { $this->_cleanObjectDatas($object->lines[$i]); @@ -344,7 +344,7 @@ class Boms extends DolibarrApi { $myobject = array(); foreach ($this->bom->fields as $field => $propfield) { - if (in_array($field, array('rowid', 'entity', 'date_creation', 'tms', 'fk_user_creat')) || $propfield['notnull'] != 1) continue; // Not a mandatory field + if (in_array($field, array('rowid', 'entity', 'date_creation', 'tms', 'fk_user_creat')) || $propfield['notnull'] != 1) continue; // Not a mandatory field if (!isset($data[$field])) throw new RestException(400, "$field field missing"); $myobject[$field] = $data[$field]; diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index c2779429ebc..a9ed7ee3a00 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -1009,7 +1009,7 @@ class BOM extends CommonObject */ public function calculateCosts() { - include_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; + include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; $this->unit_cost = 0; $this->total_cost = 0; diff --git a/htdocs/bom/lib/bom.lib.php b/htdocs/bom/lib/bom.lib.php index 7da2c768b7f..92f43ec3fce 100644 --- a/htdocs/bom/lib/bom.lib.php +++ b/htdocs/bom/lib/bom.lib.php @@ -90,19 +90,19 @@ function bomPrepareHead($object) if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/bom/bom_note.php?id='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->bom->dir_output . "/bom/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->bom->dir_output."/bom/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/bom/bom_document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'document'; $h++; diff --git a/htdocs/bom/tpl/linkedobjectblock.tpl.php b/htdocs/bom/tpl/linkedobjectblock.tpl.php new file mode 100644 index 00000000000..a082d4a1003 --- /dev/null +++ b/htdocs/bom/tpl/linkedobjectblock.tpl.php @@ -0,0 +1,74 @@ + + * Copyright (C) 2013 Juanjo Menent + * Copyright (C) 2014 Marcos García + * Copyright (C) 2013-2020 Charlene BENKE + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Protection to avoid direct call of template +if (empty($conf) || !is_object($conf)) { + print "Error, template page can't be called as URL"; + exit; +} + +print "\n"; + +global $user, $db; +global $noMoreLinkedObjectBlockAfter; + +$langs = $GLOBALS['langs']; +$linkedObjectBlock = $GLOBALS['linkedObjectBlock']; + +// Load translation files required by the page +$langs->load("bom"); + +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc', 0, 0, 1); + +$total = 0; +$ilink = 0; +foreach ($linkedObjectBlock as $key => $objectlink) +{ + $ilink++; + $product_static= new Product($db); + $trclass = 'oddeven'; + if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass .= ' liste_sub_total'; + echo ''; + echo ''.$langs->trans("Bom"); + if (!empty($showImportButton) && $conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) { + print ' '; + echo ''.$objectlink->getNomUrl(1).''; + $product_static->fetch($objectlink->fk_product); + echo ''.$product_static->getNomUrl(1).''; + echo ''.dol_print_date($objectlink->date_creation, 'day').''; + echo ''; + if ($user->rights->commande->lire) { + $total = $total + $objectlink->total_ht; + echo price($objectlink->total_ht); + } + echo ''; + echo ''.$objectlink->getLibStatut(3).''; + echo ''; + // For now, shipments must stay linked to order, so link is not deletable + if ($object->element != 'shipping') { + echo ''.img_picto($langs->transnoentitiesnoconv("RemoveLink"), 'unlink').''; + } + echo ''; + echo "\n"; +} + +echo "\n"; diff --git a/htdocs/bom/tpl/objectline_create.tpl.php b/htdocs/bom/tpl/objectline_create.tpl.php index 66bcf0cece5..be7eb3e775f 100644 --- a/htdocs/bom/tpl/objectline_create.tpl.php +++ b/htdocs/bom/tpl/objectline_create.tpl.php @@ -130,7 +130,7 @@ print ''; $coldisplay++; print ''; -print ''; +print ''; print ''; $coldisplay++; diff --git a/htdocs/bom/tpl/objectline_edit.tpl.php b/htdocs/bom/tpl/objectline_edit.tpl.php index c8899603f58..36862e48708 100644 --- a/htdocs/bom/tpl/objectline_edit.tpl.php +++ b/htdocs/bom/tpl/objectline_edit.tpl.php @@ -52,11 +52,11 @@ $objectline = new BOMLine($this->db); print "\n"; -$coldisplay=0; +$coldisplay = 0; print ''; // Adds a line numbering column -if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { - print ''.($i+1).''; +if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { + print ''.($i + 1).''; $coldisplay++; } @@ -82,8 +82,8 @@ if ($line->fk_product > 0) { if (is_object($hookmanager)) { $fk_parent_line = (GETPOST('fk_parent_line') ? GETPOST('fk_parent_line') : $line->fk_parent_line); - $parameters=array('line'=>$line,'fk_parent_line'=>$fk_parent_line,'var'=>$var,'dateSelector'=>$dateSelector,'seller'=>$seller,'buyer'=>$buyer); - $reshook=$hookmanager->executeHooks('formEditProductOptions', $parameters, $this, $action); + $parameters = array('line'=>$line, 'fk_parent_line'=>$fk_parent_line, 'var'=>$var, 'dateSelector'=>$dateSelector, 'seller'=>$seller, 'buyer'=>$buyer); + $reshook = $hookmanager->executeHooks('formEditProductOptions', $parameters, $this, $action); } print ''; @@ -104,7 +104,7 @@ if (($line->info_bits & 2) != 2) { // 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 ''; + print ''; } print ''; @@ -117,20 +117,20 @@ if ($conf->global->PRODUCT_USE_UNITS) } $coldisplay++; -print 'qty_frozen?' checked="checked"':'')).'>'; +print 'qty_frozen ? ' checked="checked"' : '')).'>'; print ''; $coldisplay++; -print 'disable_stock_change?' checked="checked"':'')).'">'; +print 'disable_stock_change ? ' checked="checked"' : '')).'">'; print ''; $coldisplay++; print ''; print ''; -$coldisplay+=$colspan; +$coldisplay += $colspan; print ''; -$coldisplay+=$colspan; +$coldisplay += $colspan; print ''; print '
'; print ''; diff --git a/htdocs/bom/tpl/objectline_title.tpl.php b/htdocs/bom/tpl/objectline_title.tpl.php index ce440dbaab6..b6197342136 100644 --- a/htdocs/bom/tpl/objectline_title.tpl.php +++ b/htdocs/bom/tpl/objectline_title.tpl.php @@ -34,7 +34,7 @@ */ // Protection to avoid direct call of template -if (empty($object) || ! is_object($object)) +if (empty($object) || !is_object($object)) { print "Error, template page can't be called as URL"; exit; @@ -46,7 +46,7 @@ print "\n"; print ''; // Adds a line numbering column -if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) print ' '; +if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) print ' '; // Description print ''.$langs->trans('Description').''; @@ -71,7 +71,7 @@ print ''.$form->textwithpicto($langs->trans( // Cost print ''.$langs->trans('CostPrice').''; -print ''; // No width to allow autodim +print ''; // No width to allow autodim print ''; diff --git a/htdocs/bom/tpl/objectline_view.tpl.php b/htdocs/bom/tpl/objectline_view.tpl.php index ad2c2d3e4c6..667c66848ae 100644 --- a/htdocs/bom/tpl/objectline_view.tpl.php +++ b/htdocs/bom/tpl/objectline_view.tpl.php @@ -95,7 +95,7 @@ echo $line->qty_frozen ? yn($line->qty_frozen) : ''; print ''; print ''; $coldisplay++; -echo $line->disable_stock_change ? yn($line->disable_stock_change) : ''; // Yes, it is a quantity, not a price, but we just want the formating role of function price +echo $line->disable_stock_change ? yn($line->disable_stock_change) : ''; // Yes, it is a quantity, not a price, but we just want the formating role of function price print ''; print ''; @@ -108,12 +108,12 @@ $coldisplay++; echo price($line->total_cost); print ''; -if ($this->status == 0 && ($object_rights->write) && $action != 'selectlines' ) { +if ($this->status == 0 && ($object_rights->write) && $action != 'selectlines') { print ''; $coldisplay++; - if (($line->info_bits & 2) == 2 || ! empty($disableedit)) { + if (($line->info_bits & 2) == 2 || !empty($disableedit)) { } else { - print 'id.'#line_'.$line->id.'">'.img_edit().''; + print 'id.'#line_'.$line->id.'">'.img_edit().''; } print ''; @@ -121,7 +121,7 @@ if ($this->status == 0 && ($object_rights->write) && $action != 'selectlines' ) $coldisplay++; if (($line->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 'id.'">'; print img_delete(); print ''; } diff --git a/htdocs/bookmarks/admin/bookmark.php b/htdocs/bookmarks/admin/bookmark.php index b2c7d227b38..bc0c0c37fc2 100644 --- a/htdocs/bookmarks/admin/bookmark.php +++ b/htdocs/bookmarks/admin/bookmark.php @@ -31,16 +31,16 @@ $langs->load("admin"); if (!$user->admin) accessforbidden(); -$action=GETPOST('action', 'alpha'); +$action = GETPOST('action', 'alpha'); if ($action == 'setvalue') { $showmenu = GETPOST('BOOKMARKS_SHOW_IN_MENU', 'alpha'); $res = dolibarr_set_const($db, "BOOKMARKS_SHOW_IN_MENU", $showmenu, 'chaine', 0, '', $conf->entity); - if (! $res > 0) $error++; + if (!$res > 0) $error++; - if (! $error) + if (!$error) { $db->commit(); setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -59,7 +59,7 @@ if ($action == 'setvalue') llxHeader(); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("BookmarkSetup"), $linkback, 'title_setup'); print $langs->trans("BookmarkDesc")."
\n"; diff --git a/htdocs/bookmarks/bookmarks.lib.php b/htdocs/bookmarks/bookmarks.lib.php index 699065520da..46e9ca315a5 100644 --- a/htdocs/bookmarks/bookmarks.lib.php +++ b/htdocs/bookmarks/bookmarks.lib.php @@ -60,7 +60,7 @@ function printDropdownBookmarksList() } $searchForm = ''."\n"; - $searchForm .= 'global->MAIN_OPTIMIZEFORTEXTBROWSER)?'onsubmit="return false"':'').'>'; + $searchForm .= 'global->MAIN_OPTIMIZEFORTEXTBROWSER) ? 'onsubmit="return false"' : '').'>'; $searchForm .= ''; @@ -106,9 +106,9 @@ function printDropdownBookmarksList() $searchForm .= ' data-html="'.dol_escape_htmltag(img_picto('', 'bookmark').' '.($user->rights->bookmark->creer ? $langs->trans('EditBookmarks') : $langs->trans('ListOfBookmarks')).'...').'">'; $searchForm .= dol_escape_htmltag($user->rights->bookmark->creer ? $langs->trans('EditBookmarks') : $langs->trans('ListOfBookmarks')).'...'; // Url to go on create new bookmark page - if (! empty($user->rights->bookmark->creer)) + if (!empty($user->rights->bookmark->creer)) { - $urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&url='.urlencode($url); + $urltoadd = DOL_URL_ROOT.'/bookmarks/card.php?action=create&url='.urlencode($url); $searchForm .= ''; } @@ -131,10 +131,10 @@ function printDropdownBookmarksList() $searchForm .= ''; // Generate the return string - if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $html = $searchForm; - $html.=' + $html .= ' '; print ''; - print ''; + print ''; print ' '; print ''; print ''; @@ -1187,7 +1187,13 @@ if ($resql) $reg = array(); preg_match('/\((.+)\)/i', $objp->label, $reg); // Si texte entoure de parenthee on tente recherche de traduction if ($reg[1] && $langs->trans($reg[1]) != $reg[1]) print $langs->trans($reg[1]); - else print dol_trunc($objp->label, 40); + else { + if ($objp->label == '(payment_salary)') { + print dol_trunc($langs->trans("SalaryPayment", 40)); + } else { + print dol_trunc($objp->label, 40); + } + } //print " "; // Add links after description @@ -1195,6 +1201,7 @@ if ($resql) $cachebankaccount = array(); foreach ($links as $key=>$val) { + print ''; if ($links[$key]['type'] == 'withdraw') { $banktransferstatic->id = $links[$key]['url_id']; @@ -1374,7 +1381,7 @@ if ($resql) // Third party if (!empty($arrayfields['bu.label']['checked'])) { - print ""; + print ''; if ($objp->url_id) { $companystatic->id = $objp->url_id; @@ -1520,13 +1527,13 @@ if ($resql) { if ($user->rights->banque->modifier || $user->rights->banque->consolidate) { - print ''; + print ''; print img_edit(); print ''; } else { - print ''; + print ''; print img_view(); print ''; } @@ -1540,7 +1547,7 @@ if ($resql) if ($user->rights->banque->modifier) { print 'rowid.'&id='.$objp->bankid.'&page='.$page.'">'; - print img_delete(); + print img_delete('', 'class="marginleftonly"'); print ''; } } @@ -1574,7 +1581,7 @@ if ($resql) if ($i == 1) { if ($num < $limit && empty($offset)) print ''.$langs->trans("Total").''; - else print ''.$langs->trans("Totalforthispage").''; + else print ''.$langs->trans("Totalforthispage").''; } elseif ($totalarray['totaldebfield'] == $i) print ''.price(-1 * $totalarray['totaldeb']).''; elseif ($totalarray['totalcredfield'] == $i) print ''.price($totalarray['totalcred']).''; diff --git a/htdocs/compta/bank/bilan.php b/htdocs/compta/bank/bilan.php index 28607ecca26..d728ac2a71b 100644 --- a/htdocs/compta/bank/bilan.php +++ b/htdocs/compta/bank/bilan.php @@ -44,10 +44,10 @@ function valeur($sql) $valeur = 0; - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); $valeur = $obj->amount; $db->free($resql); } diff --git a/htdocs/compta/bank/budget.php b/htdocs/compta/bank/budget.php index 967227f9e89..042117808d5 100644 --- a/htdocs/compta/bank/budget.php +++ b/htdocs/compta/bank/budget.php @@ -31,20 +31,20 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $langs->loadLangs(array('banks', 'categories')); // Security check -if ($user->socid) $socid=$user->socid; -$result=restrictedArea($user, 'banque'); +if ($user->socid) $socid = $user->socid; +$result = restrictedArea($user, 'banque'); /* * View */ -$companystatic=new Societe($db); +$companystatic = new Societe($db); llxHeader(); // List movements bu category for bank transactions -print load_fiche_titre($langs->trans("BankTransactionByCategories"), '', 'title_bank.png'); +print load_fiche_titre($langs->trans("BankTransactionByCategories"), '', 'bank_account'); print ''; print ""; @@ -55,14 +55,14 @@ print ''; print "\n"; $sql = "SELECT sum(d.amount) as somme, count(*) as nombre, c.label, c.rowid "; -$sql.= " FROM ".MAIN_DB_PREFIX."bank_categ as c"; -$sql.= ", ".MAIN_DB_PREFIX."bank_class as l"; -$sql.= ", ".MAIN_DB_PREFIX."bank as d"; -$sql.= " WHERE c.entity = ".$conf->entity; -$sql.= " AND c.rowid = l.fk_categ"; -$sql.= " AND d.rowid = l.lineid"; -$sql.= " GROUP BY c.label, c.rowid"; -$sql.= " ORDER BY c.label"; +$sql .= " FROM ".MAIN_DB_PREFIX."bank_categ as c"; +$sql .= ", ".MAIN_DB_PREFIX."bank_class as l"; +$sql .= ", ".MAIN_DB_PREFIX."bank as d"; +$sql .= " WHERE c.entity = ".$conf->entity; +$sql .= " AND c.rowid = l.fk_categ"; +$sql .= " AND d.rowid = l.lineid"; +$sql .= " GROUP BY c.label, c.rowid"; +$sql .= " ORDER BY c.label"; $result = $db->query($sql); if ($result) @@ -88,7 +88,7 @@ if ($result) print ''; print ''; - print ''; + print ''; } else { diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php index b80f050ba08..593893878e0 100644 --- a/htdocs/compta/bank/card.php +++ b/htdocs/compta/bank/card.php @@ -321,7 +321,7 @@ if ($action == 'create') { $object = new Account($db); - print load_fiche_titre($langs->trans("NewFinancialAccount"), '', 'title_bank.png'); + print load_fiche_titre($langs->trans("NewFinancialAccount"), '', 'bank_account'); if ($conf->use_javascript_ajax) { @@ -804,7 +804,7 @@ else $object = new Account($db); $object->fetch(GETPOST('id', 'int')); - print load_fiche_titre($langs->trans("EditFinancialAccount"), '', 'title_bank.png'); + print load_fiche_titre($langs->trans("EditFinancialAccount"), '', 'bank_account'); if ($conf->use_javascript_ajax) { diff --git a/htdocs/compta/bank/categ.php b/htdocs/compta/bank/categ.php index 21712e9a36f..29701f57c59 100644 --- a/htdocs/compta/bank/categ.php +++ b/htdocs/compta/bank/categ.php @@ -79,7 +79,7 @@ if ($categid) { llxHeader(); -print load_fiche_titre($langs->trans("RubriquesTransactions")); +print load_fiche_titre($langs->trans("RubriquesTransactions"), '', 'object_category'); print ''; if ($optioncss != '') print ''; @@ -138,7 +138,7 @@ if ($result) { print ""; print ''; } diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index 60d7c4f2463..cbda53affed 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -214,6 +214,76 @@ class Account extends CommonObject */ public $date_solde; + + /** + * 'type' if the field format ('integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter]]', 'varchar(x)', 'double(24,8)', 'real', 'price', 'text', 'html', 'date', 'datetime', 'timestamp', 'duration', 'mail', 'phone', 'url', 'password') + * Note: Filter can be a string like "(t.ref:like:'SO-%') or (t.date_creation:<:'20160101') or (t.nature:is:NULL)" + * 'label' the translation key. + * 'enabled' is a condition when the field must be managed. + * 'position' is the sort order of field. + * 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). + * 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create). 5=Visible on list and view only (not create/not update). Using a negative value means field is not shown by default on list but can be selected for viewing) + * 'noteditable' says if field is not editable (1 or 0) + * 'default' is a default value for creation (can still be overwrote by the Setup of Default Values if field is editable in creation form). Note: If default is set to '(PROV)' and field is 'ref', the default value will be set to '(PROVid)' where id is rowid when a new record is created. + * 'index' if we want an index in database. + * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...). + * 'searchall' is 1 if we want to search in this field when making a search from the quick search button. + * 'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8). + * 'css' is the CSS style to use on field. For example: 'maxwidth200' + * 'help' is a string visible as a tooltip on field + * 'showoncombobox' if value of the field must be visible into the label of the combobox that list record + * 'disabled' is 1 if we want to have the field locked by a 'disabled' attribute. In most cases, this is never set into the definition of $fields into class, but is set dynamically by some part of code. + * 'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel") + * 'comment' is not used. You can store here any text of your choice. It is not used by application. + * + * Note: To have value dynamic, you can set value to 0 in definition and edit the value on the fly into the constructor. + */ + + // BEGIN MODULEBUILDER PROPERTIES + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields = array( + 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>10), + 'ref' =>array('type'=>'varchar(12)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'showoncombobox'=>1, 'position'=>25), + 'label' =>array('type'=>'varchar(30)', 'label'=>'Label', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>30), + 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>35, 'index'=>1), + 'bank' =>array('type'=>'varchar(60)', 'label'=>'Bank', 'enabled'=>1, 'visible'=>-1, 'position'=>40), + 'code_banque' =>array('type'=>'varchar(128)', 'label'=>'Code banque', 'enabled'=>1, 'visible'=>-1, 'position'=>45), + 'code_guichet' =>array('type'=>'varchar(6)', 'label'=>'Code guichet', 'enabled'=>1, 'visible'=>-1, 'position'=>50), + 'number' =>array('type'=>'varchar(255)', 'label'=>'Number', 'enabled'=>1, 'visible'=>-1, 'position'=>55), + 'cle_rib' =>array('type'=>'varchar(5)', 'label'=>'Cle rib', 'enabled'=>1, 'visible'=>-1, 'position'=>60), + 'bic' =>array('type'=>'varchar(11)', 'label'=>'Bic', 'enabled'=>1, 'visible'=>-1, 'position'=>65), + 'iban_prefix' =>array('type'=>'varchar(34)', 'label'=>'Iban prefix', 'enabled'=>1, 'visible'=>-1, 'position'=>70), + 'country_iban' =>array('type'=>'varchar(2)', 'label'=>'Country iban', 'enabled'=>1, 'visible'=>-1, 'position'=>75), + 'cle_iban' =>array('type'=>'varchar(2)', 'label'=>'Cle iban', 'enabled'=>1, 'visible'=>-1, 'position'=>80), + 'domiciliation' =>array('type'=>'varchar(255)', 'label'=>'Domiciliation', 'enabled'=>1, 'visible'=>-1, 'position'=>85), + 'state_id' =>array('type'=>'integer', 'label'=>'State id', 'enabled'=>1, 'visible'=>-1, 'position'=>90), + 'fk_pays' =>array('type'=>'integer', 'label'=>'Fk pays', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>95), + 'proprio' =>array('type'=>'varchar(60)', 'label'=>'Proprio', 'enabled'=>1, 'visible'=>-1, 'position'=>100), + 'owner_address' =>array('type'=>'text', 'label'=>'Owner address', 'enabled'=>1, 'visible'=>-1, 'position'=>105), + 'courant' =>array('type'=>'smallint(6)', 'label'=>'Courant', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>110), + 'clos' =>array('type'=>'smallint(6)', 'label'=>'Clos', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>115), + 'rappro' =>array('type'=>'smallint(6)', 'label'=>'Rappro', 'enabled'=>1, 'visible'=>-1, 'position'=>120), + 'url' =>array('type'=>'varchar(128)', 'label'=>'Url', 'enabled'=>1, 'visible'=>-1, 'position'=>125), + 'account_number' =>array('type'=>'varchar(32)', 'label'=>'Account number', 'enabled'=>1, 'visible'=>-1, 'position'=>130), + 'accountancy_journal' =>array('type'=>'varchar(20)', 'label'=>'Accountancy journal', 'enabled'=>1, 'visible'=>-1, 'position'=>135), + 'currency_code' =>array('type'=>'varchar(3)', 'label'=>'Currency code', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>140), + 'min_allowed' =>array('type'=>'integer', 'label'=>'Min allowed', 'enabled'=>1, 'visible'=>-1, 'position'=>145), + 'min_desired' =>array('type'=>'integer', 'label'=>'Min desired', 'enabled'=>1, 'visible'=>-1, 'position'=>150), + 'comment' =>array('type'=>'text', 'label'=>'Comment', 'enabled'=>1, 'visible'=>-1, 'position'=>155), + 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'position'=>156), + 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>157), + 'fk_user_author' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Fk user author', 'enabled'=>1, 'visible'=>-1, 'position'=>160), + 'fk_user_modif' =>array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>165), + 'note_public' =>array('type'=>'text', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>170), + 'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>1, 'visible'=>0, 'position'=>175), + 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>180), + 'extraparams' =>array('type'=>'varchar(255)', 'label'=>'Extraparams', 'enabled'=>1, 'visible'=>-1, 'position'=>185), + 'fk_accountancy_journal' =>array('type'=>'integer', 'label'=>'Fk accountancy journal', 'enabled'=>1, 'visible'=>-1, 'position'=>190), + ); + // END MODULEBUILDER PROPERTIES + /** * Current account */ @@ -1188,34 +1258,34 @@ class Account extends CommonObject // phpcs:enable global $conf, $langs; - if ($user->socid) return -1; // protection pour eviter appel par utilisateur externe + if ($user->socid) return -1; // protection pour eviter appel par utilisateur externe $sql = "SELECT b.rowid, b.datev as datefin"; - $sql.= " FROM ".MAIN_DB_PREFIX."bank as b,"; - $sql.= " ".MAIN_DB_PREFIX."bank_account as ba"; - $sql.= " WHERE b.rappro=0"; - $sql.= " AND b.fk_account = ba.rowid"; - $sql.= " AND ba.entity IN (".getEntity('bank_account').")"; - $sql.= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable - $sql.= " AND clos = 0"; - if ($filteraccountid) $sql.=" AND ba.rowid = ".$filteraccountid; + $sql .= " FROM ".MAIN_DB_PREFIX."bank as b,"; + $sql .= " ".MAIN_DB_PREFIX."bank_account as ba"; + $sql .= " WHERE b.rappro=0"; + $sql .= " AND b.fk_account = ba.rowid"; + $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; + $sql .= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable + $sql .= " AND clos = 0"; + if ($filteraccountid) $sql .= " AND ba.rowid = ".$filteraccountid; - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $langs->load("banks"); - $now=dol_now(); + $now = dol_now(); require_once DOL_DOCUMENT_ROOT.'/core/class/workboardresponse.class.php'; $response = new WorkboardResponse(); - $response->warning_delay=$conf->bank->rappro->warning_delay/60/60/24; - $response->label=$langs->trans("TransactionsToConciliate"); + $response->warning_delay = $conf->bank->rappro->warning_delay / 60 / 60 / 24; + $response->label = $langs->trans("TransactionsToConciliate"); $response->labelShort = $langs->trans("TransactionsToConciliateShort"); - $response->url=DOL_URL_ROOT.'/compta/bank/list.php?leftmenu=bank&mainmenu=bank'; - $response->img=img_object('', "payment"); + $response->url = DOL_URL_ROOT.'/compta/bank/list.php?leftmenu=bank&mainmenu=bank'; + $response->img = img_object('', "payment"); - while ($obj=$this->db->fetch_object($resql)) + while ($obj = $this->db->fetch_object($resql)) { $response->nbtodo++; if ($this->db->jdate($obj->datefin) < ($now - $conf->bank->rappro->warning_delay)) { @@ -1244,30 +1314,30 @@ class Account extends CommonObject // phpcs:enable global $user; - if ($user->socid) return -1; // protection pour eviter appel par utilisateur externe + if ($user->socid) return -1; // protection pour eviter appel par utilisateur externe $sql = "SELECT count(b.rowid) as nb"; - $sql.= " FROM ".MAIN_DB_PREFIX."bank as b,"; - $sql.= " ".MAIN_DB_PREFIX."bank_account as ba"; - $sql.= " WHERE b.fk_account = ba.rowid"; - $sql.= " AND ba.entity IN (".getEntity('bank_account').")"; - $sql.= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable - $sql.= " AND clos = 0"; - if ($filteraccountid) $sql.=" AND ba.rowid = ".$filteraccountid; + $sql .= " FROM ".MAIN_DB_PREFIX."bank as b,"; + $sql .= " ".MAIN_DB_PREFIX."bank_account as ba"; + $sql .= " WHERE b.fk_account = ba.rowid"; + $sql .= " AND ba.entity IN (".getEntity('bank_account').")"; + $sql .= " AND (ba.rappro = 1 AND ba.courant != 2)"; // Compte rapprochable + $sql .= " AND clos = 0"; + if ($filteraccountid) $sql .= " AND ba.rowid = ".$filteraccountid; - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { - while ($obj=$this->db->fetch_object($resql)) + while ($obj = $this->db->fetch_object($resql)) { - $this->nb["banklines"]=$obj->nb; + $this->nb["banklines"] = $obj->nb; } $this->db->free($resql); } else { dol_print_error($this->db); - $this->error=$this->db->error(); + $this->error = $this->db->error(); return -1; } } diff --git a/htdocs/compta/bank/class/api_bankaccounts.class.php b/htdocs/compta/bank/class/api_bankaccounts.class.php index 1272cfcad85..2fb97ff949c 100644 --- a/htdocs/compta/bank/class/api_bankaccounts.class.php +++ b/htdocs/compta/bank/class/api_bankaccounts.class.php @@ -66,32 +66,32 @@ class BankAccounts extends DolibarrApi { $list = array(); - if (! DolibarrApiAccess::$user->rights->banque->lire) { + if (!DolibarrApiAccess::$user->rights->banque->lire) { throw new RestException(401); } $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."bank_account as t"; - $sql.= ' WHERE t.entity IN ('.getEntity('bank_account').')'; + $sql .= ' WHERE t.entity IN ('.getEntity('bank_account').')'; // Add sql filters if ($sqlfilters) { - if (! DolibarrApi::_checkFilters($sqlfilters)) + if (!DolibarrApi::_checkFilters($sqlfilters)) { throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); } - $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; - $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - $sql.= $this->db->order($sortfield, $sortorder); - if ($limit) { + $sql .= $this->db->order($sortfield, $sortorder); + if ($limit) { if ($page < 0) { $page = 0; } $offset = $limit * $page; - $sql.= $this->db->plimit($limit + 1, $offset); + $sql .= $this->db->plimit($limit + 1, $offset); } dol_syslog("API Rest request"); @@ -108,7 +108,7 @@ class BankAccounts extends DolibarrApi } } } else { - throw new RestException(503, 'Error when retrieving list of accounts: ' . $this->db->lasterror()); + throw new RestException(503, 'Error when retrieving list of accounts: '.$this->db->lasterror()); } return $list; @@ -124,13 +124,13 @@ class BankAccounts extends DolibarrApi */ public function get($id) { - if (! DolibarrApiAccess::$user->rights->banque->lire) { + if (!DolibarrApiAccess::$user->rights->banque->lire) { throw new RestException(401); } $account = new Account($this->db); $result = $account->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'account not found'); } @@ -145,7 +145,7 @@ class BankAccounts extends DolibarrApi */ public function post($request_data = null) { - if (! DolibarrApiAccess::$user->rights->banque->configurer) { + if (!DolibarrApiAccess::$user->rights->banque->configurer) { throw new RestException(401); } // Check mandatory fields @@ -190,7 +190,7 @@ class BankAccounts extends DolibarrApi */ public function transfer($bankaccount_from_id = 0, $bankaccount_to_id = 0, $date = null, $description = "", $amount = 0.0, $amount_to = 0.0) { - if (! DolibarrApiAccess::$user->rights->banque->configurer) { + if (!DolibarrApiAccess::$user->rights->banque->configurer) { throw new RestException(401); } @@ -235,14 +235,14 @@ class BankAccounts extends DolibarrApi $user = DolibarrApiAccess::$user; // By default, electronic transfert from bank to bank - $typefrom='PRE'; - $typeto='VIR'; + $typefrom = 'PRE'; + $typeto = 'VIR'; if ($accountto->courant == Account::TYPE_CASH || $accountfrom->courant == Account::TYPE_CASH) { // This is transfer of change - $typefrom='LIQ'; - $typeto='LIQ'; + $typefrom = 'LIQ'; + $typeto = 'LIQ'; } /** @@ -250,7 +250,7 @@ class BankAccounts extends DolibarrApi */ if (!$error) { - $bank_line_id_from = $accountfrom->addline($date, $typefrom, $description, -1*price2num($amount), '', '', $user); + $bank_line_id_from = $accountfrom->addline($date, $typefrom, $description, -1 * price2num($amount), '', '', $user); } if (!($bank_line_id_from > 0)) { $error++; @@ -312,13 +312,13 @@ class BankAccounts extends DolibarrApi */ public function put($id, $request_data = null) { - if (! DolibarrApiAccess::$user->rights->banque->configurer) { + if (!DolibarrApiAccess::$user->rights->banque->configurer) { throw new RestException(401); } $account = new Account($this->db); $result = $account->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'account not found'); } @@ -345,12 +345,12 @@ class BankAccounts extends DolibarrApi */ public function delete($id) { - if (! DolibarrApiAccess::$user->rights->banque->configurer) { + if (!DolibarrApiAccess::$user->rights->banque->configurer) { throw new RestException(401); } $account = new Account($this->db); $result = $account->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'account not found'); } @@ -378,7 +378,7 @@ class BankAccounts extends DolibarrApi { $account = array(); foreach (BankAccounts::$FIELDS as $field) { - if (! isset($data[$field])) + if (!isset($data[$field])) throw new RestException(400, "$field field missing"); $account[$field] = $data[$field]; } @@ -417,13 +417,13 @@ class BankAccounts extends DolibarrApi { $list = array(); - if (! DolibarrApiAccess::$user->rights->banque->lire) { + if (!DolibarrApiAccess::$user->rights->banque->lire) { throw new RestException(401); } $account = new Account($this->db); $result = $account->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'account not found'); } @@ -433,12 +433,12 @@ class BankAccounts extends DolibarrApi // Add sql filters if ($sqlfilters) { - if (! DolibarrApi::_checkFilters($sqlfilters)) + if (!DolibarrApi::_checkFilters($sqlfilters)) { throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); } - $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; - $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } $sql .= " ORDER BY rowid"; @@ -455,7 +455,7 @@ class BankAccounts extends DolibarrApi } } } else { - throw new RestException(503, 'Error when retrieving list of account lines: ' . $accountLine->error); + throw new RestException(503, 'Error when retrieving list of account lines: '.$accountLine->error); } return $list; @@ -479,13 +479,13 @@ class BankAccounts extends DolibarrApi */ public function addLine($id, $date, $type, $label, $amount, $category = 0, $cheque_number = '', $cheque_writer = '', $cheque_bank = '') { - if (! DolibarrApiAccess::$user->rights->banque->modifier) { + if (!DolibarrApiAccess::$user->rights->banque->modifier) { throw new RestException(401); } $account = new Account($this->db); $result = $account->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'account not found'); } @@ -500,7 +500,7 @@ class BankAccounts extends DolibarrApi $cheque_writer, $cheque_bank ); if ($result < 0) { - throw new RestException(503, 'Error when adding line to account: ' . $account->error); + throw new RestException(503, 'Error when adding line to account: '.$account->error); } return $result; } @@ -520,25 +520,25 @@ class BankAccounts extends DolibarrApi */ public function addLink($id, $line_id, $url_id, $url, $label, $type) { - if (! DolibarrApiAccess::$user->rights->banque->modifier) { + if (!DolibarrApiAccess::$user->rights->banque->modifier) { throw new RestException(401); } $account = new Account($this->db); $result = $account->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'account not found'); } $accountLine = new AccountLine($this->db); $result = $accountLine->fetch($line_id); - if (! $result) { + if (!$result) { throw new RestException(404, 'account line not found'); } $result = $account->add_url_line($line_id, $url_id, $url, $label, $type); if ($result < 0) { - throw new RestException(503, 'Error when adding link to account line: ' . $account->error); + throw new RestException(503, 'Error when adding link to account line: '.$account->error); } return $result; } diff --git a/htdocs/compta/bank/class/bankcateg.class.php b/htdocs/compta/bank/class/bankcateg.class.php index 92e16211ce0..c7e86e51cfb 100644 --- a/htdocs/compta/bank/class/bankcateg.class.php +++ b/htdocs/compta/bank/class/bankcateg.class.php @@ -33,7 +33,7 @@ class BankCateg // extends CommonObject /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png */ - public $picto='generic'; + public $picto = 'generic'; /** * @var int ID @@ -211,10 +211,10 @@ class BankCateg // extends CommonObject $this->db->begin(); // Delete link between tag and bank account - if (! $error) + if (!$error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_account"; - $sql.= " WHERE fk_categorie = ".$this->id; + $sql .= " WHERE fk_categorie = ".$this->id; $resql = $this->db->query($sql); if (!$resql) @@ -225,10 +225,10 @@ class BankCateg // extends CommonObject } // Delete link between tag and bank lines - if (! $error) + if (!$error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_class"; - $sql.= " WHERE fk_categ = ".$this->id; + $sql .= " WHERE fk_categ = ".$this->id; $resql = $this->db->query($sql); if (!$resql) @@ -239,7 +239,7 @@ class BankCateg // extends CommonObject } // Delete bank categ - if (! $error) + if (!$error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_categ"; $sql .= " WHERE rowid=".$this->id; diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index 58e01ec2f28..6af394ad4b4 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -23,7 +23,7 @@ */ // Put here all includes required by your class file -require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; /** @@ -34,12 +34,12 @@ class PaymentVarious extends CommonObject /** * @var string ID to identify managed object */ - public $element='variouspayment'; + public $element = 'variouspayment'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='payment_various'; + public $table_element = 'payment_various'; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png @@ -118,12 +118,12 @@ class PaymentVarious extends CommonObject { global $conf, $langs; - $error=0; + $error = 0; // Clean parameters - $this->amount=trim($this->amount); - $this->label=trim($this->label); - $this->note=trim($this->note); + $this->amount = trim($this->amount); + $this->label = trim($this->label); + $this->note = trim($this->note); $this->fk_bank = (int) $this->fk_bank; $this->fk_user_author = (int) $this->fk_user_author; $this->fk_user_modif = (int) $this->fk_user_modif; @@ -132,40 +132,40 @@ class PaymentVarious extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."payment_various SET"; - if ($this->tms) $sql.= " tms='".$this->db->idate($this->tms)."',"; - $sql.= " datep='".$this->db->idate($this->datep)."',"; - $sql.= " datev='".$this->db->idate($this->datev)."',"; - $sql.= " sens=".(int) $this->sens.","; - $sql.= " amount=".price2num($this->amount).","; - $sql.= " fk_typepayment=".(int) $this->fk_typepayment.","; - $sql.= " num_payment='".$this->db->escape($this->num_payment)."',"; - $sql.= " label='".$this->db->escape($this->label)."',"; - $sql.= " note='".$this->db->escape($this->note)."',"; - $sql.= " accountancy_code='".$this->db->escape($this->accountancy_code)."',"; - $sql.= " subledger_account='".$this->db->escape($this->subledger_account)."',"; - $sql.= " fk_projet='".$this->db->escape($this->fk_project)."',"; - $sql.= " fk_bank=".($this->fk_bank > 0 ? $this->fk_bank:"null").","; - $sql.= " fk_user_author=".(int) $this->fk_user_author.","; - $sql.= " fk_user_modif=".(int) $this->fk_user_modif; - $sql.= " WHERE rowid=".$this->id; + if ($this->tms) $sql .= " tms='".$this->db->idate($this->tms)."',"; + $sql .= " datep='".$this->db->idate($this->datep)."',"; + $sql .= " datev='".$this->db->idate($this->datev)."',"; + $sql .= " sens=".(int) $this->sens.","; + $sql .= " amount=".price2num($this->amount).","; + $sql .= " fk_typepayment=".(int) $this->fk_typepayment.","; + $sql .= " num_payment='".$this->db->escape($this->num_payment)."',"; + $sql .= " label='".$this->db->escape($this->label)."',"; + $sql .= " note='".$this->db->escape($this->note)."',"; + $sql .= " accountancy_code='".$this->db->escape($this->accountancy_code)."',"; + $sql .= " subledger_account='".$this->db->escape($this->subledger_account)."',"; + $sql .= " fk_projet='".$this->db->escape($this->fk_project)."',"; + $sql .= " fk_bank=".($this->fk_bank > 0 ? $this->fk_bank : "null").","; + $sql .= " fk_user_author=".(int) $this->fk_user_author.","; + $sql .= " fk_user_modif=".(int) $this->fk_user_modif; + $sql .= " WHERE rowid=".$this->id; dol_syslog(get_class($this)."::update", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) + if (!$resql) { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } - if (! $notrigger) + if (!$notrigger) { // Call trigger - $result=$this->call_trigger('PAYMENT_VARIOUS_MODIFY', $user); + $result = $this->call_trigger('PAYMENT_VARIOUS_MODIFY', $user); if ($result < 0) $error++; // End call triggers } - if (! $error) + if (!$error) { $this->db->commit(); return 1; @@ -189,31 +189,31 @@ class PaymentVarious extends CommonObject { global $langs; $sql = "SELECT"; - $sql.= " v.rowid,"; - $sql.= " v.tms,"; - $sql.= " v.datep,"; - $sql.= " v.datev,"; - $sql.= " v.sens,"; - $sql.= " v.amount,"; - $sql.= " v.fk_typepayment,"; - $sql.= " v.num_payment,"; - $sql.= " v.label,"; - $sql.= " v.note,"; - $sql.= " v.accountancy_code,"; - $sql.= " v.subledger_account,"; - $sql.= " v.fk_projet as fk_project,"; - $sql.= " v.fk_bank,"; - $sql.= " v.fk_user_author,"; - $sql.= " v.fk_user_modif,"; - $sql.= " b.fk_account,"; - $sql.= " b.fk_type,"; - $sql.= " b.rappro"; - $sql.= " FROM ".MAIN_DB_PREFIX."payment_various as v"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON v.fk_bank = b.rowid"; - $sql.= " WHERE v.rowid = ".$id; + $sql .= " v.rowid,"; + $sql .= " v.tms,"; + $sql .= " v.datep,"; + $sql .= " v.datev,"; + $sql .= " v.sens,"; + $sql .= " v.amount,"; + $sql .= " v.fk_typepayment,"; + $sql .= " v.num_payment,"; + $sql .= " v.label,"; + $sql .= " v.note,"; + $sql .= " v.accountancy_code,"; + $sql .= " v.subledger_account,"; + $sql .= " v.fk_projet as fk_project,"; + $sql .= " v.fk_bank,"; + $sql .= " v.fk_user_author,"; + $sql .= " v.fk_user_modif,"; + $sql .= " b.fk_account,"; + $sql .= " b.fk_type,"; + $sql .= " b.rappro"; + $sql .= " FROM ".MAIN_DB_PREFIX."payment_various as v"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON v.fk_bank = b.rowid"; + $sql .= " WHERE v.rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { if ($this->db->num_rows($resql)) @@ -247,7 +247,7 @@ class PaymentVarious extends CommonObject } else { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } } @@ -263,22 +263,22 @@ class PaymentVarious extends CommonObject { global $conf, $langs; - $error=0; + $error = 0; // Call trigger - $result=$this->call_trigger('PAYMENT_VARIOUS_DELETE', $user); + $result = $this->call_trigger('PAYMENT_VARIOUS_DELETE', $user); if ($result < 0) return -1; // End call triggers $sql = "DELETE FROM ".MAIN_DB_PREFIX."payment_various"; - $sql.= " WHERE rowid=".$this->id; + $sql .= " WHERE rowid=".$this->id; dol_syslog(get_class($this)."::delete", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) + if (!$resql) { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } @@ -295,20 +295,20 @@ class PaymentVarious extends CommonObject */ public function initAsSpecimen() { - $this->id=0; + $this->id = 0; - $this->tms=''; - $this->datep=''; - $this->datev=''; - $this->sens=''; - $this->amount=''; - $this->label=''; - $this->accountancy_code=''; - $this->subledger_account=''; - $this->note=''; - $this->fk_bank=''; - $this->fk_user_author=''; - $this->fk_user_modif=''; + $this->tms = ''; + $this->datep = ''; + $this->datev = ''; + $this->sens = ''; + $this->amount = ''; + $this->label = ''; + $this->accountancy_code = ''; + $this->subledger_account = ''; + $this->note = ''; + $this->fk_bank = ''; + $this->fk_user_author = ''; + $this->fk_user_modif = ''; } /** @@ -319,38 +319,38 @@ class PaymentVarious extends CommonObject */ public function create($user) { - global $conf,$langs; + global $conf, $langs; - $error=0; - $now=dol_now(); + $error = 0; + $now = dol_now(); // Clean parameters - $this->amount=price2num(trim($this->amount)); - $this->label=trim($this->label); - $this->note=trim($this->note); + $this->amount = price2num(trim($this->amount)); + $this->label = trim($this->label); + $this->note = trim($this->note); $this->fk_bank = (int) $this->fk_bank; $this->fk_user_author = (int) $this->fk_user_author; $this->fk_user_modif = (int) $this->fk_user_modif; // Check parameters - if (! $this->label) + if (!$this->label) { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")); return -3; } if ($this->amount < 0 || $this->amount == '') { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount")); return -5; } - if (! empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0)) + if (!empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0)) { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("Account")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Account")); return -6; } - if (! empty($conf->banque->enabled) && (empty($this->type_payment) || $this->type_payment <= 0)) + if (!empty($conf->banque->enabled) && (empty($this->type_payment) || $this->type_payment <= 0)) { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("PaymentMode")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("PaymentMode")); return -7; } @@ -358,39 +358,39 @@ class PaymentVarious extends CommonObject // Insert into llx_payment_various $sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_various ("; - $sql.= " datep"; - $sql.= ", datev"; - $sql.= ", sens"; - $sql.= ", amount"; - $sql.= ", fk_typepayment"; - $sql.= ", num_payment"; - if ($this->note) $sql.= ", note"; - $sql.= ", label"; - $sql.= ", accountancy_code"; - $sql.= ", subledger_account"; - $sql.= ", fk_projet"; - $sql.= ", fk_user_author"; - $sql.= ", datec"; - $sql.= ", fk_bank"; - $sql.= ", entity"; - $sql.= ")"; - $sql.= " VALUES ("; - $sql.= "'".$this->db->idate($this->datep)."'"; - $sql.= ", '".$this->db->idate($this->datev)."'"; - $sql.= ", '".$this->db->escape($this->sens)."'"; - $sql.= ", ".price2num($this->amount); - $sql.= ", '".$this->db->escape($this->type_payment)."'"; - $sql.= ", '".$this->db->escape($this->num_payment)."'"; - if ($this->note) $sql.= ", '".$this->db->escape($this->note)."'"; - $sql.= ", '".$this->db->escape($this->label)."'"; - $sql.= ", '".$this->db->escape($this->accountancy_code)."'"; - $sql.= ", '".$this->db->escape($this->subledger_account)."'"; - $sql.= ", ".($this->fk_project > 0? $this->fk_project : 0); - $sql.= ", ".$user->id; - $sql.= ", '".$this->db->idate($now)."'"; - $sql.= ", NULL"; - $sql.= ", ".$conf->entity; - $sql.= ")"; + $sql .= " datep"; + $sql .= ", datev"; + $sql .= ", sens"; + $sql .= ", amount"; + $sql .= ", fk_typepayment"; + $sql .= ", num_payment"; + if ($this->note) $sql .= ", note"; + $sql .= ", label"; + $sql .= ", accountancy_code"; + $sql .= ", subledger_account"; + $sql .= ", fk_projet"; + $sql .= ", fk_user_author"; + $sql .= ", datec"; + $sql .= ", fk_bank"; + $sql .= ", entity"; + $sql .= ")"; + $sql .= " VALUES ("; + $sql .= "'".$this->db->idate($this->datep)."'"; + $sql .= ", '".$this->db->idate($this->datev)."'"; + $sql .= ", '".$this->db->escape($this->sens)."'"; + $sql .= ", ".price2num($this->amount); + $sql .= ", '".$this->db->escape($this->type_payment)."'"; + $sql .= ", '".$this->db->escape($this->num_payment)."'"; + if ($this->note) $sql .= ", '".$this->db->escape($this->note)."'"; + $sql .= ", '".$this->db->escape($this->label)."'"; + $sql .= ", '".$this->db->escape($this->accountancy_code)."'"; + $sql .= ", '".$this->db->escape($this->subledger_account)."'"; + $sql .= ", ".($this->fk_project > 0 ? $this->fk_project : 0); + $sql .= ", ".$user->id; + $sql .= ", '".$this->db->idate($now)."'"; + $sql .= ", NULL"; + $sql .= ", ".$conf->entity; + $sql .= ")"; dol_syslog(get_class($this)."::create", LOG_DEBUG); $result = $this->db->query($sql); @@ -401,19 +401,19 @@ class PaymentVarious extends CommonObject if ($this->id > 0) { - if (! empty($conf->banque->enabled) && ! empty($this->amount)) + if (!empty($conf->banque->enabled) && !empty($this->amount)) { // Insert into llx_bank require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $acc = new Account($this->db); - $result=$acc->fetch($this->accountid); + $result = $acc->fetch($this->accountid); if ($result <= 0) dol_print_error($this->db); // Insert payment into llx_bank // Add link 'payment_various' in bank_url between payment and bank transaction - $sign=1; - if ($this->sens == '0') $sign=-1; + $sign = 1; + if ($this->sens == '0') $sign = -1; $bank_line_id = $acc->addline( $this->datep, @@ -433,38 +433,38 @@ class PaymentVarious extends CommonObject } else { - $this->error=$acc->error; + $this->error = $acc->error; $error++; } - if (! $error) + if (!$error) { // Add link 'payment_various' in bank_url between payment and bank transaction - $url=DOL_URL_ROOT.'/compta/bank/various_payment/card.php?id='; + $url = DOL_URL_ROOT.'/compta/bank/various_payment/card.php?id='; - $result=$acc->add_url_line($bank_line_id, $this->id, $url, "(VariousPayment)", "payment_various"); + $result = $acc->add_url_line($bank_line_id, $this->id, $url, "(VariousPayment)", "payment_various"); if ($result <= 0) { - $this->error=$acc->error; + $this->error = $acc->error; $error++; } } if ($result <= 0) { - $this->error=$acc->error; + $this->error = $acc->error; $error++; } } // Call trigger - $result=$this->call_trigger('PAYMENT_VARIOUS_CREATE', $user); + $result = $this->call_trigger('PAYMENT_VARIOUS_CREATE', $user); if ($result < 0) $error++; // End call triggers } else $error++; - if (! $error) + if (!$error) { $this->db->commit(); return $this->id; @@ -477,7 +477,7 @@ class PaymentVarious extends CommonObject } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); $this->db->rollback(); return -1; } @@ -494,7 +494,7 @@ class PaymentVarious extends CommonObject { // phpcs:enable $sql = 'UPDATE '.MAIN_DB_PREFIX.'payment_various SET fk_bank = '.$id_bank; - $sql.= ' WHERE rowid = '.$this->id; + $sql .= ' WHERE rowid = '.$this->id; $result = $this->db->query($sql); if ($result) { @@ -542,27 +542,27 @@ class PaymentVarious extends CommonObject } elseif ($mode == 2) { - if ($status==0) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts_short[$status]); - elseif ($status==1) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts_short[$status]); - elseif ($status==2) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts_short[$status]); + if ($status == 0) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts_short[$status]); + elseif ($status == 1) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts_short[$status]); + elseif ($status == 2) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts_short[$status]); } elseif ($mode == 3) { - if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - elseif ($status==2 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); + if ($status == 0 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); + elseif ($status == 2 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); } elseif ($mode == 4) { - if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts[$status]); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts[$status]); - elseif ($status==2 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts[$status]); + if ($status == 0 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts[$status]); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts[$status]); + elseif ($status == 2 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts[$status]); } elseif ($mode == 5) { - if ($status==0 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - elseif ($status==2 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); + if ($status == 0 && !empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); + elseif ($status == 2 && !empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); } } @@ -581,34 +581,34 @@ class PaymentVarious extends CommonObject global $db, $conf, $langs, $hookmanager; global $langs; - if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips + if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips - $result=''; + $result = ''; - $label=''.$langs->trans("ShowVariousPayment").''; - $label.= '
'; - $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; + $label = ''.$langs->trans("ShowVariousPayment").''; + $label .= '
'; + $label .= ''.$langs->trans('Ref').': '.$this->ref; $url = DOL_URL_ROOT.'/compta/bank/various_payment/card.php?id='.$this->id; if ($option != 'nolink') { // Add param to save lastsearch_values or not - $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0); - if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1; - if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1; + if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1'; } - $linkclose=''; + $linkclose = ''; if (empty($notooltip)) { - if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $label=$langs->trans("ShowMyObject"); - $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; + $label = $langs->trans("ShowMyObject"); + $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; } - $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; - $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"'; + $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; /* $hookmanager->initHooks(array('myobjectdao')); @@ -617,22 +617,22 @@ class PaymentVarious extends CommonObject if ($reshook > 0) $linkclose = $hookmanager->resPrint; */ } - else $linkclose = ($morecss?' class="'.$morecss.'"':''); + else $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); $linkstart = ''; - $linkend=''; + $linkstart .= $linkclose.'>'; + $linkend = ''; $result .= $linkstart; - if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); - if ($withpicto != 2) $result.= $this->ref; + if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + if ($withpicto != 2) $result .= $this->ref; $result .= $linkend; //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); global $action; $hookmanager->initHooks(array('variouspayment')); - $parameters=array('id'=>$this->id, 'getnomurl'=>$result); - $reshook=$hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + $parameters = array('id'=>$this->id, 'getnomurl'=>$result); + $reshook = $hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook > 0) $result = $hookmanager->resPrint; else $result .= $hookmanager->resPrint; @@ -648,8 +648,8 @@ class PaymentVarious extends CommonObject public function info($id) { $sql = 'SELECT v.rowid, v.datec, v.fk_user_author'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'payment_various as v'; - $sql.= ' WHERE v.rowid = '.$id; + $sql .= ' FROM '.MAIN_DB_PREFIX.'payment_various as v'; + $sql .= ' WHERE v.rowid = '.$id; dol_syslog(get_class($this).'::info', LOG_DEBUG); $result = $this->db->query($sql); diff --git a/htdocs/compta/bank/document.php b/htdocs/compta/bank/document.php index 022e1ceea5a..9fd2207f3ec 100644 --- a/htdocs/compta/bank/document.php +++ b/htdocs/compta/bank/document.php @@ -67,7 +67,7 @@ if (!$sortfield) $sortfield = "name"; $object = new Account($db); -if ($id > 0 || ! empty($ref)) $object->fetch($id, $ref); +if ($id > 0 || !empty($ref)) $object->fetch($id, $ref); $result = restrictedArea($user, 'banque', $object->id, 'bank_account', '', ''); @@ -97,7 +97,7 @@ $form = new Form($db); if ($id > 0 || !empty($ref)) { if ($object->fetch($id, $ref)) { - $upload_dir = $conf->bank->dir_output . '/' . $object->ref; + $upload_dir = $conf->bank->dir_output.'/'.$object->ref; // Onglets $head = bank_prepare_head($object); diff --git a/htdocs/compta/bank/graph.php b/htdocs/compta/bank/graph.php index ccf677fa2b8..347353be84f 100644 --- a/htdocs/compta/bank/graph.php +++ b/htdocs/compta/bank/graph.php @@ -257,7 +257,7 @@ else $show1 = $px1->show(); $px1 = null; - $graph_datas =null; + $graph_datas = null; $datas = null; $datamin = null; $dataall = null; @@ -395,7 +395,7 @@ else $show2 = $px2->show(); $px2 = null; - $graph_datas =null; + $graph_datas = null; $datas = null; $datamin = null; $dataall = null; @@ -509,7 +509,7 @@ else $show3 = $px3->show(); $px3 = null; - $graph_datas =null; + $graph_datas = null; $datas = null; $datamin = null; $dataall = null; diff --git a/htdocs/compta/bank/info.php b/htdocs/compta/bank/info.php index 0ed5b4ff003..abab3b4ff9c 100644 --- a/htdocs/compta/bank/info.php +++ b/htdocs/compta/bank/info.php @@ -43,7 +43,7 @@ $object->fetch($id); $object->info($id); -$h=0; +$h = 0; $head[$h][0] = DOL_URL_ROOT.'/compta/bank/line.php?rowid='.$id; $head[$h][1] = $langs->trans("Card"); diff --git a/htdocs/compta/bank/line.php b/htdocs/compta/bank/line.php index 963a3edf26f..5c64c4ee5d9 100644 --- a/htdocs/compta/bank/line.php +++ b/htdocs/compta/bank/line.php @@ -35,27 +35,27 @@ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; // Load translation files required by the page $langs->loadLangs(array('banks', 'categories', 'compta', 'bills', 'other')); -if (! empty($conf->adherent->enabled)) $langs->load("members"); -if (! empty($conf->don->enabled)) $langs->load("donations"); -if (! empty($conf->loan->enabled)) $langs->load("loan"); -if (! empty($conf->salaries->enabled)) $langs->load("salaries"); +if (!empty($conf->adherent->enabled)) $langs->load("members"); +if (!empty($conf->don->enabled)) $langs->load("donations"); +if (!empty($conf->loan->enabled)) $langs->load("loan"); +if (!empty($conf->salaries->enabled)) $langs->load("salaries"); $id = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('account', 'int')); $ref = GETPOST('ref', 'alpha'); -$action=GETPOST('action', 'alpha'); -$confirm=GETPOST('confirm', 'alpha'); -$rowid=GETPOST("rowid", 'int'); -$orig_account=GETPOST("orig_account"); -$backtopage=GETPOST('backtopage', 'alpha'); -$cancel=GETPOST('cancel', 'alpha'); +$action = GETPOST('action', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +$rowid = GETPOST("rowid", 'int'); +$orig_account = GETPOST("orig_account"); +$backtopage = GETPOST('backtopage', 'alpha'); +$cancel = GETPOST('cancel', 'alpha'); // Security check -$fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref :'')); -$fieldtype = (! empty($ref) ? 'ref' :'rowid'); -if ($user->socid) $socid=$user->socid; -$result=restrictedArea($user, 'banque', $fieldvalue, 'bank_account', '', '', $fieldtype); -if (! $user->rights->banque->lire && ! $user->rights->banque->consolidate) accessforbidden(); +$fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : '')); +$fieldtype = (!empty($ref) ? 'ref' : 'rowid'); +if ($user->socid) $socid = $user->socid; +$result = restrictedArea($user, 'banque', $fieldvalue, 'bank_account', '', '', $fieldtype); +if (!$user->rights->banque->lire && !$user->rights->banque->consolidate) accessforbidden(); /* @@ -92,10 +92,10 @@ if ($user->rights->banque->consolidate && $action == 'donext') if ($action == 'confirm_delete_categ' && $confirm == "yes" && $user->rights->banque->modifier) { - $cat1=GETPOST("cat1", 'int'); + $cat1 = GETPOST("cat1", 'int'); if (!empty($rowid) && !empty($cat1)) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid = ".$rowid." AND fk_categ = ".$cat1; - if (! $db->query($sql)) + if (!$db->query($sql)) { dol_print_error($db); } @@ -108,7 +108,7 @@ if ($action == 'confirm_delete_categ' && $confirm == "yes" && $user->rights->ban if ($user->rights->banque->modifier && $action == "update") { - $error=0; + $error = 0; $acline = new AccountLine($db); $acline->fetch($rowid); @@ -117,7 +117,7 @@ if ($user->rights->banque->modifier && $action == "update") $acsource->fetch($id); $actarget = new Account($db); - if (GETPOST('accountid', 'int') > 0 && ! $acline->rappro && ! $acline->getVentilExportCompta()) // We ask to change bank account + if (GETPOST('accountid', 'int') > 0 && !$acline->rappro && !$acline->getVentilExportCompta()) // We ask to change bank account { $actarget->fetch(GETPOST('accountid', 'int')); } @@ -132,52 +132,52 @@ if ($user->rights->banque->modifier && $action == "update") $error++; } - if (! $error) + if (!$error) { $db->begin(); $amount = price2num($_POST['amount']); $dateop = dol_mktime(12, 0, 0, $_POST["dateomonth"], $_POST["dateoday"], $_POST["dateoyear"]); - $dateval= dol_mktime(12, 0, 0, $_POST["datevmonth"], $_POST["datevday"], $_POST["datevyear"]); + $dateval = dol_mktime(12, 0, 0, $_POST["datevmonth"], $_POST["datevday"], $_POST["datevyear"]); $sql = "UPDATE ".MAIN_DB_PREFIX."bank"; - $sql.= " SET "; + $sql .= " SET "; // Always opened - if (isset($_POST['value'])) $sql.=" fk_type='".$db->escape($_POST['value'])."',"; - if (isset($_POST['num_chq'])) $sql.=" num_chq='".$db->escape($_POST["num_chq"])."',"; - if (isset($_POST['banque'])) $sql.=" banque='".$db->escape($_POST["banque"])."',"; - if (isset($_POST['emetteur'])) $sql.=" emetteur='".$db->escape($_POST["emetteur"])."',"; + if (isset($_POST['value'])) $sql .= " fk_type='".$db->escape($_POST['value'])."',"; + if (isset($_POST['num_chq'])) $sql .= " num_chq='".$db->escape($_POST["num_chq"])."',"; + if (isset($_POST['banque'])) $sql .= " banque='".$db->escape($_POST["banque"])."',"; + if (isset($_POST['emetteur'])) $sql .= " emetteur='".$db->escape($_POST["emetteur"])."',"; // Blocked when conciliated - if (! $acline->rappro) + if (!$acline->rappro) { - if (isset($_POST['label'])) $sql.=" label='".$db->escape($_POST["label"])."',"; - if (isset($_POST['amount'])) $sql.=" amount='".$amount."',"; - if (isset($_POST['dateomonth'])) $sql.=" dateo = '".$db->idate($dateop)."',"; - if (isset($_POST['datevmonth'])) $sql.=" datev = '".$db->idate($dateval)."',"; + if (isset($_POST['label'])) $sql .= " label='".$db->escape($_POST["label"])."',"; + if (isset($_POST['amount'])) $sql .= " amount='".$amount."',"; + if (isset($_POST['dateomonth'])) $sql .= " dateo = '".$db->idate($dateop)."',"; + if (isset($_POST['datevmonth'])) $sql .= " datev = '".$db->idate($dateval)."',"; } - $sql.= " fk_account = ".$actarget->id; - $sql.= " WHERE rowid = ".$acline->id; + $sql .= " fk_account = ".$actarget->id; + $sql .= " WHERE rowid = ".$acline->id; $result = $db->query($sql); - if (! $result) + if (!$result) { $error++; } - if (! $error) + if (!$error) { - $arrayofcategs=GETPOST('custcats', 'array'); + $arrayofcategs = GETPOST('custcats', 'array'); $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid = ".$rowid; - if (! $db->query($sql)) + if (!$db->query($sql)) { $error++; dol_print_error($db); } if (count($arrayofcategs)) { - foreach($arrayofcategs as $val) + foreach ($arrayofcategs as $val) { $sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_class (lineid, fk_categ) VALUES (".$rowid.", ".$val.")"; - if (! $db->query($sql)) + if (!$db->query($sql)) { $error++; dol_print_error($db); @@ -187,7 +187,7 @@ if ($user->rights->banque->modifier && $action == "update") } } - if (! $error) + if (!$error) { setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); $db->commit(); @@ -203,8 +203,8 @@ if ($user->rights->banque->modifier && $action == "update") // Reconcile if ($user->rights->banque->consolidate && ($action == 'num_releve' || $action == 'setreconcile')) { - $num_rel=trim($_POST["num_rel"]); - $rappro=$_POST['reconciled']?1:0; + $num_rel = trim($_POST["num_rel"]); + $rappro = $_POST['reconciled'] ? 1 : 0; // Check parameters if ($rappro && empty($num_rel)) @@ -213,15 +213,15 @@ if ($user->rights->banque->consolidate && ($action == 'num_releve' || $action == $error++; } - if (! $error) + if (!$error) { $db->begin(); $sql = "UPDATE ".MAIN_DB_PREFIX."bank"; - $sql.= " SET num_releve=".($num_rel?"'".$num_rel."'":"null"); - if (empty($num_rel)) $sql.= ", rappro = 0"; - else $sql.=", rappro = ".$rappro; - $sql.= " WHERE rowid = ".$rowid; + $sql .= " SET num_releve=".($num_rel ? "'".$num_rel."'" : "null"); + if (empty($num_rel)) $sql .= ", rappro = 0"; + else $sql .= ", rappro = ".$rappro; + $sql .= " WHERE rowid = ".$rowid; dol_syslog("line.php", LOG_DEBUG); $result = $db->query($sql); @@ -267,11 +267,11 @@ $tabs = array( $sql = "SELECT b.rowid,b.dateo as do,b.datev as dv, b.amount, b.label, b.rappro,"; -$sql.= " b.num_releve, b.fk_user_author, b.num_chq, b.fk_type, b.fk_account, b.fk_bordereau as receiptid,"; -$sql.= " b.emetteur,b.banque"; -$sql.= " FROM ".MAIN_DB_PREFIX."bank as b"; -$sql.= " WHERE rowid=".$rowid; -$sql.= " ORDER BY dateo ASC"; +$sql .= " b.num_releve, b.fk_user_author, b.num_chq, b.fk_type, b.fk_account, b.fk_bordereau as receiptid,"; +$sql .= " b.emetteur,b.banque"; +$sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; +$sql .= " WHERE rowid=".$rowid; +$sql .= " ORDER BY dateo ASC"; $result = $db->query($sql); if ($result) { @@ -282,14 +282,14 @@ if ($result) $total = $total + $objp->amount; - $acct=new Account($db); + $acct = new Account($db); $acct->fetch($objp->fk_account); $account = $acct->id; $bankline = new AccountLine($db); $bankline->fetch($rowid, $ref); - $links=$acct->get_url($rowid); + $links = $acct->get_url($rowid); $bankline->load_previous_next_ref('', 'rowid'); // Confirmations @@ -304,14 +304,14 @@ if ($result) print ''; print ''; - dol_fiche_head($tabs, 0, $langs->trans('LineRecord'), -1, 'account', 0); + dol_fiche_head($tabs, 0, $langs->trans('LineRecord'), 0, 'account', 0); $linkback = ''.$langs->trans("BackToList").''; dol_banner_tab($bankline, 'rowid', $linkback); - print '
'; + print '
'; print '
'; print '
'.$langs->trans("Average").'
'.$langs->trans("Total").''.price($total).''.price($totalnb?price2num($total / $totalnb, 'MT'):0).'
'.price($totalnb ?price2num($total / $totalnb, 'MT') : 0).'
".$objp->label."'; - print ''.img_edit().'  '; + print ''.img_edit().'  '; print ''.img_delete().''; print '
'; @@ -321,7 +321,7 @@ if ($result) // Bank account print ''; print ''; print ''; } @@ -532,13 +532,13 @@ if ($result) { print ''; } @@ -555,7 +555,7 @@ if ($result) if ($user->rights->banque->modifier || $user->rights->banque->consolidate) { print ''; } else @@ -601,12 +601,12 @@ if ($result) print ""; // Categories - if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire)) + if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) { $langs->load('categories'); // Bank line - print '"; @@ -628,7 +628,7 @@ if ($result) // Releve rappro if ($acct->canBeConciliated() > 0) // Si compte rapprochable { - print load_fiche_titre($langs->trans("Reconciliation"), '', 'title_bank.png'); + print load_fiche_titre($langs->trans("Reconciliation"), '', 'bank_account'); print '
'."\n"; print ''; @@ -647,12 +647,12 @@ if ($result) print ''; @@ -667,7 +667,7 @@ if ($result) if ($user->rights->banque->consolidate) { print ''; } else diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 82728fc693d..2d724ec2690 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -141,7 +141,6 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' } - /* * View */ @@ -267,7 +266,7 @@ print ''; print ''; print ''; -print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'bank', 0, $newcardbutton, '', $limit, 1); +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'bank_account', 0, $newcardbutton, '', $limit, 1); $topicmail = "Information"; //$modelmail="subscription"; @@ -313,14 +312,14 @@ print ''; if (!empty($arrayfields['b.ref']['checked'])) { print ''; } // Label if (!empty($arrayfields['b.label']['checked'])) { print ''; } // Account type @@ -333,7 +332,7 @@ if (!empty($arrayfields['accountype']['checked'])) if (!empty($arrayfields['b.number']['checked'])) { print ''; } // Account number @@ -527,26 +526,28 @@ foreach ($accounts as $key=>$type) // Transactions to reconcile if (!empty($arrayfields['toreconcile']['checked'])) { - print ''; + print ''; if (!$i) $totalarray['nbfield']++; } diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index 0350895ca0d..c737af4a89e 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -205,9 +205,9 @@ $paymentvatstatic = new TVA($db); $bankstatic = new Account($db); $banklinestatic = new AccountLine($db); $remisestatic = new RemiseCheque($db); -$paymentdonationstatic=new PaymentDonation($db); -$paymentloanstatic=new PaymentLoan($db); -$paymentvariousstatic=new PaymentVarious($db); +$paymentdonationstatic = new PaymentDonation($db); +$paymentloanstatic = new PaymentLoan($db); +$paymentvariousstatic = new PaymentVarious($db); // Must be before button action $param = ''; @@ -383,7 +383,7 @@ else $title = $langs->trans("AccountStatement").' '.$numref.' - '.$langs->trans("BankAccount").' '.$object->getNomUrl(1, 'receipts'); print load_fiche_titre($title, $mesprevnext, ''); - //print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, 0, $nbtotalofrecords, 'title_bank.png', 0, '', '', 0, 1); + //print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, 0, $nbtotalofrecords, 'bank_account', 0, '', '', 0, 1); print ""; print ''; @@ -518,28 +518,28 @@ else print ''; $newline = 0; } - elseif ($links[$key]['type']=='payment_donation') + elseif ($links[$key]['type'] == 'payment_donation') { - $paymentdonationstatic->id=$links[$key]['url_id']; - $paymentdonationstatic->ref=$langs->trans("Payment"); + $paymentdonationstatic->id = $links[$key]['url_id']; + $paymentdonationstatic->ref = $langs->trans("Payment"); print ' '.$paymentdonationstatic->getNomUrl(1); $newline = 0; } - elseif ($links[$key]['type']=='payment_loan') + elseif ($links[$key]['type'] == 'payment_loan') { - $paymentloanstatic->id=$links[$key]['url_id']; - $paymentloanstatic->ref=$langs->trans("Payment"); + $paymentloanstatic->id = $links[$key]['url_id']; + $paymentloanstatic->ref = $langs->trans("Payment"); print ' '.$paymentloanstatic->getNomUrl(1); $newline = 0; } - elseif ($links[$key]['type']=='payment_various') + elseif ($links[$key]['type'] == 'payment_various') { - $paymentvariousstatic->id=$links[$key]['url_id']; - $paymentvariousstatic->ref=$langs->trans("Payment"); + $paymentvariousstatic->id = $links[$key]['url_id']; + $paymentvariousstatic->ref = $langs->trans("Payment"); print ' '.$paymentvariousstatic->getNomUrl(1); $newline = 0; } - elseif ($links[$key]['type']=='banktransfert') { + elseif ($links[$key]['type'] == 'banktransfert') { // Do not show link to transfer since there is no transfer card (avoid confusion). Can already be accessed from transaction detail. if ($objp->amount > 0) { diff --git a/htdocs/compta/bank/transfer.php b/htdocs/compta/bank/transfer.php index 2a32e173d3b..afc1c6711e0 100644 --- a/htdocs/compta/bank/transfer.php +++ b/htdocs/compta/bank/transfer.php @@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page $langs->loadLangs(array("banks", "categories", "multicurrency")); -if (! $user->rights->banque->transfer) +if (!$user->rights->banque->transfer) accessforbidden(); $action = GETPOST('action', 'alpha'); @@ -51,46 +51,46 @@ if ($action == 'add') $dateo = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int')); $label = GETPOST('label', 'alpha'); - $amount= GETPOST('amount', 'alpha'); - $amountto= GETPOST('amountto', 'alpha'); + $amount = GETPOST('amount', 'alpha'); + $amountto = GETPOST('amountto', 'alpha'); - if (! $label) + if (!$label) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Description")), null, 'errors'); } - if (! $amount) + if (!$amount) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount")), null, 'errors'); } - if (! GETPOST('account_from', 'int')) + if (!GETPOST('account_from', 'int')) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("TransferFrom")), null, 'errors'); } - if (! GETPOST('account_to', 'int')) + if (!GETPOST('account_to', 'int')) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("TransferTo")), null, 'errors'); } - if (! $error) + if (!$error) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; - $accountfrom=new Account($db); + $accountfrom = new Account($db); $accountfrom->fetch(GETPOST('account_from', 'int')); - $accountto=new Account($db); + $accountto = new Account($db); $accountto->fetch(GETPOST('account_to', 'int')); if ($accountto->currency_code == $accountfrom->currency_code) { - $amountto=$amount; + $amountto = $amount; } else { - if (! $amountto) + if (!$amountto) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AmountTo")), null, 'errors'); @@ -101,31 +101,31 @@ if ($action == 'add') { $db->begin(); - $bank_line_id_from=0; - $bank_line_id_to=0; - $result=0; + $bank_line_id_from = 0; + $bank_line_id_to = 0; + $result = 0; // By default, electronic transfert from bank to bank - $typefrom='PRE'; - $typeto='VIR'; + $typefrom = 'PRE'; + $typeto = 'VIR'; if ($accountto->courant == Account::TYPE_CASH || $accountfrom->courant == Account::TYPE_CASH) { // This is transfer of change - $typefrom='LIQ'; - $typeto='LIQ'; + $typefrom = 'LIQ'; + $typeto = 'LIQ'; } - if (! $error) $bank_line_id_from = $accountfrom->addline($dateo, $typefrom, $label, -1*price2num($amount), '', '', $user); - if (! ($bank_line_id_from > 0)) $error++; - if (! $error) $bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amountto), '', '', $user); - if (! ($bank_line_id_to > 0)) $error++; + if (!$error) $bank_line_id_from = $accountfrom->addline($dateo, $typefrom, $label, -1 * price2num($amount), '', '', $user); + if (!($bank_line_id_from > 0)) $error++; + if (!$error) $bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amountto), '', '', $user); + if (!($bank_line_id_to > 0)) $error++; - if (! $error) $result=$accountfrom->add_url_line($bank_line_id_from, $bank_line_id_to, DOL_URL_ROOT.'/compta/bank/line.php?rowid=', '(banktransfert)', 'banktransfert'); - if (! ($result > 0)) $error++; - if (! $error) $result=$accountto->add_url_line($bank_line_id_to, $bank_line_id_from, DOL_URL_ROOT.'/compta/bank/line.php?rowid=', '(banktransfert)', 'banktransfert'); - if (! ($result > 0)) $error++; + if (!$error) $result = $accountfrom->add_url_line($bank_line_id_from, $bank_line_id_to, DOL_URL_ROOT.'/compta/bank/line.php?rowid=', '(banktransfert)', 'banktransfert'); + if (!($result > 0)) $error++; + if (!$error) $result = $accountto->add_url_line($bank_line_id_to, $bank_line_id_from, DOL_URL_ROOT.'/compta/bank/line.php?rowid=', '(banktransfert)', 'banktransfert'); + if (!($result > 0)) $error++; - if (! $error) + if (!$error) { $mesgs = $langs->trans("TransferFromToDone", ''.$accountfrom->label."", ''.$accountto->label."", $amount, $langs->transnoentities("Currency".$conf->currency)); setEventMessages($mesgs, null, 'mesgs'); @@ -152,6 +152,7 @@ if ($action == 'add') */ llxHeader(); + print ' '; -$form=new Form($db); +$form = new Form($db); -$account_from=''; -$account_to=''; -$label=''; -$amount=''; +$account_from = ''; +$account_to = ''; +$label = ''; +$amount = ''; if ($error) { - $account_from = GETPOST('account_from', 'int'); - $account_to = GETPOST('account_to', 'int'); + $account_from = GETPOST('account_from', 'int'); + $account_to = GETPOST('account_to', 'int'); $label = GETPOST('label', 'alpha'); $amount = GETPOST('amount', 'alpha'); } -print load_fiche_titre($langs->trans("MenuBankInternalTransfer"), '', 'title_bank.png'); +print load_fiche_titre($langs->trans("MenuBankInternalTransfer"), '', 'bank_account'); -print $langs->trans("TransferDesc"); +print ''.$langs->trans("TransferDesc").''; print "

"; print ''; @@ -245,17 +246,17 @@ print ''; print ''; -$var=false; +$var = false; print '"; print "\n"; print "\n"; print ''; print ''; diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index 6573207a117..ccd6b24c6b9 100644 --- a/htdocs/compta/bank/various_payment/card.php +++ b/htdocs/compta/bank/various_payment/card.php @@ -40,37 +40,37 @@ if (!empty($conf->projet->enabled)) $langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy", "categories")); // Get parameters -$id = GETPOST('id', 'int'); +$id = GETPOST('id', 'int'); $action = GETPOST('action', 'alpha'); $cancel = GETPOST('cancel', 'aZ09'); -$backtopage = GETPOST('backtopage', 'alpha'); +$backtopage = GETPOST('backtopage', 'alpha'); -$accountid = GETPOST("accountid") > 0 ? GETPOST("accountid", "int") : 0; -$label = GETPOST("label", "alpha"); -$sens = GETPOST("sens", "int"); -$amount = price2num(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 = price2num(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')); // Security check $socid = GETPOST("socid", "int"); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'banque', '', '', ''); $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')); +$hookmanager->initHooks(array('variouscard', 'globalcard')); /** * Actions */ -$parameters=array(); -$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) @@ -429,44 +429,44 @@ if ($id) { $alreadyaccounted = $object->getVentilExportCompta(); - $head=various_payment_prepare_head($object); + $head = various_payment_prepare_head($object); dol_fiche_head($head, 'card', $langs->trans("VariousPayment"), -1, $object->picto); - $morehtmlref='
'; + $morehtmlref = '
'; // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.=$langs->trans('Project') . ' '; + $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->banque->modifier) { if ($action != 'classify') { - $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; + $morehtmlref .= '
'; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } - $morehtmlref.='
'; - $linkback = ''.$langs->trans("BackToList").''; + $morehtmlref .= '
'; + $linkback = ''.$langs->trans("BackToList").''; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright); diff --git a/htdocs/compta/bank/various_payment/info.php b/htdocs/compta/bank/various_payment/info.php index f0f584ca99b..05a7d28c8c8 100644 --- a/htdocs/compta/bank/various_payment/info.php +++ b/htdocs/compta/bank/various_payment/info.php @@ -30,12 +30,12 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; // Load translation files required by the page $langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy")); -$id=GETPOST('id', 'int'); -$action=GETPOST('action', 'aZ09'); +$id = GETPOST('id', 'int'); +$action = GETPOST('action', 'aZ09'); // Security check $socid = GETPOST("socid", "int"); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'banque', '', '', ''); /* @@ -53,40 +53,40 @@ $head = various_payment_prepare_head($object); dol_fiche_head($head, 'info', $langs->trans("VariousPayment"), -1, $object->picto); -$morehtmlref='
'; +$morehtmlref = '
'; // Project -if (! empty($conf->projet->enabled)) +if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.=$langs->trans('Project') . ' : '; + $morehtmlref .= $langs->trans('Project').' : '; if ($user->rights->banque->modifier && 0) { if ($action != 'classify') { - $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
'; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; + $morehtmlref .= '
'; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=$proj->getNomUrl(1); + $morehtmlref .= $proj->getNomUrl(1); } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } -$morehtmlref.='
'; -$linkback = ''.$langs->trans("BackToList").''; +$morehtmlref .= '
'; +$linkback = ''.$langs->trans("BackToList").''; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright); diff --git a/htdocs/compta/cashcontrol/cashcontrol_card.php b/htdocs/compta/cashcontrol/cashcontrol_card.php index 8dd3eca5e33..70a26d231e1 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_card.php +++ b/htdocs/compta/cashcontrol/cashcontrol_card.php @@ -54,6 +54,12 @@ $pageprev = $page - 1; $pagenext = $page + 1; if (!$sortfield) $sortfield = 'rowid'; if (!$sortorder) $sortorder = 'ASC'; +$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'thirdpartylist'; + +if ($contextpage == 'takepos') +{ + $_GET['optioncss'] = 'print'; +} // Security check if (!$user->rights->cashdesk->run && !$user->rights->takepos->run) @@ -178,6 +184,13 @@ elseif ($action == "add") $action = "view"; } } + if ($contextpage == 'takepos') { + print " + "; + exit; + } } if ($action == "valid") // validate = close @@ -211,6 +224,13 @@ if ($action == "valid") // validate = close $db->commit(); } + if ($contextpage == 'takepos') { + print " + "; + exit; + } $action = "view"; } @@ -363,7 +383,8 @@ if ($action == "create" || $action == "start" || $action == 'close') print load_fiche_titre($langs->trans("CashControl")." - ".$langs->trans("New"), '', 'cash-register'); print ''; - print ''; + print ''; + if ($contextpage == 'takepos') print ''; if ($action == 'start' && GETPOST('posnumber', 'int') != '' && GETPOST('posnumber', 'int') != '' && GETPOST('posnumber', 'int') != '-1') { print ''; @@ -398,7 +419,7 @@ if ($action == "create" || $action == "start" || $action == 'close') $array = array(); $numterminals = max(1, $conf->global->TAKEPOS_NUM_TERMINALS); - for($i = 1; $i <= $numterminals; $i++) { + for ($i = 1; $i <= $numterminals; $i++) { $array[$i] = $i; } $selectedposnumber = 0; $showempty = 1; @@ -668,7 +689,7 @@ if (empty($action) || $action == "view" || $action == "close") if ($object->status == CashControl::STATUS_DRAFT) { - print ''; + print ''; print ''; } else { @@ -677,10 +698,11 @@ if (empty($action) || $action == "view" || $action == "close") print ''; - print '
'; + if ($contextpage != 'takepos') print '
'; } else { print ''; - print ''; + print ''; + if ($contextpage == 'takepos') print ''; if ($action == 'start' && GETPOST('posnumber', 'int') != '' && GETPOST('posnumber', 'int') != '' && GETPOST('posnumber', 'int') != '-1') { print ''; diff --git a/htdocs/compta/cashcontrol/cashcontrol_list.php b/htdocs/compta/cashcontrol/cashcontrol_list.php index d559fad2b30..313627016c8 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_list.php +++ b/htdocs/compta/cashcontrol/cashcontrol_list.php @@ -333,14 +333,13 @@ print ''; print ''; print ''; -print ''; print ''; $permforcashfence = 1; $newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permforcashfence); -print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'cash-register', 0, $newcardbutton, '', $limit); +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'cash-register', 0, $newcardbutton, '', $limit, 0, 0, 1); // Add code for pre mass action (confirmation or email presend form) $topicmail = "SendCashControlRef"; diff --git a/htdocs/compta/cashcontrol/class/cashcontrol.class.php b/htdocs/compta/cashcontrol/class/cashcontrol.class.php index f30410d187f..81a19389244 100644 --- a/htdocs/compta/cashcontrol/class/cashcontrol.class.php +++ b/htdocs/compta/cashcontrol/class/cashcontrol.class.php @@ -52,9 +52,10 @@ class CashControl extends CommonObject /** * @var string String with name of icon for pos_cash_fence. Must be the part after the 'object_' into object_pos_cash_fence.png */ - public $picto = 'account'; + public $picto = 'cash-register'; - public $fields=array( + + public $fields = array( 'rowid' =>array('type'=>'integer', 'label'=>'ID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>10), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>15), 'ref' =>array('type'=>'varchar(64)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>18), @@ -104,7 +105,7 @@ class CashControl extends CommonObject const STATUS_DRAFT = 0; const STATUS_VALIDATED = 1; - const STATUS_CLOSED = 1; // For the moment CLOSED = VALIDATED + const STATUS_CLOSED = 1; // For the moment CLOSED = VALIDATED /** @@ -132,9 +133,9 @@ class CashControl extends CommonObject $error = 0; // Clean data - if (empty($this->cash)) $this->cash=0; - if (empty($this->cheque)) $this->cheque=0; - if (empty($this->card)) $this->card=0; + if (empty($this->cash)) $this->cash = 0; + if (empty($this->cheque)) $this->cheque = 0; + if (empty($this->card)) $this->card = 0; // Insert request $sql = "INSERT INTO ".MAIN_DB_PREFIX."pos_cash_fence ("; @@ -155,7 +156,7 @@ class CashControl extends CommonObject //$sql .= "'(PROV)', "; $sql .= $conf->entity; $sql .= ", ".(is_numeric($this->opening) ? $this->opening : 0); - $sql .= ", 0"; // Draft by default + $sql .= ", 0"; // Draft by default $sql .= ", '".$this->db->idate(dol_now())."'"; $sql .= ", '".$this->db->escape($this->posmodule)."'"; $sql .= ", '".$this->db->escape($this->posnumber)."'"; @@ -206,7 +207,7 @@ class CashControl extends CommonObject */ public function valid(User $user, $notrigger = 0) { - global $conf,$langs; + global $conf, $langs; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $error = 0; @@ -228,14 +229,14 @@ class CashControl extends CommonObject } */ - $now=dol_now(); + $now = dol_now(); // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."pos_cash_fence"; - $sql.= " SET status = ".self::STATUS_VALIDATED.","; - $sql.= " date_valid='".$this->db->idate($now)."',"; - $sql.= " fk_user_valid = ".$user->id; - $sql.= " WHERE rowid=".$this->id; + $sql .= " SET status = ".self::STATUS_VALIDATED.","; + $sql .= " date_valid='".$this->db->idate($now)."',"; + $sql .= " fk_user_valid = ".$user->id; + $sql .= " WHERE rowid=".$this->id; $this->db->begin(); @@ -252,10 +253,10 @@ class CashControl extends CommonObject $this->fk_user_valid = $user->id; } - if (! $error && ! $notrigger) + if (!$error && !$notrigger) { // Call trigger - $result=$this->call_trigger('CASHCONTROL_VALIDATE', $user); + $result = $this->call_trigger('CASHCONTROL_VALIDATE', $user); if ($result < 0) $error++; // End call triggers } @@ -285,7 +286,7 @@ class CashControl extends CommonObject public function fetch($id, $ref = null) { $result = $this->fetchCommon($id, $ref); - if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines(); + if ($result > 0 && !empty($this->table_element_line)) $this->fetchLines(); return $result; } @@ -366,36 +367,36 @@ class CashControl extends CommonObject { global $conf, $langs, $hookmanager; - if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips + if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips - $result=''; + $result = ''; - $newref=($this->ref?$this->ref:$this->id); + $newref = ($this->ref ? $this->ref : $this->id); - $label = '' . $langs->trans("ShowCashFence") . ''; - $label.= '
'; - $label.= '' . $langs->trans('Ref') . ': ' . ($this->ref?$this->ref:$this->id); + $label = ''.$langs->trans("CashFence").''; + $label .= '
'; + $label .= ''.$langs->trans('Ref').': '.($this->ref ? $this->ref : $this->id); $url = DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?id='.$this->id; if ($option != 'nolink') { // Add param to save lastsearch_values or not - $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0); - if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1; - if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1; + if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1'; } - $linkclose=''; + $linkclose = ''; if (empty($notooltip)) { - if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $label=$langs->trans("ShowMyObject"); - $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; + $label = $langs->trans("ShowMyObject"); + $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; } - $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; - $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"'; + $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; /* $hookmanager->initHooks(array('myobjectdao')); @@ -404,22 +405,22 @@ class CashControl extends CommonObject if ($reshook > 0) $linkclose = $hookmanager->resPrint; */ } - else $linkclose = ($morecss?' class="'.$morecss.'"':''); + else $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); $linkstart = ''; - $linkend=''; + $linkstart .= $linkclose.'>'; + $linkend = ''; $result .= $linkstart; - if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); - if ($withpicto != 2) $result.= $this->ref; + if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + if ($withpicto != 2) $result .= $this->ref; $result .= $linkend; //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); global $action; $hookmanager->initHooks(array('cashfencedao')); - $parameters=array('id'=>$this->id, 'getnomurl'=>$result); - $reshook=$hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + $parameters = array('id'=>$this->id, 'getnomurl'=>$result); + $reshook = $hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook > 0) { $result = $hookmanager->resPrint; } else { $result .= $hookmanager->resPrint; } diff --git a/htdocs/compta/clients.php b/htdocs/compta/clients.php index b9db96a78bc..1dc13c0580f 100644 --- a/htdocs/compta/clients.php +++ b/htdocs/compta/clients.php @@ -27,7 +27,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -$action=GETPOST('action', 'aZ09'); +$action = GETPOST('action', 'aZ09'); // Secrutiy check if ($user->socid > 0) @@ -36,13 +36,13 @@ if ($user->socid > 0) $socid = $user->socid; } -if (! $user->rights->facture->lire) +if (!$user->rights->facture->lire) accessforbidden(); // Load translation files required by the page $langs->load("companies"); -$mode=GETPOST("mode"); +$mode = GETPOST("mode"); $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); @@ -51,8 +51,8 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="nom"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "nom"; /* @@ -61,7 +61,7 @@ if (! $sortfield) $sortfield="nom"; llxHeader(); -$thirdpartystatic=new Societe($db); +$thirdpartystatic = new Societe($db); if ($action == 'note') { @@ -71,9 +71,9 @@ if ($action == 'note') if ($mode == 'search') { - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { - if ( $db->num_rows($resql) == 1) { + if ($db->num_rows($resql) == 1) { $obj = $db->fetch_object($resql); $socid = $obj->rowid; } @@ -88,45 +88,45 @@ if ($mode == 'search') */ $sql = "SELECT s.rowid, s.nom as name, s.client, s.town, s.datec, s.datea"; -$sql.= ", st.libelle as stcomm, s.prefix_comm, s.code_client, s.code_compta "; -if (!$user->rights->societe->client->voir && !$socid) $sql.= ", sc.fk_soc, sc.fk_user "; -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."c_stcomm as st"; -if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; -$sql.= " WHERE s.fk_stcomm = st.id AND s.client in (1, 3)"; -$sql.= " AND s.entity IN (".getEntity('societe').")"; -if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; +$sql .= ", st.libelle as stcomm, s.prefix_comm, s.code_client, s.code_compta "; +if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user "; +$sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."c_stcomm as st"; +if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +$sql .= " WHERE s.fk_stcomm = st.id AND s.client in (1, 3)"; +$sql .= " AND s.entity IN (".getEntity('societe').")"; +if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; if (dol_strlen($stcomm)) { - $sql.= " AND s.fk_stcomm=".$stcomm; + $sql .= " AND s.fk_stcomm=".$stcomm; } if ($socname) { - $sql.= natural_search("s.nom", $socname); + $sql .= natural_search("s.nom", $socname); $sortfield = "s.nom"; $sortorder = "ASC"; } if ($_GET["search_nom"]) { - $sql.= natural_search("s.nom", GETPOST("search_nom")); + $sql .= natural_search("s.nom", GETPOST("search_nom")); } if ($_GET["search_compta"]) { - $sql.= natural_search("s.code_compta", GETPOST("search_compta")); + $sql .= natural_search("s.code_compta", GETPOST("search_compta")); } if ($_GET["search_code_client"]) { - $sql.= natural_search("s.code_client", GETPOST("search_code_client")); + $sql .= natural_search("s.code_client", GETPOST("search_code_client")); } if (dol_strlen($begin)) { - $sql.= natural_search("s.nom", $begin); + $sql .= natural_search("s.nom", $begin); } if ($socid) { - $sql.= " AND s.rowid = ".$socid; + $sql .= " AND s.rowid = ".$socid; } -$sql.= " ORDER BY $sortfield $sortorder "; -$sql.= $db->plimit($conf->liste_limit+1, $offset); +$sql .= " ORDER BY $sortfield $sortorder "; +$sql .= $db->plimit($conf->liste_limit + 1, $offset); //print $sql; $resql = $db->query($sql); @@ -178,9 +178,9 @@ if ($resql) print ''; print ''; print ''; diff --git a/htdocs/compta/deplacement/card.php b/htdocs/compta/deplacement/card.php index c08be32242b..463d9ea699f 100644 --- a/htdocs/compta/deplacement/card.php +++ b/htdocs/compta/deplacement/card.php @@ -122,7 +122,7 @@ elseif ($action == 'add' && $user->rights->deplacement->creer) $object->socid = (int) GETPOST('socid', 'int'); $object->fk_user = (int) GETPOST('fk_user', 'int'); $object->note_private = GETPOST('note_private', 'alpha'); - $object->note_public = GETPOST('note_public', 'alpha'); + $object->note_public = GETPOST('note_public', 'alpha'); $object->statut = Deplacement::STATUS_DRAFT; if (!$object->date) @@ -439,9 +439,9 @@ elseif ($id) // Type print ''; // Who @@ -453,16 +453,16 @@ elseif ($id) // Date print ''; // Km/Price print '"; // Where diff --git a/htdocs/compta/deplacement/class/deplacement.class.php b/htdocs/compta/deplacement/class/deplacement.class.php index be46e1dfd14..ec4610179e2 100644 --- a/htdocs/compta/deplacement/class/deplacement.class.php +++ b/htdocs/compta/deplacement/class/deplacement.class.php @@ -25,7 +25,7 @@ * \brief File of class to manage trips */ -require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; /** * Class to manage trips and working credit notes @@ -35,12 +35,12 @@ class Deplacement extends CommonObject /** * @var string ID to identify managed object */ - public $element='deplacement'; + public $element = 'deplacement'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='deplacement'; + public $table_element = 'deplacement'; /** * @var int Name of subtable line @@ -96,10 +96,10 @@ class Deplacement extends CommonObject * @var int Status 0=draft, 1=validated, 2=Refunded */ public $statut; - public $extraparams=array(); + public $extraparams = array(); - public $statuts=array(); - public $statuts_short=array(); + public $statuts = array(); + public $statuts_short = array(); /** * Draft status @@ -143,41 +143,41 @@ class Deplacement extends CommonObject // Check parameters if (empty($this->type) || $this->type < 0) { - $this->error='ErrorBadParameter'; + $this->error = 'ErrorBadParameter'; return -1; } if (empty($this->fk_user) || $this->fk_user < 0) { - $this->error='ErrorBadParameter'; + $this->error = 'ErrorBadParameter'; return -1; } - $now=dol_now(); + $now = dol_now(); $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX."deplacement ("; - $sql.= "datec"; + $sql .= "datec"; //$sql.= ", dated"; - $sql.= ", entity"; - $sql.= ", fk_user_author"; - $sql.= ", fk_user"; - $sql.= ", type"; - $sql.= ", note_private"; - $sql.= ", note_public"; - $sql.= ", fk_projet"; - $sql.= ", fk_soc"; - $sql.= ") VALUES ("; - $sql.= " '".$this->db->idate($now)."'"; - $sql.= ", ".$conf->entity; - $sql.= ", ".$user->id; - $sql.= ", ".$this->fk_user; - $sql.= ", '".$this->db->escape($this->type)."'"; - $sql.= ", ".($this->note_private?"'".$this->db->escape($this->note_private)."'":"null"); - $sql.= ", ".($this->note_public?"'".$this->db->escape($this->note_public)."'":"null"); - $sql.= ", ".($this->fk_project > 0? $this->fk_project : 0); - $sql.= ", ".($this->fk_soc > 0? $this->fk_soc : "null"); - $sql.= ")"; + $sql .= ", entity"; + $sql .= ", fk_user_author"; + $sql .= ", fk_user"; + $sql .= ", type"; + $sql .= ", note_private"; + $sql .= ", note_public"; + $sql .= ", fk_projet"; + $sql .= ", fk_soc"; + $sql .= ") VALUES ("; + $sql .= " '".$this->db->idate($now)."'"; + $sql .= ", ".$conf->entity; + $sql .= ", ".$user->id; + $sql .= ", ".$this->fk_user; + $sql .= ", '".$this->db->escape($this->type)."'"; + $sql .= ", ".($this->note_private ? "'".$this->db->escape($this->note_private)."'" : "null"); + $sql .= ", ".($this->note_public ? "'".$this->db->escape($this->note_public)."'" : "null"); + $sql .= ", ".($this->fk_project > 0 ? $this->fk_project : 0); + $sql .= ", ".($this->fk_soc > 0 ? $this->fk_soc : "null"); + $sql .= ")"; dol_syslog(get_class($this)."::create", LOG_DEBUG); $result = $this->db->query($sql); @@ -186,7 +186,7 @@ class Deplacement extends CommonObject $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."deplacement"); // Call trigger - $result=$this->call_trigger('DEPLACEMENT_CREATE', $user); + $result = $this->call_trigger('DEPLACEMENT_CREATE', $user); if ($result < 0) { $this->db->rollback(); @@ -194,7 +194,7 @@ class Deplacement extends CommonObject } // End call triggers - $result=$this->update($user); + $result = $this->update($user); if ($result > 0) { $this->db->commit(); @@ -202,14 +202,14 @@ class Deplacement extends CommonObject } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); $this->db->rollback(); return $result; } } else { - $this->error=$this->db->error()." sql=".$sql; + $this->error = $this->db->error()." sql=".$sql; $this->db->rollback(); return -1; } @@ -226,39 +226,39 @@ class Deplacement extends CommonObject global $langs; // Clean parameters - $this->km=price2num($this->km); + $this->km = price2num($this->km); // Check parameters - if (! is_numeric($this->km)) $this->km = 0; + if (!is_numeric($this->km)) $this->km = 0; if (empty($this->date)) { - $this->error='ErrorBadParameter'; + $this->error = 'ErrorBadParameter'; return -1; } if (empty($this->type) || $this->type < 0) { - $this->error='ErrorBadParameter'; + $this->error = 'ErrorBadParameter'; return -1; } if (empty($this->fk_user) || $this->fk_user < 0) { - $this->error='ErrorBadParameter'; + $this->error = 'ErrorBadParameter'; return -1; } $this->db->begin(); $sql = "UPDATE ".MAIN_DB_PREFIX."deplacement "; - $sql .= " SET km = ".$this->km; // This is a distance or amount + $sql .= " SET km = ".$this->km; // This is a distance or amount $sql .= " , dated = '".$this->db->idate($this->date)."'"; $sql .= " , type = '".$this->db->escape($this->type)."'"; $sql .= " , fk_statut = '".$this->db->escape($this->statut)."'"; $sql .= " , fk_user = ".$this->fk_user; $sql .= " , fk_user_modif = ".$user->id; - $sql .= " , fk_soc = ".($this->socid > 0?$this->socid:'null'); - $sql .= " , note_private = ".($this->note_private?"'".$this->db->escape($this->note_private)."'":"null"); - $sql .= " , note_public = ".($this->note_public?"'".$this->db->escape($this->note_public)."'":"null"); - $sql .= " , fk_projet = ".($this->fk_project>0?$this->fk_project:0); + $sql .= " , fk_soc = ".($this->socid > 0 ? $this->socid : 'null'); + $sql .= " , note_private = ".($this->note_private ? "'".$this->db->escape($this->note_private)."'" : "null"); + $sql .= " , note_public = ".($this->note_public ? "'".$this->db->escape($this->note_public)."'" : "null"); + $sql .= " , fk_projet = ".($this->fk_project > 0 ? $this->fk_project : 0); $sql .= " WHERE rowid = ".$this->id; dol_syslog(get_class($this)."::update", LOG_DEBUG); @@ -270,7 +270,7 @@ class Deplacement extends CommonObject } else { - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); $this->db->rollback(); return -1; } @@ -286,26 +286,26 @@ class Deplacement extends CommonObject public function fetch($id, $ref = '') { $sql = "SELECT rowid, fk_user, type, fk_statut, km, fk_soc, dated, note_private, note_public, fk_projet as fk_project, extraparams"; - $sql.= " FROM ".MAIN_DB_PREFIX."deplacement"; - $sql.= " WHERE entity IN (".getEntity('deplacement').")"; - if ($ref) $sql.= " AND ref ='".$this->db->escape($ref)."'"; - else $sql.= " AND rowid = ".$id; + $sql .= " FROM ".MAIN_DB_PREFIX."deplacement"; + $sql .= " WHERE entity IN (".getEntity('deplacement').")"; + if ($ref) $sql .= " AND ref ='".$this->db->escape($ref)."'"; + else $sql .= " AND rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $result = $this->db->query($sql); - if ( $result ) + if ($result) { $obj = $this->db->fetch_object($result); - $this->id = $obj->rowid; - $this->ref = $obj->rowid; + $this->id = $obj->rowid; + $this->ref = $obj->rowid; $this->date = $this->db->jdate($obj->dated); - $this->fk_user = $obj->fk_user; + $this->fk_user = $obj->fk_user; $this->socid = $obj->fk_soc; - $this->km = $obj->km; + $this->km = $obj->km; $this->type = $obj->type; $this->statut = $obj->fk_statut; - $this->note_private = $obj->note_private; + $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->fk_project = $obj->fk_project; @@ -315,7 +315,7 @@ class Deplacement extends CommonObject } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); return -1; } } @@ -341,7 +341,7 @@ class Deplacement extends CommonObject } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); $this->db->rollback(); return -1; } @@ -382,27 +382,27 @@ class Deplacement extends CommonObject } elseif ($mode == 2) { - if ($status==0) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts_short[$status]); - elseif ($status==1) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts_short[$status]); - elseif ($status==2) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts_short[$status]); + if ($status == 0) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts_short[$status]); + elseif ($status == 1) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts_short[$status]); + elseif ($status == 2) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts_short[$status]); } elseif ($mode == 3) { - if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - elseif ($status==2 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); + if ($status == 0 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); + elseif ($status == 2 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); } elseif ($mode == 4) { - if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts[$status]); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts[$status]); - elseif ($status==2 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts[$status]); + if ($status == 0 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut0').' '.$langs->trans($this->statuts[$status]); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts[$status]); + elseif ($status == 2 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut6').' '.$langs->trans($this->statuts[$status]); } elseif ($mode == 5) { - if ($status==0 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - elseif ($status==2 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); + if ($status == 0 && !empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut0'); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); + elseif ($status == 2 && !empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); } } @@ -416,18 +416,18 @@ class Deplacement extends CommonObject { global $langs; - $result=''; - $label=$langs->trans("Show").': '.$this->ref; + $result = ''; + $label = $langs->trans("Show").': '.$this->ref; $link = ''; - $linkend=''; + $linkend = ''; - $picto='trip'; + $picto = 'trip'; - if ($withpicto) $result.=($link.img_object($label, $picto, 'class="classfortooltip"').$linkend); - if ($withpicto && $withpicto != 2) $result.=' '; - if ($withpicto != 2) $result.=$link.$this->ref.$linkend; + if ($withpicto) $result .= ($link.img_object($label, $picto, 'class="classfortooltip"').$linkend); + if ($withpicto && $withpicto != 2) $result .= ' '; + if ($withpicto != 2) $result .= $link.$this->ref.$linkend; return $result; } @@ -442,22 +442,22 @@ class Deplacement extends CommonObject { global $langs; - $ret=array(); + $ret = array(); $sql = "SELECT id, code, label"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_type_fees"; - $sql.= " WHERE active = ".$active; + $sql .= " FROM ".MAIN_DB_PREFIX."c_type_fees"; + $sql .= " WHERE active = ".$active; dol_syslog(get_class($this)."::listOfTypes", LOG_DEBUG); $result = $this->db->query($sql); - if ( $result ) + if ($result) { $num = $this->db->num_rows($result); - $i=0; + $i = 0; while ($i < $num) { $obj = $this->db->fetch_object($result); - $ret[$obj->code]=(($langs->trans($obj->code)!=$obj->code)?$langs->trans($obj->code):$obj->label); + $ret[$obj->code] = (($langs->trans($obj->code) != $obj->code) ? $langs->trans($obj->code) : $obj->label); $i++; } } @@ -478,9 +478,9 @@ class Deplacement extends CommonObject public function info($id) { $sql = 'SELECT c.rowid, c.datec, c.fk_user_author, c.fk_user_modif,'; - $sql.= ' c.tms'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'deplacement as c'; - $sql.= ' WHERE c.rowid = '.$id; + $sql .= ' c.tms'; + $sql .= ' FROM '.MAIN_DB_PREFIX.'deplacement as c'; + $sql .= ' WHERE c.rowid = '.$id; dol_syslog(get_class($this).'::info', LOG_DEBUG); $result = $this->db->query($sql); diff --git a/htdocs/compta/deplacement/class/deplacementstats.class.php b/htdocs/compta/deplacement/class/deplacementstats.class.php index 1dfc983c38b..6fdd54095a2 100644 --- a/htdocs/compta/deplacement/class/deplacementstats.class.php +++ b/htdocs/compta/deplacement/class/deplacementstats.class.php @@ -22,8 +22,8 @@ * \ingroup factures * \brief Fichier de la classe de gestion des stats des deplacement et notes de frais */ -include_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php'; -include_once DOL_DOCUMENT_ROOT . '/compta/deplacement/class/deplacement.class.php'; +include_once DOL_DOCUMENT_ROOT.'/core/class/stats.class.php'; +include_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; /** * Classe permettant la gestion des stats des deplacements et notes de frais @@ -58,18 +58,18 @@ class DeplacementStats extends Stats $this->socid = $socid; $this->userid = $userid; - $object=new Deplacement($this->db); + $object = new Deplacement($this->db); $this->from = MAIN_DB_PREFIX.$object->table_element; - $this->field='km'; + $this->field = 'km'; $this->where = " fk_statut > 0"; - $this->where.= " AND entity = ".$conf->entity; + $this->where .= " AND entity = ".$conf->entity; if ($this->socid) { - $this->where.=" AND fk_soc = ".$this->socid; + $this->where .= " AND fk_soc = ".$this->socid; } - if (is_array($this->userid) && count($this->userid) > 0) $this->where.=' AND fk_user IN ('.join(',', $this->userid).')'; - elseif ($this->userid > 0) $this->where.=' AND fk_user = '.$this->userid; + if (is_array($this->userid) && count($this->userid) > 0) $this->where .= ' AND fk_user IN ('.join(',', $this->userid).')'; + elseif ($this->userid > 0) $this->where .= ' AND fk_user = '.$this->userid; } @@ -81,9 +81,9 @@ class DeplacementStats extends Stats public function getNbByYear() { $sql = "SELECT YEAR(dated) as dm, count(*)"; - $sql.= " FROM ".$this->from; - $sql.= " GROUP BY dm DESC"; - $sql.= " WHERE ".$this->where; + $sql .= " FROM ".$this->from; + $sql .= " GROUP BY dm DESC"; + $sql .= " WHERE ".$this->where; return $this->_getNbByYear($sql); } @@ -99,13 +99,13 @@ class DeplacementStats extends Stats public function getNbByMonth($year, $format = 0) { $sql = "SELECT MONTH(dated) as dm, count(*)"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE YEAR(dated) = ".$year; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE YEAR(dated) = ".$year; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); - $res=$this->_getNbByMonth($year, $sql, $format); + $res = $this->_getNbByMonth($year, $sql, $format); //var_dump($res);print '
'; return $res; } @@ -121,13 +121,13 @@ class DeplacementStats extends Stats public function getAmountByMonth($year, $format = 0) { $sql = "SELECT date_format(dated,'%m') as dm, sum(".$this->field.")"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE date_format(dated,'%Y') = '".$year."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE date_format(dated,'%Y') = '".$year."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); - $res=$this->_getAmountByMonth($year, $sql, $format); + $res = $this->_getAmountByMonth($year, $sql, $format); //var_dump($res);print '
'; return $res; } @@ -141,11 +141,11 @@ class DeplacementStats extends Stats public function getAverageByMonth($year) { $sql = "SELECT date_format(dated,'%m') as dm, avg(".$this->field.")"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE date_format(dated,'%Y') = '".$year."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE date_format(dated,'%Y') = '".$year."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); return $this->_getAverageByMonth($year, $sql); } @@ -158,10 +158,10 @@ class DeplacementStats extends Stats public function getAllByYear() { $sql = "SELECT date_format(dated,'%Y') as year, count(*) as nb, sum(".$this->field.") as total, avg(".$this->field.") as avg"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE ".$this->where; - $sql.= " GROUP BY year"; - $sql.= $this->db->order('year', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY year"; + $sql .= $this->db->order('year', 'DESC'); return $this->_getAllByYear($sql); } diff --git a/htdocs/compta/deplacement/document.php b/htdocs/compta/deplacement/document.php index d85f4239d02..4f42ae2292b 100644 --- a/htdocs/compta/deplacement/document.php +++ b/htdocs/compta/deplacement/document.php @@ -43,7 +43,7 @@ $action = GETPOST('action', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'deplacement', $id, ''); diff --git a/htdocs/compta/deplacement/info.php b/htdocs/compta/deplacement/info.php index 28d1d8e68da..a63494451cf 100644 --- a/htdocs/compta/deplacement/info.php +++ b/htdocs/compta/deplacement/info.php @@ -32,7 +32,7 @@ $langs->load("trips"); // Security check $id = GETPOST('id', 'int'); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'deplacement', $id, ''); diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php index ea2d68cc126..a4cc8f24019 100644 --- a/htdocs/compta/deplacement/list.php +++ b/htdocs/compta/deplacement/list.php @@ -36,37 +36,37 @@ $langs->loadLangs(array('companies', 'users', 'trips')); // Security check $socid = GETPOST('socid', 'int'); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'deplacement', '', ''); -$search_ref=GETPOST('search_ref', 'int'); -$search_name=GETPOST('search_name', 'alpha'); -$search_company=GETPOST('search_company', 'alpha'); +$search_ref = GETPOST('search_ref', 'int'); +$search_name = GETPOST('search_name', 'alpha'); +$search_company = GETPOST('search_company', 'alpha'); // $search_amount=GETPOST('search_amount','alpha'); $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="DESC"; -if (! $sortfield) $sortfield="d.dated"; +if (!$sortorder) $sortorder = "DESC"; +if (!$sortfield) $sortfield = "d.dated"; -$year=GETPOST("year"); -$month=GETPOST("month"); -$day=GETPOST("day"); +$year = GETPOST("year"); +$month = GETPOST("month"); +$day = GETPOST("day"); if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // Both test are required to be compatible with all browsers { - $search_ref=""; - $search_name=""; - $search_company=""; + $search_ref = ""; + $search_name = ""; + $search_company = ""; // $search_amount=""; - $year=""; - $month=""; - $day=""; + $year = ""; + $month = ""; + $day = ""; } /* @@ -74,29 +74,29 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter', */ $formother = new FormOther($db); -$tripandexpense_static=new Deplacement($db); +$tripandexpense_static = new Deplacement($db); $userstatic = new User($db); $childids = $user->getAllChildIds(); -$childids[]=$user->id; +$childids[] = $user->id; llxHeader(); -$sql = "SELECT s.nom, d.fk_user, s.rowid as socid,"; // Ou -$sql.= " d.rowid, d.type, d.dated as dd, d.km,"; // Comment -$sql.= " d.fk_statut,"; -$sql.= " u.lastname, u.firstname"; // Qui -$sql.= " FROM ".MAIN_DB_PREFIX."user as u"; -$sql.= ", ".MAIN_DB_PREFIX."deplacement as d"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON d.fk_soc = s.rowid"; -if (!$user->rights->societe->client->voir && !$socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc"; -$sql.= " WHERE d.fk_user = u.rowid"; -$sql.= " AND d.entity = ".$conf->entity; -if (empty($user->rights->deplacement->readall) && empty($user->rights->deplacement->lire_tous)) $sql.=' AND d.fk_user IN ('.join(',', $childids).')'; -if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND (sc.fk_user = " .$user->id." OR d.fk_soc IS NULL) "; -if ($socid) $sql.= " AND s.rowid = ".$socid; +$sql = "SELECT s.nom, d.fk_user, s.rowid as socid,"; // Ou +$sql .= " d.rowid, d.type, d.dated as dd, d.km,"; // Comment +$sql .= " d.fk_statut,"; +$sql .= " u.lastname, u.firstname"; // Qui +$sql .= " FROM ".MAIN_DB_PREFIX."user as u"; +$sql .= ", ".MAIN_DB_PREFIX."deplacement as d"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON d.fk_soc = s.rowid"; +if (!$user->rights->societe->client->voir && !$socid) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc"; +$sql .= " WHERE d.fk_user = u.rowid"; +$sql .= " AND d.entity = ".$conf->entity; +if (empty($user->rights->deplacement->readall) && empty($user->rights->deplacement->lire_tous)) $sql .= ' AND d.fk_user IN ('.join(',', $childids).')'; +if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND (sc.fk_user = ".$user->id." OR d.fk_soc IS NULL) "; +if ($socid) $sql .= " AND s.rowid = ".$socid; -if ($search_ref) $sql.=" AND d.rowid=".$search_ref; +if ($search_ref) $sql .= " AND d.rowid=".$search_ref; if ($search_name) { $sql .= natural_search('u.lastname', $search_name); @@ -105,13 +105,13 @@ if ($search_company) { $sql .= natural_search('s.nom', $search_company); } -$sql.= dolSqlDateFilter("d.dated", $day, $month, $year); +$sql .= dolSqlDateFilter("d.dated", $day, $month, $year); -$sql.= $db->order($sortfield, $sortorder); -$sql.= $db->plimit($limit + 1, $offset); +$sql .= $db->order($sortfield, $sortorder); +$sql .= $db->plimit($limit + 1, $offset); //print $sql; -$resql=$db->query($sql); +$resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -140,9 +140,9 @@ if ($resql) print ' '; print ''; print ''; print ''; print ''; print "\n"; @@ -186,7 +186,7 @@ if ($resql) print ''; - $tripandexpense_static->statut=$obj->fk_statut; + $tripandexpense_static->statut = $obj->fk_statut; print ''; print "\n"; diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index ada61efae91..95d2010a4f6 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -418,7 +418,9 @@ if (empty($reshook)) if ($new_date_lim_reglement > $old_date_lim_reglement) $object->date_lim_reglement = $new_date_lim_reglement; if ($object->date_lim_reglement < $object->date) $object->date_lim_reglement = $object->date; $result = $object->update($user); - if ($result < 0) dol_print_error($db, $object->error); + if ($result < 0) { + dol_print_error($db, $object->error); + } } elseif ($action == 'setdate_pointoftax' && $usercancreate) @@ -427,7 +429,9 @@ if (empty($reshook)) $date_pointoftax = dol_mktime(12, 0, 0, $_POST['date_pointoftaxmonth'], $_POST['date_pointoftaxday'], $_POST['date_pointoftaxyear']); $object->date_pointoftax = $date_pointoftax; $result = $object->update($user); - if ($result < 0) dol_print_error($db, $object->error); + if ($result < 0) { + dol_print_error($db, $object->error); + } } elseif ($action == 'setconditions' && $usercancreate) @@ -443,7 +447,9 @@ if (empty($reshook)) if ($new_date_lim_reglement > $old_date_lim_reglement) $object->date_lim_reglement = $new_date_lim_reglement; if ($object->date_lim_reglement < $object->date) $object->date_lim_reglement = $object->date; $result = $object->update($user); - if ($result < 0) dol_print_error($db, $object->error); + if ($result < 0) { + dol_print_error($db, $object->error); + } } elseif ($action == 'setpaymentterm' && $usercancreate) @@ -455,8 +461,9 @@ if (empty($reshook)) setEventMessages($langs->trans("DatePaymentTermCantBeLowerThanObjectDate"), null, 'warnings'); } $result = $object->update($user); - if ($result < 0) + if ($result < 0) { dol_print_error($db, $object->error); + } } elseif ($action == 'setrevenuestamp' && $usercancreate) @@ -465,8 +472,28 @@ if (empty($reshook)) $object->revenuestamp = GETPOST('revenuestamp'); $result = $object->update($user); $object->update_price(1); - if ($result < 0) + if ($result < 0) { dol_print_error($db, $object->error); + } else { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $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); + $outputlangs->load('products'); + } + $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'); + } + } } // Set incoterm @@ -1543,7 +1570,7 @@ if (empty($reshook)) // If we create a deposit with all lines and a percent, we change amount if ($_POST['type'] == Facture::TYPE_DEPOSIT && $typeamount == 'variablealllines') { if (is_array($lines)) { - foreach($lines as $line) { + foreach ($lines as $line) { // We keep ->subprice and ->pa_ht, but we change the qty $line->qty = price2num($line->qty * $valuedeposit / 100, 'MS'); } @@ -1741,7 +1768,7 @@ if (empty($reshook)) // retained warranty if(!empty($conf->global->INVOICE_USE_RETAINED_WARRANTY)) { - $retained_warranty = GETPOST('retained_warranty'); + $retained_warranty = GETPOST('retained_warranty', 'int'); if(price2num($retained_warranty) > 0) { $object->retained_warranty = price2num($retained_warranty); @@ -1749,11 +1776,15 @@ if (empty($reshook)) if(GETPOST('retained_warranty_fk_cond_reglement', 'int') > 0) { - $object->retained_warranty_fk_cond_reglement = GETPOST('retained_warranty_fk_cond_reglement', 'int'); + $object->retained_warranty_fk_cond_reglement = GETPOST('retained_warranty_fk_cond_reglement', 'int'); } + $retained_warranty_date_limit = GETPOST('retained_warranty_date_limit'); + if (!empty($retained_warranty_date_limit) && $db->jdate($retained_warranty_date_limit)) { + $object->retained_warranty_date_limit = $db->jdate($retained_warranty_date_limit); + } $object->retained_warranty_date_limit = !empty($object->retained_warranty_date_limit) ? $object->retained_warranty_date_limit : $object->calculate_date_lim_reglement($object->retained_warranty_fk_cond_reglement); - } + } foreach ($object->lines as $i => &$line) { @@ -2596,7 +2627,7 @@ if (empty($reshook)) $situation_percent = 0; } else{ - $situation_percent = 100; + $situation_percent = 100; } $fk_prev_id = ''; $fk_unit = $originLine->fk_unit; @@ -3358,18 +3389,18 @@ if ($action == 'create') if($conf->global->INVOICE_USE_RETAINED_WARRANTY){ $rwStyle = 'display:none;'; - if(in_array(GETPOST('type', 'int'), $retainedWarrantyInvoiceAvailableType)){ - $rwStyle = ''; - } + if(in_array(GETPOST('type', 'int'), $retainedWarrantyInvoiceAvailableType)){ + $rwStyle = ''; + } $retained_warranty = GETPOST('retained_warranty', 'int'); - if(empty($retained_warranty)){ - if(!empty($objectsrc->retained_warranty)){ // use previous situation value - $retained_warranty = $objectsrc->retained_warranty; - }else{ - $retained_warranty = $conf->global->INVOICE_SITUATION_DEFAULT_RETAINED_WARRANTY_PERCENT; - } - } + if(empty($retained_warranty)){ + if(!empty($objectsrc->retained_warranty)){ // use previous situation value + $retained_warranty = $objectsrc->retained_warranty; + }else{ + $retained_warranty = $conf->global->INVOICE_SITUATION_DEFAULT_RETAINED_WARRANTY_PERCENT; + } + } print ''; print ''; - if (! $variante) print ''; print ''; - if (! $periodlink) print '
'.$langs->trans("Account").''; - if (! $objp->rappro && ! $bankline->getVentilExportCompta()) + if (!$objp->rappro && !$bankline->getVentilExportCompta()) { $form->select_comptes($acct->id, 'accountid', 0, '', 0); } @@ -337,12 +337,12 @@ if ($result) { print '
'.$langs->trans("Links").''; - foreach($links as $key=>$val) + foreach ($links as $key=>$val) { if ($key) print '
'; - if ($links[$key]['type']=='payment') { + if ($links[$key]['type'] == 'payment') { require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; - $paymenttmp=new Paiement($db); + $paymenttmp = new Paiement($db); $paymenttmp->fetch($links[$key]['url_id']); $paymenttmp->ref = $langs->trans("Payment").' '.$paymenttmp->ref; /*print ''; @@ -351,9 +351,9 @@ if ($result) print '';*/ print $paymenttmp->getNomUrl(1); } - elseif ($links[$key]['type']=='payment_supplier') { + elseif ($links[$key]['type'] == 'payment_supplier') { require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; - $paymenttmp=new PaiementFourn($db); + $paymenttmp = new PaiementFourn($db); $paymenttmp->fetch($links[$key]['url_id']); $paymenttmp->ref = $langs->trans("Payment").' '.$paymenttmp->ref; /*print ''; @@ -362,72 +362,72 @@ if ($result) print '';*/ print $paymenttmp->getNomUrl(1); } - elseif ($links[$key]['type']=='company') { - $societe=new Societe($db); + elseif ($links[$key]['type'] == 'company') { + $societe = new Societe($db); $societe->fetch($links[$key]['url_id']); print $societe->getNomUrl(1); } - elseif ($links[$key]['type']=='sc') { + elseif ($links[$key]['type'] == 'sc') { print ''; print img_object($langs->trans('ShowSocialContribution'), 'bill').' '; - print $langs->trans("SocialContribution").($links[$key]['label']?' - '.$links[$key]['label']:''); + print $langs->trans("SocialContribution").($links[$key]['label'] ? ' - '.$links[$key]['label'] : ''); print ''; } - elseif ($links[$key]['type']=='payment_sc') { + elseif ($links[$key]['type'] == 'payment_sc') { print ''; print img_object($langs->trans('ShowPayment'), 'payment').' '; print $langs->trans("SocialContributionPayment"); print ''; } - elseif ($links[$key]['type']=='payment_vat') { + elseif ($links[$key]['type'] == 'payment_vat') { print ''; print img_object($langs->trans('ShowVAT'), 'payment').' '; print $langs->trans("VATPayment"); print ''; } - elseif ($links[$key]['type']=='payment_salary') { - print ''; + elseif ($links[$key]['type'] == 'payment_salary') { + print ''; print img_object($langs->trans('ShowPaymentSalary'), 'payment').' '; print $langs->trans("SalaryPayment"); print ''; } - elseif ($links[$key]['type']=='payment_loan') { + elseif ($links[$key]['type'] == 'payment_loan') { print ''; print img_object($langs->trans('ShowLoanPayment'), 'payment').' '; print $langs->trans("PaymentLoan"); print ''; } - elseif ($links[$key]['type']=='loan') { + elseif ($links[$key]['type'] == 'loan') { print ''; print img_object($langs->trans('ShowLoan'), 'bill').' '; print $langs->trans("Loan"); print ''; } - elseif ($links[$key]['type']=='member') { + elseif ($links[$key]['type'] == 'member') { print ''; print img_object($langs->trans('ShowMember'), 'user').' '; print $links[$key]['label']; print ''; } - elseif ($links[$key]['type']=='payment_donation') { + elseif ($links[$key]['type'] == 'payment_donation') { print ''; print img_object($langs->trans('ShowDonation'), 'payment').' '; print $langs->trans("DonationPayment"); print ''; } - elseif ($links[$key]['type']=='banktransfert') { + elseif ($links[$key]['type'] == 'banktransfert') { print ''; print img_object($langs->trans('ShowTransaction'), 'payment').' '; print $langs->trans("TransactionOnTheOtherAccount"); print ''; } - elseif ($links[$key]['type']=='user') { + elseif ($links[$key]['type'] == 'user') { print ''; print img_object($langs->trans('ShowUser'), 'user').' '; print $langs->trans("User"); print ''; } - elseif ($links[$key]['type']=='payment_various') { + elseif ($links[$key]['type'] == 'payment_various') { print ''; print img_object($langs->trans('ShowVariousPayment'), 'payment').' '; print $langs->trans("VariousPayment"); @@ -458,7 +458,7 @@ if ($result) if ($objp->receiptid) { include_once DOL_DOCUMENT_ROOT.'/compta/paiement/cheque/class/remisecheque.class.php'; - $receipt=new RemiseCheque($db); + $receipt = new RemiseCheque($db); $receipt->fetch($objp->receiptid); print '     '.$langs->trans("CheckReceipt").': '.$receipt->getNomUrl(2); } @@ -508,13 +508,13 @@ if ($result) { print '
'; print $form->selectDate($db->jdate($objp->do), 'dateo', '', '', '', 'update', 1, 0, $objp->rappro); - if (! $objp->rappro) + if (!$objp->rappro) { print '   '; print ''; - print img_edit_remove() . " "; + print img_edit_remove()." "; print ''; - print img_edit_add() .""; + print img_edit_add().""; } print ''; print $form->selectDate($db->jdate($objp->dv), 'datev', '', '', '', 'update', 1, 0, $objp->rappro); - if (! $objp->rappro) + if (!$objp->rappro) { print '   '; print ''; - print img_edit_remove() . " "; + print img_edit_remove()." "; print ''; - print img_edit_add() .""; + print img_edit_add().""; } print ''; - print 'rappro?' disabled':'').' value="'; + print 'rappro ? ' disabled' : '').' value="'; if (preg_match('/^\((.*)\)$/i', $objp->label, $reg)) { // Label generique car entre parentheses. On l'affiche en le traduisant @@ -589,7 +589,7 @@ if ($result) if ($user->rights->banque->modifier) { print ''; - print 'rappro?' disabled':'').' value="'.price($objp->amount).'"> '.$langs->trans("Currency".$acct->currency_code); + print 'rappro ? ' disabled' : '').' value="'.price($objp->amount).'"> '.$langs->trans("Currency".$acct->currency_code); print '
' . $form->editfieldkey('RubriquesTransactions', 'custcats', '', $object, 0) . ''; + print '
'.$form->editfieldkey('RubriquesTransactions', 'custcats', '', $object, 0).''; $cate_arbo = $form->select_all_categories(Categorie::TYPE_BANK_LINE, null, 'parent', null, null, 1); print $form->multiselectarray('custcats', $cate_arbo, $arrayselected, null, null, null, null, "90%"); print "
'; if ($objp->rappro) { - print $langs->trans("AccountStatement").' rappro?' disabled':'').'>'; + print $langs->trans("AccountStatement").' rappro ? ' disabled' : '').'>'; print ''; } else { - print $langs->trans("AccountStatement").' rappro?' disabled':'').'>'; + print $langs->trans("AccountStatement").' rappro ? ' disabled' : '').'>'; } if ($objp->num_releve) print '   ('.$langs->trans("AccountStatement").' '.$objp->num_releve.')'; print ''; - print 'rappro?' checked="checked"':'')).'">'; + print 'rappro ? ' checked="checked"' : '')).'">'; print '
'; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - if ($objecttmp->rappro) - { - $result = $objecttmp->load_board($user, $objecttmp->id); - if ($result < 0) { - setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); - } else { - print ''.$result->nbtodo.''; - if ($result->nbtodolate) { - print ''; - print ' '.$result->nbtodolate; - print ''; - } - } - } - else - { - print ''.$langs->trans("FeatureDisabled").''; - } - print ''; + + $conciliate = $objecttmp->canBeConciliated(); + if ($conciliate == -2) print ''.$langs->trans("CashAccount").''; + elseif ($conciliate == -3) print ''.$langs->trans("Closed").''; + elseif (empty($objecttmp->rappro)) { + print ''.$langs->trans("ConciliationDisabled").''; + } else { + $result = $objecttmp->load_board($user, $objecttmp->id); + if ($result < 0) { + setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); + } else { + print ''.$result->nbtodo.''; + if ($result->nbtodolate) { + print ''; + print ' '.$result->nbtodolate; + print ''; + } + } + } + + print ''.$langs->trans("TransferFrom").''.$langs->trans("TransferTo print '
'; -$form->select_comptes($account_from, 'account_from', 0, '', 1, '', empty($conf->multicurrency->enabled)?0:1); +$form->select_comptes($account_from, 'account_from', 0, '', 1, '', empty($conf->multicurrency->enabled) ? 0 : 1); print "\n"; -$form->select_comptes($account_to, 'account_to', 0, '', 1, '', empty($conf->multicurrency->enabled)?0:1); +$form->select_comptes($account_to, 'account_to', 0, '', 1, '', empty($conf->multicurrency->enabled) ? 0 : 1); print ""; -print $form->selectDate((! empty($dateo)?$dateo:''), '', '', '', '', 'add'); +print $form->selectDate((!empty($dateo) ? $dateo : ''), '', '', '', '', 'add'); print "
'; - $thirdpartystatic->id=$obj->rowid; - $thirdpartystatic->name=$obj->name; - $thirdpartystatic->client=$obj->client; + $thirdpartystatic->id = $obj->rowid; + $thirdpartystatic->name = $obj->name; + $thirdpartystatic->client = $obj->client; print $thirdpartystatic->getNomUrl(1, 'compta'); print ''.$obj->town.' 
'; - print $form->editfieldkey("Type", 'type', $langs->trans($object->type), $object, $conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer, 'select:types_fees'); + print $form->editfieldkey("Type", 'type', $langs->trans($object->type), $object, $user->rights->deplacement->creer, 'select:types_fees'); print ''; - print $form->editfieldval("Type", 'type', $form->cache_types_fees[$object->type], $object, $conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer, 'select:types_fees'); + print $form->editfieldval("Type", 'type', $form->cache_types_fees[$object->type], $object, $user->rights->deplacement->creer, 'select:types_fees'); print '
'; - print $form->editfieldkey("Date", 'dated', $object->date, $object, $conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer, 'datepicker'); + print $form->editfieldkey("Date", 'dated', $object->date, $object, $user->rights->deplacement->creer, 'datepicker'); print ''; - print $form->editfieldval("Date", 'dated', $object->date, $object, $conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer, 'datepicker'); + print $form->editfieldval("Date", 'dated', $object->date, $object, $user->rights->deplacement->creer, 'datepicker'); print '
'; - print $form->editfieldkey("FeesKilometersOrAmout", 'km', $object->km, $object, $conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer, 'numeric:6'); + print $form->editfieldkey("FeesKilometersOrAmout", 'km', $object->km, $object, $user->rights->deplacement->creer, 'numeric:6'); print ''; - print $form->editfieldval("FeesKilometersOrAmout", 'km', $object->km, $object, $conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer, 'numeric:6'); + print $form->editfieldval("FeesKilometersOrAmout", 'km', $object->km, $object, $user->rights->deplacement->creer, 'numeric:6'); print "
'; - if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; + if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; print ''; - $formother->select_year($year?$year:-1, 'year', 1, 20, 5); + $formother->select_year($year ? $year : -1, 'year', 1, 20, 5); print ''; print ''; @@ -154,7 +154,7 @@ if ($resql) // print ''; print ''; - $searchpicto=$form->showFilterAndCheckAddButtons(0); + $searchpicto = $form->showFilterAndCheckAddButtons(0); print $searchpicto; print '
'.$obj->km.''.$tripandexpense_static->getLibStatut(5).'
'.$langs->trans('RetainedWarranty').''; print '%'; @@ -3966,6 +3997,20 @@ elseif ($id > 0 || !empty($ref)) $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?facid='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneInvoice', $object->ref), 'confirm_clone', $formquestion, 'yes', 1, 250); } + if ($action == "remove_file_comfirm") + { + $file = GETPOST('file', 'alpha'); + + $formconfirm = $form->formconfirm( + $_SERVER["PHP_SELF"].'?facid='.$object->id.'&file='.$file, + $langs->trans('DeleteFileHeader'), + $langs->trans('DeleteFileText')."

".$file, + 'remove_file', + '', + 'no', + 2); + } + // Call Hook formConfirm $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid, 'remainingtopay' => &$resteapayer); $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook @@ -4306,10 +4351,10 @@ elseif ($id > 0 || !empty($ref)) if(!empty($object->retained_warranty) || !empty($conf->global->INVOICE_USE_RETAINED_WARRANTY)) { - $displayWarranty = true; + $displayWarranty = true; if(!in_array($object->type, $retainedWarrantyInvoiceAvailableType) && empty($object->retained_warranty)){ - $displayWarranty = false; - } + $displayWarranty = false; + } if($displayWarranty) { @@ -4483,7 +4528,7 @@ elseif ($id > 0 || !empty($ref)) print ''; print $formother->select_revenue_stamp('', 'revenuestamp_type', $mysoc->country_code); print ' → '; - print ' '; + print ' '; print ''; print " '; + $out .= ''; } else { - $out.= ''; + $out .= ''; } } diff --git a/htdocs/core/boxes/box_activity.php b/htdocs/core/boxes/box_activity.php index 40bfe965c60..65051b3c05b 100644 --- a/htdocs/core/boxes/box_activity.php +++ b/htdocs/core/boxes/box_activity.php @@ -30,9 +30,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_activity extends ModeleBoxes { - public $boxcode="activity"; - public $boximg="object_bill"; - public $boxlabel='BoxGlobalActivity'; + public $boxcode = "activity"; + public $boximg = "object_bill"; + public $boxlabel = 'BoxGlobalActivity'; public $depends = array("facture"); /** @@ -60,11 +60,11 @@ class box_activity extends ModeleBoxes $this->db = $db; // FIXME: Pb into some status - $this->enabled = ($conf->global->MAIN_FEATURES_LEVEL); // Not enabled by default due to bugs (see previous comments) + $this->enabled = ($conf->global->MAIN_FEATURES_LEVEL); // Not enabled by default due to bugs (see previous comments) - $this->hidden = ! ((! empty($conf->facture->enabled) && $user->rights->facture->lire) - || (! empty($conf->commande->enabled) && $user->rights->commande->lire) - || (! empty($conf->propal->enabled) && $user->rights->propale->lire) + $this->hidden = !((!empty($conf->facture->enabled) && $user->rights->facture->lire) + || (!empty($conf->commande->enabled) && $user->rights->commande->lire) + || (!empty($conf->propal->enabled) && $user->rights->propale->lire) ); } @@ -84,11 +84,11 @@ class box_activity extends ModeleBoxes $totalnb = 0; $line = 0; $cachetime = 3600; - $fileid = '-e'.$conf->entity.'-u'.$user->id.'-s'.$user->socid.'-r'.($user->rights->societe->client->voir?'1':'0').'.cache'; + $fileid = '-e'.$conf->entity.'-u'.$user->id.'-s'.$user->socid.'-r'.($user->rights->societe->client->voir ? '1' : '0').'.cache'; $now = dol_now(); - $nbofperiod=3; + $nbofperiod = 3; - if (! empty($conf->global->MAIN_BOX_ACTIVITY_DURATION)) $nbofperiod=$conf->global->MAIN_BOX_ACTIVITY_DURATION; + if (!empty($conf->global->MAIN_BOX_ACTIVITY_DURATION)) $nbofperiod = $conf->global->MAIN_BOX_ACTIVITY_DURATION; $textHead = $langs->trans("Activity").' - '.$langs->trans("LastXMonthRolling", $nbofperiod); $this->info_box_head = array( 'text' => $textHead, @@ -96,14 +96,14 @@ class box_activity extends ModeleBoxes ); // compute the year limit to show - $tmpdate= dol_time_plus_duree(dol_now(), -1*$nbofperiod, "m"); + $tmpdate = dol_time_plus_duree(dol_now(), -1 * $nbofperiod, "m"); // list the summary of the propals - if (! empty($conf->propal->enabled) && $user->rights->propale->lire) + if (!empty($conf->propal->enabled) && $user->rights->propale->lire) { include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; - $propalstatic=new Propal($this->db); + $propalstatic = new Propal($this->db); $cachedir = DOL_DATA_ROOT.'/propale/temp'; $filename = '/boxactivity-propal'.$fileid; @@ -112,29 +112,29 @@ class box_activity extends ModeleBoxes if ($refresh) { $sql = "SELECT p.fk_statut, SUM(p.total) as Mnttot, COUNT(*) as nb"; - $sql.= " FROM (".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= ")"; - $sql.= " WHERE p.entity IN (".getEntity('propal').")"; - $sql.= " AND p.fk_soc = s.rowid"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - $sql.= " AND p.datep >= '".$this->db->idate($tmpdate)."'"; - $sql.= " AND p.date_cloture IS NULL"; // just unclosed - $sql.= " GROUP BY p.fk_statut"; - $sql.= " ORDER BY p.fk_statut DESC"; + $sql .= " FROM (".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= ")"; + $sql .= " WHERE p.entity IN (".getEntity('propal').")"; + $sql .= " AND p.fk_soc = s.rowid"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + $sql .= " AND p.datep >= '".$this->db->idate($tmpdate)."'"; + $sql .= " AND p.date_cloture IS NULL"; // just unclosed + $sql .= " GROUP BY p.fk_statut"; + $sql .= " ORDER BY p.fk_statut DESC"; $result = $this->db->query($sql); if ($result) { $num = $this->db->num_rows($result); - $j=0; + $j = 0; while ($j < $num) { - $data[$j]=$this->db->fetch_object($result); + $data[$j] = $this->db->fetch_object($result); $j++; } - if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { + if (!empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { dol_filecache($cachedir, $filename, $data); } $this->db->free($result); @@ -147,9 +147,9 @@ class box_activity extends ModeleBoxes $data = dol_readcachefile($cachedir, $filename); } - if (! empty($data)) + if (!empty($data)) { - $j=0; + $j = 0; while ($j < count($data)) { $this->info_box_contents[$line][0] = array( @@ -188,9 +188,9 @@ class box_activity extends ModeleBoxes } // list the summary of the orders - if (! empty($conf->commande->enabled) && $user->rights->commande->lire) { + if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; - $commandestatic=new Commande($this->db); + $commandestatic = new Commande($this->db); $langs->load("orders"); @@ -201,26 +201,26 @@ class box_activity extends ModeleBoxes if ($refresh) { $sql = "SELECT c.fk_statut, sum(c.total_ttc) as Mnttot, count(*) as nb"; - $sql.= " FROM (".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande as c"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= ")"; - $sql.= " WHERE c.entity = ".$conf->entity; - $sql.= " AND c.fk_soc = s.rowid"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - $sql.= " AND c.date_commande >= '".$this->db->idate($tmpdate)."'"; - $sql.= " GROUP BY c.fk_statut"; - $sql.= " ORDER BY c.fk_statut DESC"; + $sql .= " FROM (".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande as c"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= ")"; + $sql .= " WHERE c.entity = ".$conf->entity; + $sql .= " AND c.fk_soc = s.rowid"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + $sql .= " AND c.date_commande >= '".$this->db->idate($tmpdate)."'"; + $sql .= " GROUP BY c.fk_statut"; + $sql .= " ORDER BY c.fk_statut DESC"; $result = $this->db->query($sql); if ($result) { $num = $this->db->num_rows($result); - $j=0; + $j = 0; while ($j < $num) { - $data[$j]=$this->db->fetch_object($result); + $data[$j] = $this->db->fetch_object($result); $j++; } - if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { + if (!empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { dol_filecache($cachedir, $filename, $data); } $this->db->free($result); @@ -231,8 +231,8 @@ class box_activity extends ModeleBoxes $data = dol_readcachefile($cachedir, $filename); } - if (! empty($data)) { - $j=0; + if (!empty($data)) { + $j = 0; while ($j < count($data)) { $this->info_box_contents[$line][0] = array( 'td' => 'class="left" width="16"', @@ -271,10 +271,10 @@ class box_activity extends ModeleBoxes // list the summary of the bills - if (! empty($conf->facture->enabled) && $user->rights->facture->lire) + if (!empty($conf->facture->enabled) && $user->rights->facture->lire) { include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; - $facturestatic=new Facture($this->db); + $facturestatic = new Facture($this->db); // part 1 $cachedir = DOL_DATA_ROOT.'/facture/temp'; @@ -285,26 +285,26 @@ class box_activity extends ModeleBoxes if ($refresh) { $sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb"; - $sql.= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= ")"; - $sql.= " WHERE f.entity IN (".getEntity('invoice').')'; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - $sql.= " AND f.fk_soc = s.rowid"; - $sql.= " AND f.datef >= '".$this->db->idate($tmpdate)."' AND f.paye=1"; - $sql.= " GROUP BY f.fk_statut"; - $sql.= " ORDER BY f.fk_statut DESC"; + $sql .= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= ")"; + $sql .= " WHERE f.entity IN (".getEntity('invoice').')'; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + $sql .= " AND f.fk_soc = s.rowid"; + $sql .= " AND f.datef >= '".$this->db->idate($tmpdate)."' AND f.paye=1"; + $sql .= " GROUP BY f.fk_statut"; + $sql .= " ORDER BY f.fk_statut DESC"; $result = $this->db->query($sql); if ($result) { $num = $this->db->num_rows($result); - $j=0; + $j = 0; while ($j < $num) { - $data[$j]=$this->db->fetch_object($result); + $data[$j] = $this->db->fetch_object($result); $j++; } - if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { + if (!empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { dol_filecache($cachedir, $filename, $data); } $this->db->free($result); @@ -315,10 +315,10 @@ class box_activity extends ModeleBoxes $data = dol_readcachefile($cachedir, $filename); } - if (! empty($data)) { - $j=0; + if (!empty($data)) { + $j = 0; while ($j < count($data)) { - $billurl="search_status=2&paye=1&year=".$data[$j]->annee; + $billurl = "search_status=2&paye=1&year=".$data[$j]->annee; $this->info_box_contents[$line][0] = array( 'td' => 'class="left" width="16"', 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(1, $data[$j]->fk_statut, 0), @@ -353,7 +353,7 @@ class box_activity extends ModeleBoxes $line++; $j++; } - if (count($data)==0) + if (count($data) == 0) $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoRecordedInvoices"), @@ -369,22 +369,22 @@ class box_activity extends ModeleBoxes $data = array(); if ($refresh) { $sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f"; - $sql.= " WHERE f.entity IN (".getEntity('invoice').')'; - $sql.= " AND f.fk_soc = s.rowid"; - $sql.= " AND f.datef >= '".$this->db->idate($tmpdate)."' AND f.paye=0"; - $sql.= " GROUP BY f.fk_statut"; - $sql.= " ORDER BY f.fk_statut DESC"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f"; + $sql .= " WHERE f.entity IN (".getEntity('invoice').')'; + $sql .= " AND f.fk_soc = s.rowid"; + $sql .= " AND f.datef >= '".$this->db->idate($tmpdate)."' AND f.paye=0"; + $sql .= " GROUP BY f.fk_statut"; + $sql .= " ORDER BY f.fk_statut DESC"; $result = $this->db->query($sql); if ($result) { $num = $this->db->num_rows($result); - $j=0; + $j = 0; while ($j < $num) { - $data[$j]=$this->db->fetch_object($result); + $data[$j] = $this->db->fetch_object($result); $j++; } - if (! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { + if (!empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { dol_filecache($cachedir, $filename, $data); } $this->db->free($result); @@ -395,12 +395,12 @@ class box_activity extends ModeleBoxes $data = dol_readcachefile($cachedir, $filename); } - if (! empty($data)) { - $alreadypaid=-1; + if (!empty($data)) { + $alreadypaid = -1; - $j=0; + $j = 0; while ($j < count($data)) { - $billurl="search_status=".$data[$j]->fk_statut."&paye=0"; + $billurl = "search_status=".$data[$j]->fk_statut."&paye=0"; $this->info_box_contents[$line][0] = array( 'td' => 'class="left" width="16"', 'tooltip' => $langs->trans('Bills').' '.$facturestatic->LibStatut(0, $data[$j]->fk_statut, 0), @@ -431,7 +431,7 @@ class box_activity extends ModeleBoxes $line++; $j++; } - if (count($data)==0) { + if (count($data) == 0) { $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoRecordedInvoices"), diff --git a/htdocs/core/boxes/box_birthdays.php b/htdocs/core/boxes/box_birthdays.php index 05d4e1d3ac0..7c8c110db88 100644 --- a/htdocs/core/boxes/box_birthdays.php +++ b/htdocs/core/boxes/box_birthdays.php @@ -32,9 +32,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_birthdays extends ModeleBoxes { - public $boxcode="birthdays"; - public $boximg="object_user"; - public $boxlabel="BoxTitleUserBirthdaysOfMonth"; + public $boxcode = "birthdays"; + public $boximg = "object_user"; + public $boxlabel = "BoxTitleUserBirthdaysOfMonth"; public $depends = array("user"); /** @@ -60,7 +60,7 @@ class box_birthdays extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->user->user->lire && empty($user->socid)); + $this->hidden = !($user->rights->user->user->lire && empty($user->socid)); } /** @@ -74,24 +74,24 @@ class box_birthdays extends ModeleBoxes global $user, $langs; $langs->load("boxes"); - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; include_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; - $userstatic=new User($this->db); + $userstatic = new User($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleUserBirthdaysOfMonth")); if ($user->rights->user->user->lire) { - $tmparray=dol_getdate(dol_now(), true); + $tmparray = dol_getdate(dol_now(), true); $sql = "SELECT u.rowid, u.firstname, u.lastname, u.birth"; - $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; - $sql.= " WHERE u.entity IN (".getEntity('user').")"; - $sql.= dolSqlDateFilter('u.birth', 0, $tmparray['mon'], $tmparray['year']); - $sql.= " ORDER BY u.birth ASC"; - $sql.= $this->db->plimit($max, 0); + $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; + $sql .= " WHERE u.entity IN (".getEntity('user').")"; + $sql .= dolSqlDateFilter('u.birth', 0, $tmparray['mon'], $tmparray['year']); + $sql .= " ORDER BY u.birth ASC"; + $sql .= $this->db->plimit($max, 0); dol_syslog(get_class($this)."::loadBox", LOG_DEBUG); $result = $this->db->query($sql); @@ -107,7 +107,7 @@ class box_birthdays extends ModeleBoxes $userstatic->firstname = $objp->firstname; $userstatic->lastname = $objp->lastname; $userstatic->email = $objp->email; - $dateb=$this->db->jdate($objp->birth); + $dateb = $this->db->jdate($objp->birth); $age = date('Y', dol_now()) - date('Y', $dateb); $this->info_box_contents[$line][] = array( @@ -118,7 +118,7 @@ class box_birthdays extends ModeleBoxes $this->info_box_contents[$line][] = array( 'td' => 'class="right"', - 'text' => dol_print_date($dateb, "day") . ' - ' . $age . ' ' . $langs->trans('DurationYears') + 'text' => dol_print_date($dateb, "day").' - '.$age.' '.$langs->trans('DurationYears') ); /*$this->info_box_contents[$line][] = array( @@ -129,7 +129,7 @@ class box_birthdays extends ModeleBoxes $line++; } - if ($num==0) $this->info_box_contents[$line][0] = array('td' => 'class="center opacitymedium"','text'=>$langs->trans("None")); + if ($num == 0) $this->info_box_contents[$line][0] = array('td' => 'class="center opacitymedium"', 'text'=>$langs->trans("None")); $this->db->free($result); } diff --git a/htdocs/core/boxes/box_birthdays_members.php b/htdocs/core/boxes/box_birthdays_members.php index e48271c4d84..96fc97f2e37 100644 --- a/htdocs/core/boxes/box_birthdays_members.php +++ b/htdocs/core/boxes/box_birthdays_members.php @@ -32,9 +32,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_birthdays_members extends ModeleBoxes { - public $boxcode="birthdays_members"; - public $boximg="object_user"; - public $boxlabel="BoxTitleMemberNextBirthdays"; + public $boxcode = "birthdays_members"; + public $boximg = "object_user"; + public $boxlabel = "BoxTitleMemberNextBirthdays"; public $depends = array("adherent"); /** @@ -60,7 +60,7 @@ class box_birthdays_members extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->adherent->lire && empty($user->socid)); + $this->hidden = !($user->rights->adherent->lire && empty($user->socid)); } /** @@ -74,25 +74,25 @@ class box_birthdays_members extends ModeleBoxes global $user, $langs; $langs->load("boxes"); - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; - $memberstatic=new Adherent($this->db); + $memberstatic = new Adherent($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleMemberNextBirthdays")); if ($user->rights->adherent->lire) { - $tmparray=dol_getdate(dol_now(), true); + $tmparray = dol_getdate(dol_now(), true); $sql = "SELECT u.rowid, u.firstname, u.lastname, u.birth"; - $sql.= " FROM ".MAIN_DB_PREFIX."adherent as u"; - $sql.= " WHERE u.entity IN (".getEntity('adherent').")"; - $sql.= " AND u.statut = 1"; - $sql.= dolSqlDateFilter('u.birth', 0, $tmparray['mon'], $tmparray['year']); - $sql.= " ORDER BY u.birth ASC"; - $sql.= $this->db->plimit($max, 0); + $sql .= " FROM ".MAIN_DB_PREFIX."adherent as u"; + $sql .= " WHERE u.entity IN (".getEntity('adherent').")"; + $sql .= " AND u.statut = 1"; + $sql .= dolSqlDateFilter('u.birth', 0, $tmparray['mon'], $tmparray['year']); + $sql .= " ORDER BY u.birth ASC"; + $sql .= $this->db->plimit($max, 0); dol_syslog(get_class($this)."::loadBox", LOG_DEBUG); $result = $this->db->query($sql); @@ -108,7 +108,7 @@ class box_birthdays_members extends ModeleBoxes $memberstatic->firstname = $objp->firstname; $memberstatic->lastname = $objp->lastname; $memberstatic->email = $objp->email; - $dateb=$this->db->jdate($objp->birth); + $dateb = $this->db->jdate($objp->birth); $age = date('Y', dol_now()) - date('Y', $dateb); $this->info_box_contents[$line][] = array( @@ -119,7 +119,7 @@ class box_birthdays_members extends ModeleBoxes $this->info_box_contents[$line][] = array( 'td' => 'class="right"', - 'text' => dol_print_date($dateb, "day") . ' - ' . $age . ' ' . $langs->trans('DurationYears') + 'text' => dol_print_date($dateb, "day").' - '.$age.' '.$langs->trans('DurationYears') ); /*$this->info_box_contents[$line][] = array( @@ -130,7 +130,7 @@ class box_birthdays_members extends ModeleBoxes $line++; } - if ($num==0) $this->info_box_contents[$line][0] = array('td' => 'class="center opacitymedium"','text'=>$langs->trans("None")); + if ($num == 0) $this->info_box_contents[$line][0] = array('td' => 'class="center opacitymedium"', 'text'=>$langs->trans("None")); $this->db->free($result); } diff --git a/htdocs/core/boxes/box_boms.php b/htdocs/core/boxes/box_boms.php index 44102f0aab1..57c5ce2e2e2 100644 --- a/htdocs/core/boxes/box_boms.php +++ b/htdocs/core/boxes/box_boms.php @@ -32,9 +32,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_boms extends ModeleBoxes { - public $boxcode="lastboms"; - public $boximg="object_bom"; - public $boxlabel="BoxTitleLatestModifiedBoms"; + public $boxcode = "lastboms"; + public $boximg = "object_bom"; + public $boxlabel = "BoxTitleLatestModifiedBoms"; public $depends = array("bom"); /** @@ -60,7 +60,7 @@ class box_boms extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->bom->read); + $this->hidden = !($user->rights->bom->read); } /** @@ -87,18 +87,18 @@ class box_boms extends ModeleBoxes if ($user->rights->bom->read) { $sql = "SELECT p.ref as product_ref, p.tobuy, p.tosell"; - $sql.= ", c.rowid"; - $sql.= ", c.date_creation"; - $sql.= ", c.tms"; - $sql.= ", c.ref"; - $sql.= ", c.status"; - $sql.= ", c.fk_user_valid"; - $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; - $sql.= ", ".MAIN_DB_PREFIX."bom_bom as c"; - $sql.= " WHERE c.fk_product = p.rowid"; - $sql.= " AND c.entity = ".$conf->entity; - $sql.= " ORDER BY c.tms DESC, c.ref DESC"; - $sql.= " ".$this->db->plimit($max, 0); + $sql .= ", c.rowid"; + $sql .= ", c.date_creation"; + $sql .= ", c.tms"; + $sql .= ", c.ref"; + $sql .= ", c.status"; + $sql .= ", c.fk_user_valid"; + $sql .= " FROM ".MAIN_DB_PREFIX."product as p"; + $sql .= ", ".MAIN_DB_PREFIX."bom_bom as c"; + $sql .= " WHERE c.fk_product = p.rowid"; + $sql .= " AND c.entity = ".$conf->entity; + $sql .= " ORDER BY c.tms DESC, c.ref DESC"; + $sql .= " ".$this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) { @@ -108,7 +108,7 @@ class box_boms extends ModeleBoxes while ($line < $num) { $objp = $this->db->fetch_object($result); - $datem=$this->db->jdate($objp->tms); + $datem = $this->db->jdate($objp->tms); $bomstatic->id = $objp->rowid; $bomstatic->ref = $objp->ref; @@ -131,11 +131,11 @@ class box_boms extends ModeleBoxes 'asis' => 1, ); - if (! empty($conf->global->BOM_BOX_LAST_BOMS_SHOW_VALIDATE_USER)) { + if (!empty($conf->global->BOM_BOX_LAST_BOMS_SHOW_VALIDATE_USER)) { if ($objp->fk_user_valid > 0) $userstatic->fetch($objp->fk_user_valid); $this->info_box_contents[$line][] = array( 'td' => 'class="right"', - 'text' => (($objp->fk_user_valid > 0)?$userstatic->getNomUrl(1):''), + 'text' => (($objp->fk_user_valid > 0) ? $userstatic->getNomUrl(1) : ''), 'asis' => 1, ); } @@ -153,7 +153,7 @@ class box_boms extends ModeleBoxes $line++; } - if ($num==0) $this->info_box_contents[$line][0] = array('td' => 'class="center"','text'=>$langs->trans("NoRecordedOrders")); + if ($num == 0) $this->info_box_contents[$line][0] = array('td' => 'class="center"', 'text'=>$langs->trans("NoRecordedOrders")); $this->db->free($result); } else { diff --git a/htdocs/core/boxes/box_commandes.php b/htdocs/core/boxes/box_commandes.php index 10b9c52acb0..37a25c8084d 100644 --- a/htdocs/core/boxes/box_commandes.php +++ b/htdocs/core/boxes/box_commandes.php @@ -32,9 +32,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_commandes extends ModeleBoxes { - public $boxcode="lastcustomerorders"; - public $boximg="object_order"; - public $boxlabel="BoxLastCustomerOrders"; + public $boxcode = "lastcustomerorders"; + public $boximg = "object_order"; + public $boxlabel = "BoxLastCustomerOrders"; public $depends = array("commande"); /** @@ -60,7 +60,7 @@ class box_commandes extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->commande->lire); + $this->hidden = !($user->rights->commande->lire); } /** @@ -83,35 +83,35 @@ class box_commandes extends ModeleBoxes $societestatic = new Societe($this->db); $userstatic = new User($this->db); - $this->info_box_head = array('text' => $langs->trans("BoxTitleLast".($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE?"":"Modified")."CustomerOrders", $max)); + $this->info_box_head = array('text' => $langs->trans("BoxTitleLast".($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE ? "" : "Modified")."CustomerOrders", $max)); if ($user->rights->commande->lire) { $sql = "SELECT s.nom as name"; - $sql.= ", s.rowid as socid"; - $sql.= ", s.code_client"; - $sql.= ", s.logo, s.email"; - $sql.= ", c.ref, c.tms"; - $sql.= ", c.rowid"; - $sql.= ", c.date_commande"; - $sql.= ", c.ref_client"; - $sql.= ", c.fk_statut"; - $sql.= ", c.fk_user_valid"; - $sql.= ", c.facture"; - $sql.= ", c.total_ht"; - $sql.= ", c.tva as total_tva"; - $sql.= ", c.total_ttc"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - $sql.= ", ".MAIN_DB_PREFIX."commande as c"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE c.fk_soc = s.rowid"; - $sql.= " AND c.entity = ".$conf->entity; - if (! empty($conf->global->ORDER_BOX_LAST_ORDERS_VALIDATED_ONLY)) $sql.=" AND c.fk_statut = 1"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if ($user->socid) $sql.= " AND s.rowid = ".$user->socid; - if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql.= " ORDER BY c.date_commande DESC, c.ref DESC "; - else $sql.= " ORDER BY c.tms DESC, c.ref DESC "; - $sql.= $this->db->plimit($max, 0); + $sql .= ", s.rowid as socid"; + $sql .= ", s.code_client"; + $sql .= ", s.logo, s.email"; + $sql .= ", c.ref, c.tms"; + $sql .= ", c.rowid"; + $sql .= ", c.date_commande"; + $sql .= ", c.ref_client"; + $sql .= ", c.fk_statut"; + $sql .= ", c.fk_user_valid"; + $sql .= ", c.facture"; + $sql .= ", c.total_ht"; + $sql .= ", c.tva as total_tva"; + $sql .= ", c.total_ttc"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; + $sql .= ", ".MAIN_DB_PREFIX."commande as c"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE c.fk_soc = s.rowid"; + $sql .= " AND c.entity = ".$conf->entity; + if (!empty($conf->global->ORDER_BOX_LAST_ORDERS_VALIDATED_ONLY)) $sql .= " AND c.fk_statut = 1"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql .= " ORDER BY c.date_commande DESC, c.ref DESC "; + else $sql .= " ORDER BY c.tms DESC, c.ref DESC "; + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) { @@ -121,8 +121,8 @@ class box_commandes extends ModeleBoxes while ($line < $num) { $objp = $this->db->fetch_object($result); - $date=$this->db->jdate($objp->date_commande); - $datem=$this->db->jdate($objp->tms); + $date = $this->db->jdate($objp->date_commande); + $datem = $this->db->jdate($objp->tms); $commandestatic->id = $objp->rowid; $commandestatic->ref = $objp->ref; $commandestatic->ref_client = $objp->ref_client; @@ -152,11 +152,11 @@ class box_commandes extends ModeleBoxes 'text' => price($objp->total_ht, 0, $langs, 0, -1, -1, $conf->currency), ); - if (! empty($conf->global->ORDER_BOX_LAST_ORDERS_SHOW_VALIDATE_USER)) { + if (!empty($conf->global->ORDER_BOX_LAST_ORDERS_SHOW_VALIDATE_USER)) { if ($objp->fk_user_valid > 0) $userstatic->fetch($objp->fk_user_valid); $this->info_box_contents[$line][] = array( 'td' => 'class="right"', - 'text' => (($objp->fk_user_valid > 0)?$userstatic->getNomUrl(1):''), + 'text' => (($objp->fk_user_valid > 0) ? $userstatic->getNomUrl(1) : ''), 'asis' => 1, ); } @@ -174,7 +174,7 @@ class box_commandes extends ModeleBoxes $line++; } - if ($num==0) $this->info_box_contents[$line][0] = array('td' => 'class="center"','text'=>$langs->trans("NoRecordedOrders")); + if ($num == 0) $this->info_box_contents[$line][0] = array('td' => 'class="center"', 'text'=>$langs->trans("NoRecordedOrders")); $this->db->free($result); } else { diff --git a/htdocs/core/boxes/box_comptes.php b/htdocs/core/boxes/box_comptes.php index 00f5722076c..b3f23817712 100644 --- a/htdocs/core/boxes/box_comptes.php +++ b/htdocs/core/boxes/box_comptes.php @@ -33,10 +33,10 @@ include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; */ class box_comptes extends ModeleBoxes { - public $boxcode="currentaccounts"; - public $boximg="object_bill"; - public $boxlabel="BoxCurrentAccounts"; - public $depends = array("banque"); // Box active if module banque active + public $boxcode = "currentaccounts"; + public $boximg = "object_bill"; + public $boxlabel = "BoxCurrentAccounts"; + public $depends = array("banque"); // Box active if module banque active /** * @var DoliDB Database handler. @@ -63,10 +63,10 @@ class box_comptes extends ModeleBoxes $this->db = $db; // disable module for such cases - $listofmodulesforexternal=explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); - if (! in_array('banque', $listofmodulesforexternal) && ! empty($user->socid)) $this->enabled=0; // disabled for external users + $listofmodulesforexternal = explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); + if (!in_array('banque', $listofmodulesforexternal) && !empty($user->socid)) $this->enabled = 0; // disabled for external users - $this->hidden = ! ($user->rights->banque->lire); + $this->hidden = !($user->rights->banque->lire); } /** @@ -79,25 +79,25 @@ class box_comptes extends ModeleBoxes { global $user, $langs, $conf; - $this->max=$max; + $this->max = $max; $this->info_box_head = array('text' => $langs->trans("BoxTitleCurrentAccounts")); if ($user->rights->banque->lire) { $sql = "SELECT b.rowid, b.ref, b.label, b.bank,b.number, b.courant, b.clos, b.rappro, b.url"; - $sql.= ", b.code_banque, b.code_guichet, b.cle_rib, b.bic, b.iban_prefix as iban"; - $sql.= ", b.domiciliation, b.proprio, b.owner_address"; - $sql.= ", b.account_number, b.currency_code"; - $sql.= ", b.min_allowed, b.min_desired, comment"; - $sql.= ', b.fk_accountancy_journal'; - $sql.= ', aj.code as accountancy_journal'; - $sql.= " FROM ".MAIN_DB_PREFIX."bank_account as b"; - $sql.= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'accounting_journal as aj ON aj.rowid=b.fk_accountancy_journal'; - $sql.= " WHERE b.entity = ".$conf->entity; - $sql.= " AND clos = 0"; + $sql .= ", b.code_banque, b.code_guichet, b.cle_rib, b.bic, b.iban_prefix as iban"; + $sql .= ", b.domiciliation, b.proprio, b.owner_address"; + $sql .= ", b.account_number, b.currency_code"; + $sql .= ", b.min_allowed, b.min_desired, comment"; + $sql .= ', b.fk_accountancy_journal'; + $sql .= ', aj.code as accountancy_journal'; + $sql .= " FROM ".MAIN_DB_PREFIX."bank_account as b"; + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'accounting_journal as aj ON aj.rowid=b.fk_accountancy_journal'; + $sql .= " WHERE b.entity = ".$conf->entity; + $sql .= " AND clos = 0"; //$sql.= " AND courant = 1"; - $sql.= " ORDER BY label"; - $sql.= $this->db->plimit($max, 0); + $sql .= " ORDER BY label"; + $sql .= $this->db->plimit($max, 0); dol_syslog(get_class($this)."::loadBox", LOG_DEBUG); $result = $this->db->query($sql); @@ -118,7 +118,7 @@ class box_comptes extends ModeleBoxes $account_static->account_number = $objp->account_number; $account_static->currency_code = $objp->currency_code; $account_static->accountancy_journal = $objp->accountancy_journal; - $solde=$account_static->solde(0); + $solde = $account_static->solde(0); $solde_total[$objp->currency_code] += $solde; diff --git a/htdocs/core/boxes/box_contracts.php b/htdocs/core/boxes/box_contracts.php index 36a4f5416f9..75fbc207134 100644 --- a/htdocs/core/boxes/box_contracts.php +++ b/htdocs/core/boxes/box_contracts.php @@ -31,10 +31,10 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_contracts extends ModeleBoxes { - public $boxcode="lastcontracts"; - public $boximg="object_contract"; - public $boxlabel="BoxLastContracts"; - public $depends = array("contrat"); // conf->contrat->enabled + public $boxcode = "lastcontracts"; + public $boximg = "object_contract"; + public $boxlabel = "BoxLastContracts"; + public $depends = array("contrat"); // conf->contrat->enabled /** * @var DoliDB Database handler. @@ -59,7 +59,7 @@ class box_contracts extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->contrat->lire); + $this->hidden = !($user->rights->contrat->lire); } /** @@ -72,7 +72,7 @@ class box_contracts extends ModeleBoxes { global $user, $langs, $conf; - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; @@ -80,27 +80,27 @@ class box_contracts extends ModeleBoxes if ($user->rights->contrat->lire) { - $contractstatic=new Contrat($this->db); - $thirdpartytmp=new Societe($this->db); + $contractstatic = new Contrat($this->db); + $thirdpartytmp = new Societe($this->db); $sql = "SELECT s.nom as name, s.rowid as socid, s.email, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; - $sql.= " c.rowid, c.ref, c.statut as fk_statut, c.date_contrat, c.datec, c.fin_validite, c.date_cloture"; - $sql.= ", c.ref_customer, c.ref_supplier"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE c.fk_soc = s.rowid"; - $sql.= " AND c.entity = ".$conf->entity; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql.= " ORDER BY c.date_contrat DESC, c.ref DESC "; - else $sql.= " ORDER BY c.tms DESC, c.ref DESC "; - $sql.= $this->db->plimit($max, 0); + $sql .= " c.rowid, c.ref, c.statut as fk_statut, c.date_contrat, c.datec, c.fin_validite, c.date_cloture"; + $sql .= ", c.ref_customer, c.ref_supplier"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE c.fk_soc = s.rowid"; + $sql .= " AND c.entity = ".$conf->entity; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql .= " ORDER BY c.date_contrat DESC, c.ref DESC "; + else $sql .= " ORDER BY c.tms DESC, c.ref DESC "; + $sql .= $this->db->plimit($max, 0); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); - $now=dol_now(); + $now = dol_now(); $line = 0; @@ -110,17 +110,17 @@ class box_contracts extends ModeleBoxes { $objp = $this->db->fetch_object($resql); - $datec=$this->db->jdate($objp->datec); - $dateterm=$this->db->jdate($objp->fin_validite); - $dateclose=$this->db->jdate($objp->date_cloture); + $datec = $this->db->jdate($objp->datec); + $dateterm = $this->db->jdate($objp->fin_validite); + $dateclose = $this->db->jdate($objp->date_cloture); $late = ''; - $contractstatic->statut=$objp->fk_statut; - $contractstatic->id=$objp->rowid; - $contractstatic->ref=$objp->ref; + $contractstatic->statut = $objp->fk_statut; + $contractstatic->id = $objp->rowid; + $contractstatic->ref = $objp->ref; $contractstatic->ref_customer = $objp->ref_customer; $contractstatic->ref_supplier = $objp->ref_supplier; - $result=$contractstatic->fetch_lines(); + $result = $contractstatic->fetch_lines(); $thirdpartytmp->name = $objp->name; $thirdpartytmp->id = $objp->socid; @@ -162,7 +162,7 @@ class box_contracts extends ModeleBoxes $line++; } - if ($num==0) + if ($num == 0) $this->info_box_contents[$line][0] = array( 'td' => 'class="center opacitymedium"', 'text'=>$langs->trans("NoRecordedContracts"), diff --git a/htdocs/core/boxes/box_external_rss.php b/htdocs/core/boxes/box_external_rss.php index e0a6475310f..93ac43d6c22 100644 --- a/htdocs/core/boxes/box_external_rss.php +++ b/htdocs/core/boxes/box_external_rss.php @@ -34,9 +34,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_external_rss extends ModeleBoxes { - public $boxcode="lastrssinfos"; - public $boximg="object_rss"; - public $boxlabel="BoxLastRssInfos"; + public $boxcode = "lastrssinfos"; + public $boximg = "object_rss"; + public $boxlabel = "BoxLastRssInfos"; public $depends = array("externalrss"); /** @@ -44,7 +44,7 @@ class box_external_rss extends ModeleBoxes */ public $db; - public $paramdef; // Params of box definition (not user params) + public $paramdef; // Params of box definition (not user params) public $info_box_head = array(); public $info_box_contents = array(); @@ -58,8 +58,8 @@ class box_external_rss extends ModeleBoxes */ public function __construct($db, $param) { - $this->db=$db; - $this->paramdef=$param; + $this->db = $db; + $this->paramdef = $param; } /** @@ -74,93 +74,93 @@ class box_external_rss extends ModeleBoxes global $user, $langs, $conf; $langs->load("boxes"); - $this->max=$max; + $this->max = $max; // On recupere numero de param de la boite preg_match('/^([0-9]+) /', $this->paramdef, $reg); - $site=$reg[1]; + $site = $reg[1]; // Create dir nor required // documents/externalrss is created by module activation // documents/externalrss/tmp is created by rssparser - $keyforparamurl="EXTERNAL_RSS_URLRSS_".$site; - $keyforparamtitle="EXTERNAL_RSS_TITLE_".$site; + $keyforparamurl = "EXTERNAL_RSS_URLRSS_".$site; + $keyforparamtitle = "EXTERNAL_RSS_TITLE_".$site; // Get RSS feed - $url=$conf->global->$keyforparamurl; + $url = $conf->global->$keyforparamurl; - $rssparser=new RssParser($this->db); + $rssparser = new RssParser($this->db); $result = $rssparser->parser($url, $this->max, $cachedelay, $conf->externalrss->dir_temp); // INFO on channel - $description=$rssparser->getDescription(); - $link=$rssparser->getLink(); + $description = $rssparser->getDescription(); + $link = $rssparser->getLink(); - $title=$langs->trans("BoxTitleLastRssInfos", $max, $conf->global->$keyforparamtitle); - if ($result < 0 || ! empty($rssparser->error)) + $title = $langs->trans("BoxTitleLastRssInfos", $max, $conf->global->$keyforparamtitle); + if ($result < 0 || !empty($rssparser->error)) { // Show warning - $title.=" ".img_error($langs->trans("FailedToRefreshDataInfoNotUpToDate", ($rssparser->getLastFetchDate()?dol_print_date($rssparser->getLastFetchDate(), "dayhourtext"):$langs->trans("Unknown")))); - $this->info_box_head = array('text' => $title,'limit' => 0); + $title .= " ".img_error($langs->trans("FailedToRefreshDataInfoNotUpToDate", ($rssparser->getLastFetchDate() ?dol_print_date($rssparser->getLastFetchDate(), "dayhourtext") : $langs->trans("Unknown")))); + $this->info_box_head = array('text' => $title, 'limit' => 0); } else { $this->info_box_head = array( 'text' => $title, 'sublink' => $link, - 'subtext'=>$langs->trans("LastRefreshDate").': '.($rssparser->getLastFetchDate()?dol_print_date($rssparser->getLastFetchDate(), "dayhourtext"):$langs->trans("Unknown")), - 'subpicto'=>'help', + 'subtext'=>$langs->trans("LastRefreshDate").': '.($rssparser->getLastFetchDate() ?dol_print_date($rssparser->getLastFetchDate(), "dayhourtext") : $langs->trans("Unknown")), + 'subpicto'=>'globe', 'target'=>'_blank', ); } // INFO on items - $items=$rssparser->getItems(); + $items = $rssparser->getItems(); //print '
'.print_r($items,true).'
'; - $nbitems=count($items); - for($line = 0; $line < $max && $line < $nbitems; $line++) + $nbitems = count($items); + for ($line = 0; $line < $max && $line < $nbitems; $line++) { $item = $items[$line]; // Feed common fields - $href = $item['link']; + $href = $item['link']; $title = urldecode($item['title']); - $date = $item['date_timestamp']; // date will be empty if conversion into timestamp failed + $date = $item['date_timestamp']; // date will be empty if conversion into timestamp failed if ($rssparser->getFormat() == 'rss') // If RSS { - if (! $date && isset($item['pubdate'])) $date=$item['pubdate']; - if (! $date && isset($item['dc']['date'])) $date=$item['dc']['date']; + if (!$date && isset($item['pubdate'])) $date = $item['pubdate']; + if (!$date && isset($item['dc']['date'])) $date = $item['dc']['date']; //$item['dc']['language'] //$item['dc']['publisher'] } if ($rssparser->getFormat() == 'atom') // If Atom { - if (! $date && isset($item['issued'])) $date=$item['issued']; - if (! $date && isset($item['modified'])) $date=$item['modified']; + if (!$date && isset($item['issued'])) $date = $item['issued']; + if (!$date && isset($item['modified'])) $date = $item['modified']; //$item['issued'] //$item['modified'] //$item['atom_content'] } - if (is_numeric($date)) $date=dol_print_date($date, "dayhour"); + if (is_numeric($date)) $date = dol_print_date($date, "dayhour"); $isutf8 = utf8_check($title); - if (! $isutf8 && $conf->file->character_set_client == 'UTF-8') $title=utf8_encode($title); - elseif ($isutf8 && $conf->file->character_set_client == 'ISO-8859-1') $title=utf8_decode($title); + if (!$isutf8 && $conf->file->character_set_client == 'UTF-8') $title = utf8_encode($title); + elseif ($isutf8 && $conf->file->character_set_client == 'ISO-8859-1') $title = utf8_decode($title); - $title=preg_replace("/([[:alnum:]])\?([[:alnum:]])/", "\\1'\\2", $title); // Gere probleme des apostrophes mal codee/decodee par utf8 - $title=preg_replace("/^\s+/", "", $title); // Supprime espaces de debut - $this->info_box_contents["$href"]="$title"; + $title = preg_replace("/([[:alnum:]])\?([[:alnum:]])/", "\\1'\\2", $title); // Gere probleme des apostrophes mal codee/decodee par utf8 + $title = preg_replace("/^\s+/", "", $title); // Supprime espaces de debut + $this->info_box_contents["$href"] = "$title"; $tooltip = $title; - $description = ! empty($item['description'])?$item['description']:''; + $description = !empty($item['description']) ? $item['description'] : ''; $isutf8 = utf8_check($description); - if (! $isutf8 && $conf->file->character_set_client == 'UTF-8') $description=utf8_encode($description); - elseif ($isutf8 && $conf->file->character_set_client == 'ISO-8859-1') $description=utf8_decode($description); - $description=preg_replace("/([[:alnum:]])\?([[:alnum:]])/", "\\1'\\2", $description); - $description=preg_replace("/^\s+/", "", $description); - $description=str_replace("\r\n", "", $description); - $tooltip.= '
'.$description; + if (!$isutf8 && $conf->file->character_set_client == 'UTF-8') $description = utf8_encode($description); + elseif ($isutf8 && $conf->file->character_set_client == 'ISO-8859-1') $description = utf8_decode($description); + $description = preg_replace("/([[:alnum:]])\?([[:alnum:]])/", "\\1'\\2", $description); + $description = preg_replace("/^\s+/", "", $description); + $description = str_replace("\r\n", "", $description); + $tooltip .= '
'.$description; $this->info_box_contents[$line][0] = array( 'td' => 'class="left" width="16"', diff --git a/htdocs/core/boxes/box_factures.php b/htdocs/core/boxes/box_factures.php index 65724f5fa4b..ebaff31268d 100644 --- a/htdocs/core/boxes/box_factures.php +++ b/htdocs/core/boxes/box_factures.php @@ -30,9 +30,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_factures extends ModeleBoxes { - public $boxcode="lastcustomerbills"; - public $boximg="object_bill"; - public $boxlabel="BoxLastCustomerBills"; + public $boxcode = "lastcustomerbills"; + public $boximg = "object_bill"; + public $boxlabel = "BoxLastCustomerBills"; public $depends = array("facture"); /** @@ -58,7 +58,7 @@ class box_factures extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->facture->lire); + $this->hidden = !($user->rights->facture->lire); } /** @@ -71,7 +71,7 @@ class box_factures extends ModeleBoxes { global $conf, $user, $langs; - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; @@ -81,7 +81,7 @@ class box_factures extends ModeleBoxes $langs->load("bills"); - $text = $langs->trans("BoxTitleLast".($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE?"":"Modified")."CustomerBills", $max); + $text = $langs->trans("BoxTitleLast".($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE ? "" : "Modified")."CustomerBills", $max); $this->info_box_head = array( 'text' => $text, 'limit'=> dol_strlen($text) @@ -89,29 +89,29 @@ class box_factures extends ModeleBoxes if ($user->rights->facture->lire) { $sql = "SELECT f.rowid as facid"; - $sql.= ", f.ref, f.type, f.total as total_ht"; - $sql.= ", f.tva as total_tva"; - $sql.= ", f.total_ttc"; - $sql.= ", f.datef as df"; - $sql.= ", f.paye, f.fk_statut, f.datec, f.tms"; - $sql.= ", s.rowid as socid, s.nom as name, s.code_client, s.email, s.tva_intra, s.code_compta, s.siren as idprof1, s.siret as idprof2, s.ape as idprof3, s.idprof4, s.idprof5, s.idprof6"; - $sql.= ", f.date_lim_reglement as datelimite"; - $sql.= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= ")"; - $sql.= " WHERE f.fk_soc = s.rowid"; - $sql.= " AND f.entity IN (".getEntity('invoice').")"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql.= " ORDER BY f.datef DESC, f.ref DESC "; - else $sql.= " ORDER BY f.tms DESC, f.ref DESC "; - $sql.= $this->db->plimit($max, 0); + $sql .= ", f.ref, f.type, f.total as total_ht"; + $sql .= ", f.tva as total_tva"; + $sql .= ", f.total_ttc"; + $sql .= ", f.datef as df"; + $sql .= ", f.paye, f.fk_statut, f.datec, f.tms"; + $sql .= ", s.rowid as socid, s.nom as name, s.code_client, s.email, s.tva_intra, s.code_compta, s.siren as idprof1, s.siret as idprof2, s.ape as idprof3, s.idprof4, s.idprof5, s.idprof6"; + $sql .= ", f.date_lim_reglement as datelimite"; + $sql .= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= ")"; + $sql .= " WHERE f.fk_soc = s.rowid"; + $sql .= " AND f.entity IN (".getEntity('invoice').")"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql .= " ORDER BY f.datef DESC, f.ref DESC "; + else $sql .= " ORDER BY f.tms DESC, f.ref DESC "; + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) { $num = $this->db->num_rows($result); - $now=dol_now(); + $now = dol_now(); $line = 0; $l_due_date = $langs->trans('Late').' ('.$langs->trans('DateDue').': %s)'; @@ -179,7 +179,7 @@ class box_factures extends ModeleBoxes $line++; } - if ($num==0) + if ($num == 0) $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoRecordedInvoices"), diff --git a/htdocs/core/boxes/box_factures_fourn.php b/htdocs/core/boxes/box_factures_fourn.php index 9eb836fe1e2..30f3cd503c2 100644 --- a/htdocs/core/boxes/box_factures_fourn.php +++ b/htdocs/core/boxes/box_factures_fourn.php @@ -31,10 +31,10 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_factures_fourn extends ModeleBoxes { - public $boxcode="lastsupplierbills"; - public $boximg="object_bill"; - public $boxlabel="BoxLastSupplierBills"; - public $depends = array("facture","fournisseur"); + public $boxcode = "lastsupplierbills"; + public $boximg = "object_bill"; + public $boxlabel = "BoxLastSupplierBills"; + public $depends = array("facture", "fournisseur"); /** * @var DoliDB Database handler. @@ -59,7 +59,7 @@ class box_factures_fourn extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->fournisseur->facture->lire); + $this->hidden = !($user->rights->fournisseur->facture->lire); } /** @@ -72,7 +72,7 @@ class box_factures_fourn extends ModeleBoxes { global $conf, $user, $langs; - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; @@ -81,32 +81,32 @@ class box_factures_fourn extends ModeleBoxes $thirdpartytmp = new Fournisseur($this->db); $this->info_box_head = array( - 'text' => $langs->trans("BoxTitleLast".($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE?"":"Modified")."SupplierBills", $max) + 'text' => $langs->trans("BoxTitleLast".($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE ? "" : "Modified")."SupplierBills", $max) ); if ($user->rights->fournisseur->facture->lire) { $sql = "SELECT s.nom as name, s.rowid as socid,"; - $sql.= " s.code_fournisseur, s.email,"; - $sql.= " s.logo,"; - $sql.= " f.rowid as facid, f.ref, f.ref_supplier,"; - $sql.= " f.total_ht,"; - $sql.= " f.total_tva,"; - $sql.= " f.total_ttc,"; - $sql.= " f.paye, f.fk_statut,"; - $sql.= ' f.datef as df,'; - $sql.= ' f.datec as datec,'; - $sql.= ' f.date_lim_reglement as datelimite, f.tms, f.type'; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - $sql.= ", ".MAIN_DB_PREFIX."facture_fourn as f"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE f.fk_soc = s.rowid"; - $sql.= " AND f.entity = ".$conf->entity; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql.= " ORDER BY f.datef DESC, f.ref DESC "; - else $sql.= " ORDER BY f.tms DESC, f.ref DESC "; - $sql.= $this->db->plimit($max, 0); + $sql .= " s.code_fournisseur, s.email,"; + $sql .= " s.logo,"; + $sql .= " f.rowid as facid, f.ref, f.ref_supplier,"; + $sql .= " f.total_ht,"; + $sql .= " f.total_tva,"; + $sql .= " f.total_ttc,"; + $sql .= " f.paye, f.fk_statut,"; + $sql .= ' f.datef as df,'; + $sql .= ' f.datec as datec,'; + $sql .= ' f.date_lim_reglement as datelimite, f.tms, f.type'; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; + $sql .= ", ".MAIN_DB_PREFIX."facture_fourn as f"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE f.fk_soc = s.rowid"; + $sql .= " AND f.entity = ".$conf->entity; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql .= " ORDER BY f.datef DESC, f.ref DESC "; + else $sql .= " ORDER BY f.tms DESC, f.ref DESC "; + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) @@ -114,13 +114,13 @@ class box_factures_fourn extends ModeleBoxes $num = $this->db->num_rows($result); $line = 0; - $l_due_date = $langs->trans('Late').' ('.$langs->trans('DateDue').': %s)'; + $l_due_date = $langs->trans('Late').' ('.$langs->trans('DateDue').': %s)'; while ($line < $num) { $objp = $this->db->fetch_object($result); - $datelimite=$this->db->jdate($objp->datelimite); - $date=$this->db->jdate($objp->df); - $datem=$this->db->jdate($objp->tms); + $datelimite = $this->db->jdate($objp->datelimite); + $date = $this->db->jdate($objp->df); + $datem = $this->db->jdate($objp->tms); $facturestatic->id = $objp->facid; $facturestatic->ref = $objp->ref; @@ -141,7 +141,7 @@ class box_factures_fourn extends ModeleBoxes $late = ''; if ($facturestatic->hasDelay()) { - $late=img_warning(sprintf($l_due_date, dol_print_date($datelimite, 'day'))); + $late = img_warning(sprintf($l_due_date, dol_print_date($datelimite, 'day'))); } $this->info_box_contents[$line][] = array( @@ -154,7 +154,7 @@ class box_factures_fourn extends ModeleBoxes $this->info_box_contents[$line][] = array( 'td' => 'class="tdoverflowmax150"', 'text' => $objp->ref_supplier, - 'tooltip' => $langs->trans('SupplierInvoice').': '.($objp->ref?$objp->ref:$objp->facid).'
'.$langs->trans('RefSupplier').': '.$objp->ref_supplier, + 'tooltip' => $langs->trans('SupplierInvoice').': '.($objp->ref ? $objp->ref : $objp->facid).'
'.$langs->trans('RefSupplier').': '.$objp->ref_supplier, 'url' => DOL_URL_ROOT."/fourn/facture/card.php?facid=".$objp->facid, ); @@ -176,7 +176,7 @@ class box_factures_fourn extends ModeleBoxes $fac = new FactureFournisseur($this->db); $fac->fetch($objp->facid); - $alreadypaid=$fac->getSommePaiement(); + $alreadypaid = $fac->getSommePaiement(); $this->info_box_contents[$line][] = array( 'td' => 'class="right" width="18"', 'text' => $facturestatic->LibStatut($objp->paye, $objp->fk_statut, 3, $alreadypaid, $objp->type), @@ -185,7 +185,7 @@ class box_factures_fourn extends ModeleBoxes $line++; } - if ($num==0) + if ($num == 0) $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoModifiedSupplierBills"), diff --git a/htdocs/core/boxes/box_factures_fourn_imp.php b/htdocs/core/boxes/box_factures_fourn_imp.php index b1b108931b1..c2b5e7c705e 100644 --- a/htdocs/core/boxes/box_factures_fourn_imp.php +++ b/htdocs/core/boxes/box_factures_fourn_imp.php @@ -33,7 +33,7 @@ class box_factures_fourn_imp extends ModeleBoxes public $boxcode = "oldestunpaidsupplierbills"; public $boximg = "object_bill"; public $boxlabel = "BoxOldestUnpaidSupplierBills"; - public $depends = array("facture","fournisseur"); + public $depends = array("facture", "fournisseur"); /** * @var DoliDB Database handler. @@ -58,7 +58,7 @@ class box_factures_fourn_imp extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->fournisseur->facture->lire); + $this->hidden = !($user->rights->fournisseur->facture->lire); } /** @@ -71,35 +71,35 @@ class box_factures_fourn_imp extends ModeleBoxes { global $conf, $user, $langs; - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; - $facturestatic=new FactureFournisseur($this->db); + $facturestatic = new FactureFournisseur($this->db); include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; - $thirdpartytmp=new Fournisseur($this->db); + $thirdpartytmp = new Fournisseur($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleOldestUnpaidSupplierBills", $max)); if ($user->rights->fournisseur->facture->lire) { $sql = "SELECT s.nom as name, s.rowid as socid,"; - $sql.= " f.rowid as facid, f.ref, f.ref_supplier, f.date_lim_reglement as datelimite,"; - $sql.= " f.datef as df,"; - $sql.= " f.total_ht as total_ht,"; - $sql.= " f.tva as total_tva,"; - $sql.= " f.total_ttc,"; - $sql.= " f.paye, f.fk_statut, f.type"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - $sql.= ",".MAIN_DB_PREFIX."facture_fourn as f"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE f.fk_soc = s.rowid"; - $sql.= " AND f.entity = ".$conf->entity; - $sql.= " AND f.paye=0"; - $sql.= " AND fk_statut = 1"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - $sql.= " ORDER BY datelimite DESC, f.ref_supplier DESC "; - $sql.= $this->db->plimit($max, 0); + $sql .= " f.rowid as facid, f.ref, f.ref_supplier, f.date_lim_reglement as datelimite,"; + $sql .= " f.datef as df,"; + $sql .= " f.total_ht as total_ht,"; + $sql .= " f.tva as total_tva,"; + $sql .= " f.total_ttc,"; + $sql .= " f.paye, f.fk_statut, f.type"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; + $sql .= ",".MAIN_DB_PREFIX."facture_fourn as f"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE f.fk_soc = s.rowid"; + $sql .= " AND f.entity = ".$conf->entity; + $sql .= " AND f.paye=0"; + $sql .= " AND fk_statut = 1"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + $sql .= " ORDER BY datelimite DESC, f.ref_supplier DESC "; + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) @@ -114,9 +114,9 @@ class box_factures_fourn_imp extends ModeleBoxes while ($line < $num) { $objp = $this->db->fetch_object($result); - $datelimite=$this->db->jdate($objp->datelimite); - $date=$this->db->jdate($objp->df); - $datem=$this->db->jdate($objp->tms); + $datelimite = $this->db->jdate($objp->datelimite); + $date = $this->db->jdate($objp->df); + $datem = $this->db->jdate($objp->tms); $facturestatic->id = $objp->facid; $facturestatic->ref = $objp->ref; $facturestatic->total_ht = $objp->total_ht; @@ -130,12 +130,12 @@ class box_factures_fourn_imp extends ModeleBoxes $thirdpartytmp->code_fournisseur = $objp->code_fournisseur; $thirdpartytmp->logo = $objp->logo; - $late=''; + $late = ''; if ($facturestatic->hasDelay()) { - $late=img_warning(sprintf($l_due_date, dol_print_date($datelimite, 'day'))); + $late = img_warning(sprintf($l_due_date, dol_print_date($datelimite, 'day'))); } - $tooltip = $langs->trans('SupplierInvoice') . ': ' . ($objp->ref?$objp->ref:$objp->facid) . '
' . $langs->trans('RefSupplier') . ': ' . $objp->ref_supplier; + $tooltip = $langs->trans('SupplierInvoice').': '.($objp->ref ? $objp->ref : $objp->facid).'
'.$langs->trans('RefSupplier').': '.$objp->ref_supplier; $this->info_box_contents[$line][] = array( 'td' => 'class="nowraponall"', @@ -162,7 +162,7 @@ class box_factures_fourn_imp extends ModeleBoxes $fac = new FactureFournisseur($this->db); $fac->fetch($objp->facid); - $alreadypaid=$fac->getSommePaiement(); + $alreadypaid = $fac->getSommePaiement(); $this->info_box_contents[$line][] = array( 'td' => 'class="right" width="18"', 'text' => $facturestatic->LibStatut($objp->paye, $objp->fk_statut, 3, $alreadypaid, $objp->type), @@ -171,7 +171,7 @@ class box_factures_fourn_imp extends ModeleBoxes $line++; } - if ($num==0) + if ($num == 0) $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoUnpaidSupplierBills"), diff --git a/htdocs/core/boxes/box_ficheinter.php b/htdocs/core/boxes/box_ficheinter.php index a81b0cf3b86..e289c83d541 100644 --- a/htdocs/core/boxes/box_ficheinter.php +++ b/htdocs/core/boxes/box_ficheinter.php @@ -31,10 +31,10 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_ficheinter extends ModeleBoxes { - public $boxcode="ficheinter"; - public $boximg="object_intervention"; - public $boxlabel="BoxFicheInter"; - public $depends = array("ficheinter"); // conf->contrat->enabled + public $boxcode = "ficheinter"; + public $boximg = "object_intervention"; + public $boxlabel = "BoxFicheInter"; + public $depends = array("ficheinter"); // conf->contrat->enabled /** * @var DoliDB Database handler. @@ -59,7 +59,7 @@ class box_ficheinter extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->ficheinter->lire); + $this->hidden = !($user->rights->ficheinter->lire); } /** @@ -72,37 +72,37 @@ class box_ficheinter extends ModeleBoxes { global $user, $langs, $conf; - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; - $ficheinterstatic=new Fichinter($this->db); + $ficheinterstatic = new Fichinter($this->db); $companystatic = new Societe($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleLastFicheInter", $max)); - if (! empty($user->rights->ficheinter->lire)) + if (!empty($user->rights->ficheinter->lire)) { $sql = "SELECT f.rowid, f.ref, f.fk_soc, f.fk_statut,"; - $sql.= " f.datec,"; - $sql.= " f.date_valid as datev,"; - $sql.= " f.tms as datem,"; - $sql.= " s.nom as name, s.rowid as socid, s.client, s.email as semail"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - if (! $user->rights->societe->client->voir) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= ", ".MAIN_DB_PREFIX."fichinter as f"; - $sql.= " WHERE f.fk_soc = s.rowid "; - $sql.= " AND f.entity = ".$conf->entity; - if (! $user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - $sql.= " ORDER BY f.tms DESC"; - $sql.= $this->db->plimit($max, 0); + $sql .= " f.datec,"; + $sql .= " f.date_valid as datev,"; + $sql .= " f.tms as datem,"; + $sql .= " s.nom as name, s.rowid as socid, s.client, s.email as semail"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; + if (!$user->rights->societe->client->voir) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= ", ".MAIN_DB_PREFIX."fichinter as f"; + $sql .= " WHERE f.fk_soc = s.rowid "; + $sql .= " AND f.entity = ".$conf->entity; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + $sql .= " ORDER BY f.tms DESC"; + $sql .= $this->db->plimit($max, 0); dol_syslog(get_class($this).'::loadBox', LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); - $now=dol_now(); + $now = dol_now(); $i = 0; @@ -111,9 +111,9 @@ class box_ficheinter extends ModeleBoxes $objp = $this->db->fetch_object($resql); $datec = $this->db->jdate($objp->datec); - $ficheinterstatic->statut=$objp->fk_statut; - $ficheinterstatic->id=$objp->rowid; - $ficheinterstatic->ref=$objp->ref; + $ficheinterstatic->statut = $objp->fk_statut; + $ficheinterstatic->id = $objp->rowid; + $ficheinterstatic->ref = $objp->ref; $companystatic->id = $objp->socid; $companystatic->name = $objp->name; @@ -145,7 +145,7 @@ class box_ficheinter extends ModeleBoxes $i++; } - if ($num==0) $this->info_box_contents[$i][] = array('td' => 'class="center"','text'=>$langs->trans("NoRecordedInterventions")); + if ($num == 0) $this->info_box_contents[$i][] = array('td' => 'class="center"', 'text'=>$langs->trans("NoRecordedInterventions")); $this->db->free($resql); } diff --git a/htdocs/core/boxes/box_members.php b/htdocs/core/boxes/box_members.php index 242f26e5d60..2b2d8418e47 100644 --- a/htdocs/core/boxes/box_members.php +++ b/htdocs/core/boxes/box_members.php @@ -32,9 +32,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_members extends ModeleBoxes { - public $boxcode="lastmembers"; - public $boximg="object_user"; - public $boxlabel="BoxLastMembers"; + public $boxcode = "lastmembers"; + public $boximg = "object_user"; + public $boxlabel = "BoxLastMembers"; public $depends = array("adherent"); /** @@ -62,10 +62,10 @@ class box_members extends ModeleBoxes $this->db = $db; // disable module for such cases - $listofmodulesforexternal=explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); - if (! in_array('adherent', $listofmodulesforexternal) && ! empty($user->socid)) $this->enabled=0; // disabled for external users + $listofmodulesforexternal = explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); + if (!in_array('adherent', $listofmodulesforexternal) && !empty($user->socid)) $this->enabled = 0; // disabled for external users - $this->hidden = ! ($user->rights->adherent->lire); + $this->hidden = !($user->rights->adherent->lire); } /** @@ -79,23 +79,23 @@ class box_members extends ModeleBoxes global $user, $langs, $conf; $langs->load("boxes"); - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; - $memberstatic=new Adherent($this->db); + $memberstatic = new Adherent($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleLastModifiedMembers", $max)); if ($user->rights->adherent->lire) { $sql = "SELECT a.rowid, a.lastname, a.firstname, a.societe as company, a.fk_soc,"; - $sql.= " a.datec, a.tms, a.statut as status, a.datefin as date_end_subscription,"; - $sql.= " t.subscription"; - $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."adherent_type as t"; - $sql.= " WHERE a.entity IN (".getEntity('member').")"; - $sql.= " AND a.fk_adherent_type = t.rowid"; - $sql.= " ORDER BY a.tms DESC"; - $sql.= $this->db->plimit($max, 0); + $sql .= " a.datec, a.tms, a.statut as status, a.datefin as date_end_subscription,"; + $sql .= " t.subscription"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."adherent_type as t"; + $sql .= " WHERE a.entity IN (".getEntity('member').")"; + $sql .= " AND a.fk_adherent_type = t.rowid"; + $sql .= " ORDER BY a.tms DESC"; + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) @@ -106,21 +106,21 @@ class box_members extends ModeleBoxes while ($line < $num) { $objp = $this->db->fetch_object($result); - $datec=$this->db->jdate($objp->datec); - $datem=$this->db->jdate($objp->tms); + $datec = $this->db->jdate($objp->datec); + $datem = $this->db->jdate($objp->tms); - $memberstatic->lastname=$objp->lastname; - $memberstatic->firstname=$objp->firstname; + $memberstatic->lastname = $objp->lastname; + $memberstatic->firstname = $objp->firstname; $memberstatic->id = $objp->rowid; $memberstatic->ref = $objp->rowid; $memberstatic->company = $objp->company; - if (! empty($objp->fk_soc)) { + if (!empty($objp->fk_soc)) { $memberstatic->socid = $objp->fk_soc; $memberstatic->fetch_thirdparty(); - $memberstatic->name=$memberstatic->thirdparty->name; + $memberstatic->name = $memberstatic->thirdparty->name; } else { - $memberstatic->name=$objp->company; + $memberstatic->name = $objp->company; } $this->info_box_contents[$line][] = array( @@ -148,7 +148,7 @@ class box_members extends ModeleBoxes $line++; } - if ($num==0) + if ($num == 0) $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoRecordedCustomers"), diff --git a/htdocs/core/boxes/box_mos.php b/htdocs/core/boxes/box_mos.php index 949f63776f6..9b863aa2d5a 100644 --- a/htdocs/core/boxes/box_mos.php +++ b/htdocs/core/boxes/box_mos.php @@ -32,9 +32,9 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_mos extends ModeleBoxes { - public $boxcode="lastmos"; - public $boximg="object_mrp"; - public $boxlabel="BoxTitleLatestModifiedMos"; + public $boxcode = "lastmos"; + public $boximg = "object_mrp"; + public $boxlabel = "BoxTitleLatestModifiedMos"; public $depends = array("mrp"); /** @@ -60,7 +60,7 @@ class box_mos extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->bom->read); + $this->hidden = !($user->rights->bom->read); } /** @@ -87,18 +87,18 @@ class box_mos extends ModeleBoxes if ($user->rights->mrp->read) { $sql = "SELECT p.ref as product_ref"; - $sql.= ", c.rowid"; - $sql.= ", c.date_creation"; - $sql.= ", c.tms"; - $sql.= ", c.ref"; - $sql.= ", c.status"; + $sql .= ", c.rowid"; + $sql .= ", c.date_creation"; + $sql .= ", c.tms"; + $sql .= ", c.ref"; + $sql .= ", c.status"; //$sql.= ", c.fk_user_valid"; - $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; - $sql.= ", ".MAIN_DB_PREFIX."mrp_mo as c"; - $sql.= " WHERE c.fk_product = p.rowid"; - $sql.= " AND c.entity = ".$conf->entity; - $sql.= " ORDER BY c.tms DESC, c.ref DESC"; - $sql.= " ".$this->db->plimit($max, 0); + $sql .= " FROM ".MAIN_DB_PREFIX."product as p"; + $sql .= ", ".MAIN_DB_PREFIX."mrp_mo as c"; + $sql .= " WHERE c.fk_product = p.rowid"; + $sql .= " AND c.entity = ".$conf->entity; + $sql .= " ORDER BY c.tms DESC, c.ref DESC"; + $sql .= " ".$this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) { @@ -108,7 +108,7 @@ class box_mos extends ModeleBoxes while ($line < $num) { $objp = $this->db->fetch_object($result); - $datem=$this->db->jdate($objp->tms); + $datem = $this->db->jdate($objp->tms); $mostatic->id = $objp->rowid; $mostatic->ref = $objp->ref; $mostatic->id = $objp->socid; @@ -127,11 +127,11 @@ class box_mos extends ModeleBoxes 'asis' => 1, ); - if (! empty($conf->global->MRP_BOX_LAST_MOS_SHOW_VALIDATE_USER)) { + if (!empty($conf->global->MRP_BOX_LAST_MOS_SHOW_VALIDATE_USER)) { if ($objp->fk_user_valid > 0) $userstatic->fetch($objp->fk_user_valid); $this->info_box_contents[$line][] = array( 'td' => 'class="right"', - 'text' => (($objp->fk_user_valid > 0)?$userstatic->getNomUrl(1):''), + 'text' => (($objp->fk_user_valid > 0) ? $userstatic->getNomUrl(1) : ''), 'asis' => 1, ); } @@ -149,7 +149,7 @@ class box_mos extends ModeleBoxes $line++; } - if ($num==0) $this->info_box_contents[$line][0] = array('td' => 'class="center"','text'=>$langs->trans("NoRecordedOrders")); + if ($num == 0) $this->info_box_contents[$line][0] = array('td' => 'class="center"', 'text'=>$langs->trans("NoRecordedOrders")); $this->db->free($result); } else { diff --git a/htdocs/core/boxes/box_produits.php b/htdocs/core/boxes/box_produits.php index 5cccd24ad6a..374e9ab1bae 100644 --- a/htdocs/core/boxes/box_produits.php +++ b/htdocs/core/boxes/box_produits.php @@ -33,9 +33,9 @@ include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; */ class box_produits extends ModeleBoxes { - public $boxcode="lastproducts"; - public $boximg="object_product"; - public $boxlabel="BoxLastProducts"; + public $boxcode = "lastproducts"; + public $boximg = "object_product"; + public $boxlabel = "BoxLastProducts"; public $depends = array("produit"); /** @@ -59,11 +59,11 @@ class box_produits extends ModeleBoxes { global $conf, $user; - $this->db=$db; + $this->db = $db; - $listofmodulesforexternal=explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); - $tmpentry=array('enabled'=>(! empty($conf->product->enabled) || ! empty($conf->service->enabled)), 'perms'=>(! empty($user->rights->produit->lire) || ! empty($user->rights->service->lire)), 'module'=>'product|service'); - $showmode=isVisibleToUserType(($user->socid > 0 ? 1 : 0), $tmpentry, $listofmodulesforexternal); + $listofmodulesforexternal = explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); + $tmpentry = array('enabled'=>(!empty($conf->product->enabled) || !empty($conf->service->enabled)), 'perms'=>(!empty($user->rights->produit->lire) || !empty($user->rights->service->lire)), 'module'=>'product|service'); + $showmode = isVisibleToUserType(($user->socid > 0 ? 1 : 0), $tmpentry, $listofmodulesforexternal); $this->hidden = ($showmode != 1); } @@ -77,29 +77,29 @@ class box_produits extends ModeleBoxes { global $user, $langs, $conf, $hookmanager; - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; - $productstatic=new Product($this->db); + $productstatic = new Product($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleLastProducts", $max)); if ($user->rights->produit->lire || $user->rights->service->lire) { $sql = "SELECT p.rowid, p.label, p.ref, p.price, p.price_base_type, p.price_ttc, p.fk_product_type, p.tms, p.tosell, p.tobuy, p.fk_price_expression, p.entity"; - $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; - $sql.= ' WHERE p.entity IN ('.getEntity($productstatic->element).')'; - if (empty($user->rights->produit->lire)) $sql.=' AND p.fk_product_type != 0'; - if (empty($user->rights->service->lire)) $sql.=' AND p.fk_product_type != 1'; + $sql .= " FROM ".MAIN_DB_PREFIX."product as p"; + $sql .= ' WHERE p.entity IN ('.getEntity($productstatic->element).')'; + if (empty($user->rights->produit->lire)) $sql .= ' AND p.fk_product_type != 0'; + if (empty($user->rights->service->lire)) $sql .= ' AND p.fk_product_type != 1'; // Add where from hooks if (is_object($hookmanager)) { - $parameters=array('boxproductlist'=>1); - $reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook - $sql.=$hookmanager->resPrint; + $parameters = array('boxproductlist'=>1); + $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook + $sql .= $hookmanager->resPrint; } - $sql.= $this->db->order('p.datec', 'DESC'); - $sql.= $this->db->plimit($max, 0); + $sql .= $this->db->order('p.datec', 'DESC'); + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) @@ -109,16 +109,16 @@ class box_produits extends ModeleBoxes while ($line < $num) { $objp = $this->db->fetch_object($result); - $datem=$this->db->jdate($objp->tms); + $datem = $this->db->jdate($objp->tms); // Multilangs - if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active + if (!empty($conf->global->MAIN_MULTILANGS)) // si l'option est active { $sqld = "SELECT label"; - $sqld.= " FROM ".MAIN_DB_PREFIX."product_lang"; - $sqld.= " WHERE fk_product=".$objp->rowid; - $sqld.= " AND lang='". $langs->getDefaultLang() ."'"; - $sqld.= " LIMIT 1"; + $sqld .= " FROM ".MAIN_DB_PREFIX."product_lang"; + $sqld .= " WHERE fk_product=".$objp->rowid; + $sqld .= " AND lang='".$langs->getDefaultLang()."'"; + $sqld .= " LIMIT 1"; $resultd = $this->db->query($sqld); if ($resultd) @@ -147,8 +147,8 @@ class box_produits extends ModeleBoxes $price = ''; $price_base_type = ''; if (empty($conf->dynamicprices->enabled) || empty($objp->fk_price_expression)) { - $price_base_type=$langs->trans($objp->price_base_type); - $price=($objp->price_base_type == 'HT')?price($objp->price):$price=price($objp->price_ttc); + $price_base_type = $langs->trans($objp->price_base_type); + $price = ($objp->price_base_type == 'HT') ?price($objp->price) : $price = price($objp->price_ttc); } else //Parse the dynamic price { @@ -158,14 +158,14 @@ class box_produits extends ModeleBoxes if ($price_result >= 0) { if ($objp->price_base_type == 'HT') { - $price_base_type=$langs->trans("HT"); + $price_base_type = $langs->trans("HT"); } else { $price_result = $price_result * (1 + ($productstatic->tva_tx / 100)); - $price_base_type=$langs->trans("TTC"); + $price_base_type = $langs->trans("TTC"); } - $price=price($price_result); + $price = price($price_result); } } $this->info_box_contents[$line][] = array( @@ -197,7 +197,7 @@ class box_produits extends ModeleBoxes $line++; } - if ($num==0) + if ($num == 0) $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoRecordedProducts"), diff --git a/htdocs/core/boxes/box_produits_alerte_stock.php b/htdocs/core/boxes/box_produits_alerte_stock.php index 3c674cd32c0..f4a433c013d 100644 --- a/htdocs/core/boxes/box_produits_alerte_stock.php +++ b/htdocs/core/boxes/box_produits_alerte_stock.php @@ -35,9 +35,9 @@ include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; */ class box_produits_alerte_stock extends ModeleBoxes { - public $boxcode="productsalertstock"; - public $boximg="object_product"; - public $boxlabel="BoxProductsAlertStock"; + public $boxcode = "productsalertstock"; + public $boximg = "object_product"; + public $boxlabel = "BoxProductsAlertStock"; public $depends = array("produit"); /** @@ -59,13 +59,13 @@ class box_produits_alerte_stock extends ModeleBoxes */ public function __construct($db, $param = '') { - global $conf,$user; + global $conf, $user; $this->db = $db; - $listofmodulesforexternal=explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); - $tmpentry=array('enabled'=>((! empty($conf->product->enabled) || ! empty($conf->service->enabled)) && ! empty($conf->stock->enabled)), 'perms'=>($user->rights->stock->lire), 'module'=>'product|service|stock'); - $showmode=isVisibleToUserType(($user->socid > 0 ? 1 : 0), $tmpentry, $listofmodulesforexternal); + $listofmodulesforexternal = explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); + $tmpentry = array('enabled'=>((!empty($conf->product->enabled) || !empty($conf->service->enabled)) && !empty($conf->stock->enabled)), 'perms'=>($user->rights->stock->lire), 'module'=>'product|service|stock'); + $showmode = isVisibleToUserType(($user->socid > 0 ? 1 : 0), $tmpentry, $listofmodulesforexternal); $this->hidden = ($showmode != 1); } @@ -79,34 +79,34 @@ class box_produits_alerte_stock extends ModeleBoxes { global $user, $langs, $conf, $hookmanager; - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; - $productstatic=new Product($this->db); + $productstatic = new Product($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleProductsAlertStock", $max)); if (($user->rights->produit->lire || $user->rights->service->lire) && $user->rights->stock->lire) { $sql = "SELECT p.rowid, p.label, p.price, p.ref, p.price_base_type, p.price_ttc, p.fk_product_type, p.tms, p.tosell, p.tobuy, p.seuil_stock_alerte, p.entity,"; - $sql.= " SUM(".$this->db->ifsql("s.reel IS NULL", "0", "s.reel").") as total_stock"; - $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as s on p.rowid = s.fk_product"; - $sql.= ' WHERE p.entity IN ('.getEntity($productstatic->element).')'; - $sql.= " AND p.tosell = 1 AND p.seuil_stock_alerte > 0"; - if (empty($user->rights->produit->lire)) $sql.=' AND p.fk_product_type != 0'; - if (empty($user->rights->service->lire)) $sql.=' AND p.fk_product_type != 1'; + $sql .= " SUM(".$this->db->ifsql("s.reel IS NULL", "0", "s.reel").") as total_stock"; + $sql .= " FROM ".MAIN_DB_PREFIX."product as p"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as s on p.rowid = s.fk_product"; + $sql .= ' WHERE p.entity IN ('.getEntity($productstatic->element).')'; + $sql .= " AND p.tosell = 1 AND p.seuil_stock_alerte > 0"; + if (empty($user->rights->produit->lire)) $sql .= ' AND p.fk_product_type != 0'; + if (empty($user->rights->service->lire)) $sql .= ' AND p.fk_product_type != 1'; // Add where from hooks if (is_object($hookmanager)) { - $parameters=array('boxproductalertstocklist'=>1); - $reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook - $sql.=$hookmanager->resPrint; + $parameters = array('boxproductalertstocklist'=>1); + $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook + $sql .= $hookmanager->resPrint; } - $sql.= " GROUP BY p.rowid, p.ref, p.label, p.price, p.price_base_type, p.price_ttc, p.fk_product_type, p.tms, p.tosell, p.tobuy, p.seuil_stock_alerte, p.entity"; - $sql.= " HAVING SUM(".$this->db->ifsql("s.reel IS NULL", "0", "s.reel").") < p.seuil_stock_alerte"; - $sql.= $this->db->order('p.seuil_stock_alerte', 'DESC'); - $sql.= $this->db->plimit($max, 0); + $sql .= " GROUP BY p.rowid, p.ref, p.label, p.price, p.price_base_type, p.price_ttc, p.fk_product_type, p.tms, p.tosell, p.tobuy, p.seuil_stock_alerte, p.entity"; + $sql .= " HAVING SUM(".$this->db->ifsql("s.reel IS NULL", "0", "s.reel").") < p.seuil_stock_alerte"; + $sql .= $this->db->order('p.seuil_stock_alerte', 'DESC'); + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) @@ -116,18 +116,18 @@ class box_produits_alerte_stock extends ModeleBoxes $line = 0; while ($line < $num) { $objp = $this->db->fetch_object($result); - $datem=$this->db->jdate($objp->tms); + $datem = $this->db->jdate($objp->tms); $price = ''; $price_base_type = ''; // Multilangs - if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active + if (!empty($conf->global->MAIN_MULTILANGS)) // si l'option est active { $sqld = "SELECT label"; - $sqld.= " FROM ".MAIN_DB_PREFIX."product_lang"; - $sqld.= " WHERE fk_product=".$objp->rowid; - $sqld.= " AND lang='". $langs->getDefaultLang() ."'"; - $sqld.= " LIMIT 1"; + $sqld .= " FROM ".MAIN_DB_PREFIX."product_lang"; + $sqld .= " WHERE fk_product=".$objp->rowid; + $sqld .= " AND lang='".$langs->getDefaultLang()."'"; + $sqld .= " LIMIT 1"; $resultd = $this->db->query($sqld); if ($resultd) @@ -156,8 +156,8 @@ class box_produits_alerte_stock extends ModeleBoxes if (empty($conf->dynamicprices->enabled) || empty($objp->fk_price_expression)) { - $price_base_type=$langs->trans($objp->price_base_type); - $price=($objp->price_base_type == 'HT')?price($objp->price):$price=price($objp->price_ttc); + $price_base_type = $langs->trans($objp->price_base_type); + $price = ($objp->price_base_type == 'HT') ?price($objp->price) : $price = price($objp->price_ttc); } else //Parse the dynamic price { @@ -167,14 +167,14 @@ class box_produits_alerte_stock extends ModeleBoxes if ($price_result >= 0) { if ($objp->price_base_type == 'HT') { - $price_base_type=$langs->trans("HT"); + $price_base_type = $langs->trans("HT"); } else { $price_result = $price_result * (1 + ($productstatic->tva_tx / 100)); - $price_base_type=$langs->trans("TTC"); + $price_base_type = $langs->trans("TTC"); } - $price=price($price_result); + $price = price($price_result); } } @@ -190,7 +190,7 @@ class box_produits_alerte_stock extends ModeleBoxes $this->info_box_contents[$line][] = array( 'td' => 'class="center"', - 'text' => $objp->total_stock . ' / '.$objp->seuil_stock_alerte, + 'text' => $objp->total_stock.' / '.$objp->seuil_stock_alerte, 'text2'=>img_warning($langs->transnoentitiesnoconv("StockLowerThanLimit", $objp->seuil_stock_alerte)), ); @@ -208,7 +208,7 @@ class box_produits_alerte_stock extends ModeleBoxes $line++; } - if ($num==0) + if ($num == 0) $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoTooLowStockProducts"), diff --git a/htdocs/core/boxes/box_project.php b/htdocs/core/boxes/box_project.php index 9fffc92963f..c99f07ff311 100644 --- a/htdocs/core/boxes/box_project.php +++ b/htdocs/core/boxes/box_project.php @@ -31,8 +31,8 @@ include_once DOL_DOCUMENT_ROOT."/core/boxes/modules_boxes.php"; */ class box_project extends ModeleBoxes { - public $boxcode="project"; - public $boximg="object_projectpub"; + public $boxcode = "project"; + public $boximg = "object_projectpub"; public $boxlabel; //var $depends = array("projet"); @@ -62,7 +62,7 @@ class box_project extends ModeleBoxes $this->db = $db; $this->boxlabel = "OpenedProjects"; - $this->hidden = ! ($user->rights->projet->lire); + $this->hidden = !($user->rights->projet->lire); } /** @@ -75,11 +75,11 @@ class box_project extends ModeleBoxes { global $conf, $user, $langs; - $this->max=$max; + $this->max = $max; $totalMnt = 0; $totalnb = 0; - $totalnbTask=0; + $totalnbTask = 0; $textHead = $langs->trans("OpenedProjects"); $this->info_box_head = array('text' => $textHead, 'limit'=> dol_strlen($textHead)); @@ -89,20 +89,20 @@ class box_project extends ModeleBoxes include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; $projectstatic = new Project($this->db); - $socid=0; + $socid = 0; //if ($user->socid > 0) $socid = $user->socid; // For external user, no check is done on company because readability is managed by public status of project and assignement. // Get list of project id allowed to user (in a string list separated by coma) - $projectsListId=''; - if (! $user->rights->projet->all->lire) $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user, 0, 1, $socid); + $projectsListId = ''; + if (!$user->rights->projet->all->lire) $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user, 0, 1, $socid); $sql = "SELECT p.rowid, p.ref, p.title, p.fk_statut as status, p.public"; - $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; - $sql.= " WHERE p.entity IN (".getEntity('project').")"; // Only current entity or severals if permission ok - $sql.= " AND p.fk_statut = 1"; // Only open projects - if (! $user->rights->projet->all->lire) $sql.= " AND p.rowid IN (".$projectsListId.")"; // public and assigned to, or restricted to company for external users + $sql .= " FROM ".MAIN_DB_PREFIX."projet as p"; + $sql .= " WHERE p.entity IN (".getEntity('project').")"; // Only current entity or severals if permission ok + $sql .= " AND p.fk_statut = 1"; // Only open projects + if (!$user->rights->projet->all->lire) $sql .= " AND p.rowid IN (".$projectsListId.")"; // public and assigned to, or restricted to company for external users - $sql.= " ORDER BY p.datec DESC"; + $sql .= " ORDER BY p.datec DESC"; //$sql.= $this->db->plimit($max, 0); $result = $this->db->query($sql); @@ -130,10 +130,10 @@ class box_project extends ModeleBoxes 'text' => $objp->title, ); - $sql ="SELECT count(*) as nb, sum(progress) as totprogress"; - $sql.=" FROM ".MAIN_DB_PREFIX."projet as p LEFT JOIN ".MAIN_DB_PREFIX."projet_task as pt on pt.fk_projet = p.rowid"; - $sql.= " WHERE p.entity IN (".getEntity('project').')'; - $sql.=" AND p.rowid = ".$objp->rowid; + $sql = "SELECT count(*) as nb, sum(progress) as totprogress"; + $sql .= " FROM ".MAIN_DB_PREFIX."projet as p LEFT JOIN ".MAIN_DB_PREFIX."projet_task as pt on pt.fk_projet = p.rowid"; + $sql .= " WHERE p.entity IN (".getEntity('project').')'; + $sql .= " AND p.rowid = ".$objp->rowid; $resultTask = $this->db->query($sql); if ($resultTask) { $objTask = $this->db->fetch_object($resultTask); @@ -141,10 +141,10 @@ class box_project extends ModeleBoxes 'td' => 'class="right"', 'text' => $objTask->nb." ".$langs->trans("Tasks"), ); - if ($objTask->nb > 0) + if ($objTask->nb > 0) $this->info_box_contents[$i][] = array( 'td' => 'class="right"', - 'text' => round($objTask->totprogress/$objTask->nb, 0)."%", + 'text' => round($objTask->totprogress / $objTask->nb, 0)."%", ); else $this->info_box_contents[$i][] = array('td' => 'class="right"', 'text' => "N/A "); diff --git a/htdocs/core/boxes/box_prospect.php b/htdocs/core/boxes/box_prospect.php index 9d6a10b6225..54ed1c76051 100644 --- a/htdocs/core/boxes/box_prospect.php +++ b/htdocs/core/boxes/box_prospect.php @@ -34,9 +34,9 @@ include_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; */ class box_prospect extends ModeleBoxes { - public $boxcode="lastprospects"; - public $boximg="object_company"; - public $boxlabel="BoxLastProspects"; + public $boxcode = "lastprospects"; + public $boximg = "object_company"; + public $boxlabel = "BoxLastProspects"; public $depends = array("societe"); /** @@ -63,9 +63,9 @@ class box_prospect extends ModeleBoxes $this->db = $db; // disable box for such cases - if (! empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $this->enabled=0; // disabled by this option + if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $this->enabled = 0; // disabled by this option - $this->hidden = ! ($user->rights->societe->lire && empty($user->socid)); + $this->hidden = !($user->rights->societe->lire && empty($user->socid)); } /** @@ -78,29 +78,29 @@ class box_prospect extends ModeleBoxes { global $user, $langs, $conf; - $this->max=$max; + $this->max = $max; - $thirdpartystatic=new Client($this->db); + $thirdpartystatic = new Client($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleLastModifiedProspects", $max)); if ($user->rights->societe->lire) { $sql = "SELECT s.nom as name, s.rowid as socid"; - $sql.= ", s.code_client"; - $sql.= ", s.client, s.email"; - $sql.= ", s.code_fournisseur"; - $sql.= ", s.fournisseur"; - $sql.= ", s.logo"; - $sql.= ", s.fk_stcomm, s.datec, s.tms, s.status"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE s.client IN (2, 3)"; - $sql.= " AND s.entity IN (".getEntity('societe').")"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if ($user->socid) $sql.= " AND s.rowid = ".$user->socid; - $sql.= " ORDER BY s.tms DESC"; - $sql.= $this->db->plimit($max, 0); + $sql .= ", s.code_client"; + $sql .= ", s.client, s.email"; + $sql .= ", s.code_fournisseur"; + $sql .= ", s.fournisseur"; + $sql .= ", s.logo"; + $sql .= ", s.fk_stcomm, s.datec, s.tms, s.status"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE s.client IN (2, 3)"; + $sql .= " AND s.entity IN (".getEntity('societe').")"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + $sql .= " ORDER BY s.tms DESC"; + $sql .= $this->db->plimit($max, 0); dol_syslog(get_class($this)."::loadBox", LOG_DEBUG); $resql = $this->db->query($sql); @@ -112,8 +112,8 @@ class box_prospect extends ModeleBoxes while ($line < $num) { $objp = $this->db->fetch_object($resql); - $datec=$this->db->jdate($objp->datec); - $datem=$this->db->jdate($objp->tms); + $datec = $this->db->jdate($objp->datec); + $datem = $this->db->jdate($objp->tms); $thirdpartystatic->id = $objp->socid; $thirdpartystatic->name = $objp->name; $thirdpartystatic->email = $objp->email; @@ -147,7 +147,7 @@ class box_prospect extends ModeleBoxes $line++; } - if ($num==0) { + if ($num == 0) { $this->info_box_contents[$line][0] = array( 'td' => 'class="center"', 'text'=>$langs->trans("NoRecordedProspects"), diff --git a/htdocs/core/boxes/box_services_contracts.php b/htdocs/core/boxes/box_services_contracts.php index 5b40fc61436..f8e6dd22452 100644 --- a/htdocs/core/boxes/box_services_contracts.php +++ b/htdocs/core/boxes/box_services_contracts.php @@ -32,10 +32,10 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; */ class box_services_contracts extends ModeleBoxes { - public $boxcode="lastproductsincontract"; - public $boximg="object_product"; - public $boxlabel="BoxLastProductsInContract"; - public $depends = array("service","contrat"); + public $boxcode = "lastproductsincontract"; + public $boximg = "object_product"; + public $boxlabel = "BoxLastProductsInContract"; + public $depends = array("service", "contrat"); /** * @var DoliDB Database handler. @@ -60,7 +60,7 @@ class box_services_contracts extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->service->lire && $user->rights->contrat->lire); + $this->hidden = !($user->rights->service->lire && $user->rights->contrat->lire); } /** @@ -73,7 +73,7 @@ class box_services_contracts extends ModeleBoxes { global $user, $langs, $conf; - $this->max=$max; + $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; @@ -83,52 +83,52 @@ class box_services_contracts extends ModeleBoxes if ($user->rights->service->lire && $user->rights->contrat->lire) { - $contractstatic=new Contrat($this->db); - $contractlinestatic=new ContratLigne($this->db); + $contractstatic = new Contrat($this->db); + $contractlinestatic = new ContratLigne($this->db); $thirdpartytmp = new Societe($this->db); $productstatic = new Product($this->db); $sql = "SELECT s.nom as name, s.rowid as socid, s.email, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; - $sql.= " c.rowid, c.ref, c.statut as contract_status, c.ref_customer, c.ref_supplier,"; - $sql.= " cd.rowid as cdid, cd.label, cd.description, cd.tms as datem, cd.statut, cd.product_type as type,"; - $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as plabel, p.fk_product_type as ptype, p.entity, p.tobuy, p.tosell"; - $sql.= " FROM (".MAIN_DB_PREFIX."societe as s"; - $sql.= " INNER JOIN ".MAIN_DB_PREFIX."contrat as c ON s.rowid = c.fk_soc"; - $sql.= " INNER JOIN ".MAIN_DB_PREFIX."contratdet as cd ON c.rowid = cd.fk_contrat"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON cd.fk_product = p.rowid"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - $sql.= ")"; - $sql.= " WHERE c.entity = ".$conf->entity; - if($user->socid) $sql.= " AND s.rowid = ".$user->socid; - $sql.= $this->db->order("c.tms", "DESC"); - $sql.= $this->db->plimit($max, 0); + $sql .= " c.rowid, c.ref, c.statut as contract_status, c.ref_customer, c.ref_supplier,"; + $sql .= " cd.rowid as cdid, cd.label, cd.description, cd.tms as datem, cd.statut, cd.product_type as type,"; + $sql .= " p.rowid as product_id, p.ref as product_ref, p.label as plabel, p.fk_product_type as ptype, p.entity, p.tobuy, p.tosell"; + $sql .= " FROM (".MAIN_DB_PREFIX."societe as s"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."contrat as c ON s.rowid = c.fk_soc"; + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."contratdet as cd ON c.rowid = cd.fk_contrat"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON cd.fk_product = p.rowid"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + $sql .= ")"; + $sql .= " WHERE c.entity = ".$conf->entity; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + $sql .= $this->db->order("c.tms", "DESC"); + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) { $num = $this->db->num_rows($result); - $now=dol_now(); + $now = dol_now(); $i = 0; while ($i < $num) { $objp = $this->db->fetch_object($result); - $datem=$this->db->jdate($objp->datem); + $datem = $this->db->jdate($objp->datem); - $contractlinestatic->id=$objp->cdid; - $contractlinestatic->fk_contrat=$objp->rowid; - $contractlinestatic->label=$objp->label; - $contractlinestatic->description=$objp->description; - $contractlinestatic->type=$objp->type; - $contractlinestatic->product_id=$objp->product_id; - $contractlinestatic->product_ref=$objp->product_ref; + $contractlinestatic->id = $objp->cdid; + $contractlinestatic->fk_contrat = $objp->rowid; + $contractlinestatic->label = $objp->label; + $contractlinestatic->description = $objp->description; + $contractlinestatic->type = $objp->type; + $contractlinestatic->product_id = $objp->product_id; + $contractlinestatic->product_ref = $objp->product_ref; - $contractstatic->statut=$objp->contract_status; - $contractstatic->id=$objp->rowid; - $contractstatic->ref=$objp->ref; - $contractstatic->ref_customer=$objp->ref_customer; - $contractstatic->ref_supplier=$objp->ref_supplier; + $contractstatic->statut = $objp->contract_status; + $contractstatic->id = $objp->rowid; + $contractstatic->ref = $objp->ref; + $contractstatic->ref_customer = $objp->ref_customer; + $contractstatic->ref_supplier = $objp->ref_supplier; $thirdpartytmp->name = $objp->name; $thirdpartytmp->id = $objp->socid; @@ -141,13 +141,13 @@ class box_services_contracts extends ModeleBoxes $thirdpartytmp->code_compta_fournisseur = $objp->code_compta_fournisseur; // Multilangs - if (! empty($conf->global->MAIN_MULTILANGS) && $objp->product_id > 0) // if option multilang is on + if (!empty($conf->global->MAIN_MULTILANGS) && $objp->product_id > 0) // if option multilang is on { $sqld = "SELECT label"; - $sqld.= " FROM ".MAIN_DB_PREFIX."product_lang"; - $sqld.= " WHERE fk_product=".$objp->product_id; - $sqld.= " AND lang='". $langs->getDefaultLang() ."'"; - $sqld.= " LIMIT 1"; + $sqld .= " FROM ".MAIN_DB_PREFIX."product_lang"; + $sqld .= " WHERE fk_product=".$objp->product_id; + $sqld .= " AND lang='".$langs->getDefaultLang()."'"; + $sqld .= " LIMIT 1"; $resultd = $this->db->query($sqld); if ($resultd) @@ -160,11 +160,11 @@ class box_services_contracts extends ModeleBoxes // Label if ($objp->product_id > 0) { - $productstatic->id=$objp->product_id; - $productstatic->type=$objp->ptype; - $productstatic->ref=$objp->product_ref; - $productstatic->entity=$objp->pentity; - $productstatic->label=$objp->plabel; + $productstatic->id = $objp->product_id; + $productstatic->type = $objp->ptype; + $productstatic->ref = $objp->product_ref; + $productstatic->entity = $objp->pentity; + $productstatic->label = $objp->plabel; $productstatic->status = $objp->tosell; $productstatic->status_buy = $objp->tobuy; @@ -179,13 +179,13 @@ class box_services_contracts extends ModeleBoxes $description = $objp->description; // Add description in form - if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) + if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { //$text .= (! empty($objp->description) && $objp->description!=$objp->plabel)?'
'.dol_htmlentitiesbr($objp->description):''; - $description = ''; // Already added into main visible desc + $description = ''; // Already added into main visible desc } - $s = $form->textwithtooltip($text, $description, 3, '', '', $cursorline, 0, (!empty($line->fk_parent_line)?img_picto('', 'rightarrow'):'')); + $s = $form->textwithtooltip($text, $description, 3, '', '', $cursorline, 0, (!empty($line->fk_parent_line) ?img_picto('', 'rightarrow') : '')); } else { @@ -223,7 +223,7 @@ class box_services_contracts extends ModeleBoxes $i++; } - if ($num==0) $this->info_box_contents[$i][0] = array('td' => 'class="center"','text'=>$langs->trans("NoContractedProducts")); + if ($num == 0) $this->info_box_contents[$i][0] = array('td' => 'class="center"', 'text'=>$langs->trans("NoContractedProducts")); $this->db->free($result); } diff --git a/htdocs/core/boxes/box_supplier_orders.php b/htdocs/core/boxes/box_supplier_orders.php index 881e17f73ec..c019062313c 100644 --- a/htdocs/core/boxes/box_supplier_orders.php +++ b/htdocs/core/boxes/box_supplier_orders.php @@ -33,7 +33,7 @@ class box_supplier_orders extends ModeleBoxes public $boxcode = "latestsupplierorders"; public $boximg = "object_order"; - public $boxlabel="BoxLatestSupplierOrders"; + public $boxlabel = "BoxLatestSupplierOrders"; public $depends = array("fournisseur"); /** @@ -58,7 +58,7 @@ class box_supplier_orders extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->fournisseur->commande->lire); + $this->hidden = !($user->rights->fournisseur->commande->lire); } /** @@ -75,32 +75,32 @@ class box_supplier_orders extends ModeleBoxes $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; - $supplierorderstatic=new CommandeFournisseur($this->db); + $supplierorderstatic = new CommandeFournisseur($this->db); include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; $thirdpartytmp = new Fournisseur($this->db); - $this->info_box_head = array('text' => $langs->trans("BoxTitleLatest".($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE?"":"Modified")."SupplierOrders", $max)); + $this->info_box_head = array('text' => $langs->trans("BoxTitleLatest".($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE ? "" : "Modified")."SupplierOrders", $max)); if ($user->rights->fournisseur->commande->lire) { $sql = "SELECT s.nom as name, s.rowid as socid,"; - $sql.= " s.code_client, s.code_fournisseur,"; - $sql.= " s.logo, s.email,"; - $sql.= " c.rowid, c.ref, c.tms, c.date_commande,"; - $sql.= " c.total_ht,"; - $sql.= " c.tva as total_tva,"; - $sql.= " c.total_ttc,"; - $sql.= " c.fk_statut"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - $sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as c"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE c.fk_soc = s.rowid"; - $sql.= " AND c.entity = ".$conf->entity; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if ($user->socid) $sql.= " AND s.rowid = ".$user->socid; - if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql.= " ORDER BY c.date_commande DESC, c.ref DESC "; - else $sql.= " ORDER BY c.tms DESC, c.ref DESC "; - $sql.= $this->db->plimit($max, 0); + $sql .= " s.code_client, s.code_fournisseur,"; + $sql .= " s.logo, s.email,"; + $sql .= " c.rowid, c.ref, c.tms, c.date_commande,"; + $sql .= " c.total_ht,"; + $sql .= " c.tva as total_tva,"; + $sql .= " c.total_ttc,"; + $sql .= " c.fk_statut"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; + $sql .= ", ".MAIN_DB_PREFIX."commande_fournisseur as c"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE c.fk_soc = s.rowid"; + $sql .= " AND c.entity = ".$conf->entity; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql .= " ORDER BY c.date_commande DESC, c.ref DESC "; + else $sql .= " ORDER BY c.tms DESC, c.ref DESC "; + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) @@ -110,8 +110,8 @@ class box_supplier_orders extends ModeleBoxes $line = 0; while ($line < $num) { $objp = $this->db->fetch_object($result); - $date=$this->db->jdate($objp->date_commande); - $datem=$this->db->jdate($objp->tms); + $date = $this->db->jdate($objp->date_commande); + $datem = $this->db->jdate($objp->tms); $supplierorderstatic->id = $objp->rowid; $supplierorderstatic->ref = $objp->ref; diff --git a/htdocs/core/boxes/box_supplier_orders_awaiting_reception.php b/htdocs/core/boxes/box_supplier_orders_awaiting_reception.php index 416dc7f2f2a..f70f5bef450 100644 --- a/htdocs/core/boxes/box_supplier_orders_awaiting_reception.php +++ b/htdocs/core/boxes/box_supplier_orders_awaiting_reception.php @@ -33,7 +33,7 @@ class box_supplier_orders_awaiting_reception extends ModeleBoxes public $boxcode = "supplierordersawaitingreception"; public $boximg = "object_order"; - public $boxlabel="BoxLatestSupplierOrdersAwaitingReception"; + public $boxlabel = "BoxLatestSupplierOrdersAwaitingReception"; public $depends = array("fournisseur"); /** @@ -58,7 +58,7 @@ class box_supplier_orders_awaiting_reception extends ModeleBoxes $this->db = $db; - $this->hidden = ! ($user->rights->fournisseur->commande->lire); + $this->hidden = !($user->rights->fournisseur->commande->lire); } /** @@ -75,7 +75,7 @@ class box_supplier_orders_awaiting_reception extends ModeleBoxes $this->max = $max; include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; - $supplierorderstatic=new CommandeFournisseur($this->db); + $supplierorderstatic = new CommandeFournisseur($this->db); include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; $thirdpartytmp = new Fournisseur($this->db); @@ -84,25 +84,25 @@ class box_supplier_orders_awaiting_reception extends ModeleBoxes if ($user->rights->fournisseur->commande->lire) { $sql = "SELECT s.nom as name, s.rowid as socid,"; - $sql.= " s.code_client, s.code_fournisseur, s.email,"; - $sql.= " s.logo,"; - $sql.= " c.rowid, c.ref, c.tms, c.date_commande, c.date_livraison, "; - $sql.= " c.total_ht,"; - $sql.= " c.tva as total_tva,"; - $sql.= " c.total_ttc,"; - $sql.= " c.fk_statut"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - $sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as c"; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE c.fk_soc = s.rowid"; - $sql.= " AND c.entity = ".$conf->entity; + $sql .= " s.code_client, s.code_fournisseur, s.email,"; + $sql .= " s.logo,"; + $sql .= " c.rowid, c.ref, c.tms, c.date_commande, c.date_livraison, "; + $sql .= " c.total_ht,"; + $sql .= " c.tva as total_tva,"; + $sql .= " c.total_ttc,"; + $sql .= " c.fk_statut"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; + $sql .= ", ".MAIN_DB_PREFIX."commande_fournisseur as c"; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE c.fk_soc = s.rowid"; + $sql .= " AND c.entity = ".$conf->entity; - $sql.= " AND c.fk_statut = ".CommandeFournisseur::STATUS_ORDERSENT; - if (!$user->rights->societe->client->voir && !$user->socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if ($user->socid) $sql.= " AND s.rowid = ".$user->socid; - if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql.= " ORDER BY c.date_commande DESC, c.ref DESC "; - else $sql.= " ORDER BY c.date_livraison ASC, c.fk_statut ASC "; - $sql.= $this->db->plimit($max, 0); + $sql .= " AND c.fk_statut = ".CommandeFournisseur::STATUS_ORDERSENT; + if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; + if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql .= " ORDER BY c.date_commande DESC, c.ref DESC "; + else $sql .= " ORDER BY c.date_livraison ASC, c.fk_statut ASC "; + $sql .= $this->db->plimit($max, 0); $result = $this->db->query($sql); if ($result) @@ -112,9 +112,9 @@ class box_supplier_orders_awaiting_reception extends ModeleBoxes $line = 0; while ($line < $num) { $objp = $this->db->fetch_object($result); - $date=$this->db->jdate($objp->date_commande); - $date_livraison=$this->db->jdate($objp->date_livraison); - $datem=$this->db->jdate($objp->tms); + $date = $this->db->jdate($objp->date_commande); + $date_livraison = $this->db->jdate($objp->date_livraison); + $datem = $this->db->jdate($objp->tms); $supplierorderstatic->date_livraison = $date_livraison; $supplierorderstatic->statut = $objp->fk_statut; @@ -153,7 +153,7 @@ class box_supplier_orders_awaiting_reception extends ModeleBoxes $this->info_box_contents[$line][] = array( 'td' => 'class="right"', - 'text' => $delayIcon.' '. dol_print_date($date_livraison, 'day').'', + 'text' => $delayIcon.' '.dol_print_date($date_livraison, 'day').'', 'asis' => 1 ); diff --git a/htdocs/core/boxes/box_task.php b/htdocs/core/boxes/box_task.php index 94983ef6bff..f9a974ae1c5 100644 --- a/htdocs/core/boxes/box_task.php +++ b/htdocs/core/boxes/box_task.php @@ -84,7 +84,7 @@ class box_task extends ModeleBoxes $projectstatic = new Project($this->db); $taskstatic = new Task($this->db); $form = new Form($this->db); - $cookie_name = 'boxfilter_task'; + $cookie_name = 'DOLUSERCOOKIE_boxfilter_task'; $boxcontent = ''; $socid = $user->socid; @@ -124,10 +124,10 @@ class box_task extends ModeleBoxes $boxcontent .= ''."\n"; $selectArray = array('all' => $langs->trans("NoFilter"), 'im_task_contact' => $langs->trans("WhichIamLinkedTo"), 'im_project_contact' => $langs->trans("WhichIamLinkedToProject")); $boxcontent .= $form->selectArray($cookie_name, $selectArray, $filterValue); - $boxcontent .= ''; + $boxcontent .= ''; $boxcontent .= ''."\n"; $boxcontent .= ''."\n"; - if (! empty($conf->use_javascript_ajax)) { + if (!empty($conf->use_javascript_ajax)) { $boxcontent .= ''; + } + } + } + + return $out; + } + + /** + * Fill array_options property of object by extrafields value (using for data sent by forms) + * + * @param array $extralabels Deprecated (old $array of extrafields, now set this to null) + * @param object $object Object + * @param string $onlykey Only the following key is filled. When we make update of only one extrafield ($action = 'update_extras'), calling page must set this to avoid to have other extrafields being reset. + * @return int 1 if array_options set, 0 if no value, -1 if error (field required missing for example) + */ + public function setOptionalsFromPost($extralabels, &$object, $onlykey = '') + { + global $_POST, $langs; + + $nofillrequired = 0; // For error when required field left blank + $error_field_required = array(); + + if (is_array($this->attributes[$object->table_element]['label'])) $extralabels = $this->attributes[$object->table_element]['label']; + + if (is_array($extralabels)) + { + // Get extra fields + foreach ($extralabels as $key => $value) + { + if (!empty($onlykey) && $key != $onlykey) continue; + + $key_type = $this->attributes[$object->table_element]['type'][$key]; + if ($key_type == 'separate') continue; + + $enabled = 1; + if (isset($this->attributes[$object->table_element]['list'][$key])) + { + $enabled = dol_eval($this->attributes[$object->table_element]['list'][$key], 1); + } + $perms = 1; + if (isset($this->attributes[$object->table_element]['perms'][$key])) + { + $perms = dol_eval($this->attributes[$object->table_element]['perms'][$key], 1); + } + if (empty($enabled)) continue; + if (empty($perms)) continue; + + if ($this->attributes[$object->table_element]['required'][$key]) // Value is required + { + // Check if empty without using GETPOST, value can be alpha, int, array, etc... + if ((!is_array($_POST["options_".$key]) && empty($_POST["options_".$key]) && $this->attributes[$object->table_element]['type'][$key] != 'select' && $_POST["options_".$key] != '0') + || (!is_array($_POST["options_".$key]) && empty($_POST["options_".$key]) && $this->attributes[$object->table_element]['type'][$key] == 'select') + || (is_array($_POST["options_".$key]) && empty($_POST["options_".$key]))) + { + //print 'ccc'.$value.'-'.$this->attributes[$object->table_element]['required'][$key]; + $nofillrequired++; + $error_field_required[] = $langs->transnoentitiesnoconv($value); + } + } + + if (in_array($key_type, array('date'))) + { + // Clean parameters + // TODO GMT date in memory must be GMT so we should add gm=true in parameters + $value_key = dol_mktime(0, 0, 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]); + } + elseif (in_array($key_type, array('datetime'))) + { + // Clean parameters + // TODO GMT date in memory must be GMT so we should add gm=true in parameters + $value_key = dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]); + } + elseif (in_array($key_type, array('checkbox', 'chkbxlst'))) + { + $value_arr = GETPOST("options_".$key, 'array'); // check if an array + if (!empty($value_arr)) { + $value_key = implode($value_arr, ','); + } else { + $value_key = ''; + } + } + elseif (in_array($key_type, array('price', 'double'))) + { + $value_arr = GETPOST("options_".$key, 'alpha'); + $value_key = price2num($value_arr); + } + else + { + $value_key = GETPOST("options_".$key); + if (in_array($key_type, array('link')) && $value_key == '-1') $value_key = ''; + } + + $object->array_options["options_".$key] = $value_key; + } + + if ($nofillrequired) { + $langs->load('errors'); + setEventMessages($langs->trans('ErrorFieldsRequired').' : '.implode(', ', $error_field_required), null, 'errors'); + return -1; + } + else { + return 1; + } + } + else { + return 0; + } + } + + /** + * return array_options array of data of extrafields value of object sent by a search form + * + * @param array|string $extrafieldsobjectkey array of extrafields (old usage) or value of object->table_element (new usage) + * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) + * @param string $keysuffix Suffix string to add into name and id of field (can be used to avoid duplicate names) + * @return array|int array_options set or 0 if no value + */ + public function getOptionalsFromPost($extrafieldsobjectkey, $keyprefix = '', $keysuffix = '') + { + global $_POST; + + if (is_string($extrafieldsobjectkey) && is_array($this->attributes[$extrafieldsobjectkey]['label'])) + { + $extralabels = $this->attributes[$extrafieldsobjectkey]['label']; + } + else + { + $extralabels = $extrafieldsobjectkey; + } + + if (is_array($extralabels)) + { + $array_options = array(); + + // Get extra fields + foreach ($extralabels as $key => $value) + { + $key_type = ''; + if (is_string($extrafieldsobjectkey)) + { + $key_type = $this->attributes[$extrafieldsobjectkey]['type'][$key]; + } + + if (in_array($key_type, array('date', 'datetime'))) + { + if (!GETPOSTISSET($keysuffix."options_".$key.$keyprefix."year")) continue; // Value was not provided, we should not set it. + // Clean parameters + $value_key = dol_mktime(GETPOST($keysuffix."options_".$key.$keyprefix."hour", 'int'), GETPOST($keysuffix."options_".$key.$keyprefix."min", 'int'), 0, GETPOST($keysuffix."options_".$key.$keyprefix."month", 'int'), GETPOST($keysuffix."options_".$key.$keyprefix."day", 'int'), GETPOST($keysuffix."options_".$key.$keyprefix."year", 'int')); + } + elseif (in_array($key_type, array('checkbox', 'chkbxlst'))) + { + if (!GETPOSTISSET($keysuffix."options_".$key.$keyprefix)) continue; // Value was not provided, we should not set it. + $value_arr = GETPOST($keysuffix."options_".$key.$keyprefix); + // Make sure we get an array even if there's only one checkbox + $value_arr = (array) $value_arr; + $value_key = implode(',', $value_arr); + } + elseif (in_array($key_type, array('price', 'double', 'int'))) + { + if (!GETPOSTISSET($keysuffix."options_".$key.$keyprefix)) continue; // Value was not provided, we should not set it. + $value_arr = GETPOST($keysuffix."options_".$key.$keyprefix); + $value_key = price2num($value_arr); + } + else + { + if (!GETPOSTISSET($keysuffix."options_".$key.$keyprefix)) continue; // Value was not provided, we should not set it. + $value_key = GETPOST($keysuffix."options_".$key.$keyprefix); + } + + $array_options[$keysuffix."options_".$key] = $value_key; // No keyprefix here. keyprefix is used only for read. + } + + return $array_options; + } + + return 0; + } +} diff --git a/htdocs/core/class/fileupload.class.php b/htdocs/core/class/fileupload.class.php index beb887d8b76..c9bb7372bd2 100644 --- a/htdocs/core/class/fileupload.class.php +++ b/htdocs/core/class/fileupload.class.php @@ -48,10 +48,10 @@ class FileUpload global $hookmanager; $hookmanager->initHooks(array('fileupload')); - $this->fk_element=$fk_element; - $this->element=$element; + $this->fk_element = $fk_element; + $this->element = $element; - $pathname=$filename=$element; + $pathname = $filename = $element; if (preg_match('/^([^_]+)_([^_]+)/i', $element, $regs)) { $pathname = $regs[1]; @@ -63,35 +63,35 @@ class FileUpload // For compatibility if ($element == 'propal') { $pathname = 'comm/propal'; - $dir_output=$conf->$element->dir_output; + $dir_output = $conf->$element->dir_output; } elseif ($element == 'facture') { $pathname = 'compta/facture'; - $dir_output=$conf->$element->dir_output; + $dir_output = $conf->$element->dir_output; } elseif ($element == 'project') { $element = $pathname = 'projet'; - $dir_output=$conf->$element->dir_output; + $dir_output = $conf->$element->dir_output; } elseif ($element == 'project_task') { - $pathname = 'projet'; $filename='task'; - $dir_output=$conf->projet->dir_output; + $pathname = 'projet'; $filename = 'task'; + $dir_output = $conf->projet->dir_output; $parentForeignKey = 'fk_project'; $parentClass = 'Project'; $parentElement = 'projet'; $parentObject = 'project'; } elseif ($element == 'fichinter') { - $element='ficheinter'; - $dir_output=$conf->$element->dir_output; + $element = 'ficheinter'; + $dir_output = $conf->$element->dir_output; } elseif ($element == 'order_supplier') { - $pathname = 'fourn'; $filename='fournisseur.commande'; - $dir_output=$conf->fournisseur->commande->dir_output; + $pathname = 'fourn'; $filename = 'fournisseur.commande'; + $dir_output = $conf->fournisseur->commande->dir_output; } elseif ($element == 'invoice_supplier') { - $pathname = 'fourn'; $filename='fournisseur.facture'; - $dir_output=$conf->fournisseur->facture->dir_output; + $pathname = 'fourn'; $filename = 'fournisseur.facture'; + $dir_output = $conf->fournisseur->facture->dir_output; } elseif ($element == 'product') { $dir_output = $conf->product->multidir_output[$conf->entity]; @@ -100,14 +100,14 @@ class FileUpload $dir_output = $conf->productbatch->multidir_output[$conf->entity]; } elseif ($element == 'action') { - $pathname = 'comm/action'; $filename='actioncomm'; - $dir_output=$conf->agenda->dir_output; + $pathname = 'comm/action'; $filename = 'actioncomm'; + $dir_output = $conf->agenda->dir_output; } elseif ($element == 'chargesociales') { - $pathname = 'compta/sociales'; $filename='chargesociales'; - $dir_output=$conf->tax->dir_output; + $pathname = 'compta/sociales'; $filename = 'chargesociales'; + $dir_output = $conf->tax->dir_output; } else { - $dir_output=$conf->$element->dir_output; + $dir_output = $conf->$element->dir_output; } dol_include_once('/'.$pathname.'/class/'.$filename.'.class.php'); @@ -137,14 +137,14 @@ class FileUpload $object_ref = dol_sanitizeFileName($object->ref); if ($element == 'invoice_supplier') { - $object_ref = get_exdir($object->id, 2, 0, 0, $object, 'invoice_supplier') . $object_ref; + $object_ref = get_exdir($object->id, 2, 0, 0, $object, 'invoice_supplier').$object_ref; } elseif ($element == 'project_task') { - $object_ref = $object->project->ref . '/' . $object_ref; + $object_ref = $object->project->ref.'/'.$object_ref; } $this->options = array( 'script_url' => $_SERVER['PHP_SELF'], - 'upload_dir' => $dir_output . '/' . $object_ref . '/', + 'upload_dir' => $dir_output.'/'.$object_ref.'/', 'upload_url' => DOL_URL_ROOT.'/document.php?modulepart='.$element.'&attachment=1&file=/'.$object_ref.'/', 'param_name' => 'files', // Set the following option to 'POST', if your server does not support @@ -178,7 +178,7 @@ class FileUpload ), */ 'thumbnail' => array( - 'upload_dir' => $dir_output . '/' . $object_ref . '/thumbs/', + 'upload_dir' => $dir_output.'/'.$object_ref.'/thumbs/', 'upload_url' => DOL_URL_ROOT.'/document.php?modulepart='.$element.'&attachment=1&file=/'.$object_ref.'/thumbs/', 'max_width' => 80, 'max_height' => 80 @@ -251,9 +251,9 @@ class FileUpload $file->mime = dol_mimetype($file_name, '', 2); $file->size = filesize($file_path); $file->url = $this->options['upload_url'].rawurlencode($file->name); - foreach($this->options['image_versions'] as $version => $options) { + foreach ($this->options['image_versions'] as $version => $options) { if (is_file($options['upload_dir'].$file_name)) { - $tmp=explode('.', $file->name); + $tmp = explode('.', $file->name); $file->{$version.'_url'} = $options['upload_url'].rawurlencode($tmp[0].'_mini.'.$tmp[1]); } } @@ -294,7 +294,7 @@ class FileUpload return false; } - $res=vignette($file_path, $maxwidthmini, $maxheightmini, '_mini'); // We don't use ->addThumbs here because there is no object and we don't need all thumbs, only the "mini". + $res = vignette($file_path, $maxwidthmini, $maxheightmini, '_mini'); // We don't use ->addThumbs here because there is no object and we don't need all thumbs, only the "mini". if (preg_match('/error/i', $res)) return false; return true; @@ -412,7 +412,7 @@ class FileUpload } if ($this->options['discard_aborted_uploads']) { - while(is_file($this->options['upload_dir'].$file_name)) + while (is_file($this->options['upload_dir'].$file_name)) { $file_name = $this->upcountName($file_name); } @@ -461,11 +461,11 @@ class FileUpload if ($file_size === $file->size) { $file->url = $this->options['upload_url'].rawurlencode($file->name); - foreach($this->options['image_versions'] as $version => $options) + foreach ($this->options['image_versions'] as $version => $options) { if ($this->createScaledImage($file->name, $options)) { - $tmp=explode('.', $file->name); + $tmp = explode('.', $file->name); $file->{$version.'_url'} = $options['upload_url'].rawurlencode($tmp[0].'_mini.'.$tmp[1]); } } @@ -572,7 +572,7 @@ class FileUpload $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path); if ($success) { - foreach($this->options['image_versions'] as $version => $options) + foreach ($this->options['image_versions'] as $version => $options) { $file = $options['upload_dir'].$file_name; if (is_file($file)) diff --git a/htdocs/core/class/fiscalyear.class.php b/htdocs/core/class/fiscalyear.class.php index 10015e3c363..514782593d9 100644 --- a/htdocs/core/class/fiscalyear.class.php +++ b/htdocs/core/class/fiscalyear.class.php @@ -23,7 +23,7 @@ * \brief File of class to manage fiscal years */ -require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; /** * Class to manage fiscal year @@ -33,12 +33,12 @@ class Fiscalyear extends CommonObject /** * @var string ID to identify managed object */ - public $element='fiscalyear'; + public $element = 'fiscalyear'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='accounting_fiscalyear'; + public $table_element = 'accounting_fiscalyear'; /** * @var int Name of subtable line @@ -87,15 +87,15 @@ class Fiscalyear extends CommonObject */ public $datec; - public $statut; // 0=open, 1=closed + public $statut; // 0=open, 1=closed /** * @var int Entity */ public $entity; - public $statuts=array(); - public $statuts_short=array(); + public $statuts = array(); + public $statuts_short = array(); /** * Constructor @@ -124,27 +124,27 @@ class Fiscalyear extends CommonObject $error = 0; - $now=dol_now(); + $now = dol_now(); $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX."accounting_fiscalyear ("; - $sql.= "label"; - $sql.= ", date_start"; - $sql.= ", date_end"; - $sql.= ", statut"; - $sql.= ", entity"; - $sql.= ", datec"; - $sql.= ", fk_user_author"; - $sql.= ") VALUES ("; - $sql.= " '".$this->db->escape($this->label)."'"; - $sql.= ", '".$this->db->idate($this->date_start)."'"; - $sql.= ", ".($this->date_end ? "'".$this->db->idate($this->date_end)."'":"null"); - $sql.= ", 0"; - $sql.= ", ".$conf->entity; - $sql.= ", '".$this->db->idate($now)."'"; - $sql.= ", ". $user->id; - $sql.= ")"; + $sql .= "label"; + $sql .= ", date_start"; + $sql .= ", date_end"; + $sql .= ", statut"; + $sql .= ", entity"; + $sql .= ", datec"; + $sql .= ", fk_user_author"; + $sql .= ") VALUES ("; + $sql .= " '".$this->db->escape($this->label)."'"; + $sql .= ", '".$this->db->idate($this->date_start)."'"; + $sql .= ", ".($this->date_end ? "'".$this->db->idate($this->date_end)."'" : "null"); + $sql .= ", 0"; + $sql .= ", ".$conf->entity; + $sql .= ", '".$this->db->idate($now)."'"; + $sql .= ", ".$user->id; + $sql .= ")"; dol_syslog(get_class($this)."::create", LOG_DEBUG); $result = $this->db->query($sql); @@ -152,7 +152,7 @@ class Fiscalyear extends CommonObject { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."accounting_fiscalyear"); - $result=$this->update($user); + $result = $this->update($user); if ($result > 0) { $this->db->commit(); @@ -160,14 +160,14 @@ class Fiscalyear extends CommonObject } else { - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); $this->db->rollback(); return $result; } } else { - $this->error=$this->db->lasterror()." sql=".$sql; + $this->error = $this->db->lasterror()." sql=".$sql; $this->db->rollback(); return -1; } @@ -186,7 +186,7 @@ class Fiscalyear extends CommonObject // Check parameters if (empty($this->date_start) && empty($this->date_end)) { - $this->error='ErrorBadParameter'; + $this->error = 'ErrorBadParameter'; return -1; } @@ -196,8 +196,8 @@ class Fiscalyear extends CommonObject $sql .= " SET label = '".$this->db->escape($this->label)."'"; $sql .= ", date_start = '".$this->db->idate($this->date_start)."'"; $sql .= ", date_end = ".($this->date_end ? "'".$this->db->idate($this->date_end)."'" : "null"); - $sql .= ", statut = '".$this->db->escape($this->statut?$this->statut:0)."'"; - $sql .= ", fk_user_modif = " . $user->id; + $sql .= ", statut = '".$this->db->escape($this->statut ? $this->statut : 0)."'"; + $sql .= ", fk_user_modif = ".$user->id; $sql .= " WHERE rowid = ".$this->id; dol_syslog(get_class($this)."::update", LOG_DEBUG); @@ -209,7 +209,7 @@ class Fiscalyear extends CommonObject } else { - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); dol_syslog($this->error, LOG_ERR); $this->db->rollback(); return -1; @@ -225,27 +225,27 @@ class Fiscalyear extends CommonObject public function fetch($id) { $sql = "SELECT rowid, label, date_start, date_end, statut"; - $sql.= " FROM ".MAIN_DB_PREFIX."accounting_fiscalyear"; - $sql.= " WHERE rowid = ".$id; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_fiscalyear"; + $sql .= " WHERE rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $result = $this->db->query($sql); - if ( $result ) + if ($result) { $obj = $this->db->fetch_object($result); - $this->id = $obj->rowid; - $this->ref = $obj->rowid; + $this->id = $obj->rowid; + $this->ref = $obj->rowid; $this->date_start = $this->db->jdate($obj->date_start); - $this->date_end = $this->db->jdate($obj->date_end); - $this->label = $obj->label; + $this->date_end = $this->db->jdate($obj->date_end); + $this->label = $obj->label; $this->statut = $obj->statut; return 1; } else { - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); return -1; } } @@ -271,7 +271,7 @@ class Fiscalyear extends CommonObject } else { - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); $this->db->rollback(); return -1; } @@ -311,23 +311,23 @@ class Fiscalyear extends CommonObject } elseif ($mode == 2) { - if ($status==0) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts_short[$status]); - elseif ($status==1) return img_picto($langs->trans($this->statuts_short[$status]), 'statut8').' '.$langs->trans($this->statuts_short[$status]); + if ($status == 0) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts_short[$status]); + elseif ($status == 1) return img_picto($langs->trans($this->statuts_short[$status]), 'statut8').' '.$langs->trans($this->statuts_short[$status]); } elseif ($mode == 3) { - if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut8'); + if ($status == 0 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut8'); } elseif ($mode == 4) { - if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts[$status]); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut8').' '.$langs->trans($this->statuts[$status]); + if ($status == 0 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut4').' '.$langs->trans($this->statuts[$status]); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]), 'statut8').' '.$langs->trans($this->statuts[$status]); } elseif ($mode == 5) { - if ($status==0 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); - elseif ($status==1 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); + if ($status == 0 && !empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut4'); + elseif ($status == 1 && !empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]), 'statut6'); } } @@ -340,9 +340,9 @@ class Fiscalyear extends CommonObject public function info($id) { $sql = 'SELECT fy.rowid, fy.datec, fy.fk_user_author, fy.fk_user_modif,'; - $sql.= ' fy.tms'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'accounting_fiscalyear as fy'; - $sql.= ' WHERE fy.rowid = '.$id; + $sql .= ' fy.tms'; + $sql .= ' FROM '.MAIN_DB_PREFIX.'accounting_fiscalyear as fy'; + $sql .= ' WHERE fy.rowid = '.$id; dol_syslog(get_class($this)."::fetch info", LOG_DEBUG); $result = $this->db->query($sql); @@ -387,17 +387,17 @@ class Fiscalyear extends CommonObject { global $conf; - if(empty($datestart) ) + if (empty($datestart)) $datestart = $this->date_start; - if(empty($dateend) ) + if (empty($dateend)) $dateend = $this->date_end; $sql = "SELECT count(DISTINCT piece_num) as nb"; - $sql.= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping"; - $sql.= " WHERE entity IN (".getEntity('bookkeeping', 0).")"; - $sql.= " AND doc_date >= '".$this->db->idate($datestart)."' and doc_date <= '".$this->db->idate($dateend)."'"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping"; + $sql .= " WHERE entity IN (".getEntity('bookkeeping', 0).")"; + $sql .= " AND doc_date >= '".$this->db->idate($datestart)."' and doc_date <= '".$this->db->idate($dateend)."'"; - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $obj = $this->db->fetch_object($resql); @@ -419,17 +419,17 @@ class Fiscalyear extends CommonObject { global $conf; - if(empty($datestart) ) + if (empty($datestart)) $datestart = $this->date_start; - if(empty($dateend) ) + if (empty($dateend)) $dateend = $this->date_end; $sql = "SELECT count(rowid) as nb"; - $sql.= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping "; - $sql.= " WHERE entity IN (".getEntity('bookkeeping', 0).")"; - $sql.= " AND doc_date >= '".$this->db->idate($datestart)."' and doc_date <= '".$this->db->idate($dateend)."'"; + $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping "; + $sql .= " WHERE entity IN (".getEntity('bookkeeping', 0).")"; + $sql .= " AND doc_date >= '".$this->db->idate($datestart)."' and doc_date <= '".$this->db->idate($dateend)."'"; - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $obj = $this->db->fetch_object($resql); diff --git a/htdocs/core/class/genericobject.class.php b/htdocs/core/class/genericobject.class.php index dd6d2a01ca0..25f3dc6af11 100644 --- a/htdocs/core/class/genericobject.class.php +++ b/htdocs/core/class/genericobject.class.php @@ -20,7 +20,7 @@ * \ingroup core * \brief File of class of generic business class */ -require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; /** @@ -36,6 +36,6 @@ class GenericObject extends CommonObject */ public function __construct($db) { - $this->db=$db; + $this->db = $db; } } diff --git a/htdocs/core/class/google.class.php b/htdocs/core/class/google.class.php index 504f682f6c6..117b8e30e02 100644 --- a/htdocs/core/class/google.class.php +++ b/htdocs/core/class/google.class.php @@ -34,7 +34,7 @@ class GoogleAPI /** * @var string Error code (or message) */ - public $error=''; + public $error = ''; public $key; @@ -46,8 +46,8 @@ class GoogleAPI */ public function __construct($db, $key) { - $this->db=$db; - $this->key=$key; + $this->db = $db; + $this->key = $key; } @@ -63,7 +63,7 @@ class GoogleAPI { global $conf; - $i=0; + $i = 0; // Desired address $urladdress = "https://maps.google.com/maps/geo?q=".urlencode($address)."&output=xml&key=".$this->key; @@ -73,12 +73,12 @@ class GoogleAPI $code = strstr($page, ''); $code = strstr($code, '>'); - $val=strpos($code, "<"); - $code = substr($code, 1, $val-1); + $val = strpos($code, "<"); + $code = substr($code, 1, $val - 1); //print $code; //print "
"; $latitude = substr($code, 0, strpos($code, ",")); - $longitude = substr($code, strpos($code, ",")+1, dol_strlen(strpos($code, ","))-3); + $longitude = substr($code, strpos($code, ",") + 1, dol_strlen(strpos($code, ",")) - 3); // Output the coordinates //echo "Longitude: $longitude ',' Latitude: $latitude"; diff --git a/htdocs/core/class/hookmanager.class.php b/htdocs/core/class/hookmanager.class.php index 437ac507462..e24bce5e247 100644 --- a/htdocs/core/class/hookmanager.class.php +++ b/htdocs/core/class/hookmanager.class.php @@ -37,7 +37,7 @@ class HookManager /** * @var string Error code (or message) */ - public $error=''; + public $error = ''; /** * @var string[] Error codes (or messages) @@ -45,17 +45,17 @@ class HookManager public $errors = array(); // Context hookmanager was created for ('thirdpartycard', 'thirdpartydao', ...) - public $contextarray=array(); + public $contextarray = array(); // Array with instantiated classes - public $hooks=array(); + public $hooks = array(); // Array result - public $resArray=array(); + public $resArray = array(); // Printable result - public $resPrint=''; + public $resPrint = ''; // Nb of qualified hook ran - public $resNbOfHooks=0; + public $resNbOfHooks = 0; /** * Constructor @@ -84,34 +84,34 @@ class HookManager global $conf; // Test if there is hooks to manage - if (! is_array($conf->modules_parts['hooks']) || empty($conf->modules_parts['hooks'])) return; + if (!is_array($conf->modules_parts['hooks']) || empty($conf->modules_parts['hooks'])) return; // For backward compatibility - if (! is_array($arraycontext)) $arraycontext=array($arraycontext); + if (!is_array($arraycontext)) $arraycontext = array($arraycontext); - $this->contextarray=array_unique(array_merge($arraycontext, $this->contextarray)); // All contexts are concatenated + $this->contextarray = array_unique(array_merge($arraycontext, $this->contextarray)); // All contexts are concatenated $arraytolog = array(); - foreach($conf->modules_parts['hooks'] as $module => $hooks) // Loop on each module that brings hooks + foreach ($conf->modules_parts['hooks'] as $module => $hooks) // Loop on each module that brings hooks { if (empty($conf->$module->enabled)) continue; //dol_syslog(get_class($this).'::initHooks module='.$module.' arraycontext='.join(',',$arraycontext)); - foreach($arraycontext as $context) + foreach ($arraycontext as $context) { - if (is_array($hooks)) $arrayhooks=$hooks; // New system - else $arrayhooks=explode(':', $hooks); // Old system (for backward compatibility) + if (is_array($hooks)) $arrayhooks = $hooks; // New system + else $arrayhooks = explode(':', $hooks); // Old system (for backward compatibility) if (in_array($context, $arrayhooks) || in_array('all', $arrayhooks)) // We instantiate action class only if initialized hook is handled by module { // Include actions class overwriting hooks - if (! is_object($this->hooks[$context][$module])) // If set, class was already loaded + if (!is_object($this->hooks[$context][$module])) // If set, class was already loaded { - $path = '/'.$module.'/class/'; + $path = '/'.$module.'/class/'; $actionfile = 'actions_'.$module.'.class.php'; $arraytolog[] = 'context='.$context.'-path='.$path.$actionfile; - $resaction=dol_include_once($path.$actionfile); + $resaction = dol_include_once($path.$actionfile); if ($resaction) { $controlclassname = 'Actions'.ucfirst($module); @@ -144,13 +144,13 @@ class HookManager */ public function executeHooks($method, $parameters = array(), &$object = '', &$action = '') { - if (! is_array($this->hooks) || empty($this->hooks)) return ''; + if (!is_array($this->hooks) || empty($this->hooks)) return ''; - $parameters['context']=join(':', $this->contextarray); + $parameters['context'] = join(':', $this->contextarray); //dol_syslog(get_class($this).'::executeHooks method='.$method." action=".$action." context=".$parameters['context']); - // Define type of hook ('output' or 'addreplace'. 'returnvalue' is deprecated because a 'addreplace' hook can also return resPrint and resArray). - $hooktype='output'; + // Define type of hook ('output' or 'addreplace'). Type 'returnvalue' is deprecated because a 'addreplace' hook can also return resPrint and resArray). + $hooktype = 'output'; if (in_array( $method, array( @@ -199,6 +199,7 @@ class HookManager 'pdf_getlinetotalwithtax', 'paymentsupplierinvoices', 'printAddress', + 'printEmail', 'printSearchForm', 'printTabsHead', 'printObjectLine', @@ -208,26 +209,27 @@ class HookManager 'sendMailAfter', 'showLinkToObjectBlock', 'setContentSecurityPolicy', - 'setHtmlTitle' + 'setHtmlTitle', + 'completeTabsHead' ) - )) $hooktype='addreplace'; + )) $hooktype = 'addreplace'; if ($method == 'insertExtraFields') { - $hooktype='returnvalue'; // @deprecated. TODO Remove all code with "executeHooks('insertExtraFields'" as soon as there is a trigger available. + $hooktype = 'returnvalue'; // @deprecated. TODO Remove all code with "executeHooks('insertExtraFields'" as soon as there is a trigger available. dol_syslog("Warning: The hook 'insertExtraFields' is deprecated and must not be used. Use instead trigger on CRUD event (ask it to dev team if not implemented)", LOG_WARNING); } // Init return properties - $this->resPrint=''; $this->resArray=array(); $this->resNbOfHooks=0; + $this->resPrint = ''; $this->resArray = array(); $this->resNbOfHooks = 0; // Loop on each hook to qualify modules that have declared context - $modulealreadyexecuted=array(); - $resaction=0; $error=0; $result=''; - foreach($this->hooks as $context => $modules) // $this->hooks is an array with context as key and value is an array of modules that handle this context + $modulealreadyexecuted = array(); + $resaction = 0; $error = 0; $result = ''; + foreach ($this->hooks as $context => $modules) // $this->hooks is an array with context as key and value is an array of modules that handle this context { - if (! empty($modules)) + if (!empty($modules)) { - foreach($modules as $module => $actionclassinstance) + foreach ($modules as $module => $actionclassinstance) { //print "Before hook ".get_class($actionclassinstance)." method=".$method." hooktype=".$hooktype." results=".count($actionclassinstance->results)." resprints=".count($actionclassinstance->resprints)." resaction=".$resaction." result=".$result."
\n"; @@ -235,15 +237,15 @@ class HookManager if (in_array($module, $modulealreadyexecuted)) continue; // jump to next module/class if method does not exist - if (! method_exists($actionclassinstance, $method)) continue; + if (!method_exists($actionclassinstance, $method)) continue; $this->resNbOfHooks++; - $modulealreadyexecuted[$module]=$module; // Use the $currentcontext in method to avoid running twice + $modulealreadyexecuted[$module] = $module; // Use the $currentcontext in method to avoid running twice // Clean class (an error may have been set from a previous call of another method for same module/hook) - $actionclassinstance->error=0; - $actionclassinstance->errors=array(); + $actionclassinstance->error = 0; + $actionclassinstance->errors = array(); dol_syslog(get_class($this)."::executeHooks Qualified hook found (hooktype=".$hooktype."). We call method ".$method." of class ".get_class($actionclassinstance).", module=".$module.", action=".$action." context=".$context, LOG_DEBUG); @@ -253,38 +255,38 @@ class HookManager if ($hooktype == 'addreplace') { $resaction += $actionclassinstance->$method($parameters, $object, $action, $this); // $object and $action can be changed by method ($object->id during creation for example or $action to go back to other action for example) - if ($resaction < 0 || ! empty($actionclassinstance->error) || (! empty($actionclassinstance->errors) && count($actionclassinstance->errors) > 0)) + if ($resaction < 0 || !empty($actionclassinstance->error) || (!empty($actionclassinstance->errors) && count($actionclassinstance->errors) > 0)) { $error++; - $this->error=$actionclassinstance->error; $this->errors=array_merge($this->errors, (array) $actionclassinstance->errors); - dol_syslog("Error on hook module=".$module.", method ".$method.", class ".get_class($actionclassinstance).", hooktype=".$hooktype.(empty($this->error)?'':" ".$this->error).(empty($this->errors)?'':" ".join(",", $this->errors)), LOG_ERR); + $this->error = $actionclassinstance->error; $this->errors = array_merge($this->errors, (array) $actionclassinstance->errors); + dol_syslog("Error on hook module=".$module.", method ".$method.", class ".get_class($actionclassinstance).", hooktype=".$hooktype.(empty($this->error) ? '' : " ".$this->error).(empty($this->errors) ? '' : " ".join(",", $this->errors)), LOG_ERR); } - if (isset($actionclassinstance->results) && is_array($actionclassinstance->results)) $this->resArray =array_merge($this->resArray, $actionclassinstance->results); - if (! empty($actionclassinstance->resprints)) $this->resPrint.=$actionclassinstance->resprints; + if (isset($actionclassinstance->results) && is_array($actionclassinstance->results)) $this->resArray = array_merge($this->resArray, $actionclassinstance->results); + if (!empty($actionclassinstance->resprints)) $this->resPrint .= $actionclassinstance->resprints; } // Generic hooks that return a string or array (printLeftBlock, formAddObjectLine, formBuilddocOptions, ...) else { // TODO. this test should be done into the method of hook by returning nothing - if (is_array($parameters) && ! empty($parameters['special_code']) && $parameters['special_code'] > 3 && $parameters['special_code'] != $actionclassinstance->module_number) continue; + if (is_array($parameters) && !empty($parameters['special_code']) && $parameters['special_code'] > 3 && $parameters['special_code'] != $actionclassinstance->module_number) continue; //dol_syslog("Call method ".$method." of class ".get_class($actionclassinstance).", module=".$module.", hooktype=".$hooktype, LOG_DEBUG); $resaction = $actionclassinstance->$method($parameters, $object, $action, $this); // $object and $action can be changed by method ($object->id during creation for example or $action to go back to other action for example) - if (! empty($actionclassinstance->results) && is_array($actionclassinstance->results)) $this->resArray=array_merge($this->resArray, $actionclassinstance->results); - if (! empty($actionclassinstance->resprints)) $this->resPrint.=$actionclassinstance->resprints; + if (!empty($actionclassinstance->results) && is_array($actionclassinstance->results)) $this->resArray = array_merge($this->resArray, $actionclassinstance->results); + if (!empty($actionclassinstance->resprints)) $this->resPrint .= $actionclassinstance->resprints; if (is_numeric($resaction) && $resaction < 0) { $error++; - $this->error=$actionclassinstance->error; $this->errors=array_merge($this->errors, (array) $actionclassinstance->errors); - dol_syslog("Error on hook module=".$module.", method ".$method.", class ".get_class($actionclassinstance).", hooktype=".$hooktype.(empty($this->error)?'':" ".$this->error).(empty($this->errors)?'':" ".join(",", $this->errors)), LOG_ERR); + $this->error = $actionclassinstance->error; $this->errors = array_merge($this->errors, (array) $actionclassinstance->errors); + dol_syslog("Error on hook module=".$module.", method ".$method.", class ".get_class($actionclassinstance).", hooktype=".$hooktype.(empty($this->error) ? '' : " ".$this->error).(empty($this->errors) ? '' : " ".join(",", $this->errors)), LOG_ERR); } // TODO dead code to remove (do not enable this, but fix hook instead): result must not be a string but an int. you must use $actionclassinstance->resprints to return a string - if (! is_array($resaction) && ! is_numeric($resaction)) + if (!is_array($resaction) && !is_numeric($resaction)) { dol_syslog('Error: Bug into hook '.$method.' of module class '.get_class($actionclassinstance).'. Method must not return a string but an int (0=OK, 1=Replace, -1=KO) and set string into ->resprints', LOG_ERR); - if (empty($actionclassinstance->resprints)) { $this->resPrint.=$resaction; $resaction=0; } + if (empty($actionclassinstance->resprints)) { $this->resPrint .= $resaction; $resaction = 0; } } } @@ -296,6 +298,6 @@ class HookManager } } - return ($error?-1:$resaction); + return ($error ?-1 : $resaction); } } diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 9f8e02e4948..c543fd436a2 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -329,36 +329,54 @@ class Form */ public function widgetForTranslation($fieldname, $object, $perm, $typeofdata = 'string', $check = '', $morecss = '') { - global $conf, $langs; + global $conf, $langs, $extralanguages; $result = ''; - if (! empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE)) { - $langcode = $conf->global->PDF_USE_ALSO_LANGUAGE_CODE; + // List of extra languages + $arrayoflangcode = array(); + if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE)) $arrayoflangcode[] = $conf->global->PDF_USE_ALSO_LANGUAGE_CODE; - $result .='
'; - $s=img_picto($langs->trans("ShowOtherLanguages"), 'language', '', false, 0, 0, '', 'fa-15 editfieldlang'); + if (is_array($arrayoflangcode) && count($arrayoflangcode)) { + if (!is_object($extralanguages)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/extralanguages.class.php'; + $extralanguages = new ExtraLanguages($this->db); + } + $extralanguages->fetch_name_extralanguages('societe'); + + if (!is_array($extralanguages->attributes[$object->element]) || empty($extralanguages->attributes[$object->element][$fieldname])) { + return ''; // No extralang field to show + } + + $result .= '
'; + $s = img_picto($langs->trans("ShowOtherLanguages"), 'language', '', false, 0, 0, '', 'fa-15 editfieldlang'); $result .= $s; $result .= '
'; - $result .='
'.$langs->trans("CalculationMode").''; + if (!$variante) print ''; else print ''; print $calcmode; if ($variante) print ''.$variante; @@ -220,7 +220,7 @@ function journalHead($nom, $variante, $period, $periodlink, $description, $build // Ligne de la periode d'analyse du rapport print '
'.$langs->trans("ReportPeriod").''; + if (!$periodlink) print ''; else print ''; if ($period) print $period; if ($periodlink) print ''.$periodlink; diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index be419f19b5f..f2e8e94ab78 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -577,9 +577,9 @@ function modules_prepare_head() $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT."/admin/modules.php?mode=common"; + $head[$h][0] = DOL_URL_ROOT."/admin/modules.php?mode=commonkanban"; $head[$h][1] = $langs->trans("AvailableModules"); - $head[$h][2] = 'common'; + $head[$h][2] = 'commonkanban'; $h++; $head[$h][0] = DOL_URL_ROOT."/admin/modules.php?mode=marketplace"; @@ -1809,7 +1809,7 @@ function email_admin_prepare_head() if ($conf->mailing->enabled) { $head[$h][0] = DOL_URL_ROOT."/admin/mails_emailing.php"; - $head[$h][1] = $langs->trans("OutGoingEmailSetupForEmailing"); + $head[$h][1] = $langs->trans("OutGoingEmailSetupForEmailing", $langs->transnoentitiesnoconv("EMailing")); $head[$h][2] = 'common_emailing'; $h++; } diff --git a/htdocs/core/lib/agenda.lib.php b/htdocs/core/lib/agenda.lib.php index e5d7422cf8a..8dc2e418cc8 100644 --- a/htdocs/core/lib/agenda.lib.php +++ b/htdocs/core/lib/agenda.lib.php @@ -54,88 +54,94 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh $langs->load("companies"); - include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; - $formactions=new FormActions($db); + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; + $formactions = new FormActions($db); // Filters //print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print '
'; if ($conf->browser->layout == 'phone') print '
'; - else print ''; - $staticaction->type_code=$obj->code; - $staticaction->label=($obj->label?$obj->label:$obj->type_label); - $staticaction->id=$obj->id; + $staticaction->type_code = $obj->code; + $staticaction->label = ($obj->label ? $obj->label : $obj->type_label); + $staticaction->id = $obj->id; print ''; // print ''; @@ -266,23 +272,23 @@ function show_array_actions_to_do($max = 5) print ''; - $datep=$db->jdate($obj->dp); - $datep2=$db->jdate($obj->dp2); + $datep = $db->jdate($obj->dp); + $datep2 = $db->jdate($obj->dp2); // Date print '"; @@ -314,23 +320,23 @@ function show_array_last_actions_done($max = 5) { global $langs, $conf, $user, $db, $bc, $socid; - $now=dol_now(); + $now = dol_now(); $sql = "SELECT a.id, a.percent, a.datep as da, a.datep2 as da2, a.fk_user_author, a.label,"; - $sql.= " c.code, c.libelle,"; - $sql.= " s.rowid, s.nom as sname, s.client"; - $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a LEFT JOIN "; - $sql.= " ".MAIN_DB_PREFIX."c_actioncomm as c ON c.id = a.fk_action "; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON a.fk_soc = s.rowid"; - if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE a.entity = ".$conf->entity; - $sql.= " AND (a.percent >= 100 OR (a.percent = -1 AND a.datep2 <= '".$db->idate($now)."'))"; - if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if ($socid) $sql.= " AND s.rowid = ".$socid; + $sql .= " c.code, c.libelle,"; + $sql .= " s.rowid, s.nom as sname, s.client"; + $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a LEFT JOIN "; + $sql .= " ".MAIN_DB_PREFIX."c_actioncomm as c ON c.id = a.fk_action "; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON a.fk_soc = s.rowid"; + if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE a.entity = ".$conf->entity; + $sql .= " AND (a.percent >= 100 OR (a.percent = -1 AND a.datep2 <= '".$db->idate($now)."'))"; + if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($socid) $sql .= " AND s.rowid = ".$socid; $sql .= " ORDER BY a.datep2 DESC"; $sql .= $db->plimit($max, 0); - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -343,8 +349,8 @@ function show_array_last_actions_done($max = 5) $var = true; $i = 0; - $staticaction=new ActionComm($db); - $customerstatic=new Societe($db); + $staticaction = new ActionComm($db); + $customerstatic = new Societe($db); while ($i < $num) { @@ -353,9 +359,9 @@ function show_array_last_actions_done($max = 5) print ''; - $staticaction->type_code=$obj->code; - $staticaction->libelle=$obj->label; - $staticaction->id=$obj->id; + $staticaction->type_code = $obj->code; + $staticaction->libelle = $obj->label; + $staticaction->id = $obj->id; print ''; //print ''; @@ -363,9 +369,9 @@ function show_array_last_actions_done($max = 5) print ''; @@ -467,13 +473,13 @@ function actions_prepare_head($object) if ($conf->resource->enabled) { include_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; - $resource=new DolResource($db); + $resource = new DolResource($db); $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).''; + if ($nbResources > 0) $head[$h][1] .= ''.($nbResources).''; $head[$h][2] = 'resources'; $h++; } @@ -481,12 +487,12 @@ function actions_prepare_head($object) // Attached files require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->agenda->dir_output . "/" . $object->id; + $upload_dir = $conf->agenda->dir_output."/".$object->id; $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/comm/action/document.php?id='.$object->id; $head[$h][1] = $langs->trans("Documents"); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; @@ -516,30 +522,30 @@ function calendars_prepare_head($param) $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT.'/comm/action/list.php'.($param?'?'.$param:''); + $head[$h][0] = DOL_URL_ROOT.'/comm/action/list.php'.($param ? '?'.$param : ''); $head[$h][1] = $langs->trans("ViewList"); $head[$h][2] = 'cardlist'; $h++; - $head[$h][0] = DOL_URL_ROOT.'/comm/action/index.php?action=show_month'.($param?'&'.$param:''); + $head[$h][0] = DOL_URL_ROOT.'/comm/action/index.php?action=show_month'.($param ? '&'.$param : ''); $head[$h][1] = $langs->trans("ViewCal"); $head[$h][2] = 'cardmonth'; $h++; - $head[$h][0] = DOL_URL_ROOT.'/comm/action/index.php?action=show_week'.($param?'&'.$param:''); + $head[$h][0] = DOL_URL_ROOT.'/comm/action/index.php?action=show_week'.($param ? '&'.$param : ''); $head[$h][1] = $langs->trans("ViewWeek"); $head[$h][2] = 'cardweek'; $h++; - $head[$h][0] = DOL_URL_ROOT.'/comm/action/index.php?action=show_day'.($param?'&'.$param:''); + $head[$h][0] = DOL_URL_ROOT.'/comm/action/index.php?action=show_day'.($param ? '&'.$param : ''); $head[$h][1] = $langs->trans("ViewDay"); $head[$h][2] = 'cardday'; $h++; //if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) - if (! empty($conf->global->AGENDA_SHOW_PERTYPE)) + if (!empty($conf->global->AGENDA_SHOW_PERTYPE)) { - $head[$h][0] = DOL_URL_ROOT.'/comm/action/pertype.php'.($param?'?'.$param:''); + $head[$h][0] = DOL_URL_ROOT.'/comm/action/pertype.php'.($param ? '?'.$param : ''); $head[$h][1] = $langs->trans("ViewPerType"); $head[$h][2] = 'cardpertype'; $h++; @@ -547,7 +553,7 @@ function calendars_prepare_head($param) $newparam = $param; $newparam = preg_replace('/&?search_filtert=\d+/', '', $newparam); - $head[$h][0] = DOL_URL_ROOT.'/comm/action/peruser.php'.($newparam?'?'.$newparam:''); + $head[$h][0] = DOL_URL_ROOT.'/comm/action/peruser.php'.($newparam ? '?'.$newparam : ''); $head[$h][1] = $langs->trans("ViewPerUser"); $head[$h][2] = 'cardperuser'; $h++; diff --git a/htdocs/core/lib/asset.lib.php b/htdocs/core/lib/asset.lib.php index 5c6bac579f2..1b58784f6e8 100644 --- a/htdocs/core/lib/asset.lib.php +++ b/htdocs/core/lib/asset.lib.php @@ -35,7 +35,7 @@ function asset_admin_prepare_head() $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT . '/asset/admin/setup.php'; + $head[$h][0] = DOL_URL_ROOT.'/asset/admin/setup.php'; $head[$h][1] = $langs->trans("Settings"); $head[$h][2] = 'settings'; $h++; @@ -50,12 +50,12 @@ function asset_admin_prepare_head() //); // to remove a tab complete_head_from_modules($conf, $langs, null, $head, $h, 'assets_admin'); - $head[$h][0] = DOL_URL_ROOT . '/asset/admin/assets_extrafields.php'; + $head[$h][0] = DOL_URL_ROOT.'/asset/admin/assets_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); $head[$h][2] = 'attributes'; $h++; - $head[$h][0] = DOL_URL_ROOT . '/asset/admin/assets_type_extrafields.php'; + $head[$h][0] = DOL_URL_ROOT.'/asset/admin/assets_type_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsAssetsType"); $head[$h][2] = 'attributes_type'; $h++; @@ -80,7 +80,7 @@ function asset_prepare_head(Asset $object) $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT . '/asset/card.php'; + $head[$h][0] = DOL_URL_ROOT.'/asset/card.php'; $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; $h++; @@ -97,25 +97,25 @@ function asset_prepare_head(Asset $object) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->assets->dir_output . '/' . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->assets->dir_output.'/'.dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/asset/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/asset/note.php?id='.$object->id; $head[$h][1] = $langs->trans("Notes"); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; - $head[$h][0] = DOL_URL_ROOT . '/asset/info.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/asset/info.php?id='.$object->id; $head[$h][1] = $langs->trans("Info"); $head[$h][2] = 'info'; $h++; @@ -135,7 +135,7 @@ function asset_type_prepare_head(AssetType $object) { global $langs, $conf, $user; - $h=0; + $h = 0; $head = array(); $head[$h][0] = DOL_URL_ROOT.'/asset/type.php?rowid='.$object->id; diff --git a/htdocs/core/lib/bank.lib.php b/htdocs/core/lib/bank.lib.php index 6c23e324f71..da51589b8ac 100644 --- a/htdocs/core/lib/bank.lib.php +++ b/htdocs/core/lib/bank.lib.php @@ -179,7 +179,7 @@ function account_statement_prepare_head($object, $num) // Attached files require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->bank->dir_output."/".$object->id.'/'.dol_sanitizeFileName($num); + $upload_dir = $conf->bank->dir_output."/".$object->id.'/statement/'.dol_sanitizeFileName($num); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); $nbLinks = Link::count($db, $object->element, $object->id); diff --git a/htdocs/core/lib/barcode.lib.php b/htdocs/core/lib/barcode.lib.php index 1a7b33569ce..a4d7a077aab 100644 --- a/htdocs/core/lib/barcode.lib.php +++ b/htdocs/core/lib/barcode.lib.php @@ -27,18 +27,18 @@ /* ******************************************************************** */ /* COLORS */ /* ******************************************************************** */ -$bar_color=array(0,0,0); -$bg_color=array(255,255,255); -$text_color=array(0,0,0); +$bar_color = array(0, 0, 0); +$bg_color = array(255, 255, 255); +$text_color = array(0, 0, 0); /* ******************************************************************** */ /* FONT FILE */ /* ******************************************************************** */ -if (defined('DOL_DEFAULT_TTF_BOLD')) $font_loc=constant('DOL_DEFAULT_TTF_BOLD'); +if (defined('DOL_DEFAULT_TTF_BOLD')) $font_loc = constant('DOL_DEFAULT_TTF_BOLD'); // Automatic-Detection of Font if running Windows // @CHANGE LDR -if (isset($_SERVER['WINDIR']) && @file_exists($_SERVER['WINDIR'])) $font_loc=$_SERVER['WINDIR'].'\Fonts\arialbd.ttf'; +if (isset($_SERVER['WINDIR']) && @file_exists($_SERVER['WINDIR'])) $font_loc = $_SERVER['WINDIR'].'\Fonts\arialbd.ttf'; if (empty($font_loc)) die('DOL_DEFAULT_TTF_BOLD must de defined with full path to a TTF font.'); @@ -50,7 +50,7 @@ if (empty($font_loc)) die('DOL_DEFAULT_TTF_BOLD must de defined with full path t * genbarcode is needed to render encodings other than EAN-12/EAN-13/ISBN */ -if (defined('PHP-BARCODE_PATH_COMMAND')) $genbarcode_loc=constant('PHP-BARCODE_PATH_COMMAND'); +if (defined('PHP-BARCODE_PATH_COMMAND')) $genbarcode_loc = constant('PHP-BARCODE_PATH_COMMAND'); else $genbarcode_loc = $conf->global->GENBARCODE_LOCATION; @@ -69,16 +69,16 @@ function barcode_print($code, $encoding = "ANY", $scale = 2, $mode = "png") { dol_syslog("barcode.lib.php::barcode_print $code $encoding $scale $mode"); - $bars=barcode_encode($code, $encoding); - if (! $bars || ! empty($bars['error'])) + $bars = barcode_encode($code, $encoding); + if (!$bars || !empty($bars['error'])) { // Return error message instead of array - if (empty($bars['error'])) $error='Bad Value '.$code.' for encoding '.$encoding; - else $error=$bars['error']; + if (empty($bars['error'])) $error = 'Bad Value '.$code.' for encoding '.$encoding; + else $error = $bars['error']; dol_syslog('barcode.lib.php::barcode_print '.$error, LOG_ERR); return $error; } - if (! $mode) $mode="png"; + if (!$mode) $mode = "png"; //if (preg_match("/^(text|txt|plain)$/i",$mode)) print barcode_outtext($bars['text'],$bars['bars']); //elseif (preg_match("/^(html|htm)$/i",$mode)) print barcode_outhtml($bars['text'],$bars['bars'], $scale,0, 0); //else @@ -116,23 +116,23 @@ function barcode_encode($code, $encoding) (preg_match("/^ean$/i", $encoding)) || (($encoding) && (preg_match("/^isbn$/i", $encoding)) - && (( strlen($code)==9 || strlen($code)==10) || - (((preg_match("/^978/", $code) && strlen($code)==12) || - (strlen($code)==13))))) + && ((strlen($code) == 9 || strlen($code) == 10) || + (((preg_match("/^978/", $code) && strlen($code) == 12) || + (strlen($code) == 13))))) - || (( !isset($encoding) || !$encoding || (preg_match("/^ANY$/i", $encoding) )) + || ((!isset($encoding) || !$encoding || (preg_match("/^ANY$/i", $encoding))) && (preg_match("/^[0-9]{12,13}$/", $code))) ) { /* use built-in EAN-Encoder */ dol_syslog("barcode.lib.php::barcode_encode Use barcode_encode_ean"); - $bars=barcode_encode_ean($code, $encoding); + $bars = barcode_encode_ean($code, $encoding); } elseif (file_exists($genbarcode_loc)) // For example C39 { /* use genbarcode */ dol_syslog("barcode.lib.php::barcode_encode Use genbarcode ".$genbarcode_loc." code=".$code." encoding=".$encoding); - $bars=barcode_encode_genbarcode($code, $encoding); + $bars = barcode_encode_genbarcode($code, $encoding); } else { @@ -160,14 +160,14 @@ function barcode_encode($code, $encoding) */ function barcode_gen_ean_sum($ean) { - $even=true; $esum=0; $osum=0; - $ln=strlen($ean)-1; - for ($i=$ln; $i>=0; $i--) + $even = true; $esum = 0; $osum = 0; + $ln = strlen($ean) - 1; + for ($i = $ln; $i >= 0; $i--) { - if ($even) $esum+=$ean[$i]; else $osum+=$ean[$i]; - $even=!$even; + if ($even) $esum += $ean[$i]; else $osum += $ean[$i]; + $even = !$even; } - return (10-((3*$esum+$osum)%10))%10; + return (10 - ((3 * $esum + $osum) % 10)) % 10; } /** @@ -179,48 +179,48 @@ function barcode_gen_ean_sum($ean) */ function barcode_encode_ean($ean, $encoding = "EAN-13") { - $digits=array(3211,2221,2122,1411,1132,1231,1114,1312,1213,3112); - $mirror=array("000000","001011","001101","001110","010011","011001","011100","010101","010110","011010"); - $guards=array("9a1a","1a1a1","a1a"); + $digits = array(3211, 2221, 2122, 1411, 1132, 1231, 1114, 1312, 1213, 3112); + $mirror = array("000000", "001011", "001101", "001110", "010011", "011001", "011100", "010101", "010110", "011010"); + $guards = array("9a1a", "1a1a1", "a1a"); - $ean=trim($ean); + $ean = trim($ean); if (preg_match("/[^0-9]/i", $ean)) { return array("error"=>"Invalid encoding/code. encoding=".$encoding." code=".$ean." (not a numeric)", "text"=>"Invalid encoding/code. encoding=".$encoding." code=".$ean." (not a numeric)"); } - $encoding=strtoupper($encoding); - if ($encoding=="ISBN") + $encoding = strtoupper($encoding); + if ($encoding == "ISBN") { - if (!preg_match("/^978/", $ean)) $ean="978".$ean; + if (!preg_match("/^978/", $ean)) $ean = "978".$ean; } - if (preg_match("/^978/", $ean)) $encoding="ISBN"; - if (strlen($ean)<12 || strlen($ean)>13) + if (preg_match("/^978/", $ean)) $encoding = "ISBN"; + if (strlen($ean) < 12 || strlen($ean) > 13) { return array("error"=>"Invalid encoding/code. encoding=".$encoding." code=".$ean." (must have 12/13 numbers)", "text"=>"Invalid encoding/code. encoding=".$encoding." code=".$ean." (must have 12/13 numbers)"); } - $ean=substr($ean, 0, 12); - $eansum=barcode_gen_ean_sum($ean); - $ean.=$eansum; - $line=$guards[0]; - for ($i=1;$i<13;$i++) + $ean = substr($ean, 0, 12); + $eansum = barcode_gen_ean_sum($ean); + $ean .= $eansum; + $line = $guards[0]; + for ($i = 1; $i < 13; $i++) { - $str=$digits[$ean[$i]]; - if ($i<7 && $mirror[$ean[0]][$i-1]==1) $line.=strrev($str); else $line.=$str; - if ($i==6) $line.=$guards[1]; + $str = $digits[$ean[$i]]; + if ($i < 7 && $mirror[$ean[0]][$i - 1] == 1) $line .= strrev($str); else $line .= $str; + if ($i == 6) $line .= $guards[1]; } - $line.=$guards[2]; + $line .= $guards[2]; /* create text */ - $pos=0; - $text=""; - for ($a=0;$a<13;$a++) + $pos = 0; + $text = ""; + for ($a = 0; $a < 13; $a++) { - if ($a>0) $text.=" "; - $text.="$pos:12:{$ean[$a]}"; - if ($a==0) $pos+=12; - elseif ($a==6) $pos+=12; - else $pos+=7; + if ($a > 0) $text .= " "; + $text .= "$pos:12:{$ean[$a]}"; + if ($a == 0) $pos += 12; + elseif ($a == 6) $pos += 12; + else $pos += 7; } return array( @@ -243,25 +243,25 @@ function barcode_encode_genbarcode($code, $encoding) global $genbarcode_loc; // Clean parameters - if (preg_match("/^ean$/i", $encoding) && strlen($code)==13) $code=substr($code, 0, 12); - if (!$encoding) $encoding="ANY"; - $encoding=preg_replace("/[\\\|]/", "_", $encoding); - $code=preg_replace("/[\\\|]/", "_", $code); + if (preg_match("/^ean$/i", $encoding) && strlen($code) == 13) $code = substr($code, 0, 12); + if (!$encoding) $encoding = "ANY"; + $encoding = preg_replace("/[\\\|]/", "_", $encoding); + $code = preg_replace("/[\\\|]/", "_", $code); - $command=escapeshellarg($genbarcode_loc); + $command = escapeshellarg($genbarcode_loc); //$paramclear=" \"".str_replace("\"", "\\\"",$code)."\" \"".str_replace("\"", "\\\"",strtoupper($encoding))."\""; - $paramclear=" ".escapeshellarg($code)." ".escapeshellarg(strtoupper($encoding)); + $paramclear = " ".escapeshellarg($code)." ".escapeshellarg(strtoupper($encoding)); - $fullcommandclear=$command." ".$paramclear." 2>&1"; + $fullcommandclear = $command." ".$paramclear." 2>&1"; //print $fullcommandclear."
\n";exit; dol_syslog("Run command ".$fullcommandclear); - $fp=popen($fullcommandclear, "r"); + $fp = popen($fullcommandclear, "r"); if ($fp) { - $bars=fgets($fp, 1024); - $text=fgets($fp, 1024); - $encoding=fgets($fp, 1024); + $bars = fgets($fp, 1024); + $text = fgets($fp, 1024); + $encoding = fgets($fp, 1024); pclose($fp); } else @@ -270,7 +270,7 @@ function barcode_encode_genbarcode($code, $encoding) return false; } //var_dump($bars); - $ret=array( + $ret = array( "bars" => trim($bars), "text" => trim($text), "encoding" => trim($encoding), @@ -279,7 +279,7 @@ function barcode_encode_genbarcode($code, $encoding) //var_dump($ret); if (preg_match('/permission denied/i', $ret['bars'])) { - $ret['error']=$ret['bars']; $ret['bars']=''; + $ret['error'] = $ret['bars']; $ret['bars'] = ''; return $ret; } if (!$ret['bars']) return false; @@ -310,99 +310,99 @@ function barcode_outimage($text, $bars, $scale = 1, $mode = "png", $total_y = 0, //var_dump($font_loc); /* set defaults */ - if ($scale<1) $scale=2; - $total_y=(int) $total_y; - if ($total_y<1) $total_y=(int) $scale * 60; + if ($scale < 1) $scale = 2; + $total_y = (int) $total_y; + if ($total_y < 1) $total_y = (int) $scale * 60; if (!$space) - $space=array('top'=>2*$scale,'bottom'=>2*$scale,'left'=>2*$scale,'right'=>2*$scale); + $space = array('top'=>2 * $scale, 'bottom'=>2 * $scale, 'left'=>2 * $scale, 'right'=>2 * $scale); /* count total width */ - $xpos=0; - $width=true; - $ln=strlen($bars); - for ($i=0; $i<$ln; $i++) + $xpos = 0; + $width = true; + $ln = strlen($bars); + for ($i = 0; $i < $ln; $i++) { - $val=strtolower($bars[$i]); + $val = strtolower($bars[$i]); if ($width) { - $xpos+=$val*$scale; - $width=false; + $xpos += $val * $scale; + $width = false; continue; } if (preg_match("/[a-z]/", $val)) { /* tall bar */ - $val=ord($val)-ord('a')+1; + $val = ord($val) - ord('a') + 1; } - $xpos+=$val*$scale; - $width=true; + $xpos += $val * $scale; + $width = true; } /* allocate the image */ - $total_x=( $xpos )+$space['right']+$space['right']; - $xpos=$space['left']; - if (! function_exists("imagecreate")) + $total_x = ($xpos) + $space['right'] + $space['right']; + $xpos = $space['left']; + if (!function_exists("imagecreate")) { print "You don't have the gd2 extension enabled
\n"; return ""; } - $im=imagecreate($total_x, $total_y); + $im = imagecreate($total_x, $total_y); /* create two images */ - $col_bg=ImageColorAllocate($im, $bg_color[0], $bg_color[1], $bg_color[2]); - $col_bar=ImageColorAllocate($im, $bar_color[0], $bar_color[1], $bar_color[2]); - $col_text=ImageColorAllocate($im, $text_color[0], $text_color[1], $text_color[2]); - $height=round($total_y-($scale*10)); - $height2=round($total_y-$space['bottom']); + $col_bg = ImageColorAllocate($im, $bg_color[0], $bg_color[1], $bg_color[2]); + $col_bar = ImageColorAllocate($im, $bar_color[0], $bar_color[1], $bar_color[2]); + $col_text = ImageColorAllocate($im, $text_color[0], $text_color[1], $text_color[2]); + $height = round($total_y - ($scale * 10)); + $height2 = round($total_y - $space['bottom']); /* paint the bars */ - $width=true; - $ln=strlen($bars); - for ($i=0; $i<$ln; $i++) + $width = true; + $ln = strlen($bars); + for ($i = 0; $i < $ln; $i++) { - $val=strtolower($bars[$i]); + $val = strtolower($bars[$i]); if ($width) { - $xpos+=$val*$scale; - $width=false; + $xpos += $val * $scale; + $width = false; continue; } if (preg_match("/[a-z]/", $val)) { /* tall bar */ - $val=ord($val)-ord('a')+1; - $h=$height2; - } else $h=$height; - imagefilledrectangle($im, $xpos, $space['top'], $xpos+($val*$scale)-1, $h, $col_bar); - $xpos+=$val*$scale; - $width=true; + $val = ord($val) - ord('a') + 1; + $h = $height2; + } else $h = $height; + imagefilledrectangle($im, $xpos, $space['top'], $xpos + ($val * $scale) - 1, $h, $col_bar); + $xpos += $val * $scale; + $width = true; } - $chars=explode(" ", $text); + $chars = explode(" ", $text); reset($chars); - while (list($n, $v)=each($chars)) + while (list($n, $v) = each($chars)) { if (trim($v)) { - $inf=explode(":", $v); - $fontsize=$scale*($inf[1]/1.8); - $fontheight=$total_y-($fontsize/2.7)+2; - imagettftext($im, $fontsize, 0, $space['left']+($scale*$inf[0])+2, $fontheight, $col_text, $font_loc, $inf[2]); + $inf = explode(":", $v); + $fontsize = $scale * ($inf[1] / 1.8); + $fontheight = $total_y - ($fontsize / 2.7) + 2; + imagettftext($im, $fontsize, 0, $space['left'] + ($scale * $inf[0]) + 2, $fontheight, $col_text, $font_loc, $inf[2]); } } /* output the image */ - $mode=strtolower($mode); - if ($mode=='jpg' || $mode=='jpeg') + $mode = strtolower($mode); + if ($mode == 'jpg' || $mode == 'jpeg') { header("Content-Type: image/jpeg; name=\"barcode.jpg\""); imagejpeg($im); } - elseif ($mode=='gif') + elseif ($mode == 'gif') { header("Content-Type: image/gif; name=\"barcode.gif\""); imagegif($im); } - elseif (! empty($filebarcode)) // To wxrite into afile onto disk + elseif (!empty($filebarcode)) // To wxrite into afile onto disk { imagepng($im, $filebarcode); } diff --git a/htdocs/core/lib/categories.lib.php b/htdocs/core/lib/categories.lib.php index ca665637768..e0945f9a029 100644 --- a/htdocs/core/lib/categories.lib.php +++ b/htdocs/core/lib/categories.lib.php @@ -29,7 +29,7 @@ * @param string $type Type of category * @return array Array of tabs to show */ -function categories_prepare_head($object, $type) +function categories_prepare_head(Categorie $object, $type) { global $langs, $conf, $user; @@ -49,7 +49,7 @@ function categories_prepare_head($object, $type) $head[$h][2] = 'photos'; $h++; - if (! empty($conf->global->MAIN_MULTILANGS)) + if (!empty($conf->global->MAIN_MULTILANGS)) { $head[$h][0] = DOL_URL_ROOT.'/categories/traduction.php?id='.$object->id.'&type='.$type; $head[$h][1] = $langs->trans("Translation"); @@ -57,6 +57,11 @@ function categories_prepare_head($object, $type) $h++; } + $head[$h][0] = DOL_URL_ROOT.'/categories/info.php?id='.$object->id; + $head[$h][1] = $langs->trans("Info"); + $head[$h][2] = 'info'; + $h++; + // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index eac9f404188..25061e60f9c 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -105,7 +105,7 @@ function societe_prepare_head(Societe $object) } } $supplier_module_enabled = 0; - if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_proposal->enabled) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) $supplier_module_enabled=1; + if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_proposal->enabled) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) $supplier_module_enabled = 1; if ($supplier_module_enabled == 1 && $object->fournisseur && !empty($user->rights->fournisseur->lire)) { $head[$h][0] = DOL_URL_ROOT.'/fourn/card.php?socid='.$object->id; @@ -1228,7 +1228,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') // Edit if ($user->rights->societe->contact->creer) { - print ''; + print ''; print img_edit(); print ''; } diff --git a/htdocs/core/lib/contact.lib.php b/htdocs/core/lib/contact.lib.php index 0082947d0c1..8edc81d7ee7 100644 --- a/htdocs/core/lib/contact.lib.php +++ b/htdocs/core/lib/contact.lib.php @@ -42,8 +42,8 @@ function contact_prepare_head(Contact $object) $head[$tab][2] = 'card'; $tab++; - if ((! empty($conf->ldap->enabled) && ! empty($conf->global->LDAP_CONTACT_ACTIVE)) - && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || ! empty($user->admin))) + if ((!empty($conf->ldap->enabled) && !empty($conf->global->LDAP_CONTACT_ACTIVE)) + && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || !empty($user->admin))) { $langs->load("ldap"); @@ -59,7 +59,7 @@ function contact_prepare_head(Contact $object) $tab++; // Related items - if (! empty($conf->commande->enabled) || ! empty($conf->propal->enabled) || ! empty($conf->facture->enabled) || ! empty($conf->ficheinter->enabled) || ! empty($conf->fournisseur->enabled)) + if (!empty($conf->commande->enabled) || !empty($conf->propal->enabled) || !empty($conf->facture->enabled) || !empty($conf->ficheinter->enabled) || !empty($conf->fournisseur->enabled)) { $head[$tab][0] = DOL_URL_ROOT.'/contact/consumption.php?id='.$object->id; $head[$tab][1] = $langs->trans("Referers"); @@ -75,32 +75,32 @@ function contact_prepare_head(Contact $object) // Notes if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { - $nbNote = (empty($object->note_private)?0:1)+(empty($object->note_public)?0:1); + $nbNote = (empty($object->note_private) ? 0 : 1) + (empty($object->note_public) ? 0 : 1); $head[$tab][0] = DOL_URL_ROOT.'/contact/note.php?id='.$object->id; $head[$tab][1] = $langs->trans("Note"); - if($nbNote > 0) $head[$tab][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$tab][1] .= ''.$nbNote.''; $head[$tab][2] = 'note'; $tab++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->societe->dir_output . "/contact/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->societe->dir_output."/contact/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$tab][0] = DOL_URL_ROOT.'/contact/document.php?id='.$object->id; $head[$tab][1] = $langs->trans("Documents"); - if (($nbFiles+$nbLinks) > 0) $head[$tab][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$tab][1] .= ''.($nbFiles + $nbLinks).''; $head[$tab][2] = 'documents'; $tab++; // Agenda / Events $head[$tab][0] = DOL_URL_ROOT.'/contact/agenda.php?id='.$object->id; - $head[$tab][1].= $langs->trans("Events"); - if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + $head[$tab][1] .= $langs->trans("Events"); + if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { - $head[$tab][1].= '/'; - $head[$tab][1].= $langs->trans("Agenda"); + $head[$tab][1] .= '/'; + $head[$tab][1] .= $langs->trans("Agenda"); } $head[$tab][2] = 'agenda'; $tab++; diff --git a/htdocs/core/lib/contract.lib.php b/htdocs/core/lib/contract.lib.php index ec91a2dcc70..b7d3c45bee3 100644 --- a/htdocs/core/lib/contract.lib.php +++ b/htdocs/core/lib/contract.lib.php @@ -45,7 +45,7 @@ function contract_prepare_head(Contrat $object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/contrat/contact.php?id='.$object->id; $head[$h][1] = $langs->trans("ContactsAddresses"); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -59,32 +59,32 @@ function contract_prepare_head(Contrat $object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/contrat/note.php?id='.$object->id; $head[$h][1] = $langs->trans("Notes"); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->contrat->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->contrat->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/contrat/document.php?id='.$object->id; $head[$h][1] = $langs->trans("Documents"); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; $head[$h][0] = DOL_URL_ROOT.'/contrat/agenda.php?id='.$object->id; - $head[$h][1].= $langs->trans("Events"); - if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + $head[$h][1] .= $langs->trans("Events"); + if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { - $head[$h][1].= '/'; - $head[$h][1].= $langs->trans("Agenda"); + $head[$h][1] .= '/'; + $head[$h][1] .= $langs->trans("Agenda"); } $head[$h][2] = 'agenda'; $h++; diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index e7043a1798a..4baf2aa0232 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -33,7 +33,7 @@ */ function get_tz_array() { - $tzarray=array( + $tzarray = array( -11=>"Pacific/Midway", -10=>"Pacific/Fakaofo", -9=>"America/Anchorage", @@ -85,22 +85,22 @@ function getServerTimeZoneInt($refgmtdate = 'now') if (method_exists('DateTimeZone', 'getOffset')) { // Method 1 (include daylight) - $gmtnow=dol_now('gmt'); $yearref=dol_print_date($gmtnow, '%Y'); $monthref=dol_print_date($gmtnow, '%m'); $dayref=dol_print_date($gmtnow, '%d'); - if ($refgmtdate == 'now') $newrefgmtdate=$yearref.'-'.$monthref.'-'.$dayref; - elseif ($refgmtdate == 'summer') $newrefgmtdate=$yearref.'-08-01'; - else $newrefgmtdate=$yearref.'-01-01'; - $newrefgmtdate.='T00:00:00+00:00'; + $gmtnow = dol_now('gmt'); $yearref = dol_print_date($gmtnow, '%Y'); $monthref = dol_print_date($gmtnow, '%m'); $dayref = dol_print_date($gmtnow, '%d'); + if ($refgmtdate == 'now') $newrefgmtdate = $yearref.'-'.$monthref.'-'.$dayref; + elseif ($refgmtdate == 'summer') $newrefgmtdate = $yearref.'-08-01'; + else $newrefgmtdate = $yearref.'-01-01'; + $newrefgmtdate .= 'T00:00:00+00:00'; $localtz = new DateTimeZone(getServerTimeZoneString()); $localdt = new DateTime($newrefgmtdate, $localtz); - $tmp=-1*$localtz->getOffset($localdt); + $tmp = -1 * $localtz->getOffset($localdt); //print $refgmtdate.'='.$tmp; } else { - $tmp=0; + $tmp = 0; dol_print_error('', 'PHP version must be 5.3+'); } - $tz=round(($tmp<0?1:-1)*abs($tmp/3600)); + $tz = round(($tmp < 0 ? 1 : -1) * abs($tmp / 3600)); return $tz; } @@ -118,23 +118,23 @@ function dol_time_plus_duree($time, $duration_value, $duration_unit) global $conf; if ($duration_value == 0) return $time; - if ($duration_unit == 'h') return $time + (3600*$duration_value); - if ($duration_unit == 'w') return $time + (3600*24*7*$duration_value); + if ($duration_unit == 'h') return $time + (3600 * $duration_value); + if ($duration_unit == 'w') return $time + (3600 * 24 * 7 * $duration_value); - $deltastring='P'; + $deltastring = 'P'; - if ($duration_value > 0){ $deltastring.=abs($duration_value); $sub= false; } - if ($duration_value < 0){ $deltastring.=abs($duration_value); $sub= true; } - if ($duration_unit == 'd') { $deltastring.="D"; } - if ($duration_unit == 'm') { $deltastring.="M"; } - if ($duration_unit == 'y') { $deltastring.="Y"; } + if ($duration_value > 0) { $deltastring .= abs($duration_value); $sub = false; } + if ($duration_value < 0) { $deltastring .= abs($duration_value); $sub = true; } + if ($duration_unit == 'd') { $deltastring .= "D"; } + if ($duration_unit == 'm') { $deltastring .= "M"; } + if ($duration_unit == 'y') { $deltastring .= "Y"; } $date = new DateTime(); - if (! empty($conf->global->MAIN_DATE_IN_MEMORY_ARE_GMT)) $date->setTimezone(new DateTimeZone('UTC')); + if (!empty($conf->global->MAIN_DATE_IN_MEMORY_ARE_GMT)) $date->setTimezone(new DateTimeZone('UTC')); $date->setTimestamp($time); $interval = new DateInterval($deltastring); - if($sub) $date->sub($interval); + if ($sub) $date->sub($interval); else $date->add($interval); return $date->getTimestamp(); @@ -152,7 +152,7 @@ function dol_time_plus_duree($time, $duration_value, $duration_unit) */ function convertTime2Seconds($iHours = 0, $iMinutes = 0, $iSeconds = 0) { - $iResult=($iHours*3600)+($iMinutes*60)+$iSeconds; + $iResult = ($iHours * 3600) + ($iMinutes * 60) + $iSeconds; return $iResult; } @@ -182,26 +182,26 @@ function convertSecondToTime($iSecond, $format = 'all', $lengthOfDay = 86400, $l { global $langs; - if (empty($lengthOfDay)) $lengthOfDay = 86400; // 1 day = 24 hours - if (empty($lengthOfWeek)) $lengthOfWeek = 7; // 1 week = 7 days + if (empty($lengthOfDay)) $lengthOfDay = 86400; // 1 day = 24 hours + if (empty($lengthOfWeek)) $lengthOfWeek = 7; // 1 week = 7 days if ($format == 'all' || $format == 'allwithouthour' || $format == 'allhour' || $format == 'allhourmin' || $format == 'allhourminsec') { - if ((int) $iSecond === 0) return '0'; // This is to avoid having 0 return a 12:00 AM for en_US + if ((int) $iSecond === 0) return '0'; // This is to avoid having 0 return a 12:00 AM for en_US - $sTime=''; - $sDay=0; - $sWeek=0; + $sTime = ''; + $sDay = 0; + $sWeek = 0; if ($iSecond >= $lengthOfDay) { - for($i = $iSecond; $i >= $lengthOfDay; $i -= $lengthOfDay ) + for ($i = $iSecond; $i >= $lengthOfDay; $i -= $lengthOfDay) { $sDay++; - $iSecond-=$lengthOfDay; + $iSecond -= $lengthOfDay; } $dayTranslate = $langs->trans("Day"); - if ($iSecond >= ($lengthOfDay*2)) $dayTranslate = $langs->trans("Days"); + if ($iSecond >= ($lengthOfDay * 2)) $dayTranslate = $langs->trans("Days"); } if ($lengthOfWeek < 7) @@ -210,70 +210,70 @@ function convertSecondToTime($iSecond, $format = 'all', $lengthOfDay = 86400, $l { if ($sDay >= $lengthOfWeek) { - $sWeek = (int) (($sDay - $sDay % $lengthOfWeek ) / $lengthOfWeek); + $sWeek = (int) (($sDay - $sDay % $lengthOfWeek) / $lengthOfWeek); $sDay = $sDay % $lengthOfWeek; $weekTranslate = $langs->trans("DurationWeek"); if ($sWeek >= 2) $weekTranslate = $langs->trans("DurationWeeks"); - $sTime.=$sWeek.' '.$weekTranslate.' '; + $sTime .= $sWeek.' '.$weekTranslate.' '; } } } - if ($sDay>0) + if ($sDay > 0) { $dayTranslate = $langs->trans("Day"); if ($sDay > 1) $dayTranslate = $langs->trans("Days"); - $sTime.=$sDay.' '.$dayTranslate.' '; + $sTime .= $sDay.' '.$dayTranslate.' '; } if ($format == 'all') { if ($iSecond || empty($sDay)) { - $sTime.= dol_print_date($iSecond, 'hourduration', true); + $sTime .= dol_print_date($iSecond, 'hourduration', true); } } elseif ($format == 'allhourminsec') { - return sprintf("%02d", ($sWeek*$lengthOfWeek*24 + $sDay*24 + (int) floor($iSecond/3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600)/60))).':'.sprintf("%02d", ((int) ($iSecond % 60))); + return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600) / 60))).':'.sprintf("%02d", ((int) ($iSecond % 60))); } elseif ($format == 'allhourmin') { - return sprintf("%02d", ($sWeek*$lengthOfWeek*24 + $sDay*24 + (int) floor($iSecond/3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600)/60))); + return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600))).':'.sprintf("%02d", ((int) floor(($iSecond % 3600) / 60))); } elseif ($format == 'allhour') { - return sprintf("%02d", ($sWeek*$lengthOfWeek*24 + $sDay*24 + (int) floor($iSecond/3600))); + return sprintf("%02d", ($sWeek * $lengthOfWeek * 24 + $sDay * 24 + (int) floor($iSecond / 3600))); } } elseif ($format == 'hour') // only hour part { - $sTime=dol_print_date($iSecond, '%H', true); + $sTime = dol_print_date($iSecond, '%H', true); } elseif ($format == 'fullhour') { if (!empty($iSecond)) { - $iSecond=$iSecond/3600; + $iSecond = $iSecond / 3600; } else { - $iSecond=0; + $iSecond = 0; } - $sTime=$iSecond; + $sTime = $iSecond; } elseif ($format == 'min') // only min part { - $sTime=dol_print_date($iSecond, '%M', true); + $sTime = dol_print_date($iSecond, '%M', true); } elseif ($format == 'sec') // only sec part { - $sTime=dol_print_date($iSecond, '%S', true); + $sTime = dol_print_date($iSecond, '%S', true); } elseif ($format == 'month') // only month part { - $sTime=dol_print_date($iSecond, '%m', true); + $sTime = dol_print_date($iSecond, '%m', true); } elseif ($format == 'year') // only year part { - $sTime=dol_print_date($iSecond, '%Y', true); + $sTime = dol_print_date($iSecond, '%Y', true); } return trim($sTime); } @@ -292,19 +292,19 @@ function convertSecondToTime($iSecond, $format = 'all', $lengthOfDay = 86400, $l function dolSqlDateFilter($datefield, $day_date, $month_date, $year_date, $excludefirstand = 0) { global $db; - $sqldate=""; + $sqldate = ""; if ($month_date > 0) { if ($year_date > 0 && empty($day_date)) { - $sqldate.= ($excludefirstand ? "" : " AND ").$datefield." BETWEEN '".$db->idate(dol_get_first_day($year_date, $month_date, false)); - $sqldate.= "' AND '".$db->idate(dol_get_last_day($year_date, $month_date, false))."'"; - } elseif ($year_date > 0 && ! empty($day_date)) { - $sqldate.= ($excludefirstand ? "" : " AND ").$datefield." BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month_date, $day_date, $year_date)); - $sqldate.= "' AND '".$db->idate(dol_mktime(23, 59, 59, $month_date, $day_date, $year_date))."'"; + $sqldate .= ($excludefirstand ? "" : " AND ").$datefield." BETWEEN '".$db->idate(dol_get_first_day($year_date, $month_date, false)); + $sqldate .= "' AND '".$db->idate(dol_get_last_day($year_date, $month_date, false))."'"; + } elseif ($year_date > 0 && !empty($day_date)) { + $sqldate .= ($excludefirstand ? "" : " AND ").$datefield." BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month_date, $day_date, $year_date)); + $sqldate .= "' AND '".$db->idate(dol_mktime(23, 59, 59, $month_date, $day_date, $year_date))."'"; } else - $sqldate.= ($excludefirstand ? "" : " AND ")." date_format( ".$datefield.", '%m') = '".$db->escape($month_date)."'"; - } elseif ($year_date > 0){ - $sqldate.= ($excludefirstand ? "" : " AND ").$datefield." BETWEEN '".$db->idate(dol_get_first_day($year_date, 1, false)); - $sqldate.= "' AND '".$db->idate(dol_get_last_day($year_date, 12, false))."'"; + $sqldate .= ($excludefirstand ? "" : " AND ")." date_format( ".$datefield.", '%m') = '".$db->escape($month_date)."'"; + } elseif ($year_date > 0) { + $sqldate .= ($excludefirstand ? "" : " AND ").$datefield." BETWEEN '".$db->idate(dol_get_first_day($year_date, 1, false)); + $sqldate .= "' AND '".$db->idate(dol_get_last_day($year_date, 12, false))."'"; } return $sqldate; } @@ -330,7 +330,7 @@ function dolSqlDateFilter($datefield, $day_date, $month_date, $year_date, $exclu */ function dol_stringtotime($string, $gm = 1) { - $reg=array(); + $reg = array(); // Convert date with format DD/MM/YYY HH:MM:SS. This part of code should not be used. if (preg_match('/^([0-9]+)\/([0-9]+)\/([0-9]+)\s?([0-9]+)?:?([0-9]+)?:?([0-9]+)?/i', $string, $reg)) { @@ -343,9 +343,9 @@ function dol_stringtotime($string, $gm = 1) $shour = $reg[4]; $smin = $reg[5]; $ssec = $reg[6]; - if ($syear < 50) $syear+=1900; - if ($syear >= 50 && $syear < 100) $syear+=2000; - $string=sprintf("%04d%02d%02d%02d%02d%02d", $syear, $smonth, $sday, $shour, $smin, $ssec); + if ($syear < 50) $syear += 1900; + if ($syear >= 50 && $syear < 100) $syear += 2000; + $string = sprintf("%04d%02d%02d%02d%02d%02d", $syear, $smonth, $sday, $shour, $smin, $ssec); } elseif ( preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})Z$/i', $string, $reg) // Convert date with format YYYY-MM-DDTHH:MM:SSZ (RFC3339) @@ -359,12 +359,12 @@ function dol_stringtotime($string, $gm = 1) $shour = $reg[4]; $smin = $reg[5]; $ssec = $reg[6]; - $string=sprintf("%04d%02d%02d%02d%02d%02d", $syear, $smonth, $sday, $shour, $smin, $ssec); + $string = sprintf("%04d%02d%02d%02d%02d%02d", $syear, $smonth, $sday, $shour, $smin, $ssec); } - $string=preg_replace('/([^0-9])/i', '', $string); - $tmp=$string.'000000'; - $date=dol_mktime(substr($tmp, 8, 2), substr($tmp, 10, 2), substr($tmp, 12, 2), substr($tmp, 4, 2), substr($tmp, 6, 2), substr($tmp, 0, 4), ($gm?1:0)); + $string = preg_replace('/([^0-9])/i', '', $string); + $tmp = $string.'000000'; + $date = dol_mktime(substr($tmp, 8, 2), substr($tmp, 10, 2), substr($tmp, 12, 2), substr($tmp, 4, 2), substr($tmp, 6, 2), substr($tmp, 0, 4), ($gm ? 1 : 0)); return $date; } @@ -378,9 +378,9 @@ function dol_stringtotime($string, $gm = 1) */ function dol_get_prev_day($day, $month, $year) { - $time=dol_mktime(12, 0, 0, $month, $day, $year, 1, 0); - $time-=24*60*60; - $tmparray=dol_getdate($time, true); + $time = dol_mktime(12, 0, 0, $month, $day, $year, 1, 0); + $time -= 24 * 60 * 60; + $tmparray = dol_getdate($time, true); return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']); } @@ -393,9 +393,9 @@ function dol_get_prev_day($day, $month, $year) */ function dol_get_next_day($day, $month, $year) { - $time=dol_mktime(12, 0, 0, $month, $day, $year, 1, 0); - $time+=24*60*60; - $tmparray=dol_getdate($time, true); + $time = dol_mktime(12, 0, 0, $month, $day, $year, 1, 0); + $time += 24 * 60 * 60; + $tmparray = dol_getdate($time, true); return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']); } @@ -414,7 +414,7 @@ function dol_get_prev_month($month, $year) } else { - $prev_month = $month-1; + $prev_month = $month - 1; $prev_year = $year; } return array('year' => $prev_year, 'month' => $prev_month); @@ -453,9 +453,9 @@ function dol_get_prev_week($day, $week, $month, $year) { $tmparray = dol_get_first_day_week($day, $month, $year); - $time=dol_mktime(12, 0, 0, $month, $tmparray['first_day'], $year, 1, 0); - $time-=24*60*60*7; - $tmparray=dol_getdate($time, true); + $time = dol_mktime(12, 0, 0, $month, $tmparray['first_day'], $year, 1, 0); + $time -= 24 * 60 * 60 * 7; + $tmparray = dol_getdate($time, true); return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']); } @@ -471,9 +471,9 @@ function dol_get_next_week($day, $week, $month, $year) { $tmparray = dol_get_first_day_week($day, $month, $year); - $time=dol_mktime(12, 0, 0, $tmparray['first_month'], $tmparray['first_day'], $tmparray['first_year'], 1, 0); - $time+=24*60*60*7; - $tmparray=dol_getdate($time, true); + $time = dol_mktime(12, 0, 0, $tmparray['first_month'], $tmparray['first_day'], $tmparray['first_year'], 1, 0); + $time += 24 * 60 * 60 * 7; + $tmparray = dol_getdate($time, true); return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']); } @@ -515,7 +515,7 @@ function dol_get_last_day($year, $month = 12, $gm = false) } // On se deplace au debut du mois suivant, et on retire un jour - $datelim=dol_mktime(23, 59, 59, $month, 1, $year, $gm); + $datelim = dol_mktime(23, 59, 59, $month, 1, $year, $gm); $datelim -= (3600 * 24); return $datelim; @@ -537,57 +537,57 @@ function dol_get_first_day_week($day, $month, $year, $gm = false) $date = dol_mktime(0, 0, 0, $month, $day, $year, $gm); //Checking conf of start week - $start_week = (isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:1); + $start_week = (isset($conf->global->MAIN_START_WEEK) ? $conf->global->MAIN_START_WEEK : 1); - $tmparray = dol_getdate($date, true); // detail of current day + $tmparray = dol_getdate($date, true); // detail of current day //Calculate days = offset from current day $days = $start_week - $tmparray['wday']; - if ($days>=1) $days=7-$days; + if ($days >= 1) $days = 7 - $days; $days = abs($days); - $seconds = $days*24*60*60; + $seconds = $days * 24 * 60 * 60; //print 'start_week='.$start_week.' tmparray[wday]='.$tmparray['wday'].' day offset='.$days.' seconds offset='.$seconds.'
'; //Get first day of week - $tmpdaytms = date($tmparray[0])-$seconds; // $tmparray[0] is day of parameters + $tmpdaytms = date($tmparray[0]) - $seconds; // $tmparray[0] is day of parameters $tmpday = date("d", $tmpdaytms); //Check first day of week is in same month than current day or not - if ($tmpday>$day) + if ($tmpday > $day) { - $prev_month = $month-1; - $prev_year = $year; + $prev_month = $month - 1; + $prev_year = $year; - if ($prev_month==0) + if ($prev_month == 0) { $prev_month = 12; - $prev_year = $year-1; + $prev_year = $year - 1; } } else { $prev_month = $month; - $prev_year = $year; + $prev_year = $year; } $tmpmonth = $prev_month; $tmpyear = $prev_year; //Get first day of next week - $tmptime=dol_mktime(12, 0, 0, $month, $tmpday, $year, 1, 0); - $tmptime-=24*60*60*7; - $tmparray=dol_getdate($tmptime, true); - $prev_day = $tmparray['mday']; + $tmptime = dol_mktime(12, 0, 0, $month, $tmpday, $year, 1, 0); + $tmptime -= 24 * 60 * 60 * 7; + $tmparray = dol_getdate($tmptime, true); + $prev_day = $tmparray['mday']; //Check prev day of week is in same month than first day or not if ($prev_day > $tmpday) { - $prev_month = $month-1; - $prev_year = $year; + $prev_month = $month - 1; + $prev_year = $year; - if ($prev_month==0) + if ($prev_month == 0) { $prev_month = 12; - $prev_year = $year-1; + $prev_year = $year - 1; } } @@ -626,11 +626,11 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', if ($includesunday < 0) $includesunday = (isset($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY) ? $conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY : 1); - $i=0; - while (( ($lastday == 0 && $timestampStart < $timestampEnd) || ($lastday && $timestampStart <= $timestampEnd) ) + $i = 0; + while ((($lastday == 0 && $timestampStart < $timestampEnd) || ($lastday && $timestampStart <= $timestampEnd)) && ($i < 50000)) // Loop end when equals (Test on i is a security loop to avoid infinite loop) { - $ferie=false; + $ferie = false; $jour = date("d", $timestampStart); $mois = date("m", $timestampStart); @@ -638,19 +638,19 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', // Check into var $conf->global->HOLIDAY_MORE_DAYS MM-DD,YYYY-MM-DD, ... // Do not use this anymore, use instead the dictionary of public holidays. - if (! empty($conf->global->HOLIDAY_MORE_PUBLIC_HOLIDAYS)) + if (!empty($conf->global->HOLIDAY_MORE_PUBLIC_HOLIDAYS)) { - $arrayofdaystring=explode(',', $conf->global->HOLIDAY_MORE_PUBLIC_HOLIDAYS); - foreach($arrayofdaystring as $daystring) + $arrayofdaystring = explode(',', $conf->global->HOLIDAY_MORE_PUBLIC_HOLIDAYS); + foreach ($arrayofdaystring as $daystring) { - $tmp=explode('-', $daystring); + $tmp = explode('-', $daystring); if ($tmp[2]) { - if ($tmp[0] == $annee && $tmp[1] == $mois && $tmp[2] == $jour) $ferie=true; + if ($tmp[0] == $annee && $tmp[1] == $mois && $tmp[2] == $jour) $ferie = true; } else { - if ($tmp[0] == $mois && $tmp[1] == $jour) $ferie=true; + if ($tmp[0] == $mois && $tmp[1] == $jour) $ferie = true; } } } @@ -659,26 +659,26 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', // Loop on public holiday defined into hrm_public_holiday $sql = "SELECT code, entity, fk_country, dayrule, year, month, day, active"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_hrm_public_holiday"; - $sql.= " WHERE active = 1 and fk_country IN (0".($country_id > 0 ? ", ".$country_id : 0).")"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_hrm_public_holiday"; + $sql .= " WHERE active = 1 and fk_country IN (0".($country_id > 0 ? ", ".$country_id : 0).")"; $resql = $db->query($sql); if ($resql) { $num_rows = $db->num_rows($resql); - $i=0; + $i = 0; while ($i < $num_rows) { $obj = $db->fetch_object($resql); - if (! empty($obj->dayrule) && $obj->dayrule != 'date') // For example 'easter', '...' + if (!empty($obj->dayrule) && $obj->dayrule != 'date') // For example 'easter', '...' { $specialdayrule[$obj->dayrule] = $obj->dayrule; } else { $match = 1; - if (! empty($obj->year) && $obj->year != $annee) $match = 0; + if (!empty($obj->year) && $obj->year != $annee) $match = 0; if ($obj->month != $mois) $match = 0; if ($obj->day != $jour) $match = 0; @@ -701,7 +701,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', $date_paques = easter_date($annee); $jour_paques = date("d", $date_paques); $mois_paques = date("m", $date_paques); - if($jour_paques == $jour && $mois_paques == $mois) $ferie=true; + if ($jour_paques == $jour && $mois_paques == $mois) $ferie = true; // Easter (sunday) } @@ -719,7 +719,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', ); $jour_lundi_ascension = date("d", $date_lundi_paques); $mois_lundi_ascension = date("m", $date_lundi_paques); - if ($jour_lundi_ascension == $jour && $mois_lundi_ascension == $mois) $ferie=true; + if ($jour_lundi_ascension == $jour && $mois_lundi_ascension == $mois) $ferie = true; // Easter (monday) } @@ -737,7 +737,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', ); $jour_ascension = date("d", $date_ascension); $mois_ascension = date("m", $date_ascension); - if($jour_ascension == $jour && $mois_ascension == $mois) $ferie=true; + if ($jour_ascension == $jour && $mois_ascension == $mois) $ferie = true; // Ascension (thursday) } @@ -755,7 +755,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', ); $jour_pentecote = date("d", $date_pentecote); $mois_pentecote = date("m", $date_pentecote); - if($jour_pentecote == $jour && $mois_pentecote == $mois) $ferie=true; + if ($jour_pentecote == $jour && $mois_pentecote == $mois) $ferie = true; // "Pentecote" (sunday) } if (in_array('pentecotemonday', $specialdayrule)) @@ -772,7 +772,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', ); $jour_pentecote = date("d", $date_pentecote); $mois_pentecote = date("m", $date_pentecote); - if($jour_pentecote == $jour && $mois_pentecote == $mois) $ferie=true; + if ($jour_pentecote == $jour && $mois_pentecote == $mois) $ferie = true; // "Pentecote" (monday) } @@ -785,12 +785,12 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', date("i", $date_paques), date("s", $date_paques), date("m", $date_paques), - date("d", $date_paques) -2, + date("d", $date_paques) - 2, date("Y", $date_paques) ); $jour_viernes = date("d", $date_viernes); $mois_viernes = date("m", $date_viernes); - if($jour_viernes == $jour && $mois_viernes == $mois) $ferie=true; + if ($jour_viernes == $jour && $mois_viernes == $mois) $ferie = true; //Viernes Santo } @@ -808,7 +808,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', ); $jour_fronleichnam = date("d", $date_fronleichnam); $mois_fronleichnam = date("m", $date_fronleichnam); - if($jour_fronleichnam == $jour && $mois_fronleichnam == $mois) $ferie=true; + if ($jour_fronleichnam == $jour && $mois_fronleichnam == $mois) $ferie = true; // Fronleichnam } @@ -819,11 +819,11 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', $jour_semaine = jddayofweek($jour_julien, 0); if ($includesaturday) //Saturday (6) and Sunday (0) { - if ($jour_semaine == 6) $ferie=true; + if ($jour_semaine == 6) $ferie = true; } if ($includesunday) //Saturday (6) and Sunday (0) { - if($jour_semaine == 0) $ferie=true; + if ($jour_semaine == 0) $ferie = true; } } @@ -831,7 +831,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', if ($ferie) $nbFerie++; // Increase number of days (on go up into loop) - $timestampStart=dol_time_plus_duree($timestampStart, 1, 'd'); + $timestampStart = dol_time_plus_duree($timestampStart, 1, 'd'); //var_dump($jour.' '.$mois.' '.$annee.' '.$timestampStart); $i++; @@ -862,7 +862,7 @@ function num_between_day($timestampStart, $timestampEnd, $lastday = 0) { $bit = 1; } - $nbjours = (int) floor(($timestampEnd - $timestampStart)/(60*60*24)) + 1 - $bit; + $nbjours = (int) floor(($timestampEnd - $timestampStart) / (60 * 60 * 24)) + 1 - $bit; } //print ($timestampEnd - $timestampStart) - $lastday; return $nbjours; @@ -877,35 +877,34 @@ function num_between_day($timestampStart, $timestampEnd, $lastday = 0) * @param int $lastday We include last day, 0: no, 1:yes * @param int $halfday Tag to define half day when holiday start and end * @param string $country_code Country code (company country code if not defined) - * @return int Number of days or hours + * @return int|string Number of days or hours or string if error * @seealso num_between_day(), num_public_holiday() */ function num_open_day($timestampStart, $timestampEnd, $inhour = 0, $lastday = 0, $halfday = 0, $country_code = '') { - global $langs,$mysoc; + global $langs, $mysoc; - if (empty($country_code)) $country_code=$mysoc->country_code; + if (empty($country_code)) $country_code = $mysoc->country_code; dol_syslog('num_open_day timestampStart='.$timestampStart.' timestampEnd='.$timestampEnd.' bit='.$lastday.' country_code='.$country_code); // Check parameters - if (! is_int($timestampStart) && ! is_float($timestampStart)) return 'ErrorBadParameter_num_open_day'; - if (! is_int($timestampEnd) && ! is_float($timestampEnd)) return 'ErrorBadParameter_num_open_day'; + if (!is_int($timestampStart) && !is_float($timestampStart)) return 'ErrorBadParameter_num_open_day'; + if (!is_int($timestampEnd) && !is_float($timestampEnd)) return 'ErrorBadParameter_num_open_day'; //print 'num_open_day timestampStart='.$timestampStart.' timestampEnd='.$timestampEnd.' bit='.$lastday; if ($timestampStart < $timestampEnd) { $numdays = num_between_day($timestampStart, $timestampEnd, $lastday); $numholidays = num_public_holiday($timestampStart, $timestampEnd, $country_code, $lastday); - $nbOpenDay = $numdays - $numholidays; - $nbOpenDay.= " " . $langs->trans("Days"); - if ($inhour == 1 && $nbOpenDay <= 3) $nbOpenDay = $nbOpenDay*24 . $langs->trans("HourShort"); + $nbOpenDay = ($numdays - $numholidays); + if ($inhour == 1 && $nbOpenDay <= 3) $nbOpenDay = ($nbOpenDay * 24); return $nbOpenDay - (($inhour == 1 ? 12 : 0.5) * abs($halfday)); } elseif ($timestampStart == $timestampEnd) { - $nbOpenDay=$lastday; - if ($inhour == 1) $nbOpenDay = $nbOpenDay*24 . $langs->trans("HourShort"); + $nbOpenDay = $lastday; + if ($inhour == 1) $nbOpenDay = ($nbOpenDay * 24); return $nbOpenDay - (($inhour == 1 ? 12 : 0.5) * abs($halfday)); } else @@ -926,7 +925,7 @@ function num_open_day($timestampStart, $timestampEnd, $inhour = 0, $lastday = 0, */ function monthArray($outputlangs, $short = 0) { - $montharray = array ( + $montharray = array( 1 => $outputlangs->trans("Month01"), 2 => $outputlangs->trans("Month02"), 3 => $outputlangs->trans("Month03"), @@ -941,9 +940,9 @@ function monthArray($outputlangs, $short = 0) 12 => $outputlangs->trans("Month12") ); - if (! empty($short)) + if (!empty($short)) { - $montharray = array ( + $montharray = array( 1 => $outputlangs->trans("MonthShort01"), 2 => $outputlangs->trans("MonthShort02"), 3 => $outputlangs->trans("MonthShort03"), @@ -973,7 +972,7 @@ function getWeekNumbersOfMonth($month, $year) { $nb_days = cal_days_in_month(CAL_GREGORIAN, $month, $year); $TWeek = array(); - for($day = 1; $day < $nb_days; $day++) { + for ($day = 1; $day < $nb_days; $day++) { $week_number = getWeekNumber($day, $month, $year); $TWeek[$week_number] = $week_number; } @@ -990,8 +989,8 @@ function getWeekNumbersOfMonth($month, $year) function getFirstDayOfEachWeek($TWeek, $year) { $TFirstDayOfWeek = array(); - foreach($TWeek as $weekNb) { - if(in_array('01', $TWeek) && in_array('52', $TWeek) && $weekNb == '01') $year++;//Si on a la 1re semaine et la semaine 52 c'est qu'on change d'année + foreach ($TWeek as $weekNb) { + if (in_array('01', $TWeek) && in_array('52', $TWeek) && $weekNb == '01') $year++; //Si on a la 1re semaine et la semaine 52 c'est qu'on change d'année $TFirstDayOfWeek[$weekNb] = date('d', strtotime($year.'W'.$weekNb)); } return $TFirstDayOfWeek; @@ -1007,7 +1006,7 @@ function getFirstDayOfEachWeek($TWeek, $year) function getLastDayOfEachWeek($TWeek, $year) { $TLastDayOfWeek = array(); - foreach($TWeek as $weekNb) { + foreach ($TWeek as $weekNb) { $TLastDayOfWeek[$weekNb] = date('d', strtotime($year.'W'.$weekNb.'+6 days')); } return $TLastDayOfWeek; diff --git a/htdocs/core/lib/doc.lib.php b/htdocs/core/lib/doc.lib.php index 6840e81a646..38e847bb3c1 100644 --- a/htdocs/core/lib/doc.lib.php +++ b/htdocs/core/lib/doc.lib.php @@ -42,11 +42,11 @@ function doc_getlinedesc($line, $outputlangs, $hideref = 0, $hidedesc = 0, $issu { global $db, $conf, $langs; - $idprod=$line->fk_product; - $label=(! empty($line->label)?$line->label:(! empty($line->libelle)?$line->libelle:'')); - $desc=(! empty($line->desc)?$line->desc:(! empty($line->description)?$line->description:'')); - $ref_supplier=(! empty($line->ref_supplier)?$line->ref_supplier:(! empty($line->ref_fourn)?$line->ref_fourn:'')); // TODO Not yet saved for supplier invoices, only supplier orders - $note=(! empty($line->note)?$line->note:''); + $idprod = $line->fk_product; + $label = (!empty($line->label) ? $line->label : (!empty($line->libelle) ? $line->libelle : '')); + $desc = (!empty($line->desc) ? $line->desc : (!empty($line->description) ? $line->description : '')); + $ref_supplier = (!empty($line->ref_supplier) ? $line->ref_supplier : (!empty($line->ref_fourn) ? $line->ref_fourn : '')); // TODO Not yet saved for supplier invoices, only supplier orders + $note = (!empty($line->note) ? $line->note : ''); if ($issupplierline) $prodser = new ProductFournisseur($db); else $prodser = new Product($db); @@ -55,57 +55,57 @@ function doc_getlinedesc($line, $outputlangs, $hideref = 0, $hidedesc = 0, $issu { $prodser->fetch($idprod); // If a predefined product and multilang and on other lang, we renamed label with label translated - if (! empty($conf->global->MAIN_MULTILANGS) && ($outputlangs->defaultlang != $langs->defaultlang)) + if (!empty($conf->global->MAIN_MULTILANGS) && ($outputlangs->defaultlang != $langs->defaultlang)) { - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["label"]) && $label == $prodser->label) $label=$prodser->multilangs[$outputlangs->defaultlang]["label"]; - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && $desc == $prodser->description) $desc=$prodser->multilangs[$outputlangs->defaultlang]["description"]; - if (! empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note=$prodser->multilangs[$outputlangs->defaultlang]["note"]; + if (!empty($prodser->multilangs[$outputlangs->defaultlang]["label"]) && $label == $prodser->label) $label = $prodser->multilangs[$outputlangs->defaultlang]["label"]; + if (!empty($prodser->multilangs[$outputlangs->defaultlang]["description"]) && $desc == $prodser->description) $desc = $prodser->multilangs[$outputlangs->defaultlang]["description"]; + if (!empty($prodser->multilangs[$outputlangs->defaultlang]["note"]) && $note == $prodser->note) $note = $prodser->multilangs[$outputlangs->defaultlang]["note"]; } } // Description short of product line - $libelleproduitservice=$label; + $libelleproduitservice = $label; // Description long of product line if ($desc && ($desc != $label)) { if ($desc == '(CREDIT_NOTE)' && $line->fk_remise_except) { - $discount=new DiscountAbsolute($db); + $discount = new DiscountAbsolute($db); $discount->fetch($line->fk_remise_except); - $sourceref=!empty($discount->discount_type)?$discount->ref_invoive_supplier_source:$discount->ref_facture_source; - $libelleproduitservice=$outputlangs->transnoentitiesnoconv("DiscountFromCreditNote", $sourceref); + $sourceref = !empty($discount->discount_type) ? $discount->ref_invoive_supplier_source : $discount->ref_facture_source; + $libelleproduitservice = $outputlangs->transnoentitiesnoconv("DiscountFromCreditNote", $sourceref); } elseif ($desc == '(DEPOSIT)' && $line->fk_remise_except) { - $discount=new DiscountAbsolute($db); + $discount = new DiscountAbsolute($db); $discount->fetch($line->fk_remise_except); - $sourceref=!empty($discount->discount_type)?$discount->ref_invoive_supplier_source:$discount->ref_facture_source; - $libelleproduitservice=$outputlangs->transnoentitiesnoconv("DiscountFromDeposit", $sourceref); + $sourceref = !empty($discount->discount_type) ? $discount->ref_invoive_supplier_source : $discount->ref_facture_source; + $libelleproduitservice = $outputlangs->transnoentitiesnoconv("DiscountFromDeposit", $sourceref); // Add date of deposit - if (! empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) $libelleproduitservice.=' ('.dol_print_date($discount->datec, 'day', '', $outputlangs).')'; + if (!empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) $libelleproduitservice .= ' ('.dol_print_date($discount->datec, 'day', '', $outputlangs).')'; } elseif ($desc == '(EXCESS RECEIVED)' && $line->fk_remise_except) { - $discount=new DiscountAbsolute($db); + $discount = new DiscountAbsolute($db); $discount->fetch($line->fk_remise_except); - $libelleproduitservice=$outputlangs->transnoentitiesnoconv("DiscountFromExcessReceived", $discount->ref_facture_source); + $libelleproduitservice = $outputlangs->transnoentitiesnoconv("DiscountFromExcessReceived", $discount->ref_facture_source); } elseif ($desc == '(EXCESS PAID)' && $line->fk_remise_except) { - $discount=new DiscountAbsolute($db); + $discount = new DiscountAbsolute($db); $discount->fetch($line->fk_remise_except); - $libelleproduitservice=$outputlangs->transnoentitiesnoconv("DiscountFromExcessPaid", $discount->ref_invoice_supplier_source); + $libelleproduitservice = $outputlangs->transnoentitiesnoconv("DiscountFromExcessPaid", $discount->ref_invoice_supplier_source); } else { if ($idprod) { - if (empty($hidedesc)) $libelleproduitservice=dol_concatdesc($libelleproduitservice, $desc); + if (empty($hidedesc)) $libelleproduitservice = dol_concatdesc($libelleproduitservice, $desc); } else { - $libelleproduitservice=dol_concatdesc($libelleproduitservice, $desc); + $libelleproduitservice = dol_concatdesc($libelleproduitservice, $desc); } } } @@ -118,7 +118,7 @@ function doc_getlinedesc($line, $outputlangs, $hideref = 0, $hidedesc = 0, $issu { $prefix_prodserv = ""; $ref_prodserv = ""; - if (! empty($conf->global->PRODUCT_ADD_TYPE_IN_DOCUMENTS)) // In standard mode, we do not show this + if (!empty($conf->global->PRODUCT_ADD_TYPE_IN_DOCUMENTS)) // In standard mode, we do not show this { if ($prodser->isService()) { @@ -132,34 +132,34 @@ function doc_getlinedesc($line, $outputlangs, $hideref = 0, $hidedesc = 0, $issu if (empty($hideref)) { - if ($issupplierline) $ref_prodserv = $prodser->ref.' ('.$outputlangs->trans("SupplierRef").' '.$ref_supplier.')'; // Show local ref and supplier ref + if ($issupplierline) $ref_prodserv = $prodser->ref.' ('.$outputlangs->trans("SupplierRef").' '.$ref_supplier.')'; // Show local ref and supplier ref else $ref_prodserv = $prodser->ref; // Show local ref only $ref_prodserv .= " - "; } - $libelleproduitservice=$prefix_prodserv.$ref_prodserv.$libelleproduitservice; + $libelleproduitservice = $prefix_prodserv.$ref_prodserv.$libelleproduitservice; } } - if (! empty($line->date_start) || ! empty($line->date_end)) + if (!empty($line->date_start) || !empty($line->date_end)) { - $format='day'; + $format = 'day'; // Show duration if exists if ($line->date_start && $line->date_end) { - $period='('.$outputlangs->transnoentitiesnoconv('DateFromTo', dol_print_date($line->date_start, $format, false, $outputlangs), dol_print_date($line->date_end, $format, false, $outputlangs)).')'; + $period = '('.$outputlangs->transnoentitiesnoconv('DateFromTo', dol_print_date($line->date_start, $format, false, $outputlangs), dol_print_date($line->date_end, $format, false, $outputlangs)).')'; } - if ($line->date_start && ! $line->date_end) + if ($line->date_start && !$line->date_end) { - $period='('.$outputlangs->transnoentitiesnoconv('DateFrom', dol_print_date($line->date_start, $format, false, $outputlangs)).')'; + $period = '('.$outputlangs->transnoentitiesnoconv('DateFrom', dol_print_date($line->date_start, $format, false, $outputlangs)).')'; } - if (! $line->date_start && $line->date_end) + if (!$line->date_start && $line->date_end) { - $period='('.$outputlangs->transnoentitiesnoconv('DateUntil', dol_print_date($line->date_end, $format, false, $outputlangs)).')'; + $period = '('.$outputlangs->transnoentitiesnoconv('DateUntil', dol_print_date($line->date_end, $format, false, $outputlangs)).')'; } //print '>'.$outputlangs->charset_output.','.$period; - $libelleproduitservice=dol_concatdesc($libelleproduitservice, $period); + $libelleproduitservice = dol_concatdesc($libelleproduitservice, $period); //print $libelleproduitservice; } diff --git a/htdocs/core/lib/donation.lib.php b/htdocs/core/lib/donation.lib.php index 16d7d3d8a97..b2280657481 100644 --- a/htdocs/core/lib/donation.lib.php +++ b/htdocs/core/lib/donation.lib.php @@ -33,10 +33,10 @@ function donation_admin_prepare_head() $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT . '/don/admin/donation.php'; + $head[$h][0] = DOL_URL_ROOT.'/don/admin/donation.php'; $head[$h][1] = $langs->trans("Miscellaneous"); $head[$h][2] = 'general'; - $h ++; + $h++; // Show more tabs from modules // Entries must be declared in modules descriptor with line @@ -44,7 +44,7 @@ function donation_admin_prepare_head() // $this->tabs = array('entity:-tabname); to remove a tab complete_head_from_modules($conf, $langs, null, $head, $h, 'donation_admin'); - $head[$h][0] = DOL_URL_ROOT . '/don/admin/donation_extrafields.php'; + $head[$h][0] = DOL_URL_ROOT.'/don/admin/donation_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); $head[$h][2] = 'attributes'; $h++; @@ -67,10 +67,10 @@ function donation_prepare_head($object) $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT . '/don/card.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/don/card.php?id='.$object->id; $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; - $h ++; + $h++; // Show more tabs from modules // Entries must be declared in modules descriptor with line @@ -80,25 +80,25 @@ function donation_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->don->dir_output . '/' . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->don->dir_output.'/'.dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/don/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/don/note.php?id='.$object->id; $head[$h][1] = $langs->trans("Notes"); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; - $head[$h][0] = DOL_URL_ROOT . '/don/info.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/don/info.php?id='.$object->id; $head[$h][1] = $langs->trans("Info"); $head[$h][2] = 'info'; $h++; diff --git a/htdocs/core/lib/ecm.lib.php b/htdocs/core/lib/ecm.lib.php index a49e501af78..4dbb418855a 100644 --- a/htdocs/core/lib/ecm.lib.php +++ b/htdocs/core/lib/ecm.lib.php @@ -36,15 +36,15 @@ function ecm_prepare_dasboard_head($object) $h = 0; $head = array(); - $helptext =$langs->trans("ECMAreaDesc").'
'; - $helptext.=$langs->trans("ECMAreaDesc2"); + $helptext = $langs->trans("ECMAreaDesc").'
'; + $helptext .= $langs->trans("ECMAreaDesc2"); $head[$h][0] = DOL_URL_ROOT.'/ecm/index.php'; $head[$h][1] = $langs->trans("ECMSectionsManual").$form->textwithpicto('', $helptext, 1, 'info', '', 0, 3); $head[$h][2] = 'index'; $h++; - if (! empty($conf->global->ECM_AUTO_TREE_ENABLED)) + if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { $head[$h][0] = DOL_URL_ROOT.'/ecm/index_auto.php'; $head[$h][1] = $langs->trans("ECMSectionsAuto").$form->textwithpicto('', $helptext, 1, 'info', '', 0, 3); diff --git a/htdocs/core/lib/emailing.lib.php b/htdocs/core/lib/emailing.lib.php index cb4e5cf8b29..839be4c4e3d 100644 --- a/htdocs/core/lib/emailing.lib.php +++ b/htdocs/core/lib/emailing.lib.php @@ -39,16 +39,16 @@ function emailing_prepare_head(Mailing $object) $head[$h][2] = 'card'; $h++; - if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->mailing->mailing_advance->recipient)) + if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->mailing->mailing_advance->recipient)) { $head[$h][0] = DOL_URL_ROOT."/comm/mailing/cibles.php?id=".$object->id; $head[$h][1] = $langs->trans("MailRecipients"); - if ($object->nbemail > 0) $head[$h][1].= ''.$object->nbemail.''; + if ($object->nbemail > 0) $head[$h][1] .= ''.$object->nbemail.''; $head[$h][2] = 'targets'; $h++; } - if ( empty($conf->global->EMAILING_USE_ADVANCED_SELECTOR)) + if (empty($conf->global->EMAILING_USE_ADVANCED_SELECTOR)) { $head[$h][0] = DOL_URL_ROOT."/comm/mailing/advtargetemailing.php?id=".$object->id; $head[$h][1] = $langs->trans("MailAdvTargetRecipients"); diff --git a/htdocs/core/lib/expedition.lib.php b/htdocs/core/lib/expedition.lib.php index 7c329940b2d..fc1ca494d36 100644 --- a/htdocs/core/lib/expedition.lib.php +++ b/htdocs/core/lib/expedition.lib.php @@ -35,7 +35,7 @@ function expedition_prepare_head(Expedition $object) { global $langs, $conf, $user; - if (! empty($conf->expedition->enabled)) $langs->load("sendings"); + if (!empty($conf->expedition->enabled)) $langs->load("sendings"); $langs->load("orders"); $h = 0; @@ -48,10 +48,10 @@ function expedition_prepare_head(Expedition $object) $head[$h][0] = DOL_URL_ROOT."/admin/expedition.php"; $head[$h][1] = $langs->trans("Shipment"); - $hselected=$h; + $hselected = $h; $h++; - if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) + if (!empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) { $head[$h][0] = DOL_URL_ROOT."/admin/livraison.php"; $head[$h][1] = $langs->trans("Receivings"); @@ -83,7 +83,7 @@ function expedition_admin_prepare_head() $h++; - if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) + if (!empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { $head[$h][0] = DOL_URL_ROOT."/admin/expedition.php"; $head[$h][1] = $langs->trans("Shipment"); @@ -92,7 +92,7 @@ function expedition_admin_prepare_head() } - if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) + if (!empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { $head[$h][0] = DOL_URL_ROOT.'/admin/expedition_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); @@ -100,7 +100,7 @@ function expedition_admin_prepare_head() $h++; } - if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) + if (!empty($conf->global->MAIN_SUBMODULE_EXPEDITION)) { $head[$h][0] = DOL_URL_ROOT.'/admin/expeditiondet_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsLines"); @@ -108,7 +108,7 @@ function expedition_admin_prepare_head() $h++; } - if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) + if (!empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) { $head[$h][0] = DOL_URL_ROOT."/admin/livraison.php"; $head[$h][1] = $langs->trans("Receivings"); @@ -116,7 +116,7 @@ function expedition_admin_prepare_head() $h++; } - if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) + if (!empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) { $head[$h][0] = DOL_URL_ROOT.'/admin/livraison_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); @@ -124,7 +124,7 @@ function expedition_admin_prepare_head() $h++; } - if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) + if (!empty($conf->global->MAIN_SUBMODULE_LIVRAISON)) { $head[$h][0] = DOL_URL_ROOT.'/admin/livraisondet_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsLines"); diff --git a/htdocs/core/lib/expensereport.lib.php b/htdocs/core/lib/expensereport.lib.php index caef261b277..2767af2e792 100644 --- a/htdocs/core/lib/expensereport.lib.php +++ b/htdocs/core/lib/expensereport.lib.php @@ -34,7 +34,7 @@ function expensereport_prepare_head($object) $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT . '/expensereport/card.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/expensereport/card.php?id='.$object->id; $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; $h++; @@ -47,28 +47,28 @@ function expensereport_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->expensereport->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->expensereport->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/expensereport/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/expensereport/note.php?id='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } - $head[$h][0] = DOL_URL_ROOT . '/expensereport/info.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/expensereport/info.php?id='.$object->id; $head[$h][1] = $langs->trans("Info"); $head[$h][2] = 'info'; $h++; diff --git a/htdocs/core/lib/fichinter.lib.php b/htdocs/core/lib/fichinter.lib.php index d707063bbe8..8d0809f9768 100644 --- a/htdocs/core/lib/fichinter.lib.php +++ b/htdocs/core/lib/fichinter.lib.php @@ -51,7 +51,7 @@ function fichinter_prepare_head($object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/fichinter/contact.php?id='.$object->id; $head[$h][1] = $langs->trans('InterventionContact'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -68,7 +68,7 @@ function fichinter_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; $objectres = new Dolresource($db); $linked_resources = $objectres->getElementResources('fichinter', $object->id); - $nbResource = (is_array($linked_resources)?count($linked_resources):0); + $nbResource = (is_array($linked_resources) ?count($linked_resources) : 0); // if (is_array($objectres->available_resources)) // { // foreach ($objectres->available_resources as $modresources => $resources) @@ -83,7 +83,7 @@ function fichinter_prepare_head($object) $head[$h][0] = DOL_URL_ROOT.'/resource/element_resource.php?element=fichinter&element_id='.$object->id; $head[$h][1] = $langs->trans("Resources"); - if ($nbResource > 0) $head[$h][1].= ''.$nbResource.''; + if ($nbResource > 0) $head[$h][1] .= ''.$nbResource.''; $head[$h][2] = 'resource'; $h++; } @@ -91,23 +91,23 @@ function fichinter_prepare_head($object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/fichinter/note.php?id='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->ficheinter->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->ficheinter->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/fichinter/document.php?id='.$object->id; $head[$h][1] = $langs->trans("Documents"); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index 7dafb316a18..a39e48e3a60 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -1551,7 +1551,6 @@ function dol_add_file_process($upload_dir, $allowoverwrite = 0, $donotupdatesess { $destfull = $upload_dir."/".preg_replace('/__file__/', $TFile['name'][$i], $savingdocmask); $destfile = preg_replace('/__file__/', $TFile['name'][$i], $savingdocmask); - } // dol_sanitizeFileName the file name and lowercase extension diff --git a/htdocs/core/lib/fiscalyear.lib.php b/htdocs/core/lib/fiscalyear.lib.php index 14a23cc22c2..f54772c2339 100644 --- a/htdocs/core/lib/fiscalyear.lib.php +++ b/htdocs/core/lib/fiscalyear.lib.php @@ -34,7 +34,7 @@ function fiscalyear_prepare_head(Fiscalyear $object) $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT . '/accountancy/admin/fiscalyear_card.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/accountancy/admin/fiscalyear_card.php?id='.$object->id; $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; $h++; @@ -45,7 +45,7 @@ function fiscalyear_prepare_head(Fiscalyear $object) // $this->tabs = array('entity:-tabname); to remove a tab complete_head_from_modules($conf, $langs, $object, $head, $h, 'fiscalyear'); - $head[$h][0] = DOL_URL_ROOT . '/accountancy/admin/fiscalyear_info.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/accountancy/admin/fiscalyear_info.php?id='.$object->id; $head[$h][1] = $langs->trans("Info"); $head[$h][2] = 'info'; $h++; diff --git a/htdocs/core/lib/format_cards.lib.php b/htdocs/core/lib/format_cards.lib.php index 7135082fac9..c46cd150a51 100644 --- a/htdocs/core/lib/format_cards.lib.php +++ b/htdocs/core/lib/format_cards.lib.php @@ -38,22 +38,22 @@ if ($resql) { while ($row = $db->fetch_array($resql)) { - $_Avery_Labels[$row['code']]['name']=$row['name']; - $_Avery_Labels[$row['code']]['paper-size']=$row['paper_size']; - $_Avery_Labels[$row['code']]['orientation']=$row['orientation']; - $_Avery_Labels[$row['code']]['metric']=$row['metric']; - $_Avery_Labels[$row['code']]['marginLeft']=$row['leftmargin']; - $_Avery_Labels[$row['code']]['marginTop']=$row['topmargin']; - $_Avery_Labels[$row['code']]['marginTop']=$row['topmargin']; - $_Avery_Labels[$row['code']]['NX']=$row['nx']; - $_Avery_Labels[$row['code']]['NY']=$row['ny']; - $_Avery_Labels[$row['code']]['SpaceX']=$row['spacex']; - $_Avery_Labels[$row['code']]['SpaceY']=$row['spacey']; - $_Avery_Labels[$row['code']]['width']=$row['width']; - $_Avery_Labels[$row['code']]['height']=$row['height']; - $_Avery_Labels[$row['code']]['font-size']=$row['font_size']; - $_Avery_Labels[$row['code']]['custom_x']=$row['custom_x']; - $_Avery_Labels[$row['code']]['custom_y']=$row['custom_y']; + $_Avery_Labels[$row['code']]['name'] = $row['name']; + $_Avery_Labels[$row['code']]['paper-size'] = $row['paper_size']; + $_Avery_Labels[$row['code']]['orientation'] = $row['orientation']; + $_Avery_Labels[$row['code']]['metric'] = $row['metric']; + $_Avery_Labels[$row['code']]['marginLeft'] = $row['leftmargin']; + $_Avery_Labels[$row['code']]['marginTop'] = $row['topmargin']; + $_Avery_Labels[$row['code']]['marginTop'] = $row['topmargin']; + $_Avery_Labels[$row['code']]['NX'] = $row['nx']; + $_Avery_Labels[$row['code']]['NY'] = $row['ny']; + $_Avery_Labels[$row['code']]['SpaceX'] = $row['spacex']; + $_Avery_Labels[$row['code']]['SpaceY'] = $row['spacey']; + $_Avery_Labels[$row['code']]['width'] = $row['width']; + $_Avery_Labels[$row['code']]['height'] = $row['height']; + $_Avery_Labels[$row['code']]['font-size'] = $row['font_size']; + $_Avery_Labels[$row['code']]['custom_x'] = $row['custom_x']; + $_Avery_Labels[$row['code']]['custom_y'] = $row['custom_y']; } } else @@ -62,7 +62,7 @@ else } // We add characteristics to the name -foreach($_Avery_Labels as $key => $val) +foreach ($_Avery_Labels as $key => $val) { - $_Avery_Labels[$key]['name'].=' ('.$_Avery_Labels[$key]['paper-size'].' - '.$_Avery_Labels[$key]['NX'].'x'.$_Avery_Labels[$key]['NY'].')'; + $_Avery_Labels[$key]['name'] .= ' ('.$_Avery_Labels[$key]['paper-size'].' - '.$_Avery_Labels[$key]['NX'].'x'.$_Avery_Labels[$key]['NY'].')'; } diff --git a/htdocs/core/lib/fourn.lib.php b/htdocs/core/lib/fourn.lib.php index 9336d9b221f..3b41f2620b4 100644 --- a/htdocs/core/lib/fourn.lib.php +++ b/htdocs/core/lib/fourn.lib.php @@ -48,7 +48,7 @@ function facturefourn_prepare_head($object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/fourn/facture/contact.php?facid='.$object->id; $head[$h][1] = $langs->trans('ContactsAddresses'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -62,11 +62,11 @@ function facturefourn_prepare_head($object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/fourn/facture/note.php?facid='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } @@ -75,10 +75,10 @@ function facturefourn_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id, 2, 0, 0, $object, 'invoice_supplier').$object->ref; $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/fourn/facture/document.php?facid='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; @@ -116,12 +116,12 @@ function ordersupplier_prepare_head($object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/fourn/commande/contact.php?id='.$object->id; $head[$h][1] = $langs->trans('ContactsAddresses'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } - if (! empty($conf->stock->enabled) && (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))) + if (!empty($conf->stock->enabled) && (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))) { $langs->load("stocks"); $head[$h][0] = DOL_URL_ROOT.'/fourn/commande/dispatch.php?id='.$object->id; @@ -139,32 +139,32 @@ function ordersupplier_prepare_head($object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/fourn/commande/note.php?id='.$object->id; $head[$h][1] = $langs->trans("Notes"); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->fournisseur->dir_output . "/commande/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->fournisseur->dir_output."/commande/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/fourn/commande/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; $head[$h][0] = DOL_URL_ROOT.'/fourn/commande/info.php?id='.$object->id; - $head[$h][1].= $langs->trans("Events"); - if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + $head[$h][1] .= $langs->trans("Events"); + if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { - $head[$h][1].= '/'; - $head[$h][1].= $langs->trans("Agenda"); + $head[$h][1] .= '/'; + $head[$h][1] .= $langs->trans("Agenda"); } $head[$h][2] = 'info'; $h++; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 1b16f2a2ca5..0424ee54ee1 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1,19 +1,19 @@ +/* Copyright (C) 2000-2007 Rodolphe Quiedeville * Copyright (C) 2003 Jean-Louis Bergamo * Copyright (C) 2004-2018 Laurent Destailleur * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier - * Copyright (C) 2004 Christophe Combelles + * Copyright (C) 2004 Christophe Combelles * Copyright (C) 2005-2019 Regis Houssin * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2010-2018 Juanjo Menent * Copyright (C) 2013 Cédric Salvador * Copyright (C) 2013-2017 Alexandre Spangaro - * Copyright (C) 2014 Cédric GROSS + * Copyright (C) 2014 Cédric GROSS * Copyright (C) 2014-2015 Marcos García * Copyright (C) 2015 Jean-François Ferry - * Copyright (C) 2018-2019 Frédéric France + * Copyright (C) 2018-2020 Frédéric France * Copyright (C) 2019 Thibault Foucart * * This program is free software; you can redistribute it and/or modify @@ -1549,24 +1549,26 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi } } - if (!$phototoshow) // Show No photo link (picto of pbject) + if (!$phototoshow) // Show No photo link (picto of object) { $morehtmlleft .= '
'; if ($object->element == 'action') { $width = 80; $cssclass = 'photorefcenter'; - $nophoto = img_picto('', 'title_agenda', '', false, 1); + $nophoto = img_picto('No photo', 'title_agenda'); } else { $width = 14; $cssclass = 'photorefcenter'; $picto = $object->picto; if ($object->element == 'project' && !$object->public) $picto = 'project'; // instead of projectpub - $nophoto = img_picto('', 'object_'.$picto, '', false, 1); + $nophoto = img_picto('No photo', 'object_'.$picto); } $morehtmlleft .= ''; - $morehtmlleft .= '
No photo
'; + $morehtmlleft .= '
'; + $morehtmlleft .= $nophoto; + $morehtmlleft .= '
'; $morehtmlleft .= '
'; } @@ -1646,12 +1648,12 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi if (!empty($object->name_alias)) $morehtmlref .= '
'.$object->name_alias.'
'; // Add label - if ($object->element == 'product' || $object->element == 'bank_account' || $object->element == 'project_task') + if (in_array($object->element, array('product', 'bank_account', 'project_task'))) { if (!empty($object->label)) $morehtmlref .= '
'.$object->label.'
'; } - if (method_exists($object, 'getBannerAddress') && $object->element != 'product' && $object->element != 'bookmark' && $object->element != 'ecm_directories' && $object->element != 'ecm_files') + if (method_exists($object, 'getBannerAddress') && !in_array($object->element, array('product', 'bookmark', 'ecm_directories', 'ecm_files'))) { $moreaddress = $object->getBannerAddress('refaddress', $object); if ($moreaddress) { @@ -1660,7 +1662,7 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi $morehtmlref .= ''; } } - if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && in_array($object->element, array('societe', 'contact', 'member', 'product'))) + if (!empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && ($conf->global->MAIN_SHOW_TECHNICAL_ID == '1' || preg_match('/'.preg_quote($object->element, '/').'/i', $conf->global->MAIN_SHOW_TECHNICAL_ID)) && !empty($object->id)) { $morehtmlref .= '
'; $morehtmlref .= $langs->trans("TechnicalID").': '.$object->id; @@ -1718,10 +1720,11 @@ function dol_bc($var, $moreclass = '') * @param string $sep Separator to use to build string * @param Translate $outputlangs Object lang that contains language for text translation. * @param int $mode 0=Standard output, 1=Remove address + * @param string $extralangcode User extralanguage $langcode as values for address, town * @return string Formated string * @see dol_print_address() */ -function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs = '', $mode = 0) +function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs = '', $mode = 0, $extralangcode = '') { global $conf, $langs; @@ -1729,15 +1732,15 @@ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs $countriesusingstate = array('AU', 'CA', 'US', 'IN', 'GB', 'ES', 'UK', 'TR'); // See also MAIN_FORCE_STATE_INTO_ADDRESS // See format of addresses on https://en.wikipedia.org/wiki/Address - // Address if (empty($mode)) { - $ret .= $object->address; + $ret .= ($extralangcode ? $object->array_languages['address'][$extralangcode] : $object->address); } // Zip/Town/State if (in_array($object->country_code, array('AU', 'CA', 'US')) || !empty($conf->global->MAIN_FORCE_STATE_INTO_ADDRESS)) // US: title firstname name \n address lines \n town, state, zip \n country { - $ret .= ($ret ? $sep : '').$object->town; + $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : $object->town); + $ret .= ($ret ? $sep : '').$town; if ($object->state) { $ret .= ($ret ? ", " : '').$object->state; @@ -1746,7 +1749,8 @@ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs } elseif (in_array($object->country_code, array('GB', 'UK'))) // UK: title firstname name \n address lines \n town state \n zip \n country { - $ret .= ($ret ? $sep : '').$object->town; + $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : $object->town); + $ret .= ($ret ? $sep : '').$town; if ($object->state) { $ret .= ($ret ? ", " : '').$object->state; @@ -1756,7 +1760,8 @@ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs elseif (in_array($object->country_code, array('ES', 'TR'))) // ES: title firstname name \n address lines \n zip town \n state \n country { $ret .= ($ret ? $sep : '').$object->zip; - $ret .= ($object->town ? (($object->zip ? ' ' : '').$object->town) : ''); + $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : $object->town); + $ret .= ($town ? (($object->zip ? ' ' : '').$town) : ''); if ($object->state) { $ret .= "\n".$object->state; @@ -1765,13 +1770,15 @@ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs elseif (in_array($object->country_code, array('IT'))) // IT: tile firstname name\n address lines \n zip (Code Departement) \n country { $ret .= ($ret ? $sep : '').$object->zip; - $ret .= ($object->town ? (($object->zip ? ' ' : '').$object->town) : ''); + $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : $object->town); + $ret .= ($town ? (($object->zip ? ' ' : '').$town) : ''); $ret .= ($object->state_code ? (' '.($object->state_code)) : ''); } else // Other: title firstname name \n address lines \n zip town \n country { + $town = ($extralangcode ? $object->array_languages['town'][$extralangcode] : $object->town); $ret .= $object->zip ? (($ret ? $sep : '').$object->zip) : ''; - $ret .= ($object->town ? (($object->zip ? ' ' : ($ret ? $sep : '')).$object->town) : ''); + $ret .= ($town ? (($object->zip ? ' ' : ($ret ? $sep : '')).$town) : ''); if ($object->state && in_array($object->country_code, $countriesusingstate)) { $ret .= ($ret ? ", " : '').$object->state; @@ -2264,10 +2271,15 @@ function dol_print_email($email, $cid = 0, $socid = 0, $addlink = 0, $max = 64, } } - $rep = '
'.($withpicto ?img_picto($langs->trans("EMail"), 'object_email.png').' ' : '').$newemail.'
'; + //$rep = '
'; + $rep = ($withpicto ?img_picto($langs->trans("EMail").' : '.$email, 'object_email.png').' ' : '').$newemail; + //$rep .= '
'; if ($hookmanager) { $parameters = array('cid' => $cid, 'socid' => $socid, 'addlink' => $addlink, 'picto' => $withpicto); $reshook = $hookmanager->executeHooks('printEmail', $parameters, $email); + if ($reshook > 0) { + $rep = ''; + } $rep .= $hookmanager->resPrint; } @@ -2373,6 +2385,7 @@ function dol_print_phone($phone, $countrycode = '', $cid = 0, $socid = 0, $addli // Clean phone parameter $phone = preg_replace("/[\s.-]/", "", trim($phone)); if (empty($phone)) { return ''; } + if ($conf->global->MAIN_PHONE_SEPAR) $separ = $conf->global->MAIN_PHONE_SEPAR; if (empty($countrycode)) $countrycode = $mysoc->country_code; // Short format for small screens @@ -2674,8 +2687,9 @@ function dol_print_phone($phone, $countrycode = '', $cid = 0, $socid = 0, $addli { if ($conf->browser->layout == 'phone' || (!empty($conf->clicktodial->enabled) && !empty($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS))) // If phone or option for, we use link of phone { + $newphoneform = $newphone; $newphone = ''; + $newphone .= '>'.$newphoneform.''; } elseif (!empty($conf->clicktodial->enabled) && $addlink == 'AC_TEL') // If click to dial, we use click to dial url { @@ -2853,16 +2867,16 @@ function dol_user_country() /** * Format address string * - * @param string $address Address + * @param string $address Address string, already formatted with dol_format_address() * @param int $htmlid Html ID (for example 'gmap') - * @param int $mode thirdparty|contact|member|other + * @param int $element 'thirdparty'|'contact'|'member'|'other' * @param int $id Id of object * @param int $noprint No output. Result is the function return * @param string $charfornl Char to use instead of nl2br. '' means we use a standad nl2br. * @return string|void Nothing if noprint is 0, formatted address if noprint is 1 * @see dol_format_address() */ -function dol_print_address($address, $htmlid, $mode, $id, $noprint = 0, $charfornl = '') +function dol_print_address($address, $htmlid, $element, $id, $noprint = 0, $charfornl = '') { global $conf, $user, $langs, $hookmanager; @@ -2871,7 +2885,7 @@ function dol_print_address($address, $htmlid, $mode, $id, $noprint = 0, $charfor if ($address) { if ($hookmanager) { - $parameters = array('element' => $mode, 'id' => $id); + $parameters = array('element' => $element, 'id' => $id); $reshook = $hookmanager->executeHooks('printAddress', $parameters, $address); $out .= $hookmanager->resPrint; } @@ -2880,24 +2894,22 @@ function dol_print_address($address, $htmlid, $mode, $id, $noprint = 0, $charfor if (empty($charfornl)) $out .= nl2br($address); else $out .= preg_replace('/[\r\n]+/', $charfornl, $address); + // TODO Remove this block, we can add this using the hook now $showgmap = $showomap = 0; - - // TODO Add a hook here - if (($mode == 'thirdparty' || $mode == 'societe') && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS)) $showgmap = 1; - if ($mode == 'contact' && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS_CONTACTS)) $showgmap = 1; - if ($mode == 'member' && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS_MEMBERS)) $showgmap = 1; - if (($mode == 'thirdparty' || $mode == 'societe') && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS)) $showomap = 1; - if ($mode == 'contact' && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS_CONTACTS)) $showomap = 1; - if ($mode == 'member' && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS_MEMBERS)) $showomap = 1; - + if (($element == 'thirdparty' || $element == 'societe') && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS)) $showgmap = 1; + if ($element == 'contact' && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS_CONTACTS)) $showgmap = 1; + if ($element == 'member' && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS_MEMBERS)) $showgmap = 1; + if (($element == 'thirdparty' || $element == 'societe') && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS)) $showomap = 1; + if ($element == 'contact' && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS_CONTACTS)) $showomap = 1; + if ($element == 'member' && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS_MEMBERS)) $showomap = 1; if ($showgmap) { - $url = dol_buildpath('/google/gmaps.php?mode='.$mode.'&id='.$id, 1); + $url = dol_buildpath('/google/gmaps.php?mode='.$element.'&id='.$id, 1); $out .= ' '; } if ($showomap) { - $url = dol_buildpath('/openstreetmap/maps.php?mode='.$mode.'&id='.$id, 1); + $url = dol_buildpath('/openstreetmap/maps.php?mode='.$element.'&id='.$id, 1); $out .= ' '; } } @@ -3129,11 +3141,17 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ if (empty($srconly) && in_array($pictowithouttext, array( '1downarrow', '1uparrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected', - 'address', 'barcode', 'bank', 'bookmark', 'building', 'cash-register', 'check', 'close_title', 'cubes', 'delete', 'dolly', 'edit', 'ellipsis-h', - 'filter', 'file-code', 'grip', 'grip_title', 'language', 'list', 'listlight', 'note', + 'address', 'bank_account', 'barcode', 'bank', 'bookmark', 'bom', 'building', 'cash-register', 'check', 'close_title', 'company', 'contact', 'cubes', + 'delete', 'dolly', 'edit', 'ellipsis-h', 'external-link-alt', 'external-link-square-alt', + 'filter', 'file-code', 'file-export', 'file-import', 'file-upload', 'folder', 'folder-open', 'grip', 'grip_title', 'help', 'language', 'list', 'listlight', 'lot', 'mrp', 'note', 'stock', + 'object_accounting', 'object_action', 'object_account', 'object_barcode', 'object_bom', + 'object_category', 'object_bookmark', 'object_bug', 'object_generic', 'object_list-alt', 'object_calendar', 'object_calendarweek', 'object_calendarmonth', 'object_calendarday', 'object_calendarperuser', + 'object_cash-register', 'object_company', 'object_contact', 'object_contract', 'object_dynamicprice', + 'object_holiday', 'object_hrm', 'object_multicurrency', 'object_payment', + 'object_lot', 'object_mrp', 'object_product', 'object_service', 'object_stock', + 'object_paragraph', 'object_printer', 'object_resource', 'object_rss', 'object_technic', 'object_ticket', 'object_trip', 'object_user', 'object_group', 'object_member', 'object_other', 'object_phoning', 'object_phoning_fax', 'object_email', - 'object_bookmark', 'object_list', 'object_calendar', 'object_calendarweek', 'object_calendarmonth', 'object_calendarday', 'object_calendarperuser', - 'off', 'on', 'play', 'playdisabled', 'printer', 'resize', 'stats', + 'off', 'on', 'paiment', 'play', 'playdisabled', 'printer', 'product', 'resize', 'service', 'stats', 'trip', 'note', 'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'wrench', 'globe', 'jabber', 'skype', 'twitter', 'facebook', 'linkedin', 'instagram', 'snapchat', 'youtube', 'google-plus-g', 'whatsapp', 'chevron-left', 'chevron-right', 'chevron-down', 'chevron-top', @@ -3145,42 +3163,39 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $fakey = $pictowithouttext; $facolor = ''; $fasize = ''; $fa = 'fas'; - if (in_array($pictowithouttext, array('off', 'on', 'object_bookmark', 'bookmark'))) { + if (in_array($pictowithouttext, array('object_generic', 'note', 'off', 'on', 'object_bookmark', 'bookmark'))) { $fa = 'far'; } if (in_array($pictowithouttext, array('skype', 'twitter', 'facebook', 'linkedin', 'instagram', 'snapchat', 'youtube', 'google-plus-g', 'whatsapp'))) { $fa = 'fab'; } + $pictowithouttext = str_replace('object_', '', $pictowithouttext); + $arrayconvpictotofa = array( - 'address'=> 'address-book', 'setup'=>'cog', 'companies'=>'building', 'products'=>'cube', 'commercial'=>'suitcase', 'invoicing'=>'coins', 'accountancy'=>'money-check-alt', - 'hrm'=>'umbrella-beach', 'members'=>'users', 'ticket'=>'ticket-alt', 'generic'=>'folder-open', 'globe'=>'external-link-alt', - 'object_phoning'=>'phone', 'object_phoning_fax'=>'fax', 'object_email'=>'at', - 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'check'=>'check', 'object_bookmark'=>'star', 'bookmark'=>'star', 'stats' => 'chart-bar', - 'bank'=>'university', 'close_title'=>'window-close', 'delete'=>'trash', 'edit'=>'pencil', 'filter'=>'filter', 'split'=>'code-branch', - 'object_list'=>'list-alt', 'object_calendar'=>'calendar-alt', 'object_calendarweek'=>'calendar-week', 'object_calendarmonth'=>'calendar-alt', 'object_calendarday'=>'calendar-day', 'object_calendarperuser'=>'table', + 'account'=>'university', 'action'=>'calendar-alt', 'address'=> 'address-book', 'bank_account'=>'university', 'bom'=>'cubes', + 'company'=>'building', 'contact'=>'address-book', 'contract'=>'suitcase', 'dynamicprice'=>'hand-holding-usd', + 'setup'=>'cog', 'companies'=>'building', 'products'=>'cube', 'commercial'=>'suitcase', 'invoicing'=>'coins', 'accountancy'=>'money-check-alt', + 'accounting'=>'chart-line', 'category'=>'tag', + 'hrm'=>'umbrella-beach', 'members'=>'users', 'ticket'=>'ticket-alt', 'globe'=>'external-link-alt', 'lot'=>'barcode', + 'email'=>'at', + 'edit'=>'pencil-alt', 'grip_title'=>'arrows-alt', 'grip'=>'arrows-alt', 'help'=>'info-circle', + 'generic'=>'file', 'holiday'=>'umbrella-beach', 'member'=>'users', 'mrp'=>'cubes', 'trip'=>'wallet', 'group'=>'users', + 'sign-out'=>'sign-out-alt', + 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'check'=>'check', 'bookmark'=>'star', 'bookmark'=>'star', 'stats' => 'chart-bar', + 'bank'=>'university', 'close_title'=>'window-close', 'delete'=>'trash', 'edit'=>'pencil-alt', 'filter'=>'filter', 'split'=>'code-branch', + 'list-alt'=>'list-alt', 'calendar'=>'calendar-alt', 'calendarweek'=>'calendar-week', 'calendarmonth'=>'calendar-alt', 'calendarday'=>'calendar-day', 'calendarperuser'=>'table', + 'multicurrency'=>'dollar-sign', 'other'=>'square', 'resource'=>'laptop-house', 'error'=>'exclamation-triangle', 'warning'=>'exclamation-triangle', - 'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'university', 'title_hrm'=>'umbrella-beach', 'title_agenda'=>'calendar-alt', - 'preview'=>'binoculars', 'project'=>'sitemap' + 'payment'=>'money-bill-alt', 'phoning'=>'phone', 'phoning_fax'=>'fax', 'printer'=>'print', 'product'=>'cube', 'service'=>'concierge-bell', + 'stock'=>'box-open', 'technic'=>'cogs', 'ticket'=>'ticket-alt', + 'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'university', 'title_hrm'=>'umbrella-beach', + 'title_agenda'=>'calendar-alt', + 'playdisabled'=>'play', 'preview'=>'binoculars', 'project'=>'sitemap', 'resize'=>'crop', + 'uparrow'=>'mail-forward', + 'jabber'=>'comment-o' ); - if ($pictowithouttext == 'error' || $pictowithouttext == 'warning') { - $facolor = ''; - $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - $marginleftonlyshort = 0; - $morecss .= ($morecss ? ' ' : '').('picto'.$pictowithouttext); - } elseif ($pictowithouttext == 'switch_off') { - $facolor = '#999'; - $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - } - elseif ($pictowithouttext == 'switch_on') { - $morecss .= ($morecss ? ' ' : '').'font-status4'; - $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - } - elseif ($pictowithouttext == 'check') { - $morecss .= ($morecss ? ' ' : '').'font-status4'; - $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - } - elseif ($pictowithouttext == 'off') { + if ($pictowithouttext == 'off') { $fakey = 'fa-square'; $fasize = '1.3em'; } @@ -3188,81 +3203,75 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $fakey = 'fa-check-square'; $fasize = '1.3em'; } - elseif ($pictowithouttext == 'bank') { - $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - } - elseif ($pictowithouttext == 'stats') { - $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - $facolor = '#444'; - } - elseif ($pictowithouttext == 'delete') { - $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - } - elseif ($pictowithouttext == 'edit') { - $facolor = '#444'; - $fakey = 'fa-pencil-alt'; - } - elseif ($pictowithouttext == 'grip_title' || $pictowithouttext == 'grip') { - $fakey = 'fa-arrows-alt'; - } elseif ($pictowithouttext == 'listlight') { $fakey = 'fa-download'; - $facolor = '#999'; $marginleftonlyshort = 1; } elseif ($pictowithouttext == 'printer') { $fakey = 'fa-print'; $fasize = '1.2em'; - $facolor = '#444'; - } - elseif ($pictowithouttext == 'resize') { - $fakey = 'fa-crop'; - $facolor = '#444'; } elseif ($pictowithouttext == 'note') { $fakey = 'fa-sticky-note'; - $fa = 'far'; - $facolor = '#999'; $marginleftonlyshort = 1; } - elseif ($pictowithouttext == 'uparrow') { - $fakey = 'fa-mail-forward'; - $facolor = '#555'; - } elseif (in_array($pictowithouttext, array('1uparrow', '1downarrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected'))) { $convertarray = array('1uparrow'=>'caret-up', '1downarrow'=>'caret-down', '1leftarrow'=>'caret-left', '1rightarrow'=>'caret-right', '1uparrow_selected'=>'caret-up', '1downarrow_selected'=>'caret-down', '1leftarrow_selected'=>'caret-left', '1rightarrow_selected'=>'caret-right'); $fakey = 'fa-'.$convertarray[$pictowithouttext]; if (preg_match('/selected/', $pictowithouttext)) $facolor = '#888'; $marginleftonlyshort = 1; } - elseif ($pictowithouttext == 'sign-out') { - $fakey = 'fa-sign-out-alt'; - $marginleftonlyshort = 0; - } - elseif ($pictowithouttext == 'playdisabled') { - $fakey = 'fa-play'; - $facolor = '#ccc'; - } - elseif ($pictowithouttext == 'jabber') { - $fakey = 'fa-comment-o'; - } - // Img for type of views - elseif (in_array($pictowithouttext, array('object_list', 'object_calendar', 'object_calendarweek', 'object_calendarmonth', 'object_calendarday', 'object_calendarperuser'))) { - $fakey = 'imgforviewmode fa-'.$arrayconvpictotofa[$pictowithouttext]; - $marginleftonlyshort = 0; - } elseif (!empty($arrayconvpictotofa[$pictowithouttext])) { $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - $marginleftonlyshort = 0; } else { $fakey = 'fa-'.$pictowithouttext; + } + + // Define $marginleftonlyshort + $arrayconvpictotomarginleftonly = array( + 'bank', 'check', 'delete', 'generic', 'grip', 'grip_title', 'jabber', + 'grip_title', 'grip', 'listlight', 'note', 'on', 'off', 'playdisabled', 'printer', 'resize', 'sign-out', 'stats', 'switch_on', 'switch_off', + 'uparrow', '1uparrow', '1downarrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected' + ); + if (!isset($arrayconvpictotomarginleftonly[$pictowithouttext])) { $marginleftonlyshort = 0; } - //this snippet only needed since function img_edit accepts only one additional parameter: no separate one for css only. - //class/style need to be extracted to avoid duplicate class/style validation errors when $moreatt is added to the end of the attributes + // Add CSS + $arrayconvpictotomorcess = array( + 'action'=>'bg-infoxbox-action', 'account'=>'bg-infoxbox-bank_account', 'bank_account'=>'bg-infoxbox-bank_account', 'cash-register'=>'bg-infoxbox-bank_account', + 'contract'=>'bg-infoxbox-contrat', + 'multicurrency'=>'bg-infoxbox-bank_account', + 'check'=>'font-status4', + 'hrm'=>'bg-infoxbox-adherent', 'group'=>'bg-infoxbox-adherent', + 'members'=>'bg-infoxbox-adherent', 'member'=>'bg-infoxbox-adherent', 'user'=>'bg-infoxbox-adherent', 'users'=>'bg-infoxbox-adherent', + 'error'=>'pictoerror', 'warning'=>'pictowarning', 'switch_on'=>'font-status4', + 'holiday'=>'bg-infoxbox-holiday', 'payment'=>'bg-infoxbox-bank_account', 'project'=>'bg-infoxbox-project', 'resource'=>'bg-infoxbox-action', + 'ticket'=>'bg-infoxbox-contrat', 'title_hrm'=>'bg-infoxbox-holiday', 'trip'=>'bg-infoxbox-expensereport', 'title_agenda'=>'bg-infoxbox-action', + 'list-alt'=>'imgforviewmode', 'calendar'=>'imgforviewmode', 'calendarweek'=>'imgforviewmode', 'calendarmonth'=>'imgforviewmode', 'calendarday'=>'imgforviewmode', 'calendarperuser'=>'imgforviewmode' + ); + if (!empty($arrayconvpictotomorcess[$pictowithouttext])) { + $morecss .= ($morecss ? ' ' : '').$arrayconvpictotomorcess[$pictowithouttext]; + } + + // Define $color + $arrayconvpictotocolor = array( + 'address'=>'#37a', 'building'=>'#37a', 'bom'=>'#a69944', + 'companies'=>'#37a', 'company'=>'#37a', 'contact'=>'#37a', 'dynamicprice'=>'#a69944', + 'edit'=>'#444', 'note'=>'#999', 'error'=>'', 'listlight'=>'#999', + 'lot'=>'#a69944', 'mrp'=>'#a69944', 'product'=>'#a69944', 'service'=>'#a69944', 'stock'=>'#a69944', + 'other'=>'#ddd', + 'playdisabled'=>'#ccc', 'printer'=>'#444', 'resize'=>'#444', 'rss'=>'#cba', + 'stats'=>'#444', 'switch_off'=>'#999', 'uparrow'=>'#555', 'warning'=>'' + ); + if (isset($arrayconvpictotocolor[$pictowithouttext])) { + $facolor = $arrayconvpictotocolor[$pictowithouttext]; + } + + // This snippet only needed since function img_edit accepts only one additional parameter: no separate one for css only. + // class/style need to be extracted to avoid duplicate class/style validation errors when $moreatt is added to the end of the attributes. $reg = array(); if (preg_match('/class="([^"]+)"/', $moreatt, $reg)) { $morecss .= ($morecss ? ' ' : '').$reg[1]; @@ -3520,15 +3529,16 @@ function img_view($titlealt = 'default', $float = 0, $other = '') * * @param string $titlealt Text on alt and title of image. Alt only if param notitle is set to 1. If text is "TextA:TextB", use Text A on alt and Text B on title. * @param string $other Add more attributes on img + * @param string $morecss More CSS * @return string Retourne tag img */ -function img_delete($titlealt = 'default', $other = 'class="pictodelete"') +function img_delete($titlealt = 'default', $other = 'class="pictodelete"', $morecss = '') { global $langs; if ($titlealt == 'default') $titlealt = $langs->trans('Delete'); - return img_picto($titlealt, 'delete.png', $other); + return img_picto($titlealt, 'delete.png', $other, false, 0, 0, '', $morecss); } /** @@ -4182,12 +4192,12 @@ function getTitleFieldOfList($name, $thead = 0, $file = "", $field = "", $begin if (preg_match('/^DESC/', $sortorder)) { //$out.= ''.img_down("A-Z",0).''; //$out.= ''.img_up("Z-A",1).''; - $sortimg .= ''.img_up("Z-A", 0).''; + $sortimg .= ''.img_up("Z-A", 0, 'paddingleft').''; } if (preg_match('/^ASC/', $sortorder)) { //$out.= ''.img_down("A-Z",1).''; //$out.= ''.img_up("Z-A",0).''; - $sortimg .= ''.img_down("A-Z", 0).''; + $sortimg .= ''.img_down("A-Z", 0, 'paddingleft').''; } } } @@ -4254,7 +4264,7 @@ function load_fiche_titre($titre, $morehtmlright = '', $picto = 'generic', $pict $return .= "\n"; $return .= '
'; + else print '
'; - print ''; + print '
'; if ($canedit) { + // Type + print ''; + print ''; + + // Assigned to print ''; print ''; if ($conf->resource->enabled) { - include_once DOL_DOCUMENT_ROOT . '/resource/class/html.formresource.class.php'; - $formresource=new FormResource($db); + include_once DOL_DOCUMENT_ROOT.'/resource/class/html.formresource.class.php'; + $formresource = new FormResource($db); // Resource print ''; print ''; } - - // Type - print ''; - print ''; } - if (! empty($conf->societe->enabled) && $user->rights->societe->lire) + if (!empty($conf->societe->enabled) && $user->rights->societe->lire) { print ''; print ''; } - if (! empty($conf->projet->enabled) && $user->rights->projet->lire) + if (!empty($conf->projet->enabled) && $user->rights->projet->lire) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; - $formproject=new FormProjets($db); + $formproject = new FormProjets($db); print ''; print ''; } - if ($canedit && ! preg_match('/list/', $_SERVER["PHP_SELF"])) + if ($canedit && !preg_match('/list/', $_SERVER["PHP_SELF"])) { // Status print ''; @@ -188,7 +194,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh print '
'; + print $langs->trans("Type"); + print ''; + $multiselect = 0; + if (!empty($conf->global->MAIN_ENABLE_MULTISELECT_TYPE)) // We use an option here because it adds bugs when used on agenda page "peruser" and "list" + { + $multiselect = (!empty($conf->global->AGENDA_USE_EVENT_TYPE)); + } + print ''; + print $formactions->select_type_actions($actioncode, "search_actioncode", $excludetype, (empty($conf->global->AGENDA_USE_EVENT_TYPE) ? 1 : -1), 0, $multiselect); + print '
'; print $langs->trans("ActionsToDoBy").'   '; print ''; - print $form->select_dolusers($filtert, 'search_filtert', 1, '', ! $canedit, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); - if (empty($conf->dol_optimize_smallscreen)) print '   '.$langs->trans("or") . ' '.$langs->trans("ToUserOfGroup").'   '; - print $form->select_dolgroups($usergroupid, 'usergroup', 1, '', ! $canedit); + print img_picto('', 'user'); + print $form->select_dolusers($filtert, 'search_filtert', 1, '', !$canedit, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); + if (empty($conf->dol_optimize_smallscreen)) print '   '.$langs->trans("or").' '.$langs->trans("ToUserOfGroup").'   '; + print $form->select_dolgroups($usergroupid, 'usergroup', 1, '', !$canedit); print '
'; print $langs->trans("Resource"); - print '  '; - print $formresource->select_resource_list($resourceid, "search_resourceid", '', 1, 0, 0, null, '', 2); + print ''; + print img_picto('', 'object_resource'); + print $formresource->select_resource_list($resourceid, "search_resourceid", '', 1, 0, 0, null, '', 2); print '
'; - print $langs->trans("Type"); - print '  '; - $multiselect=0; - if (! empty($conf->global->MAIN_ENABLE_MULTISELECT_TYPE)) // We use an option here because it adds bugs when used on agenda page "peruser" and "list" - { - $multiselect=(!empty($conf->global->AGENDA_USE_EVENT_TYPE)); - } - print $formactions->select_type_actions($actioncode, "search_actioncode", $excludetype, (empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:-1), 0, $multiselect); - print '
'; print $langs->trans("ThirdParty").'   '; print ''; + print img_picto('', 'company'); print $form->select_company($socid, 'search_socid', '', 'SelectThirdParty', 0, 0, null, 0); print '
'; print $langs->trans("Project").'   '; print ''; - print $formproject->select_projects($socid?$socid:-1, $pid, 'search_projectid', 0, 0, 1, 0, 0, 0, 0, '', 1, 0, 'maxwidth500'); + print img_picto('', 'project'); + print $formproject->select_projects($socid ? $socid : -1, $pid, 'search_projectid', 0, 0, 1, 0, 0, 0, 0, '', 1, 0, 'maxwidth500'); print '
'; print '
'; print '
'; - print ''; + print ''; print '
'; print '
'; @@ -196,7 +202,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh if ($conf->browser->layout == 'phone') print ''; else print '
'; - print ''; // Close fichecenter + print ''; // Close fichecenter print '
'; //print ''; @@ -213,26 +219,26 @@ function show_array_actions_to_do($max = 5) { global $langs, $conf, $user, $db, $bc, $socid; - $now=dol_now(); + $now = dol_now(); include_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; include_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; $sql = "SELECT a.id, a.label, a.datep as dp, a.datep2 as dp2, a.fk_user_author, a.percent,"; - $sql.= " c.code, c.libelle as type_label,"; - $sql.= " s.nom as sname, s.rowid, s.client"; - $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a LEFT JOIN "; - $sql.= " ".MAIN_DB_PREFIX."c_actioncomm as c ON c.id = a.fk_action"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON a.fk_soc = s.rowid"; - if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE a.entity = ".$conf->entity; - $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep2 > '".$db->idate($now)."'))"; - if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; - if ($socid) $sql.= " AND s.rowid = ".$socid; - $sql.= " ORDER BY a.datep DESC, a.id DESC"; - $sql.= $db->plimit($max, 0); + $sql .= " c.code, c.libelle as type_label,"; + $sql .= " s.nom as sname, s.rowid, s.client"; + $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a LEFT JOIN "; + $sql .= " ".MAIN_DB_PREFIX."c_actioncomm as c ON c.id = a.fk_action"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON a.fk_soc = s.rowid"; + if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE a.entity = ".$conf->entity; + $sql .= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep2 > '".$db->idate($now)."'))"; + if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; + if ($socid) $sql .= " AND s.rowid = ".$socid; + $sql .= " ORDER BY a.datep DESC, a.id DESC"; + $sql .= $db->plimit($max, 0); - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -246,8 +252,8 @@ function show_array_actions_to_do($max = 5) $var = true; $i = 0; - $staticaction=new ActionComm($db); - $customerstatic=new Client($db); + $staticaction = new ActionComm($db); + $customerstatic = new Client($db); while ($i < $num) { @@ -256,9 +262,9 @@ function show_array_actions_to_do($max = 5) print '
'.$staticaction->getNomUrl(1, 34).''.dol_trunc($obj->label,22).''; if ($obj->rowid > 0) { - $customerstatic->id=$obj->rowid; - $customerstatic->name=$obj->sname; - $customerstatic->client=$obj->client; + $customerstatic->id = $obj->rowid; + $customerstatic->name = $obj->sname; + $customerstatic->client = $obj->client; print $customerstatic->getNomUrl(1, '', 16); } print ''.dol_print_date($datep, 'day').' '; - $late=0; - if ($obj->percent == 0 && $datep && $datep < time()) $late=1; - if ($obj->percent == 0 && ! $datep && $datep2 && $datep2 < time()) $late=1; - if ($obj->percent > 0 && $obj->percent < 100 && $datep2 && $datep2 < time()) $late=1; - if ($obj->percent > 0 && $obj->percent < 100 && ! $datep2 && $datep && $datep < time()) $late=1; + $late = 0; + if ($obj->percent == 0 && $datep && $datep < time()) $late = 1; + if ($obj->percent == 0 && !$datep && $datep2 && $datep2 < time()) $late = 1; + if ($obj->percent > 0 && $obj->percent < 100 && $datep2 && $datep2 < time()) $late = 1; + if ($obj->percent > 0 && $obj->percent < 100 && !$datep2 && $datep && $datep < time()) $late = 1; if ($late) print img_warning($langs->trans("Late")); print "
'.$staticaction->getNomUrl(1, 34).''.dol_trunc($obj->label,24).''; if ($obj->rowid > 0) { - $customerstatic->id=$obj->rowid; - $customerstatic->name=$obj->sname; - $customerstatic->client=$obj->client; + $customerstatic->id = $obj->rowid; + $customerstatic->name = $obj->sname; + $customerstatic->client = $obj->client; print $customerstatic->getNomUrl(1, '', 24); } print '
'; // maring bottom must be same than into print_barre_list $return .= ''; - if ($picto) $return .= ''; + if ($picto) $return .= ''; $return .= ''; @@ -4320,7 +4330,7 @@ function print_barre_liste($titre, $page, $file, $options = '', $sortfield = '', // Left - if ($picto && $titre) print ''; + if ($picto && $titre) print ''; print '\n"; } - if (count($arrayfields)>0 && !empty($arrayfields['t.description']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.description']['checked'])) { print "\n"; } // Date start - if (count($arrayfields)>0 && !empty($arrayfields['t.dateo']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.dateo']['checked'])) { print ''; } // Date end - if (count($arrayfields)>0 && !empty($arrayfields['t.datee']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.datee']['checked'])) { print ''; } // Progress declared - if (count($arrayfields)>0 && !empty($arrayfields['t.progress']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.progress']['checked'])) { print ''; } // Time billed - if (count($arrayfields)>0 && !empty($arrayfields['t.billed']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.billed']['checked'])) { print ''; } @@ -650,12 +650,12 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t } // Extra fields - $extrafieldsobjectkey=$taskstatic->table_element; - $obj=$lines[$i]; + $extrafieldsobjectkey = $taskstatic->table_element; + $obj = $lines[$i]; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; // Fields from hook - $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$lines[$i]); - $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook + $parameters = array('arrayfields'=>$arrayfields, 'obj'=>$lines[$i]); + $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Tick to drag and drop @@ -693,18 +693,18 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t print ''; print ''; if ($showproject) print ''; - if (count($arrayfields)>0 && !empty($arrayfields['t.label']['checked'])) print ''; - if (count($arrayfields)>0 && !empty($arrayfields['t.dateo']['checked'])) print ''; - if (count($arrayfields)>0 && !empty($arrayfields['t.datee']['checked'])) print ''; - if (count($arrayfields)>0 && !empty($arrayfields['t.planned_workload']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.label']['checked'])) print ''; + if (count($arrayfields) > 0 && !empty($arrayfields['t.dateo']['checked'])) print ''; + if (count($arrayfields) > 0 && !empty($arrayfields['t.datee']['checked'])) print ''; + if (count($arrayfields) > 0 && !empty($arrayfields['t.planned_workload']['checked'])) { print ''; } - if (count($arrayfields)>0 && !empty($arrayfields['t.duration_effective']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.duration_effective']['checked'])) { print ''; } - if (count($arrayfields)>0 && !empty($arrayfields['t.progress']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.progress']['checked'])) { print ''; } // resume - if (count($arrayfields)>0 && !empty($arrayfields['t.progress_summary']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.progress_summary']['checked'])) { print ''; } - if (count($arrayfields)>0 && !empty($arrayfields['t.billed']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.billed']['checked'])) { print ''; @@ -2073,7 +2073,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks $listofstatus = array_keys($listofoppstatus); - if (is_array($listofstatus) && ! empty($conf->global->USE_COLOR_FOR_PROSPECTION_STATUS)) { + if (is_array($listofstatus) && !empty($conf->global->USE_COLOR_FOR_PROSPECTION_STATUS)) { // Define $themeColorId and array $statusOppList for each $listofstatus $themeColorId = 0; $statusOppList = array(); @@ -2216,7 +2216,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks if ($userAccess >= 0) { $projectstatic->ref = $objp->ref; - $projectstatic->statut = $objp->status; // deprecated + $projectstatic->statut = $objp->status; // deprecated $projectstatic->status = $objp->status; $projectstatic->title = $objp->title; $projectstatic->datee = $db->jdate($objp->datee); diff --git a/htdocs/core/lib/propal.lib.php b/htdocs/core/lib/propal.lib.php index 9e12e9d4229..fcdf4bbb79d 100644 --- a/htdocs/core/lib/propal.lib.php +++ b/htdocs/core/lib/propal.lib.php @@ -42,14 +42,14 @@ function propal_prepare_head($object) $head[$h][2] = 'comm'; $h++; - if ((empty($conf->commande->enabled) && ((! empty($conf->expedition->enabled) && ! empty($conf->expedition_bon->enabled) && $user->rights->expedition->lire) - || (! empty($conf->expedition->enabled) && ! empty($conf->livraison_bon->enabled) && $user->rights->expedition->livraison->lire)))) + if ((empty($conf->commande->enabled) && ((!empty($conf->expedition->enabled) && !empty($conf->expedition_bon->enabled) && $user->rights->expedition->lire) + || (!empty($conf->expedition->enabled) && !empty($conf->livraison_bon->enabled) && $user->rights->expedition->livraison->lire)))) { $langs->load("sendings"); $text = ''; $head[$h][0] = DOL_URL_ROOT.'/expedition/propal.php?id='.$object->id; - if ($conf->expedition_bon->enabled) $text=$langs->trans("Shipment"); - if ($conf->livraison_bon->enabled) $text.='/'.$langs->trans("Receivings"); + if ($conf->expedition_bon->enabled) $text = $langs->trans("Shipment"); + if ($conf->livraison_bon->enabled) $text .= '/'.$langs->trans("Receivings"); $head[$h][1] = $text; $head[$h][2] = 'shipping'; $h++; @@ -60,7 +60,7 @@ function propal_prepare_head($object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/comm/propal/contact.php?id='.$object->id; $head[$h][1] = $langs->trans('ContactsAddresses'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -74,23 +74,23 @@ function propal_prepare_head($object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/comm/propal/note.php?id='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->propal->multidir_output[$object->entity] . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->propal->multidir_output[$object->entity]."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/comm/propal/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'document'; $h++; diff --git a/htdocs/core/lib/reception.lib.php b/htdocs/core/lib/reception.lib.php index 33591b3beea..3cf9a535eaa 100644 --- a/htdocs/core/lib/reception.lib.php +++ b/htdocs/core/lib/reception.lib.php @@ -60,7 +60,7 @@ function reception_prepare_head(Reception $object) $nbContact = count($objectsrc->liste_contact(-1, 'internal')) + count($objectsrc->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT."/reception/contact.php?id=".$object->id; $head[$h][1] = $langs->trans("ContactsAddresses"); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -70,7 +70,7 @@ function reception_prepare_head(Reception $object) if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT."/reception/note.php?id=".$object->id; $head[$h][1] = $langs->trans("Notes"); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; @@ -103,7 +103,7 @@ function reception_admin_prepare_head() $h++; - if (! empty($conf->global->MAIN_SUBMODULE_RECEPTION)) + if (!empty($conf->global->MAIN_SUBMODULE_RECEPTION)) { $head[$h][0] = DOL_URL_ROOT.'/admin/reception_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); @@ -111,7 +111,7 @@ function reception_admin_prepare_head() $h++; } - if (! empty($conf->global->MAIN_SUBMODULE_RECEPTION)) + if (!empty($conf->global->MAIN_SUBMODULE_RECEPTION)) { $head[$h][0] = DOL_URL_ROOT.'/admin/commande_fournisseur_dispatch_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsLines"); diff --git a/htdocs/core/lib/report.lib.php b/htdocs/core/lib/report.lib.php index 4649abc474a..5a8d5d2530e 100644 --- a/htdocs/core/lib/report.lib.php +++ b/htdocs/core/lib/report.lib.php @@ -44,25 +44,26 @@ function report_header($reportname, $notused, $period, $periodlink, $description print "\n\n\n"; - if(! empty($varlink)) $varlink = '?'.$varlink; + if (!empty($varlink)) $varlink = '?'.$varlink; $head = array(); - $h=0; + $h = 0; $head[$h][0] = $_SERVER["PHP_SELF"].$varlink; $head[$h][1] = $langs->trans("Report"); $head[$h][2] = 'report'; - print ''; + print ''."\n"; + print ''."\n"; dol_fiche_head($head, 'report'); - foreach($moreparam as $key => $value) + foreach ($moreparam as $key => $value) { - print ''; + print ''."\n"; } - print '
'.img_picto('', $picto, 'class="valignmiddle widthpictotitle pictotitle"', $pictoisfullpath).''.img_picto('', $picto, 'class="valignmiddle widthpictotitle pictotitle"', $pictoisfullpath).''; $return .= '
'.$titre.'
'; $return .= '
'.img_picto('', $picto, 'class="valignmiddle pictotitle widthpictotitle"', $pictoisfullpath).''.img_picto('', $picto, 'class="valignmiddle pictotitle widthpictotitle"', $pictoisfullpath).''; print '
'.$titre; if (!empty($titre) && $savtotalnboflines >= 0 && (string) $savtotalnboflines != '') print '('.$totalnboflines.')'; @@ -5656,7 +5666,7 @@ function dol_string_onlythesehtmltags($stringtoclean, $cleanalsosomestyles = 1) $allowed_tags_string = '<'.$allowed_tags_string.'>'; if ($cleanalsosomestyles) { - $stringtoclean = preg_replace('/position\s*:\s*(absolute|fixed)\s*!\s*important/', '', $stringtoclean); // Note: If hacker try to introduce css comment into string to bypass this regex, the string must also be encoded by the dol_htmlentitiesbr during output so it become harmless + $stringtoclean = preg_replace('/position\s*:\s*(absolute|fixed)\s*!\s*important/', '', $stringtoclean); // Note: If hacker try to introduce css comment into string to bypass this regex, the string must also be encoded by the dol_htmlentitiesbr during output so it become harmless } $temp = strip_tags($stringtoclean, $allowed_tags_string); @@ -8314,7 +8324,7 @@ function roundUpToNextMultiple($n, $x = 5) * @param string $label label of badge no html : use in alt attribute for accessibility * @param string $html optional : label of badge with html * @param string $type type of badge : Primary Secondary Success Danger Warning Info Light Dark status0 status1 status2 status3 status4 status5 status6 status7 status8 status9 - * @param string $mode default '' , pill, dot + * @param string $mode default '' , 'pill', 'dot' * @param string $url the url for link * @param array $params various params for future : recommended rather than adding more fuction arguments. array('attr'=>array('title'=>'abc')) * @return string Html badge @@ -8459,6 +8469,7 @@ function dolGetStatus($statusLabel = '', $statusLabelShort = '', $html = '', $st $statusLabelShort = !empty($statusLabelShort) ? $statusLabelShort : $statusLabel; $dolGetBadgeParams['attr']['class'] = 'badge-status'; + $dolGetBadgeParams['attr']['title'] = $statusLabel; if ($displayMode == 3) { $return = dolGetBadge($statusLabel, '', $statusType, 'dot', $url, $dolGetBadgeParams); diff --git a/htdocs/core/lib/functions_ch.lib.php b/htdocs/core/lib/functions_ch.lib.php index 353c8d0a2ac..04e74837853 100644 --- a/htdocs/core/lib/functions_ch.lib.php +++ b/htdocs/core/lib/functions_ch.lib.php @@ -32,139 +32,139 @@ function dol_ch_controle_bvrb($bvrb) { // Init array for control - $tableau[0][0]=0; - $tableau[0][1]=9; - $tableau[0][2]=4; - $tableau[0][3]=6; - $tableau[0][4]=8; - $tableau[0][5]=2; - $tableau[0][6]=7; - $tableau[0][7]=1; - $tableau[0][8]=3; - $tableau[0][9]=5; - $tableau[0][10]=0; + $tableau[0][0] = 0; + $tableau[0][1] = 9; + $tableau[0][2] = 4; + $tableau[0][3] = 6; + $tableau[0][4] = 8; + $tableau[0][5] = 2; + $tableau[0][6] = 7; + $tableau[0][7] = 1; + $tableau[0][8] = 3; + $tableau[0][9] = 5; + $tableau[0][10] = 0; - $tableau[1][0]=9; - $tableau[1][1]=4; - $tableau[1][2]=6; - $tableau[1][3]=8; - $tableau[1][4]=2; - $tableau[1][5]=7; - $tableau[1][6]=1; - $tableau[1][7]=3; - $tableau[1][8]=5; - $tableau[1][9]=0; - $tableau[1][10]=9; + $tableau[1][0] = 9; + $tableau[1][1] = 4; + $tableau[1][2] = 6; + $tableau[1][3] = 8; + $tableau[1][4] = 2; + $tableau[1][5] = 7; + $tableau[1][6] = 1; + $tableau[1][7] = 3; + $tableau[1][8] = 5; + $tableau[1][9] = 0; + $tableau[1][10] = 9; - $tableau[2][0]=4; - $tableau[2][1]=6; - $tableau[2][2]=8; - $tableau[2][3]=2; - $tableau[2][4]=7; - $tableau[2][5]=1; - $tableau[2][6]=3; - $tableau[2][7]=5; - $tableau[2][8]=0; - $tableau[2][9]=9; - $tableau[2][10]=8; + $tableau[2][0] = 4; + $tableau[2][1] = 6; + $tableau[2][2] = 8; + $tableau[2][3] = 2; + $tableau[2][4] = 7; + $tableau[2][5] = 1; + $tableau[2][6] = 3; + $tableau[2][7] = 5; + $tableau[2][8] = 0; + $tableau[2][9] = 9; + $tableau[2][10] = 8; - $tableau[3][0]=6; - $tableau[3][1]=8; - $tableau[3][2]=2; - $tableau[3][3]=7; - $tableau[3][4]=1; - $tableau[3][5]=3; - $tableau[3][6]=5; - $tableau[3][7]=0; - $tableau[3][8]=9; - $tableau[3][9]=4; - $tableau[3][10]=7; + $tableau[3][0] = 6; + $tableau[3][1] = 8; + $tableau[3][2] = 2; + $tableau[3][3] = 7; + $tableau[3][4] = 1; + $tableau[3][5] = 3; + $tableau[3][6] = 5; + $tableau[3][7] = 0; + $tableau[3][8] = 9; + $tableau[3][9] = 4; + $tableau[3][10] = 7; - $tableau[4][0]=8; - $tableau[4][1]=2; - $tableau[4][2]=7; - $tableau[4][3]=1; - $tableau[4][4]=3; - $tableau[4][5]=5; - $tableau[4][6]=0; - $tableau[4][7]=9; - $tableau[4][8]=4; - $tableau[4][9]=6; - $tableau[4][10]=6; + $tableau[4][0] = 8; + $tableau[4][1] = 2; + $tableau[4][2] = 7; + $tableau[4][3] = 1; + $tableau[4][4] = 3; + $tableau[4][5] = 5; + $tableau[4][6] = 0; + $tableau[4][7] = 9; + $tableau[4][8] = 4; + $tableau[4][9] = 6; + $tableau[4][10] = 6; - $tableau[5][0]=2; - $tableau[5][1]=7; - $tableau[5][2]=1; - $tableau[5][3]=3; - $tableau[5][4]=5; - $tableau[5][5]=0; - $tableau[5][6]=9; - $tableau[5][7]=4; - $tableau[5][8]=6; - $tableau[5][9]=8; - $tableau[5][10]=5; + $tableau[5][0] = 2; + $tableau[5][1] = 7; + $tableau[5][2] = 1; + $tableau[5][3] = 3; + $tableau[5][4] = 5; + $tableau[5][5] = 0; + $tableau[5][6] = 9; + $tableau[5][7] = 4; + $tableau[5][8] = 6; + $tableau[5][9] = 8; + $tableau[5][10] = 5; - $tableau[6][0]=7; - $tableau[6][1]=1; - $tableau[6][2]=3; - $tableau[6][3]=5; - $tableau[6][4]=0; - $tableau[6][5]=9; - $tableau[6][6]=4; - $tableau[6][7]=6; - $tableau[6][8]=8; - $tableau[6][9]=2; - $tableau[6][10]=4; + $tableau[6][0] = 7; + $tableau[6][1] = 1; + $tableau[6][2] = 3; + $tableau[6][3] = 5; + $tableau[6][4] = 0; + $tableau[6][5] = 9; + $tableau[6][6] = 4; + $tableau[6][7] = 6; + $tableau[6][8] = 8; + $tableau[6][9] = 2; + $tableau[6][10] = 4; - $tableau[7][0]=1; - $tableau[7][1]=3; - $tableau[7][2]=5; - $tableau[7][3]=0; - $tableau[7][4]=9; - $tableau[7][5]=4; - $tableau[7][6]=6; - $tableau[7][7]=8; - $tableau[7][8]=2; - $tableau[7][9]=7; - $tableau[7][10]=3; + $tableau[7][0] = 1; + $tableau[7][1] = 3; + $tableau[7][2] = 5; + $tableau[7][3] = 0; + $tableau[7][4] = 9; + $tableau[7][5] = 4; + $tableau[7][6] = 6; + $tableau[7][7] = 8; + $tableau[7][8] = 2; + $tableau[7][9] = 7; + $tableau[7][10] = 3; - $tableau[8][0]=3; - $tableau[8][1]=5; - $tableau[8][2]=0; - $tableau[8][3]=9; - $tableau[8][4]=4; - $tableau[8][5]=6; - $tableau[8][6]=8; - $tableau[8][7]=2; - $tableau[8][8]=7; - $tableau[8][9]=1; - $tableau[8][10]=2; + $tableau[8][0] = 3; + $tableau[8][1] = 5; + $tableau[8][2] = 0; + $tableau[8][3] = 9; + $tableau[8][4] = 4; + $tableau[8][5] = 6; + $tableau[8][6] = 8; + $tableau[8][7] = 2; + $tableau[8][8] = 7; + $tableau[8][9] = 1; + $tableau[8][10] = 2; - $tableau[9][0]=5; - $tableau[9][1]=0; - $tableau[9][2]=9; - $tableau[9][3]=4; - $tableau[9][4]=6; - $tableau[9][5]=8; - $tableau[9][6]=2; - $tableau[9][7]=7; - $tableau[9][8]=1; - $tableau[9][9]=3; - $tableau[9][10]=1; + $tableau[9][0] = 5; + $tableau[9][1] = 0; + $tableau[9][2] = 9; + $tableau[9][3] = 4; + $tableau[9][4] = 6; + $tableau[9][5] = 8; + $tableau[9][6] = 2; + $tableau[9][7] = 7; + $tableau[9][8] = 1; + $tableau[9][9] = 3; + $tableau[9][10] = 1; // Clean data - $bv=str_replace(' ', '', $bvrb); + $bv = str_replace(' ', '', $bvrb); // Make control - $report=0; - while (dol_strlen($bv)>1) + $report = 0; + while (dol_strlen($bv) > 1) { - $match=substr($bv, 0, 1); - $report=$tableau[$report][$match]; - $bv=substr($bv, 1); + $match = substr($bv, 0, 1); + $report = $tableau[$report][$match]; + $bv = substr($bv, 1); } - $controle=$tableau[$report][10]; + $controle = $tableau[$report][10]; - return ($controle==$bv); + return ($controle == $bv); } diff --git a/htdocs/core/lib/geturl.lib.php b/htdocs/core/lib/geturl.lib.php index ac5cfab832f..ae0eb86882e 100644 --- a/htdocs/core/lib/geturl.lib.php +++ b/htdocs/core/lib/geturl.lib.php @@ -35,11 +35,11 @@ function getURLContent($url, $postorget = 'GET', $param = '', $followlocation = { //declaring of global variables global $conf; - $USE_PROXY=empty($conf->global->MAIN_PROXY_USE)?0:$conf->global->MAIN_PROXY_USE; - $PROXY_HOST=empty($conf->global->MAIN_PROXY_HOST)?0:$conf->global->MAIN_PROXY_HOST; - $PROXY_PORT=empty($conf->global->MAIN_PROXY_PORT)?0:$conf->global->MAIN_PROXY_PORT; - $PROXY_USER=empty($conf->global->MAIN_PROXY_USER)?0:$conf->global->MAIN_PROXY_USER; - $PROXY_PASS=empty($conf->global->MAIN_PROXY_PASS)?0:$conf->global->MAIN_PROXY_PASS; + $USE_PROXY = empty($conf->global->MAIN_PROXY_USE) ? 0 : $conf->global->MAIN_PROXY_USE; + $PROXY_HOST = empty($conf->global->MAIN_PROXY_HOST) ? 0 : $conf->global->MAIN_PROXY_HOST; + $PROXY_PORT = empty($conf->global->MAIN_PROXY_PORT) ? 0 : $conf->global->MAIN_PROXY_PORT; + $PROXY_USER = empty($conf->global->MAIN_PROXY_USER) ? 0 : $conf->global->MAIN_PROXY_USER; + $PROXY_PASS = empty($conf->global->MAIN_PROXY_PASS) ? 0 : $conf->global->MAIN_PROXY_PASS; dol_syslog("getURLContent postorget=".$postorget." URL=".$url." param=".$param); @@ -54,51 +54,51 @@ function getURLContent($url, $postorget = 'GET', $param = '', $followlocation = curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Dolibarr geturl function'); - @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, ($followlocation?true:false)); // We use @ here because this may return warning if safe mode is on or open_basedir is on + @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, ($followlocation ?true:false)); // We use @ here because this may return warning if safe mode is on or open_basedir is on if (count($addheaders)) curl_setopt($ch, CURLOPT_HTTPHEADER, $addheaders); - curl_setopt($ch, CURLINFO_HEADER_OUT, true); // To be able to retrieve request header and log it + curl_setopt($ch, CURLINFO_HEADER_OUT, true); // To be able to retrieve request header and log it // By default use tls decied by PHP. // You can force, if supported a version like TLSv1 or TLSv1.2 - if (! empty($conf->global->MAIN_CURL_SSLVERSION)) curl_setopt($ch, CURLOPT_SSLVERSION, $conf->global->MAIN_CURL_SSLVERSION); + if (!empty($conf->global->MAIN_CURL_SSLVERSION)) curl_setopt($ch, CURLOPT_SSLVERSION, $conf->global->MAIN_CURL_SSLVERSION); //curl_setopt($ch, CURLOPT_SSLVERSION, 6); for tls 1.2 //turning off the server and peer verification(TrustManager Concept). curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, empty($conf->global->MAIN_USE_CONNECT_TIMEOUT)?5:$conf->global->MAIN_USE_CONNECT_TIMEOUT); - curl_setopt($ch, CURLOPT_TIMEOUT, empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT)?30:$conf->global->MAIN_USE_RESPONSE_TIMEOUT); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, empty($conf->global->MAIN_USE_CONNECT_TIMEOUT) ? 5 : $conf->global->MAIN_USE_CONNECT_TIMEOUT); + curl_setopt($ch, CURLOPT_TIMEOUT, empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT) ? 30 : $conf->global->MAIN_USE_RESPONSE_TIMEOUT); //curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); // PHP 5.5 - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // We want response + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // We want response if ($postorget == 'POST') { - curl_setopt($ch, CURLOPT_POST, 1); // POST - curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // Setting param x=a&y=z as POST fields + curl_setopt($ch, CURLOPT_POST, 1); // POST + curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // Setting param x=a&y=z as POST fields } elseif ($postorget == 'POSTALREADYFORMATED') { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); // HTTP request is 'POST' but param string is taken as it is - curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // param = content of post, like a xml string + curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // param = content of post, like a xml string } elseif ($postorget == 'PUT') { - $array_param=null; + $array_param = null; curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // HTTP request is 'PUT' - if (! is_array($param)) parse_str($param, $array_param); + if (!is_array($param)) parse_str($param, $array_param); else { dol_syslog("parameter param must be a string", LOG_WARNING); - $array_param=$param; + $array_param = $param; } - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($array_param)); // Setting param x=a&y=z as PUT fields + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($array_param)); // Setting param x=a&y=z as PUT fields } elseif ($postorget == 'PUTALREADYFORMATED') { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // HTTP request is 'PUT' - curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // param = content of post, like a xml string + curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // param = content of post, like a xml string } elseif ($postorget == 'HEAD') { @@ -107,40 +107,40 @@ function getURLContent($url, $postorget = 'GET', $param = '', $followlocation = } elseif ($postorget == 'DELETE') { - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); // POST + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); // POST } else { - curl_setopt($ch, CURLOPT_POST, 0); // GET + curl_setopt($ch, CURLOPT_POST, 0); // GET } //if USE_PROXY constant set at begin of this method. if ($USE_PROXY) { - dol_syslog("getURLContent set proxy to ".$PROXY_HOST. ":" . $PROXY_PORT." - ".$PROXY_USER. ":" . $PROXY_PASS); + dol_syslog("getURLContent set proxy to ".$PROXY_HOST.":".$PROXY_PORT." - ".$PROXY_USER.":".$PROXY_PASS); //curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); // Curl 7.10 - curl_setopt($ch, CURLOPT_PROXY, $PROXY_HOST. ":" . $PROXY_PORT); - if ($PROXY_USER) curl_setopt($ch, CURLOPT_PROXYUSERPWD, $PROXY_USER. ":" . $PROXY_PASS); + curl_setopt($ch, CURLOPT_PROXY, $PROXY_HOST.":".$PROXY_PORT); + if ($PROXY_USER) curl_setopt($ch, CURLOPT_PROXYUSERPWD, $PROXY_USER.":".$PROXY_PASS); } //getting response from server $response = curl_exec($ch); - $request = curl_getinfo($ch, CURLINFO_HEADER_OUT); // Reading of request must be done after sending request + $request = curl_getinfo($ch, CURLINFO_HEADER_OUT); // Reading of request must be done after sending request dol_syslog("getURLContent request=".$request); //dol_syslog("getURLContent response =".response); // This may contains binary data, so we dont output it - dol_syslog("getURLContent response size=".strlen($response)); // This may contains binary data, so we dont output it + dol_syslog("getURLContent response size=".strlen($response)); // This may contains binary data, so we dont output it - $rep=array(); + $rep = array(); if (curl_errno($ch)) { // Ad keys to $rep - $rep['content']=$response; + $rep['content'] = $response; // moving to display page to display curl errors - $rep['curl_error_no']=curl_errno($ch); - $rep['curl_error_msg']=curl_error($ch); + $rep['curl_error_no'] = curl_errno($ch); + $rep['curl_error_msg'] = curl_error($ch); dol_syslog("getURLContent response array is ".join(',', $rep)); } @@ -155,9 +155,9 @@ function getURLContent($url, $postorget = 'GET', $param = '', $followlocation = dol_syslog("getURLContent http_code=".$rep['http_code']); // Add more keys to $rep - $rep['content']=$response; - $rep['curl_error_no']=''; - $rep['curl_error_msg']=''; + $rep['content'] = $response; + $rep['curl_error_no'] = ''; + $rep['curl_error_msg'] = ''; //closing the curl curl_close($ch); @@ -177,19 +177,19 @@ function getURLContent($url, $postorget = 'GET', $param = '', $followlocation = */ function getDomainFromURL($url, $mode = 0) { - $tmpdomain = preg_replace('/^https?:\/\//i', '', $url); // Remove http(s):// - $tmpdomain = preg_replace('/\/.*$/i', '', $tmpdomain); // Remove part after domain + $tmpdomain = preg_replace('/^https?:\/\//i', '', $url); // Remove http(s):// + $tmpdomain = preg_replace('/\/.*$/i', '', $tmpdomain); // Remove part after domain if ($mode == 2) { - $tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)\.([^\.]+)$/', '\1.\2.\3', $tmpdomain); // Remove part 'www.' before 'abc.mydomain.com' + $tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)\.([^\.]+)$/', '\1.\2.\3', $tmpdomain); // Remove part 'www.' before 'abc.mydomain.com' } else { - $tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)$/', '\1.\2', $tmpdomain); // Remove part 'www.abc.' before 'mydomain.com' + $tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)$/', '\1.\2', $tmpdomain); // Remove part 'www.abc.' before 'mydomain.com' } if (empty($mode)) { - $tmpdomain = preg_replace('/\.[^\.]+$/', '', $tmpdomain); // Remove first level domain (.com, .net, ...) + $tmpdomain = preg_replace('/\.[^\.]+$/', '', $tmpdomain); // Remove first level domain (.com, .net, ...) } return $tmpdomain; @@ -205,12 +205,12 @@ function getDomainFromURL($url, $mode = 0) */ function getRootURLFromURL($url) { - $prefix=''; + $prefix = ''; $tmpurl = $url; $reg = null; if (preg_match('/^(https?:\/\/)/i', $tmpurl, $reg)) $prefix = $reg[1]; - $tmpurl = preg_replace('/^https?:\/\//i', '', $tmpurl); // Remove http(s):// - $tmpurl = preg_replace('/\/.*$/i', '', $tmpurl); // Remove part after domain + $tmpurl = preg_replace('/^https?:\/\//i', '', $tmpurl); // Remove http(s):// + $tmpurl = preg_replace('/\/.*$/i', '', $tmpurl); // Remove part after domain return $prefix.$tmpurl; } diff --git a/htdocs/core/lib/holiday.lib.php b/htdocs/core/lib/holiday.lib.php index f1b18df11b2..987895c27d8 100644 --- a/htdocs/core/lib/holiday.lib.php +++ b/htdocs/core/lib/holiday.lib.php @@ -44,10 +44,10 @@ function holiday_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; $upload_dir = $conf->holiday->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/holiday/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; diff --git a/htdocs/core/lib/hrm.lib.php b/htdocs/core/lib/hrm.lib.php index b61fba236e2..83eafa2548f 100644 --- a/htdocs/core/lib/hrm.lib.php +++ b/htdocs/core/lib/hrm.lib.php @@ -36,7 +36,7 @@ function establishment_prepare_head($object) $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT.'/hrm/establishment/card.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/hrm/establishment/card.php?id='.$object->id; $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; $h++; @@ -47,7 +47,7 @@ function establishment_prepare_head($object) // $this->tabs = array('entity:-tabname); to remove a tab complete_head_from_modules($conf, $langs, $object, $head, $h, 'establishment'); - $head[$h][0] = DOL_URL_ROOT.'/hrm/establishment/info.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/hrm/establishment/info.php?id='.$object->id; $head[$h][1] = $langs->trans("Info"); $head[$h][2] = 'info'; $h++; diff --git a/htdocs/core/lib/images.lib.php b/htdocs/core/lib/images.lib.php index 1e6ebfa6d85..a8469d6bb8b 100644 --- a/htdocs/core/lib/images.lib.php +++ b/htdocs/core/lib/images.lib.php @@ -328,7 +328,7 @@ function correctExifImageOrientation($fileSource, $fileDest, $quality = 95) $infoImg = getimagesize($fileSource); // Get image infos $orientation = $exif['Orientation']; - if($orientation != 1){ + if ($orientation != 1) { $img = imagecreatefromjpeg($fileSource); $deg = 0; switch ($orientation) { @@ -413,42 +413,42 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName = '_small', { require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - global $conf,$langs; + global $conf, $langs; dol_syslog("vignette file=".$file." extName=".$extName." maxWidth=".$maxWidth." maxHeight=".$maxHeight." quality=".$quality." outdir=".$outdir." targetformat=".$targetformat); // Clean parameters - $file=trim($file); + $file = trim($file); // Check parameters - if (! $file) + if (!$file) { // Si le fichier n'a pas ete indique return 'ErrorBadParameters'; } - elseif (! file_exists($file)) + elseif (!file_exists($file)) { // Si le fichier passe en parametre n'existe pas dol_syslog($langs->trans("ErrorFileNotFound", $file), LOG_ERR); return $langs->trans("ErrorFileNotFound", $file); } - elseif(image_format_supported($file) < 0) + elseif (image_format_supported($file) < 0) { dol_syslog('This file '.$file.' does not seem to be an image format file name.', LOG_WARNING); return 'ErrorBadImageFormat'; } - elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < -1) { + elseif (!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < -1) { // Si la largeur max est incorrecte (n'est pas numerique, est vide, ou est inferieure a 0) dol_syslog('Wrong value for parameter maxWidth', LOG_ERR); return 'Error: Wrong value for parameter maxWidth'; } - elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < -1) { + elseif (!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < -1) { // Si la hauteur max est incorrecte (n'est pas numerique, est vide, ou est inferieure a 0) dol_syslog('Wrong value for parameter maxHeight', LOG_ERR); return 'Error: Wrong value for parameter maxHeight'; } - $filetoread = realpath(dol_osencode($file)); // Chemin canonique absolu de l'image + $filetoread = realpath(dol_osencode($file)); // Chemin canonique absolu de l'image $infoImg = getimagesize($filetoread); // Recuperation des infos de l'image $imgWidth = $infoImg[0]; // Largeur de l'image @@ -462,8 +462,8 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName = '_small', } } - if ($maxWidth == -1) $maxWidth=$infoImg[0]; // If size is -1, we keep unchanged - if ($maxHeight == -1) $maxHeight=$infoImg[1]; // If size is -1, we keep unchanged + if ($maxWidth == -1) $maxWidth = $infoImg[0]; // If size is -1, we keep unchanged + if ($maxHeight == -1) $maxHeight = $infoImg[1]; // If size is -1, we keep unchanged // Si l'image est plus petite que la largeur et la hauteur max, on ne cree pas de vignette if ($infoImg[0] < $maxWidth && $infoImg[1] < $maxHeight) @@ -531,7 +531,7 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName = '_small', break; } - if (! is_resource($img)) + if (!is_resource($img)) { dol_syslog('Failed to detect type of image. We found infoImg[2]='.$infoImg[2], LOG_WARNING); return 0; @@ -539,7 +539,7 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName = '_small', $exifAngle = false; if ($ort && !empty($conf->global->MAIN_USE_EXIF_ROTATION)) { - switch($ort) + switch ($ort) { case 3: // 180 rotate left $exifAngle = 180; @@ -563,7 +563,7 @@ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName = '_small', { $rotated = false; - if($infoImg[2] === 'IMAGETYPE_PNG') // In fact there is no exif on PNG but just in case + if ($infoImg[2] === 'IMAGETYPE_PNG') // In fact there is no exif on PNG but just in case { imagealphablending($img, false); imagesavealpha($img, true); diff --git a/htdocs/core/lib/import.lib.php b/htdocs/core/lib/import.lib.php index 32f9d0d87d2..8fa6a995331 100644 --- a/htdocs/core/lib/import.lib.php +++ b/htdocs/core/lib/import.lib.php @@ -36,12 +36,12 @@ function import_prepare_head($param, $maxstep = 0) { global $langs; - if (empty($maxstep)) $maxstep=6; + if (empty($maxstep)) $maxstep = 6; - $h=0; + $h = 0; $head = array(); - $i=1; - while($i <= $maxstep) + $i = 1; + while ($i <= $maxstep) { $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step='.$i.$param; $head[$h][1] = $langs->trans("Step")." ".$i; diff --git a/htdocs/core/lib/invoice.lib.php b/htdocs/core/lib/invoice.lib.php index 15de60eb791..703d50c97f8 100644 --- a/htdocs/core/lib/invoice.lib.php +++ b/htdocs/core/lib/invoice.lib.php @@ -50,28 +50,28 @@ function facture_prepare_head($object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/compta/facture/contact.php?facid='.$object->id; $head[$h][1] = $langs->trans('ContactsAddresses'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } //if ($fac->mode_reglement_code == 'PRE') - if (! empty($conf->prelevement->enabled)) + if (!empty($conf->prelevement->enabled)) { - $nbStandingOrders=0; + $nbStandingOrders = 0; $sql = "SELECT COUNT(pfd.rowid) as nb"; $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; $sql .= " WHERE pfd.fk_facture = ".$object->id; - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); if ($obj) $nbStandingOrders = $obj->nb; } else dol_print_error($db); $head[$h][0] = DOL_URL_ROOT.'/compta/facture/prelevement.php?facid='.$object->id; $head[$h][1] = $langs->trans('StandingOrders'); - if ($nbStandingOrders > 0) $head[$h][1].= ''.$nbStandingOrders.''; + if ($nbStandingOrders > 0) $head[$h][1] .= ''.$nbStandingOrders.''; $head[$h][2] = 'standingorders'; $h++; } @@ -85,23 +85,23 @@ function facture_prepare_head($object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/compta/facture/note.php?facid='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->facture->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->facture->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/compta/facture/document.php?facid='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; diff --git a/htdocs/core/lib/invoice2.lib.php b/htdocs/core/lib/invoice2.lib.php index 6e79021e17b..d5ca3431845 100644 --- a/htdocs/core/lib/invoice2.lib.php +++ b/htdocs/core/lib/invoice2.lib.php @@ -50,83 +50,83 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filter, $dateafterdate, $datebeforedate, $paymentdateafter, $paymentdatebefore, $usestdout, $regenerate = 0, $filesuffix = '', $paymentbankid = '', $thirdpartiesid = '', $fileprefix = 'mergedpdf') { $sql = "SELECT DISTINCT f.rowid, f.ref"; - $sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; - $sqlwhere=''; - $sqlorder=''; + $sql .= " FROM ".MAIN_DB_PREFIX."facture as f"; + $sqlwhere = ''; + $sqlorder = ''; if (in_array('all', $filter)) { $sqlorder = " ORDER BY f.ref ASC"; } if (in_array('date', $filter)) { - if (empty($sqlwhere)) $sqlwhere=' WHERE '; - else $sqlwhere.=" AND"; - $sqlwhere.= " f.fk_statut > 0"; - $sqlwhere.= " AND f.datef >= '".$db->idate($dateafterdate)."'"; - $sqlwhere.= " AND f.datef <= '".$db->idate($datebeforedate)."'"; + if (empty($sqlwhere)) $sqlwhere = ' WHERE '; + else $sqlwhere .= " AND"; + $sqlwhere .= " f.fk_statut > 0"; + $sqlwhere .= " AND f.datef >= '".$db->idate($dateafterdate)."'"; + $sqlwhere .= " AND f.datef <= '".$db->idate($datebeforedate)."'"; $sqlorder = " ORDER BY f.datef ASC"; } if (in_array('nopayment', $filter)) { - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf ON f.rowid = pf.fk_facture"; - if (empty($sqlwhere)) $sqlwhere=' WHERE '; - else $sqlwhere.=" AND"; - $sqlwhere.= " f.fk_statut > 0"; - $sqlwhere.= " AND pf.fk_paiement IS NULL"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf ON f.rowid = pf.fk_facture"; + if (empty($sqlwhere)) $sqlwhere = ' WHERE '; + else $sqlwhere .= " AND"; + $sqlwhere .= " f.fk_statut > 0"; + $sqlwhere .= " AND pf.fk_paiement IS NULL"; } if (in_array('payments', $filter) || in_array('bank', $filter)) { - $sql.= ", ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."paiement as p"; - if (in_array('bank', $filter)) $sql.= ", ".MAIN_DB_PREFIX."bank as b"; - if (empty($sqlwhere)) $sqlwhere=' WHERE '; - else $sqlwhere.=" AND"; - $sqlwhere.= " f.fk_statut > 0"; - $sqlwhere.= " AND f.rowid = pf.fk_facture"; - $sqlwhere.= " AND pf.fk_paiement = p.rowid"; + $sql .= ", ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."paiement as p"; + if (in_array('bank', $filter)) $sql .= ", ".MAIN_DB_PREFIX."bank as b"; + if (empty($sqlwhere)) $sqlwhere = ' WHERE '; + else $sqlwhere .= " AND"; + $sqlwhere .= " f.fk_statut > 0"; + $sqlwhere .= " AND f.rowid = pf.fk_facture"; + $sqlwhere .= " AND pf.fk_paiement = p.rowid"; if (in_array('payments', $filter)) { - $sqlwhere.= " AND p.datep >= '".$db->idate($paymentdateafter)."'"; - $sqlwhere.= " AND p.datep <= '".$db->idate($paymentdatebefore)."'"; + $sqlwhere .= " AND p.datep >= '".$db->idate($paymentdateafter)."'"; + $sqlwhere .= " AND p.datep <= '".$db->idate($paymentdatebefore)."'"; } if (in_array('bank', $filter)) { - $sqlwhere.= " AND p.fk_bank = b.rowid"; - $sqlwhere.= " AND b.fk_account = ".$paymentbankid; + $sqlwhere .= " AND p.fk_bank = b.rowid"; + $sqlwhere .= " AND b.fk_account = ".$paymentbankid; } $sqlorder = " ORDER BY p.datep ASC"; } if (in_array('nodeposit', $filter)) { - if (empty($sqlwhere)) $sqlwhere=' WHERE '; - else $sqlwhere.=" AND"; - $sqlwhere.=' type <> 3'; + if (empty($sqlwhere)) $sqlwhere = ' WHERE '; + else $sqlwhere .= " AND"; + $sqlwhere .= ' type <> 3'; } if (in_array('noreplacement', $filter)) { - if (empty($sqlwhere)) $sqlwhere=' WHERE '; - else $sqlwhere.=" AND"; - $sqlwhere.=' type <> 1'; + if (empty($sqlwhere)) $sqlwhere = ' WHERE '; + else $sqlwhere .= " AND"; + $sqlwhere .= ' type <> 1'; } if (in_array('nocreditnote', $filter)) { - if (empty($sqlwhere)) $sqlwhere=' WHERE '; - else $sqlwhere.=" AND"; - $sqlwhere.=' type <> 2'; + if (empty($sqlwhere)) $sqlwhere = ' WHERE '; + else $sqlwhere .= " AND"; + $sqlwhere .= ' type <> 2'; } if (in_array('excludethirdparties', $filter) && is_array($thirdpartiesid)) { - if (empty($sqlwhere)) $sqlwhere=' WHERE '; - else $sqlwhere.=" AND"; - $sqlwhere.=' f.fk_soc NOT IN ('.join(',', $thirdpartiesid).')'; + if (empty($sqlwhere)) $sqlwhere = ' WHERE '; + else $sqlwhere .= " AND"; + $sqlwhere .= ' f.fk_soc NOT IN ('.join(',', $thirdpartiesid).')'; } if (in_array('onlythirdparties', $filter) && is_array($thirdpartiesid)) { - if (empty($sqlwhere)) $sqlwhere=' WHERE '; - else $sqlwhere.=" AND"; - $sqlwhere.=' f.fk_soc IN ('.join(',', $thirdpartiesid).')'; + if (empty($sqlwhere)) $sqlwhere = ' WHERE '; + else $sqlwhere .= " AND"; + $sqlwhere .= ' f.fk_soc IN ('.join(',', $thirdpartiesid).')'; } - if ($sqlwhere) $sql.=$sqlwhere; - if ($sqlorder) $sql.=$sqlorder; + if ($sqlwhere) $sql .= $sqlwhere; + if ($sqlorder) $sql .= $sqlorder; //print $sql; exit; dol_syslog("scripts/invoices/rebuild_merge.php:", LOG_DEBUG); @@ -138,10 +138,10 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte $error = 0; $result = 0; - $files = array() ; // liste les fichiers + $files = array(); // liste les fichiers dol_syslog("scripts/invoices/rebuild_merge.php", LOG_DEBUG); - if ( $resql=$db->query($sql) ) + if ($resql = $db->query($sql)) { $num = $db->num_rows($resql); $cpt = 0; @@ -159,11 +159,11 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte $obj = $db->fetch_object($resql); $fac = new Facture($db); - $result=$fac->fetch($obj->rowid); + $result = $fac->fetch($obj->rowid); if ($result > 0) { $outputlangs = $langs; - if (! empty($newlangid)) + if (!empty($newlangid)) { if ($outputlangs->defaultlang != $newlangid) { @@ -171,11 +171,11 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte $outputlangs->setDefaultLang($newlangid); } } - $filename=$conf->facture->dir_output.'/'.$fac->ref.'/'.$fac->ref.'.pdf'; - if ($regenerate || ! dol_is_file($filename)) + $filename = $conf->facture->dir_output.'/'.$fac->ref.'/'.$fac->ref.'.pdf'; + if ($regenerate || !dol_is_file($filename)) { if ($usestdout) print "Build PDF for invoice ".$obj->ref." - Lang = ".$outputlangs->defaultlang."\n"; - $result= $fac->generateDocument($regenerate?$regenerate:$fac->modelpdf, $outputlangs); + $result = $fac->generateDocument($regenerate ? $regenerate : $fac->modelpdf, $outputlangs); } else { if ($usestdout) print "PDF for invoice ".$obj->ref." already exists\n"; @@ -188,8 +188,8 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte if ($result <= 0) { $error++; - if ($usestdout) print "Error: Failed to build PDF for invoice ".($fac->ref?$fac->ref:' id '.$obj->rowid)."\n"; - else dol_syslog("Failed to build PDF for invoice ".($fac->ref?$fac->ref:' id '.$obj->rowid), LOG_ERR); + if ($usestdout) print "Error: Failed to build PDF for invoice ".($fac->ref ? $fac->ref : ' id '.$obj->rowid)."\n"; + else dol_syslog("Failed to build PDF for invoice ".($fac->ref ? $fac->ref : ' id '.$obj->rowid), LOG_ERR); } $cpt++; @@ -197,10 +197,10 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte // Define format of output PDF - $formatarray=pdf_getFormat($langs); + $formatarray = pdf_getFormat($langs); $page_largeur = $formatarray['width']; $page_hauteur = $formatarray['height']; - $format = array($page_largeur,$page_hauteur); + $format = array($page_largeur, $page_hauteur); if ($usestdout) print "Using output PDF format ".join('x', $format)."\n"; else dol_syslog("Using output PDF format ".join('x', $format), LOG_ERR); @@ -210,7 +210,7 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte //--------------------------------------------------------- // Create empty PDF - $pdf=pdf_getInstance($format); + $pdf = pdf_getInstance($format); if (class_exists('TCPDF')) { $pdf->setPrintHeader(false); @@ -222,7 +222,7 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte //$pdf->SetCompression(false); // Add all others - foreach($files as $file) + foreach ($files as $file) { if ($usestdout) print "Merge PDF file for invoice ".$file."\n"; else dol_syslog("Merge PDF file for invoice ".$file); @@ -242,21 +242,21 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte dol_mkdir($diroutputpdf); // Save merged file - $filename=$fileprefix; - if (empty($filename)) $filename='mergedpdf'; - if (! empty($filesuffix)) $filename.='_'.$filesuffix; - $file=$diroutputpdf.'/'.$filename.'.pdf'; + $filename = $fileprefix; + if (empty($filename)) $filename = 'mergedpdf'; + if (!empty($filesuffix)) $filename .= '_'.$filesuffix; + $file = $diroutputpdf.'/'.$filename.'.pdf'; - if (! $error && $pagecount) + if (!$error && $pagecount) { $pdf->Output($file, 'F'); - if (! empty($conf->global->MAIN_UMASK)) + if (!empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); } if ($usestdout) { - if (! $error) print "Merged PDF has been built in ".$file."\n"; + if (!$error) print "Merged PDF has been built in ".$file."\n"; else print "Can't build PDF ".$file."\n"; } diff --git a/htdocs/core/lib/json.lib.php b/htdocs/core/lib/json.lib.php index 77b856e2d8e..44ad9cc6ff1 100644 --- a/htdocs/core/lib/json.lib.php +++ b/htdocs/core/lib/json.lib.php @@ -23,7 +23,7 @@ * \ingroup core */ -if (! function_exists('json_encode')) +if (!function_exists('json_encode')) { /** * Implement json_encode for PHP that does not have module enabled. @@ -49,14 +49,14 @@ function dol_json_encode($elements) { dol_syslog("For better performance, enable the native json in your PHP", LOG_WARNING); - $num=0; + $num = 0; if (is_object($elements)) // Count number of properties for an object { - foreach($elements as $key => $value) $num++; + foreach ($elements as $key => $value) $num++; } else { - $num=count($elements); + $num = count($elements); } //var_dump($num); @@ -64,16 +64,16 @@ function dol_json_encode($elements) if (is_numeric(key($elements)) && key($elements) == 0) { // indexed (list) - $keysofelements=array_keys($elements); // Elements array mus have key that does not start with 0 and end with num-1, so we will use this later. + $keysofelements = array_keys($elements); // Elements array mus have key that does not start with 0 and end with num-1, so we will use this later. $output = '['; for ($i = 0, $last = ($num - 1); $i < $num; $i++) { - if (! isset($elements[$keysofelements[$i]])) continue; - if (is_array($elements[$keysofelements[$i]]) || is_object($elements[$keysofelements[$i]])) $output.= json_encode($elements[$keysofelements[$i]]); + if (!isset($elements[$keysofelements[$i]])) continue; + if (is_array($elements[$keysofelements[$i]]) || is_object($elements[$keysofelements[$i]])) $output .= json_encode($elements[$keysofelements[$i]]); else $output .= _val($elements[$keysofelements[$i]]); - if ($i !== $last) $output.= ','; + if ($i !== $last) $output .= ','; } - $output.= ']'; + $output .= ']'; } else { @@ -81,18 +81,18 @@ function dol_json_encode($elements) $output = '{'; $last = $num - 1; $i = 0; - $tmpelements=array(); - if (is_array($elements)) $tmpelements=$elements; - if (is_object($elements)) $tmpelements=get_object_vars($elements); - foreach($tmpelements as $key => $value) + $tmpelements = array(); + if (is_array($elements)) $tmpelements = $elements; + if (is_object($elements)) $tmpelements = get_object_vars($elements); + foreach ($tmpelements as $key => $value) { $output .= '"'.$key.'":'; - if (is_array($value)) $output.= json_encode($value); + if (is_array($value)) $output .= json_encode($value); else $output .= _val($value); - if ($i !== $last) $output.= ','; + if ($i !== $last) $output .= ','; ++$i; } - $output.= '}'; + $output .= '}'; } // return @@ -204,7 +204,7 @@ function _val($val) else return 'null'; } -if (! function_exists('json_decode')) +if (!function_exists('json_decode')) { /** * Implement json_decode for PHP that does not support it @@ -234,34 +234,34 @@ function dol_json_decode($json, $assoc = false) $comment = false; - $out=''; - $strLength = strlen($json); // Must stay strlen and not dol_strlen because we want technical length, not visible length - for ($i=0; $i<$strLength; $i++) + $out = ''; + $strLength = strlen($json); // Must stay strlen and not dol_strlen because we want technical length, not visible length + for ($i = 0; $i < $strLength; $i++) { - if (! $comment) + if (!$comment) { - if (($json[$i] == '{') || ($json[$i] == '[')) $out.= 'array('; - elseif (($json[$i] == '}') || ($json[$i] == ']')) $out.= ')'; - elseif ($json[$i] == ':') $out.= ' => '; - else $out.=$json[$i]; + if (($json[$i] == '{') || ($json[$i] == '[')) $out .= 'array('; + elseif (($json[$i] == '}') || ($json[$i] == ']')) $out .= ')'; + elseif ($json[$i] == ':') $out .= ' => '; + else $out .= $json[$i]; } - else $out.= $json[$i]; - if ($json[$i] == '"' && $json[($i-1)]!="\\") $comment = !$comment; + else $out .= $json[$i]; + if ($json[$i] == '"' && $json[($i - 1)] != "\\") $comment = !$comment; } - $out=_unval($out); + $out = _unval($out); // Return an array if ($out != '') eval('$array = '.$out.';'); - else $array=array(); + else $array = array(); // Return an object - if (! $assoc) + if (!$assoc) { - if (! empty($array)) + if (!empty($array)) { $object = false; - if (count($array)>0) { + if (count($array) > 0) { $object = (object) array(); } foreach ($array as $key => $value) @@ -290,9 +290,9 @@ function _unval($val) while (preg_match('/\\\u([0-9A-F]{2})([0-9A-F]{2})/i', $val, $reg)) { // single, escaped unicode character - $utf16 = chr(hexdec($reg[1])) . chr(hexdec($reg[2])); + $utf16 = chr(hexdec($reg[1])).chr(hexdec($reg[2])); $utf8 = utf162utf8($utf16); - $val=preg_replace('/\\\u'.$reg[1].$reg[2].'/i', $utf8, $val); + $val = preg_replace('/\\\u'.$reg[1].$reg[2].'/i', $utf8, $val); } return $val; } @@ -316,7 +316,7 @@ function utf162utf8($utf16) $bytes = (ord($utf16[0]) << 8) | ord($utf16[1]); - switch(true) { + switch (true) { case ((0x7F & $bytes) == $bytes): // this case should never be reached, because we are in ASCII range // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 @@ -357,7 +357,7 @@ function utf82utf16($utf8) return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); } - switch(strlen($utf8)) { + switch (strlen($utf8)) { case 1: // this case should never be reached, because we are in ASCII range // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 @@ -366,12 +366,12 @@ function utf82utf16($utf8) case 2: // return a UTF-16 character from a 2-byte UTF-8 char // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0x07 & (ord($utf8[0]) >> 2)) . chr((0xC0 & (ord($utf8[0]) << 6)) | (0x3F & ord($utf8[1]))); + return chr(0x07 & (ord($utf8[0]) >> 2)).chr((0xC0 & (ord($utf8[0]) << 6)) | (0x3F & ord($utf8[1]))); case 3: // return a UTF-16 character from a 3-byte UTF-8 char // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr((0xF0 & (ord($utf8[0]) << 4)) | (0x0F & (ord($utf8[1]) >> 2))) . chr((0xC0 & (ord($utf8[1]) << 6)) | (0x7F & ord($utf8[2]))); + return chr((0xF0 & (ord($utf8[0]) << 4)) | (0x0F & (ord($utf8[1]) >> 2))).chr((0xC0 & (ord($utf8[1]) << 6)) | (0x7F & ord($utf8[2]))); } // ignoring UTF-32 for now, sorry diff --git a/htdocs/core/lib/loan.lib.php b/htdocs/core/lib/loan.lib.php index e751dfd68c8..a3c352a0405 100644 --- a/htdocs/core/lib/loan.lib.php +++ b/htdocs/core/lib/loan.lib.php @@ -54,21 +54,21 @@ function loan_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->loan->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->loan->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$tab][0] = DOL_URL_ROOT.'/loan/document.php?id='.$object->id; $head[$tab][1] = $langs->trans("Documents"); - if (($nbFiles+$nbLinks) > 0) $head[$tab][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$tab][1] .= ''.($nbFiles + $nbLinks).''; $head[$tab][2] = 'documents'; $tab++; if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { - $nbNote = (empty($object->note_private)?0:1)+(empty($object->note_public)?0:1); + $nbNote = (empty($object->note_private) ? 0 : 1) + (empty($object->note_public) ? 0 : 1); $head[$tab][0] = DOL_URL_ROOT."/loan/note.php?id=".$object->id; $head[$tab][1] = $langs->trans("Notes"); - if($nbNote > 0) $head[$tab][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$tab][1] .= ''.$nbNote.''; $head[$tab][2] = 'note'; $tab++; } diff --git a/htdocs/core/lib/member.lib.php b/htdocs/core/lib/member.lib.php index 1f643dd8a48..d6993845488 100644 --- a/htdocs/core/lib/member.lib.php +++ b/htdocs/core/lib/member.lib.php @@ -42,8 +42,8 @@ function member_prepare_head(Adherent $object) $head[$h][2] = 'general'; $h++; - if ((! empty($conf->ldap->enabled) && ! empty($conf->global->LDAP_MEMBER_ACTIVE)) - && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || ! empty($user->admin))) + if ((!empty($conf->ldap->enabled) && !empty($conf->global->LDAP_MEMBER_ACTIVE)) + && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || !empty($user->admin))) { $langs->load("ldap"); @@ -53,13 +53,13 @@ function member_prepare_head(Adherent $object) $h++; } - if (! empty($user->rights->adherent->cotisation->lire)) + if (!empty($user->rights->adherent->cotisation->lire)) { - $nbSubscription = is_array($object->subscriptions)?count($object->subscriptions):0; + $nbSubscription = is_array($object->subscriptions) ?count($object->subscriptions) : 0; $head[$h][0] = DOL_URL_ROOT.'/adherents/subscription.php?rowid='.$object->id; $head[$h][1] = $langs->trans("Subscriptions"); $head[$h][2] = 'subscription'; - if ($nbSubscription > 0) $head[$h][1].= ''.$nbSubscription.''; + if ($nbSubscription > 0) $head[$h][1] .= ''.$nbSubscription.''; $h++; } @@ -70,13 +70,13 @@ function member_prepare_head(Adherent $object) complete_head_from_modules($conf, $langs, $object, $head, $h, 'member'); $nbNote = 0; - if(!empty($object->note)) $nbNote++; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/adherents/note.php?id='.$object->id; $head[$h][1] = $langs->trans("Note"); $head[$h][2] = 'note'; - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $h++; // Attachments @@ -84,22 +84,22 @@ function member_prepare_head(Adherent $object) require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; $upload_dir = $conf->adherent->multidir_output[$object->entity].'/'.get_exdir(0, 0, 0, 1, $object, 'member'); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/adherents/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'document'; $h++; // Show agenda tab - if (! empty($conf->agenda->enabled)) + if (!empty($conf->agenda->enabled)) { $head[$h][0] = DOL_URL_ROOT."/adherents/agenda.php?id=".$object->id; $head[$h][1] = $langs->trans("Events"); - if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { - $head[$h][1].= '/'; - $head[$h][1].= $langs->trans("Agenda"); + $head[$h][1] .= '/'; + $head[$h][1] .= $langs->trans("Agenda"); } $head[$h][2] = 'agenda'; $h++; @@ -120,7 +120,7 @@ function member_type_prepare_head(AdherentType $object) { global $langs, $conf, $user; - $h=0; + $h = 0; $head = array(); $head[$h][0] = DOL_URL_ROOT.'/adherents/type.php?rowid='.$object->id; @@ -129,7 +129,7 @@ function member_type_prepare_head(AdherentType $object) $h++; // Multilangs - if (! empty($conf->global->MAIN_MULTILANGS)) + if (!empty($conf->global->MAIN_MULTILANGS)) { $head[$h][0] = DOL_URL_ROOT."/adherents/type_translation.php?rowid=".$object->id; $head[$h][1] = $langs->trans("Translation"); @@ -137,8 +137,8 @@ function member_type_prepare_head(AdherentType $object) $h++; } - if ((! empty($conf->ldap->enabled) && ! empty($conf->global->LDAP_MEMBER_TYPE_ACTIVE)) - && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || ! empty($user->admin))) + if ((!empty($conf->ldap->enabled) && !empty($conf->global->LDAP_MEMBER_TYPE_ACTIVE)) + && (empty($conf->global->MAIN_DISABLE_LDAP_TAB) || !empty($user->admin))) { $langs->load("ldap"); diff --git a/htdocs/core/lib/memory.lib.php b/htdocs/core/lib/memory.lib.php index 22e660b2e22..ba1ed6bb8a0 100644 --- a/htdocs/core/lib/memory.lib.php +++ b/htdocs/core/lib/memory.lib.php @@ -21,14 +21,14 @@ * \brief Set of function for memory/cache management */ -global $shmkeys,$shmoffset; +global $shmkeys, $shmoffset; -$shmkeys=array('main'=>1,'admin'=>2,'dict'=>3,'companies'=>4,'suppliers'=>5,'products'=>6, - 'commercial'=>7,'compta'=>8,'projects'=>9,'cashdesk'=>10,'agenda'=>11,'bills'=>12, - 'propal'=>13,'boxes'=>14,'banks'=>15,'other'=>16,'errors'=>17,'members'=>18,'ecm'=>19, - 'orders'=>20,'users'=>21,'help'=>22,'stocks'=>23,'interventions'=>24, - 'donations'=>25,'contracts'=>26); -$shmoffset=1000; // Max number of entries found into a language file. If too low, some entries will be overwritten. +$shmkeys = array('main'=>1, 'admin'=>2, 'dict'=>3, 'companies'=>4, 'suppliers'=>5, 'products'=>6, + 'commercial'=>7, 'compta'=>8, 'projects'=>9, 'cashdesk'=>10, 'agenda'=>11, 'bills'=>12, + 'propal'=>13, 'boxes'=>14, 'banks'=>15, 'other'=>16, 'errors'=>17, 'members'=>18, 'ecm'=>19, + 'orders'=>20, 'users'=>21, 'help'=>22, 'stocks'=>23, 'interventions'=>24, + 'donations'=>25, 'contracts'=>26); +$shmoffset = 1000; // Max number of entries found into a language file. If too low, some entries will be overwritten. @@ -95,7 +95,7 @@ function dol_setcache($memoryid, $data) // Using shmop elseif (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02)) { - $result=dol_setshmop($memoryid, $data); + $result = dol_setshmop($memoryid, $data); } return $result; @@ -167,7 +167,7 @@ function dol_getcache($memoryid) // Using shmop elseif (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02)) { - $data=dol_getshmop($memoryid); + $data = dol_getshmop($memoryid); return $data; } @@ -184,9 +184,9 @@ function dol_getcache($memoryid) */ function dol_getshmopaddress($memoryid) { - global $shmkeys,$shmoffset; + global $shmkeys, $shmoffset; if (empty($shmkeys[$memoryid])) return 0; - return $shmkeys[$memoryid]+$shmoffset; + return $shmkeys[$memoryid] + $shmoffset; } /** @@ -196,13 +196,13 @@ function dol_getshmopaddress($memoryid) */ function dol_listshmop() { - global $shmkeys,$shmoffset; + global $shmkeys, $shmoffset; - $resarray=array(); - foreach($shmkeys as $key => $val) + $resarray = array(); + foreach ($shmkeys as $key => $val) { - $result=dol_getshmop($key); - if (! is_numeric($result) || $result > 0) $resarray[$key]=$result; + $result = dol_getshmop($key); + if (!is_numeric($result) || $result > 0) $resarray[$key] = $result; } return $resarray; } @@ -216,25 +216,25 @@ function dol_listshmop() */ function dol_setshmop($memoryid, $data) { - global $shmkeys,$shmoffset; + global $shmkeys, $shmoffset; //print 'dol_setshmop memoryid='.$memoryid."
\n"; - if (empty($shmkeys[$memoryid]) || ! function_exists("shmop_write")) return 0; - $shmkey=dol_getshmopaddress($memoryid); - $newdata=serialize($data); - $size=strlen($newdata); + if (empty($shmkeys[$memoryid]) || !function_exists("shmop_write")) return 0; + $shmkey = dol_getshmopaddress($memoryid); + $newdata = serialize($data); + $size = strlen($newdata); //print 'dol_setshmop memoryid='.$memoryid." shmkey=".$shmkey." newdata=".$size."bytes
\n"; - $handle=shmop_open($shmkey, 'c', 0644, 6+$size); + $handle = shmop_open($shmkey, 'c', 0644, 6 + $size); if ($handle) { - $shm_bytes_written1=shmop_write($handle, str_pad($size, 6), 0); - $shm_bytes_written2=shmop_write($handle, $newdata, 6); - if (($shm_bytes_written1 + $shm_bytes_written2) != (6+dol_strlen($newdata))) + $shm_bytes_written1 = shmop_write($handle, str_pad($size, 6), 0); + $shm_bytes_written2 = shmop_write($handle, $newdata, 6); + if (($shm_bytes_written1 + $shm_bytes_written2) != (6 + dol_strlen($newdata))) { print "Couldn't write the entire length of data\n"; } shmop_close($handle); - return ($shm_bytes_written1+$shm_bytes_written2); + return ($shm_bytes_written1 + $shm_bytes_written2); } else { @@ -251,16 +251,16 @@ function dol_setshmop($memoryid, $data) */ function dol_getshmop($memoryid) { - global $shmkeys,$shmoffset; + global $shmkeys, $shmoffset; - if (empty($shmkeys[$memoryid]) || ! function_exists("shmop_open")) return 0; - $shmkey=dol_getshmopaddress($memoryid); + if (empty($shmkeys[$memoryid]) || !function_exists("shmop_open")) return 0; + $shmkey = dol_getshmopaddress($memoryid); //print 'dol_getshmop memoryid='.$memoryid." shmkey=".$shmkey."
\n"; - $handle=@shmop_open($shmkey, 'a', 0, 0); + $handle = @shmop_open($shmkey, 'a', 0, 0); if ($handle) { - $size=trim(shmop_read($handle, 0, 6)); - if ($size) $data=unserialize(shmop_read($handle, 6, $size)); + $size = trim(shmop_read($handle, 0, 6)); + if ($size) $data = unserialize(shmop_read($handle, 6, $size)); else return -1; shmop_close($handle); } diff --git a/htdocs/core/lib/modulebuilder.lib.php b/htdocs/core/lib/modulebuilder.lib.php index fe5d707b10a..b9a958160d4 100644 --- a/htdocs/core/lib/modulebuilder.lib.php +++ b/htdocs/core/lib/modulebuilder.lib.php @@ -39,165 +39,165 @@ */ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir = '', $addfieldentry = array(), $delfieldentry = '') { - global $db, $langs; + global $db, $langs; - if (empty($objectname)) return -1; - if (empty($readdir)) $readdir = $destdir; + if (empty($objectname)) return -1; + if (empty($readdir)) $readdir = $destdir; - if (!empty($addfieldentry['arrayofkeyval']) && !is_array($addfieldentry['arrayofkeyval'])) - { - dol_print_error('', 'Bad parameter addfieldentry with a property arrayofkeyval defined but that is not an array.'); - return -1; - } + if (!empty($addfieldentry['arrayofkeyval']) && !is_array($addfieldentry['arrayofkeyval'])) + { + dol_print_error('', 'Bad parameter addfieldentry with a property arrayofkeyval defined but that is not an array.'); + return -1; + } - // Check parameters - if (count($addfieldentry) > 0) - { - if (empty($addfieldentry['name'])) - { - setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Name")), null, 'errors'); - return -2; - } - if (empty($addfieldentry['label'])) - { - setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Label")), null, 'errors'); - return -2; - } - if (!preg_match('/^(integer|price|sellist|varchar|double|text|html|duration)/', $addfieldentry['type']) - && !preg_match('/^(boolean|real|date|datetime|timestamp)$/', $addfieldentry['type'])) - { - setEventMessages($langs->trans('BadValueForType', $objectname), null, 'errors'); - return -2; - } - } + // Check parameters + if (count($addfieldentry) > 0) + { + if (empty($addfieldentry['name'])) + { + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Name")), null, 'errors'); + return -2; + } + if (empty($addfieldentry['label'])) + { + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Label")), null, 'errors'); + return -2; + } + if (!preg_match('/^(integer|price|sellist|varchar|double|text|html|duration)/', $addfieldentry['type']) + && !preg_match('/^(boolean|real|date|datetime|timestamp)$/', $addfieldentry['type'])) + { + setEventMessages($langs->trans('BadValueForType', $objectname), null, 'errors'); + return -2; + } + } - $pathoffiletoeditsrc = $readdir.'/class/'.strtolower($objectname).'.class.php'; - $pathoffiletoedittarget = $destdir.'/class/'.strtolower($objectname).'.class.php'.($readdir != $destdir ? '.new' : ''); - if (!dol_is_file($pathoffiletoeditsrc)) - { - $langs->load("errors"); - setEventMessages($langs->trans("ErrorFileNotFound", $pathoffiletoeditsrc), null, 'errors'); - return -3; - } + $pathoffiletoeditsrc = $readdir.'/class/'.strtolower($objectname).'.class.php'; + $pathoffiletoedittarget = $destdir.'/class/'.strtolower($objectname).'.class.php'.($readdir != $destdir ? '.new' : ''); + if (!dol_is_file($pathoffiletoeditsrc)) + { + $langs->load("errors"); + setEventMessages($langs->trans("ErrorFileNotFound", $pathoffiletoeditsrc), null, 'errors'); + return -3; + } - //$pathoffiletoedittmp=$destdir.'/class/'.strtolower($objectname).'.class.php.tmp'; - //dol_delete_file($pathoffiletoedittmp, 0, 1, 1); + //$pathoffiletoedittmp=$destdir.'/class/'.strtolower($objectname).'.class.php.tmp'; + //dol_delete_file($pathoffiletoedittmp, 0, 1, 1); - try - { - include_once $pathoffiletoeditsrc; - if (class_exists($objectname)) $object = new $objectname($db); - else return -4; + try + { + include_once $pathoffiletoeditsrc; + if (class_exists($objectname)) $object = new $objectname($db); + else return -4; - // Backup old file - dol_copy($pathoffiletoedittarget, $pathoffiletoedittarget.'.back', $newmask, 1); + // Backup old file + dol_copy($pathoffiletoedittarget, $pathoffiletoedittarget.'.back', $newmask, 1); - // Edit class files - $contentclass = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); + // Edit class files + $contentclass = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); - // Update ->fields (add or remove entries) - if (count($object->fields)) - { - if (is_array($addfieldentry) && count($addfieldentry)) - { + // Update ->fields (add or remove entries) + if (count($object->fields)) + { + if (is_array($addfieldentry) && count($addfieldentry)) + { $name = $addfieldentry['name']; - unset($addfieldentry['name']); + unset($addfieldentry['name']); - $object->fields[$name] = $addfieldentry; - } - if (!empty($delfieldentry)) - { - $name = $delfieldentry; - unset($object->fields[$name]); - } - } + $object->fields[$name] = $addfieldentry; + } + if (!empty($delfieldentry)) + { + $name = $delfieldentry; + unset($object->fields[$name]); + } + } - dol_sort_array($object->fields, 'position'); + dol_sort_array($object->fields, 'position'); - $i = 0; - $texttoinsert = '// BEGIN MODULEBUILDER PROPERTIES'."\n"; - $texttoinsert .= "\t".'/**'."\n"; - $texttoinsert .= "\t".' * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor.'."\n"; - $texttoinsert .= "\t".' */'."\n"; - $texttoinsert .= "\t".'public $fields=array('."\n"; + $i = 0; + $texttoinsert = '// BEGIN MODULEBUILDER PROPERTIES'."\n"; + $texttoinsert .= "\t".'/**'."\n"; + $texttoinsert .= "\t".' * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor.'."\n"; + $texttoinsert .= "\t".' */'."\n"; + $texttoinsert .= "\t".'public $fields=array('."\n"; - if (count($object->fields)) - { - foreach ($object->fields as $key => $val) - { - $i++; - $texttoinsert .= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',"; - $texttoinsert .= " 'enabled'=>".($val['enabled'] != '' ? $val['enabled'] : 1).","; - $texttoinsert .= " 'position'=>".($val['position'] != '' ? $val['position'] : 50).","; - $texttoinsert .= " 'notnull'=>".(empty($val['notnull']) ? 0 : $val['notnull']).","; - $texttoinsert .= " 'visible'=>".($val['visible'] != '' ? $val['visible'] : -1).","; - if ($val['noteditable']) $texttoinsert .= " 'noteditable'=>'".$val['noteditable']."',"; - if ($val['default']) $texttoinsert .= " 'default'=>'".$val['default']."',"; - if ($val['index']) $texttoinsert .= " 'index'=>".$val['index'].","; - if ($val['foreignkey']) $texttoinsert .= " 'foreignkey'=>'".$val['foreignkey']."',"; - if ($val['searchall']) $texttoinsert .= " 'searchall'=>".$val['searchall'].","; - if ($val['isameasure']) $texttoinsert .= " 'isameasure'=>'".$val['isameasure']."',"; - if ($val['css']) $texttoinsert .= " 'css'=>'".$val['css']."',"; - if ($val['help']) $texttoinsert .= " 'help'=>\"".preg_replace('/"/', '', $val['help'])."\","; - if ($val['showoncombobox']) $texttoinsert .= " 'showoncombobox'=>'".$val['showoncombobox']."',"; - if ($val['disabled']) $texttoinsert .= " 'disabled'=>'".$val['disabled']."',"; - if ($val['arrayofkeyval']) - { - $texttoinsert .= " 'arrayofkeyval'=>array("; - $i = 0; - foreach ($val['arrayofkeyval'] as $key2 => $val2) - { - if ($i) $texttoinsert .= ", "; - $texttoinsert .= "'".$key2."'=>'".$val2."'"; - $i++; - } - $texttoinsert .= "),"; - } - if ($val['comment']) $texttoinsert .= " 'comment'=>\"".preg_replace('/"/', '', $val['comment'])."\""; + if (count($object->fields)) + { + foreach ($object->fields as $key => $val) + { + $i++; + $texttoinsert .= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',"; + $texttoinsert .= " 'enabled'=>".($val['enabled'] !== '' ? $val['enabled'] : 1).","; + $texttoinsert .= " 'position'=>".($val['position'] !== '' ? $val['position'] : 50).","; + $texttoinsert .= " 'notnull'=>".(empty($val['notnull']) ? 0 : $val['notnull']).","; + $texttoinsert .= " 'visible'=>".($val['visible'] !== '' ? $val['visible'] : -1).","; + if ($val['noteditable']) $texttoinsert .= " 'noteditable'=>'".$val['noteditable']."',"; + if ($val['default']) $texttoinsert .= " 'default'=>'".$val['default']."',"; + if ($val['index']) $texttoinsert .= " 'index'=>".$val['index'].","; + if ($val['foreignkey']) $texttoinsert .= " 'foreignkey'=>'".$val['foreignkey']."',"; + if ($val['searchall']) $texttoinsert .= " 'searchall'=>".$val['searchall'].","; + if ($val['isameasure']) $texttoinsert .= " 'isameasure'=>'".$val['isameasure']."',"; + if ($val['css']) $texttoinsert .= " 'css'=>'".$val['css']."',"; + if ($val['help']) $texttoinsert .= " 'help'=>\"".preg_replace('/"/', '', $val['help'])."\","; + if ($val['showoncombobox']) $texttoinsert .= " 'showoncombobox'=>'".$val['showoncombobox']."',"; + if ($val['disabled']) $texttoinsert .= " 'disabled'=>'".$val['disabled']."',"; + if ($val['arrayofkeyval']) + { + $texttoinsert .= " 'arrayofkeyval'=>array("; + $i = 0; + foreach ($val['arrayofkeyval'] as $key2 => $val2) + { + if ($i) $texttoinsert .= ", "; + $texttoinsert .= "'".$key2."'=>'".$val2."'"; + $i++; + } + $texttoinsert .= "),"; + } + if ($val['comment']) $texttoinsert .= " 'comment'=>\"".preg_replace('/"/', '', $val['comment'])."\""; - $texttoinsert .= "),\n"; - } - } + $texttoinsert .= "),\n"; + } + } - $texttoinsert .= "\t".');'."\n"; + $texttoinsert .= "\t".');'."\n"; //print ($texttoinsert);exit; - if (count($object->fields)) - { - //$typetotypephp=array('integer'=>'integer', 'duration'=>'integer', 'varchar'=>'string'); + if (count($object->fields)) + { + //$typetotypephp=array('integer'=>'integer', 'duration'=>'integer', 'varchar'=>'string'); - foreach ($object->fields as $key => $val) - { - $i++; - //$typephp=$typetotypephp[$val['type']]; - $texttoinsert .= "\t".'public $'.$key.";"; - //if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY'; - //if ($key == 'entity') $texttoinsert.= ' DEFAULT 1'; - //$texttoinsert.= ($val['notnull']?' NOT NULL':''); - //if ($i < count($object->fields)) $texttoinsert.=";"; - $texttoinsert .= "\n"; - } - } + foreach ($object->fields as $key => $val) + { + $i++; + //$typephp=$typetotypephp[$val['type']]; + $texttoinsert .= "\t".'public $'.$key.";"; + //if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY'; + //if ($key == 'entity') $texttoinsert.= ' DEFAULT 1'; + //$texttoinsert.= ($val['notnull']?' NOT NULL':''); + //if ($i < count($object->fields)) $texttoinsert.=";"; + $texttoinsert .= "\n"; + } + } - $texttoinsert .= "\t".'// END MODULEBUILDER PROPERTIES'; + $texttoinsert .= "\t".'// END MODULEBUILDER PROPERTIES'; - //print($texttoinsert);exit; + //print($texttoinsert);exit; - $contentclass = preg_replace('/\/\/ BEGIN MODULEBUILDER PROPERTIES.*END MODULEBUILDER PROPERTIES/ims', $texttoinsert, $contentclass); + $contentclass = preg_replace('/\/\/ BEGIN MODULEBUILDER PROPERTIES.*END MODULEBUILDER PROPERTIES/ims', $texttoinsert, $contentclass); - dol_mkdir(dirname($pathoffiletoedittarget)); + dol_mkdir(dirname($pathoffiletoedittarget)); - //file_put_contents($pathoffiletoedittmp, $contentclass); - file_put_contents(dol_osencode($pathoffiletoedittarget), $contentclass); - @chmod($pathoffiletoedittarget, octdec($newmask)); + //file_put_contents($pathoffiletoedittmp, $contentclass); + file_put_contents(dol_osencode($pathoffiletoedittarget), $contentclass); + @chmod($pathoffiletoedittarget, octdec($newmask)); - return $object; - } - catch (Exception $e) - { - print $e->getMessage(); - return -5; - } + return $object; + } + catch (Exception $e) + { + print $e->getMessage(); + return -5; + } } /** @@ -214,134 +214,134 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir = */ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir = '', $object = null) { - global $db, $langs; + global $db, $langs; - $error = 0; + $error = 0; - if (empty($objectname)) return -1; - if (empty($readdir)) $readdir = $destdir; + if (empty($objectname)) return -1; + if (empty($readdir)) $readdir = $destdir; - $pathoffiletoclasssrc = $readdir.'/class/'.strtolower($objectname).'.class.php'; + $pathoffiletoclasssrc = $readdir.'/class/'.strtolower($objectname).'.class.php'; - // Edit .sql file - $pathoffiletoeditsrc = $readdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql'; - $pathoffiletoedittarget = $destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql'.($readdir != $destdir ? '.new' : ''); + // Edit .sql file + $pathoffiletoeditsrc = $readdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql'; + $pathoffiletoedittarget = $destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql'.($readdir != $destdir ? '.new' : ''); if (!dol_is_file($pathoffiletoeditsrc)) - { - $langs->load("errors"); - setEventMessages($langs->trans("ErrorFileNotFound", $pathoffiletoeditsrc), null, 'errors'); - return -1; - } + { + $langs->load("errors"); + setEventMessages($langs->trans("ErrorFileNotFound", $pathoffiletoeditsrc), null, 'errors'); + return -1; + } - // Load object from myobject.class.php - try - { - if (!is_object($object)) - { - include_once $pathoffiletoclasssrc; - if (class_exists($objectname)) $object = new $objectname($db); - else return -1; - } - } - catch (Exception $e) - { - print $e->getMessage(); - } + // Load object from myobject.class.php + try + { + if (!is_object($object)) + { + include_once $pathoffiletoclasssrc; + if (class_exists($objectname)) $object = new $objectname($db); + else return -1; + } + } + catch (Exception $e) + { + print $e->getMessage(); + } - // Backup old file - dol_copy($pathoffiletoedittarget, $pathoffiletoedittarget.'.back', $newmask, 1); + // Backup old file + dol_copy($pathoffiletoedittarget, $pathoffiletoedittarget.'.back', $newmask, 1); - $contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); + $contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); - $i = 0; - $texttoinsert = '-- BEGIN MODULEBUILDER FIELDS'."\n"; - if (count($object->fields)) - { - foreach ($object->fields as $key => $val) - { - $i++; + $i = 0; + $texttoinsert = '-- BEGIN MODULEBUILDER FIELDS'."\n"; + if (count($object->fields)) + { + foreach ($object->fields as $key => $val) + { + $i++; - $type = $val['type']; - $type = preg_replace('/:.*$/', '', $type); // For case type = 'integer:Societe:societe/class/societe.class.php' + $type = $val['type']; + $type = preg_replace('/:.*$/', '', $type); // For case type = 'integer:Societe:societe/class/societe.class.php' - if ($type == 'html') $type = 'text'; // html modulebuilder type is a text type in database - elseif ($type == 'price') $type = 'double'; // html modulebuilder type is a text type in database - elseif (in_array($type, array('link', 'sellist', 'duration'))) $type = 'integer'; - $texttoinsert .= "\t".$key." ".$type; - if ($key == 'rowid') $texttoinsert .= ' AUTO_INCREMENT PRIMARY KEY'; - if ($key == 'entity') $texttoinsert .= ' DEFAULT 1'; - else - { - if ($val['default'] != '') - { - if (preg_match('/^null$/i', $val['default'])) $texttoinsert .= " DEFAULT NULL"; - elseif (preg_match('/varchar/', $type)) $texttoinsert .= " DEFAULT '".$db->escape($val['default'])."'"; - else $texttoinsert .= (($val['default'] > 0) ? ' DEFAULT '.$val['default'] : ''); - } - } - $texttoinsert .= (($val['notnull'] > 0) ? ' NOT NULL' : ''); - if ($i < count($object->fields)) $texttoinsert .= ", "; - $texttoinsert .= "\n"; - } - } - $texttoinsert .= "\t".'-- END MODULEBUILDER FIELDS'; + if ($type == 'html') $type = 'text'; // html modulebuilder type is a text type in database + elseif ($type == 'price') $type = 'double'; // html modulebuilder type is a text type in database + elseif (in_array($type, array('link', 'sellist', 'duration'))) $type = 'integer'; + $texttoinsert .= "\t".$key." ".$type; + if ($key == 'rowid') $texttoinsert .= ' AUTO_INCREMENT PRIMARY KEY'; + if ($key == 'entity') $texttoinsert .= ' DEFAULT 1'; + else + { + if ($val['default'] != '') + { + if (preg_match('/^null$/i', $val['default'])) $texttoinsert .= " DEFAULT NULL"; + elseif (preg_match('/varchar/', $type)) $texttoinsert .= " DEFAULT '".$db->escape($val['default'])."'"; + else $texttoinsert .= (($val['default'] > 0) ? ' DEFAULT '.$val['default'] : ''); + } + } + $texttoinsert .= (($val['notnull'] > 0) ? ' NOT NULL' : ''); + if ($i < count($object->fields)) $texttoinsert .= ", "; + $texttoinsert .= "\n"; + } + } + $texttoinsert .= "\t".'-- END MODULEBUILDER FIELDS'; - $contentsql = preg_replace('/-- BEGIN MODULEBUILDER FIELDS.*END MODULEBUILDER FIELDS/ims', $texttoinsert, $contentsql); + $contentsql = preg_replace('/-- BEGIN MODULEBUILDER FIELDS.*END MODULEBUILDER FIELDS/ims', $texttoinsert, $contentsql); - $result = file_put_contents($pathoffiletoedittarget, $contentsql); - if ($result) - { - @chmod($pathoffiletoedittarget, octdec($newmask)); - } - else - { - $error++; - } + $result = file_put_contents($pathoffiletoedittarget, $contentsql); + if ($result) + { + @chmod($pathoffiletoedittarget, octdec($newmask)); + } + else + { + $error++; + } - // Edit .key.sql file - $pathoffiletoeditsrc = $destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql'; - $pathoffiletoedittarget = $destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql'.($readdir != $destdir ? '.new' : ''); + // Edit .key.sql file + $pathoffiletoeditsrc = $destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql'; + $pathoffiletoedittarget = $destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql'.($readdir != $destdir ? '.new' : ''); - $contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); + $contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); - $i = 0; - $texttoinsert = '-- BEGIN MODULEBUILDER INDEXES'."\n"; - if (count($object->fields)) - { - foreach ($object->fields as $key => $val) - { - $i++; - if (!empty($val['index'])) - { - $texttoinsert .= "ALTER TABLE llx_".strtolower($module).'_'.strtolower($objectname)." ADD INDEX idx_".strtolower($module).'_'.strtolower($objectname)."_".$key." (".$key.");"; - $texttoinsert .= "\n"; - } - if (!empty($val['foreignkey'])) - { - $tmp = explode('.', $val['foreignkey']); - if (!empty($tmp[0]) && !empty($tmp[1])) - { - $texttoinsert .= "ALTER TABLE llx_".strtolower($module).'_'.strtolower($objectname)." ADD CONSTRAINT llx_".strtolower($module).'_'.strtolower($objectname)."_".$key." FOREIGN KEY (".$key.") REFERENCES llx_".preg_replace('/^llx_/', '', $tmp[0])."(".$tmp[1].");"; - $texttoinsert .= "\n"; - } - } - } - } - $texttoinsert .= '-- END MODULEBUILDER INDEXES'; + $i = 0; + $texttoinsert = '-- BEGIN MODULEBUILDER INDEXES'."\n"; + if (count($object->fields)) + { + foreach ($object->fields as $key => $val) + { + $i++; + if (!empty($val['index'])) + { + $texttoinsert .= "ALTER TABLE llx_".strtolower($module).'_'.strtolower($objectname)." ADD INDEX idx_".strtolower($module).'_'.strtolower($objectname)."_".$key." (".$key.");"; + $texttoinsert .= "\n"; + } + if (!empty($val['foreignkey'])) + { + $tmp = explode('.', $val['foreignkey']); + if (!empty($tmp[0]) && !empty($tmp[1])) + { + $texttoinsert .= "ALTER TABLE llx_".strtolower($module).'_'.strtolower($objectname)." ADD CONSTRAINT llx_".strtolower($module).'_'.strtolower($objectname)."_".$key." FOREIGN KEY (".$key.") REFERENCES llx_".preg_replace('/^llx_/', '', $tmp[0])."(".$tmp[1].");"; + $texttoinsert .= "\n"; + } + } + } + } + $texttoinsert .= '-- END MODULEBUILDER INDEXES'; - $contentsql = preg_replace('/-- BEGIN MODULEBUILDER INDEXES.*END MODULEBUILDER INDEXES/ims', $texttoinsert, $contentsql); + $contentsql = preg_replace('/-- BEGIN MODULEBUILDER INDEXES.*END MODULEBUILDER INDEXES/ims', $texttoinsert, $contentsql); - dol_mkdir(dirname($pathoffiletoedittarget)); + dol_mkdir(dirname($pathoffiletoedittarget)); - $result2 = file_put_contents($pathoffiletoedittarget, $contentsql); - if ($result) - { - @chmod($pathoffiletoedittarget, octdec($newmask)); - } - else - { - $error++; - } + $result2 = file_put_contents($pathoffiletoedittarget, $contentsql); + if ($result) + { + @chmod($pathoffiletoedittarget, octdec($newmask)); + } + else + { + $error++; + } - return $error ? -1 : 1; + return $error ? -1 : 1; } diff --git a/htdocs/core/lib/multicurrency.lib.php b/htdocs/core/lib/multicurrency.lib.php index f17d79c6207..85142e0e631 100644 --- a/htdocs/core/lib/multicurrency.lib.php +++ b/htdocs/core/lib/multicurrency.lib.php @@ -55,10 +55,10 @@ function multicurrencyLimitPrepareHead($aCurrencies) { global $langs; - $i=0; + $i = 0; $head = array(); - foreach($aCurrencies as $currency) + foreach ($aCurrencies as $currency) { $head[$i][0] = $_SERVER['PHP_SELF'].'?currencycode='.$currency; $head[$i][1] = $langs->trans("Currency".$currency).' ('.$langs->getCurrencySymbol($currency).')'; diff --git a/htdocs/core/lib/oauth.lib.php b/htdocs/core/lib/oauth.lib.php index eb1a5495a95..34e1d99bd80 100644 --- a/htdocs/core/lib/oauth.lib.php +++ b/htdocs/core/lib/oauth.lib.php @@ -24,20 +24,20 @@ // Supported OAUTH (a provider is supported when a file xxx_oauthcallback.php is available into htdocs/core/modules/oauth) -$supportedoauth2array=array( +$supportedoauth2array = array( 'OAUTH_GOOGLE_NAME'=>'google', ); if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - $supportedoauth2array['OAUTH_STRIPE_TEST_NAME']='stripetest'; - $supportedoauth2array['OAUTH_STRIPE_LIVE_NAME']='stripelive'; + $supportedoauth2array['OAUTH_STRIPE_TEST_NAME'] = 'stripetest'; + $supportedoauth2array['OAUTH_STRIPE_LIVE_NAME'] = 'stripelive'; } -$supportedoauth2array['OAUTH_GITHUB_NAME']='github'; +$supportedoauth2array['OAUTH_GITHUB_NAME'] = 'github'; // API access parameters OAUTH -$list = array ( +$list = array( array( 'OAUTH_AMAZON_NAME', 'OAUTH_AMAZON_ID', diff --git a/htdocs/core/lib/order.lib.php b/htdocs/core/lib/order.lib.php index 54d850d99b6..3d2847e926b 100644 --- a/htdocs/core/lib/order.lib.php +++ b/htdocs/core/lib/order.lib.php @@ -53,7 +53,7 @@ function commande_prepare_head(Commande $object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/commande/contact.php?id='.$object->id; $head[$h][1] = $langs->trans('ContactsAddresses'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -61,16 +61,16 @@ function commande_prepare_head(Commande $object) if (($conf->expedition_bon->enabled && $user->rights->expedition->lire) || ($conf->livraison_bon->enabled && $user->rights->expedition->livraison->lire)) { - $nbShipments=$object->getNbOfShipments(); $nbReceiption=0; + $nbShipments = $object->getNbOfShipments(); $nbReceiption = 0; $head[$h][0] = DOL_URL_ROOT.'/expedition/shipment.php?id='.$object->id; - $text=''; - if ($conf->expedition_bon->enabled) $text.=$langs->trans("Shipments"); - if ($conf->expedition_bon->enabled && $conf->livraison_bon->enabled) $text.='/'; - if ($conf->livraison_bon->enabled) $text.=$langs->trans("Receivings"); - if ($nbShipments > 0 || $nbReceiption > 0) $text.= ''.($nbShipments?$nbShipments:0); - if ($conf->expedition_bon->enabled && $conf->livraison_bon->enabled && ($nbShipments > 0 || $nbReceiption > 0)) $text.='/'; - if ($conf->expedition_bon->enabled && $conf->livraison_bon->enabled && ($nbShipments > 0 || $nbReceiption > 0)) $text.= ($nbReceiption?$nbReceiption:0); - if ($nbShipments > 0 || $nbReceiption > 0) $text.= ''; + $text = ''; + if ($conf->expedition_bon->enabled) $text .= $langs->trans("Shipments"); + if ($conf->expedition_bon->enabled && $conf->livraison_bon->enabled) $text .= '/'; + if ($conf->livraison_bon->enabled) $text .= $langs->trans("Receivings"); + if ($nbShipments > 0 || $nbReceiption > 0) $text .= ''.($nbShipments ? $nbShipments : 0); + if ($conf->expedition_bon->enabled && $conf->livraison_bon->enabled && ($nbShipments > 0 || $nbReceiption > 0)) $text .= '/'; + if ($conf->expedition_bon->enabled && $conf->livraison_bon->enabled && ($nbShipments > 0 || $nbReceiption > 0)) $text .= ($nbReceiption ? $nbReceiption : 0); + if ($nbShipments > 0 || $nbReceiption > 0) $text .= ''; $head[$h][1] = $text; $head[$h][2] = 'shipping'; $h++; @@ -85,23 +85,23 @@ function commande_prepare_head(Commande $object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/commande/note.php?id='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->commande->multidir_output[$object->entity] . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->commande->multidir_output[$object->entity]."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/commande/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; diff --git a/htdocs/core/lib/parsemd.lib.php b/htdocs/core/lib/parsemd.lib.php index 280e77dcc9c..7dfd025609c 100644 --- a/htdocs/core/lib/parsemd.lib.php +++ b/htdocs/core/lib/parsemd.lib.php @@ -33,7 +33,7 @@ function dolMd2Html($content, $parser = 'parsedown', $replaceimagepath = null) { if (is_array($replaceimagepath)) { - foreach($replaceimagepath as $key => $val) + foreach ($replaceimagepath as $key => $val) { $keytoreplace = ']('.$key; $valafter = ']('.$val; @@ -67,7 +67,7 @@ function dolMd2Asciidoc($content, $parser = 'dolibarr', $replaceimagepath = null { if (is_array($replaceimagepath)) { - foreach($replaceimagepath as $key => $val) + foreach ($replaceimagepath as $key => $val) { $keytoreplace = ']('.$key; $valafter = ']('.$val; diff --git a/htdocs/core/lib/payments.lib.php b/htdocs/core/lib/payments.lib.php index e7a9bd51034..80aed36f674 100644 --- a/htdocs/core/lib/payments.lib.php +++ b/htdocs/core/lib/payments.lib.php @@ -99,22 +99,22 @@ function getValidOnlinePaymentMethods($paymentmethod = '') { global $conf, $langs; - $validpaymentmethod=array(); + $validpaymentmethod = array(); - if ((empty($paymentmethod) || $paymentmethod == 'paypal') && ! empty($conf->paypal->enabled)) + if ((empty($paymentmethod) || $paymentmethod == 'paypal') && !empty($conf->paypal->enabled)) { $langs->load("paypal"); - $validpaymentmethod['paypal']='valid'; + $validpaymentmethod['paypal'] = 'valid'; } - if ((empty($paymentmethod) || $paymentmethod == 'paybox') && ! empty($conf->paybox->enabled)) + if ((empty($paymentmethod) || $paymentmethod == 'paybox') && !empty($conf->paybox->enabled)) { $langs->load("paybox"); - $validpaymentmethod['paybox']='valid'; + $validpaymentmethod['paybox'] = 'valid'; } - if ((empty($paymentmethod) || $paymentmethod == 'stripe') && ! empty($conf->stripe->enabled)) + if ((empty($paymentmethod) || $paymentmethod == 'stripe') && !empty($conf->stripe->enabled)) { $langs->load("stripe"); - $validpaymentmethod['stripe']='valid'; + $validpaymentmethod['stripe'] = 'valid'; } // TODO Add trigger @@ -173,107 +173,107 @@ function getOnlinePaymentUrl($mode, $type, $ref = '', $amount = '9.99', $freetag if ($type == 'free') { - $out=$urltouse.'/public/payment/newpayment.php?amount='.($mode?'':'').$amount.($mode?'':'').'&tag='.($mode?'':'').$freetag.($mode?'':''); - if (! empty($conf->global->PAYMENT_SECURITY_TOKEN)) + $out = $urltouse.'/public/payment/newpayment.php?amount='.($mode ? '' : '').$amount.($mode ? '' : '').'&tag='.($mode ? '' : '').$freetag.($mode ? '' : ''); + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out.='&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; - else $out.='&securekey='.dol_hash($conf->global->PAYMENT_SECURITY_TOKEN, 2); + if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out .= '&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; + else $out .= '&securekey='.dol_hash($conf->global->PAYMENT_SECURITY_TOKEN, 2); } //if ($mode) $out.='&noidempotency=1'; } elseif ($type == 'order') { - $out=$urltouse.'/public/payment/newpayment.php?source=order&ref='.($mode?'':''); - if ($mode == 1) $out.='order_ref'; - if ($mode == 0) $out.=urlencode($ref); - $out.=($mode?'':''); - if (! empty($conf->global->PAYMENT_SECURITY_TOKEN)) + $out = $urltouse.'/public/payment/newpayment.php?source=order&ref='.($mode ? '' : ''); + if ($mode == 1) $out .= 'order_ref'; + if ($mode == 0) $out .= urlencode($ref); + $out .= ($mode ? '' : ''); + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out.='&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; + if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out .= '&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; else { - $out.='&securekey='.($mode?'':''); - if ($mode == 1) $out.="hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + order_ref)"; - if ($mode == 0) $out.= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN . $type . $ref, 2); - $out.=($mode?'':''); + $out .= '&securekey='.($mode ? '' : ''); + if ($mode == 1) $out .= "hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + order_ref)"; + if ($mode == 0) $out .= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.$type.$ref, 2); + $out .= ($mode ? '' : ''); } } } elseif ($type == 'invoice') { - $out=$urltouse.'/public/payment/newpayment.php?source=invoice&ref='.($mode?'':''); - if ($mode == 1) $out.='invoice_ref'; - if ($mode == 0) $out.=urlencode($ref); - $out.=($mode?'':''); - if (! empty($conf->global->PAYMENT_SECURITY_TOKEN)) + $out = $urltouse.'/public/payment/newpayment.php?source=invoice&ref='.($mode ? '' : ''); + if ($mode == 1) $out .= 'invoice_ref'; + if ($mode == 0) $out .= urlencode($ref); + $out .= ($mode ? '' : ''); + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out.='&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; + if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out .= '&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; else { - $out.='&securekey='.($mode?'':''); - if ($mode == 1) $out.="hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + invoice_ref)"; - if ($mode == 0) $out.= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN . $type . $ref, 2); - $out.=($mode?'':''); + $out .= '&securekey='.($mode ? '' : ''); + if ($mode == 1) $out .= "hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + invoice_ref)"; + if ($mode == 0) $out .= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.$type.$ref, 2); + $out .= ($mode ? '' : ''); } } } elseif ($type == 'contractline') { - $out=$urltouse.'/public/payment/newpayment.php?source=contractline&ref='.($mode?'':''); - if ($mode == 1) $out.='contractline_ref'; - if ($mode == 0) $out.=urlencode($ref); - $out.=($mode?'':''); - if (! empty($conf->global->PAYMENT_SECURITY_TOKEN)) + $out = $urltouse.'/public/payment/newpayment.php?source=contractline&ref='.($mode ? '' : ''); + if ($mode == 1) $out .= 'contractline_ref'; + if ($mode == 0) $out .= urlencode($ref); + $out .= ($mode ? '' : ''); + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out.='&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; + if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out .= '&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; else { - $out.='&securekey='.($mode?'':''); - if ($mode == 1) $out.="hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + contractline_ref)"; - if ($mode == 0) $out.= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN . $type . $ref, 2); - $out.=($mode?'':''); + $out .= '&securekey='.($mode ? '' : ''); + if ($mode == 1) $out .= "hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + contractline_ref)"; + if ($mode == 0) $out .= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.$type.$ref, 2); + $out .= ($mode ? '' : ''); } } } elseif ($type == 'member' || $type == 'membersubscription') { - $out=$urltouse.'/public/payment/newpayment.php?source=membersubscription&ref='.($mode?'':''); - if ($mode == 1) $out.='member_ref'; - if ($mode == 0) $out.=urlencode($ref); - $out.=($mode?'':''); - if (! empty($conf->global->PAYMENT_SECURITY_TOKEN)) + $out = $urltouse.'/public/payment/newpayment.php?source=membersubscription&ref='.($mode ? '' : ''); + if ($mode == 1) $out .= 'member_ref'; + if ($mode == 0) $out .= urlencode($ref); + $out .= ($mode ? '' : ''); + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out.='&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; + if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out .= '&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; else { - $out.='&securekey='.($mode?'':''); - if ($mode == 1) $out.="hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + member_ref)"; - if ($mode == 0) $out.= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN . $type . $ref, 2); - $out.=($mode?'':''); + $out .= '&securekey='.($mode ? '' : ''); + if ($mode == 1) $out .= "hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + member_ref)"; + if ($mode == 0) $out .= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.$type.$ref, 2); + $out .= ($mode ? '' : ''); } } } if ($type == 'donation') { - $out=$urltouse.'/public/payment/newpayment.php?source=donation&ref='.($mode?'':''); - if ($mode == 1) $out.='donation_ref'; - if ($mode == 0) $out.=urlencode($ref); - $out.=($mode?'':''); - if (! empty($conf->global->PAYMENT_SECURITY_TOKEN)) + $out = $urltouse.'/public/payment/newpayment.php?source=donation&ref='.($mode ? '' : ''); + if ($mode == 1) $out .= 'donation_ref'; + if ($mode == 0) $out .= urlencode($ref); + $out .= ($mode ? '' : ''); + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out.='&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; + if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out .= '&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN; else { - $out.='&securekey='.($mode?'':''); - if ($mode == 1) $out.="hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + donation_ref)"; - if ($mode == 0) $out.= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN . $type . $ref, 2); - $out.=($mode?'':''); + $out .= '&securekey='.($mode ? '' : ''); + if ($mode == 1) $out .= "hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + donation_ref)"; + if ($mode == 0) $out .= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.$type.$ref, 2); + $out .= ($mode ? '' : ''); } } } // For multicompany - if (! empty($out) && ! empty($conf->multicompany->enabled)) $out.="&entity=".$conf->entity; // Check the entity because we may have the same reference in several entities + if (!empty($out) && !empty($conf->multicompany->enabled)) $out .= "&entity=".$conf->entity; // Check the entity because we may have the same reference in several entities return $out; } diff --git a/htdocs/core/lib/prelevement.lib.php b/htdocs/core/lib/prelevement.lib.php index 035f0adb754..eca43aef3f6 100644 --- a/htdocs/core/lib/prelevement.lib.php +++ b/htdocs/core/lib/prelevement.lib.php @@ -78,8 +78,8 @@ function prelevement_prepare_head(BonPrelevement $object) function prelevement_check_config() { global $conf; - if(empty($conf->global->PRELEVEMENT_ID_BANKACCOUNT)) return -1; - if(empty($conf->global->PRELEVEMENT_ICS)) return -1; - if(empty($conf->global->PRELEVEMENT_USER)) return -1; + if (empty($conf->global->PRELEVEMENT_ID_BANKACCOUNT)) return -1; + if (empty($conf->global->PRELEVEMENT_ICS)) return -1; + if (empty($conf->global->PRELEVEMENT_USER)) return -1; return 0; } diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index 9b9f000cf17..428d976ab6d 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -487,10 +487,10 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t } // Ref of task - if (count($arrayfields)>0 && !empty($arrayfields['t.ref']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.ref']['checked'])) { print '
'; if ($showlineingray) { - print '' . img_object('', 'projecttask') . ' ' . $lines[$i]->ref . ''; + print ''.img_object('', 'projecttask').' '.$lines[$i]->ref.''; } else { print $taskstatic->getNomUrl(1, 'withproject'); } @@ -498,7 +498,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t } // Title of task - if (count($arrayfields)>0 && !empty($arrayfields['t.label']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.label']['checked'])) { print ""; if ($showlineingray) print ''; @@ -516,21 +516,21 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t print ""; print $lines[$i]->description; print "'; print dol_print_date($lines[$i]->date_start, 'dayhour'); print ''; print dol_print_date($lines[$i]->date_end, 'dayhour'); if ($taskstatic->hasDelay()) @@ -544,7 +544,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t if (!empty($conf->global->PROJECT_TIMES_SPENT_FORMAT)) $timespentoutputformat = $conf->global->PROJECT_TIME_SPENT_FORMAT; // Planned Workload (in working hours) - if (count($arrayfields)>0 && !empty($arrayfields['t.planned_workload']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.planned_workload']['checked'])) { print ''; $fullhour = convertSecondToTime($lines[$i]->planned_workload, $plannedworkloadoutputformat); $workingdelay = convertSecondToTime($lines[$i]->planned_workload, 'all', 86400, 7); // TODO Replace 86400 and 7 to take account working hours per day and working day per weeks @@ -558,11 +558,11 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t } // Time spent - if (count($arrayfields)>0 && !empty($arrayfields['t.duration_effective']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.duration_effective']['checked'])) { print ''; if ($showlineingray) print ''; - else print ''; + else print ''; if ($lines[$i]->duration) print convertSecondToTime($lines[$i]->duration, $timespentoutputformat); else print '--:--'; @@ -573,18 +573,18 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t } // Progress calculated (Note: ->duration is time spent) - if (count($arrayfields)>0 && !empty($arrayfields['t.progress_calculated']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.progress_calculated']['checked'])) { print ''; if ($lines[$i]->planned_workload || $lines[$i]->duration) { if ($lines[$i]->planned_workload) - print round(100 * $lines[$i]->duration / $lines[$i]->planned_workload, 2) . ' %'; - else print '' . $langs->trans('WorkloadNotDefined') . ''; + print round(100 * $lines[$i]->duration / $lines[$i]->planned_workload, 2).' %'; + else print ''.$langs->trans('WorkloadNotDefined').''; } print ''; if ($lines[$i]->progress != '') { print getTaskProgressBadge($taskstatic); @@ -593,7 +593,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t } // resume - if (count($arrayfields)>0 && !empty($arrayfields['t.progress_summary']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.progress_summary']['checked'])) { print ''; if ($lines[$i]->progress != '' && $lines[$i]->duration) { print getTaskProgressView($taskstatic, false, false); @@ -604,25 +604,25 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t if ($showbilltime) { // Time not billed - if (count($arrayfields)>0 && !empty($arrayfields['t.tobill']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.tobill']['checked'])) { print ''; if ($lines[$i]->usage_bill_time) { print convertSecondToTime($lines[$i]->tobill, 'allhourmin'); $total_projectlinesa_tobill += $lines[$i]->tobill; } else { - print '' . $langs->trans("NA") . ''; + print ''.$langs->trans("NA").''; } print ''; if ($lines[$i]->usage_bill_time) { print convertSecondToTime($lines[$i]->billed, 'allhourmin'); $total_projectlinesa_billed += $lines[$i]->billed; } else { - print '' . $langs->trans("NA") . ''; + print ''.$langs->trans("NA").''; } print '
'.$langs->trans("Total").''; print convertSecondToTime($total_projectlinesa_planned, 'allhourmin'); print ''; if ($projectidfortotallink > 0) - print ''; + print ''; print convertSecondToTime($total_projectlinesa_spent, 'allhourmin'); if ($projectidfortotallink > 0) print ''; @@ -734,27 +734,27 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t } } - if (count($arrayfields)>0 && !empty($arrayfields['t.progress_calculated']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.progress_calculated']['checked'])) { print ''; if ($total_projectlinesa_planned) - print $totalCalculatedProgress . ' %'; + print $totalCalculatedProgress.' %'; print ''; if ($total_projectlinesa_planned) - print '' . $totalAverageDeclaredProgress . ' %'; + print ''.$totalAverageDeclaredProgress.' %'; print ''; if ($total_projectlinesa_planned) { print ''; - print '
'; - print '
'; + print '
'; + print '
'; print '
'; print '
'; } @@ -763,12 +763,12 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t if ($showbilltime) { - if (count($arrayfields)>0 && !empty($arrayfields['t.tobill']['checked'])) { + if (count($arrayfields) > 0 && !empty($arrayfields['t.tobill']['checked'])) { print '
'; print convertSecondToTime($total_projectlinesa_tobill, 'allhourmin'); print ''; print convertSecondToTime($total_projectlinesa_billed, 'allhourmin'); print '
'; + print '
'."\n"; $variante = ($periodlink || $exportlink); @@ -73,7 +74,7 @@ function report_header($reportname, $notused, $period, $periodlink, $description print $reportname; print ''; if ($variante) print ''; - print ''; + print ''."\n"; // Calculation mode if ($calcmode) @@ -84,7 +85,7 @@ function report_header($reportname, $notused, $period, $periodlink, $description print $calcmode; if ($variante) print ''; print ''; - print ''; + print ''."\n"; } // Ligne de la periode d'analyse du rapport @@ -94,14 +95,14 @@ function report_header($reportname, $notused, $period, $periodlink, $description if ($period) print $period; if ($variante) print ''; print ''; - print ''; + print ''."\n"; // Ligne de description print ''; print ''; print ''; if ($variante) print ''; - print ''; + print ''."\n"; // Ligne d'export print ''; @@ -110,9 +111,9 @@ function report_header($reportname, $notused, $period, $periodlink, $description print dol_print_date($builddate, 'dayhour'); print ''; if ($variante) print ''; - print ''; + print ''."\n"; - print '
'.$periodlink.'
'.$langs->trans("ReportDescription").''.$description.'
'.($exportlink ? $langs->trans("Export").': '.$exportlink : '').'
'; + print '
'."\n"; dol_fiche_end(); diff --git a/htdocs/core/lib/resource.lib.php b/htdocs/core/lib/resource.lib.php index 7bd2454dbe6..e6a0998ba6f 100644 --- a/htdocs/core/lib/resource.lib.php +++ b/htdocs/core/lib/resource.lib.php @@ -45,7 +45,7 @@ function resource_prepare_head($object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/resource/contact.php?id='.$object->id; $head[$h][1] = $langs->trans('ContactsAddresses'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -59,30 +59,30 @@ function resource_prepare_head($object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/resource/note.php?id='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $upload_dir = $conf->resource->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->resource->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); $head[$h][0] = DOL_URL_ROOT.'/resource/document.php?id='.$object->id; $head[$h][1] = $langs->trans("Documents"); - if($nbFiles > 0) $head[$h][1].= ''.$nbFiles.''; + if ($nbFiles > 0) $head[$h][1] .= ''.$nbFiles.''; $head[$h][2] = 'documents'; $h++; $head[$h][0] = DOL_URL_ROOT.'/resource/agenda.php?id='.$object->id; $head[$h][1] = $langs->trans("Events"); - if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { - $head[$h][1].= '/'; - $head[$h][1].= $langs->trans("Agenda"); + $head[$h][1] .= '/'; + $head[$h][1] .= $langs->trans("Agenda"); } $head[$h][2] = 'agenda'; $h++; diff --git a/htdocs/core/lib/salaries.lib.php b/htdocs/core/lib/salaries.lib.php index 01b3cafd60d..0e2328bc7e7 100644 --- a/htdocs/core/lib/salaries.lib.php +++ b/htdocs/core/lib/salaries.lib.php @@ -46,12 +46,12 @@ function salaries_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->salaries->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->salaries->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/salaries/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; diff --git a/htdocs/core/lib/security2.lib.php b/htdocs/core/lib/security2.lib.php index b9a606b98b4..04d16084365 100644 --- a/htdocs/core/lib/security2.lib.php +++ b/htdocs/core/lib/security2.lib.php @@ -221,7 +221,7 @@ if (!function_exists('dol_loginfunction')) // Show logo (search in order: small company logo, large company logo, theme logo, common logo) $width = 0; - $urllogo=DOL_URL_ROOT.'/theme/common/login_logo.png'; + $urllogo = DOL_URL_ROOT.'/theme/common/login_logo.png'; if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) { diff --git a/htdocs/core/lib/sendings.lib.php b/htdocs/core/lib/sendings.lib.php index 7f8de19e2e5..34dd845cdfa 100644 --- a/htdocs/core/lib/sendings.lib.php +++ b/htdocs/core/lib/sendings.lib.php @@ -37,7 +37,7 @@ function shipping_prepare_head($object) global $db, $langs, $conf, $user; // Load translation files required by the page - $langs->loadLangs(array("sendings","deliveries")); + $langs->loadLangs(array("sendings", "deliveries")); $h = 0; $head = array(); @@ -74,19 +74,19 @@ function shipping_prepare_head($object) $nbContact = count($objectsrc->liste_contact(-1, 'internal')) + count($objectsrc->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT."/expedition/contact.php?id=".$object->id; $head[$h][1] = $langs->trans("ContactsAddresses"); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->commande->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->commande->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/expedition/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; @@ -95,7 +95,7 @@ function shipping_prepare_head($object) if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT."/expedition/note.php?id=".$object->id; $head[$h][1] = $langs->trans("Notes"); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; @@ -122,7 +122,7 @@ function delivery_prepare_head($object) global $langs, $db, $conf, $user; // Load translation files required by the page - $langs->loadLangs(array("sendings","deliveries")); + $langs->loadLangs(array("sendings", "deliveries")); $h = 0; $head = array(); @@ -165,12 +165,12 @@ function delivery_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->commande->dir_output . "/" . dol_sanitizeFileName($tmpobject->ref); + $upload_dir = $conf->commande->dir_output."/".dol_sanitizeFileName($tmpobject->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $tmpobject->element, $tmpobject->id); + $nbLinks = Link::count($db, $tmpobject->element, $tmpobject->id); $head[$h][0] = DOL_URL_ROOT.'/expedition/document.php?id='.$tmpobject->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; @@ -179,7 +179,7 @@ function delivery_prepare_head($object) if (!empty($tmpobject->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT."/expedition/note.php?id=".$tmpobject->id; $head[$h][1] = $langs->trans("Notes"); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; @@ -206,29 +206,29 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') global $db, $conf, $langs; global $form; - $product_static=new Product($db); - $expedition=new Expedition($db); - $warehousestatic=new Entrepot($db); + $product_static = new Product($db); + $expedition = new Expedition($db); + $warehousestatic = new Entrepot($db); $sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end,"; - $sql.= " ed.rowid as edrowid, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot as warehouse_id,"; - $sql.= " e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition,"; + $sql .= " ed.rowid as edrowid, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot as warehouse_id,"; + $sql .= " e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition,"; //if ($conf->livraison_bon->enabled) $sql .= " l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received,"; - $sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tobatch as product_tobatch,'; - $sql.= ' p.description as product_desc'; - $sql.= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed"; - $sql.= ", ".MAIN_DB_PREFIX."expedition as e"; - $sql.= ", ".MAIN_DB_PREFIX.$origin."det as obj"; + $sql .= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tobatch as product_tobatch,'; + $sql .= ' p.description as product_desc'; + $sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed"; + $sql .= ", ".MAIN_DB_PREFIX."expedition as e"; + $sql .= ", ".MAIN_DB_PREFIX.$origin."det as obj"; //if ($conf->livraison_bon->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."livraison as l ON l.fk_expedition = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."livraisondet as ld ON ld.fk_livraison = l.rowid AND obj.rowid = ld.fk_origin_line"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid"; //TODO Add link to expeditiondet_batch - $sql.= " WHERE e.entity IN (".getEntity('expedition').")"; - $sql.= " AND obj.fk_".$origin." = ".$origin_id; - $sql.= " AND obj.rowid = ed.fk_origin_line"; - $sql.= " AND ed.fk_expedition = e.rowid"; - if ($filter) $sql.= $filter; + $sql .= " WHERE e.entity IN (".getEntity('expedition').")"; + $sql .= " AND obj.fk_".$origin." = ".$origin_id; + $sql .= " AND obj.rowid = ed.fk_origin_line"; + $sql .= " AND ed.fk_expedition = e.rowid"; + if ($filter) $sql .= $filter; - $sql.= " ORDER BY obj.fk_product"; + $sql .= " ORDER BY obj.fk_product"; dol_syslog("show_list_sending_receive", LOG_DEBUG); $resql = $db->query($sql); @@ -250,7 +250,7 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') print ''.$langs->trans("DateCreation").''; print ''.$langs->trans("DateDeliveryPlanned").''; print ''.$langs->trans("QtyPreparedOrShipped").''; - if (! empty($conf->stock->enabled)) + if (!empty($conf->stock->enabled)) { print ''.$langs->trans("Warehouse").''; } @@ -260,7 +260,7 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') print ''; print ''; }*/ - if (! empty($conf->livraison_bon->enabled)) + if (!empty($conf->livraison_bon->enabled)) { print ''.$langs->trans("DeliveryOrder").''; //print ''.$langs->trans("QtyReceived").''; @@ -283,52 +283,52 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') if ($objp->fk_product > 0) { // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) + if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $object = new $origin($db); $object->fetch($origin_id); $object->fetch_thirdparty(); $prod = new Product($db); - $prod->id=$objp->fk_product; + $prod->id = $objp->fk_product; $prod->getMultiLangs(); $outputlangs = $langs; - $newlang=''; - if (empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; - if (empty($newlang)) $newlang=$object->thirdparty->default_lang; - if (! empty($newlang)) + $newlang = ''; + if (empty($newlang) && !empty($_REQUEST['lang_id'])) $newlang = $_REQUEST['lang_id']; + if (empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } - $label = (! empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $objp->product_label; + $label = (!empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $objp->product_label; } else { - $label = (! empty($objp->label)?$objp->label:$objp->product_label); + $label = (!empty($objp->label) ? $objp->label : $objp->product_label); } print ''; // Show product and description - $product_static->type=$objp->fk_product_type; - $product_static->id=$objp->fk_product; - $product_static->ref=$objp->ref; - $product_static->status_batch=$objp->product_tobatch; - $text=$product_static->getNomUrl(1); - $text.= ' - '.$label; - $description=(! empty($conf->global->PRODUIT_DESC_IN_FORM)?'':dol_htmlentitiesbr($objp->description)); + $product_static->type = $objp->fk_product_type; + $product_static->id = $objp->fk_product; + $product_static->ref = $objp->ref; + $product_static->status_batch = $objp->product_tobatch; + $text = $product_static->getNomUrl(1); + $text .= ' - '.$label; + $description = (!empty($conf->global->PRODUIT_DESC_IN_FORM) ? '' : dol_htmlentitiesbr($objp->description)); print $form->textwithtooltip($text, $description, 3, '', '', $i); // Show range print_date_range($objp->date_start, $objp->date_end); // Add description in form - if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) + if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { - print (! empty($objp->description) && $objp->description!=$objp->product)?'
'.dol_htmlentitiesbr($objp->description):''; + print (!empty($objp->description) && $objp->description != $objp->product) ? '
'.dol_htmlentitiesbr($objp->description) : ''; } print ''; @@ -336,11 +336,11 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') else { print ""; - if ($objp->fk_product_type==1) $text = img_object($langs->trans('Service'), 'service'); + if ($objp->fk_product_type == 1) $text = img_object($langs->trans('Service'), 'service'); else $text = img_object($langs->trans('Product'), 'product'); - if (! empty($objp->label)) { - $text.= ' '.$objp->label.''; + if (!empty($objp->label)) { + $text .= ' '.$objp->label.''; print $form->textwithtooltip($text, $objp->description, 3, '', '', $i); } else { print $text.' '.nl2br($objp->description); @@ -363,7 +363,7 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') print ''.$objp->qty_shipped.''; // Warehouse - if (! empty($conf->stock->enabled)) + if (!empty($conf->stock->enabled)) { print ''; if ($objp->warehouse_id > 0) @@ -407,17 +407,17 @@ function show_list_sending_receive($origin, $origin_id, $filter = '') }*/ // Informations on receipt - if (! empty($conf->livraison_bon->enabled)) + if (!empty($conf->livraison_bon->enabled)) { include_once DOL_DOCUMENT_ROOT.'/livraison/class/livraison.class.php'; - $expedition->id=$objp->sendingid; + $expedition->id = $objp->sendingid; $expedition->fetchObjectLinked($expedition->id, $expedition->element); //var_dump($expedition->linkedObjects); - $receiving=''; - if (count($expedition->linkedObjects['delivery']) > 0) $receiving=reset($expedition->linkedObjects['delivery']); // Take first link + $receiving = ''; + if (count($expedition->linkedObjects['delivery']) > 0) $receiving = reset($expedition->linkedObjects['delivery']); // Take first link - if (! empty($receiving)) + if (!empty($receiving)) { // $expedition->fk_origin_line = id of det line of order // $receiving->fk_origin_line = id of det line of order diff --git a/htdocs/core/lib/supplier_proposal.lib.php b/htdocs/core/lib/supplier_proposal.lib.php index 6549b362c11..ddc85616ba6 100644 --- a/htdocs/core/lib/supplier_proposal.lib.php +++ b/htdocs/core/lib/supplier_proposal.lib.php @@ -34,7 +34,7 @@ function supplier_proposal_prepare_head($object) global $db, $langs, $conf, $user; // Load translation files required by the page - $langs->loadLangs(array("supplier_proposal","compta")); + $langs->loadLangs(array("supplier_proposal", "compta")); $h = 0; $head = array(); @@ -49,7 +49,7 @@ function supplier_proposal_prepare_head($object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/supplier_proposal/contact.php?id='.$object->id; $head[$h][1] = $langs->trans('ContactsAddresses'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -63,23 +63,23 @@ function supplier_proposal_prepare_head($object) if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) { $nbNote = 0; - if(!empty($object->note_private)) $nbNote++; - if(!empty($object->note_public)) $nbNote++; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; $head[$h][0] = DOL_URL_ROOT.'/supplier_proposal/note.php?id='.$object->id; $head[$h][1] = $langs->trans('Notes'); - if ($nbNote > 0) $head[$h][1].= ''.$nbNote.''; + if ($nbNote > 0) $head[$h][1] .= ''.$nbNote.''; $head[$h][2] = 'note'; $h++; } require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->supplier_proposal->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->supplier_proposal->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/supplier_proposal/document.php?id='.$object->id; $head[$h][1] = $langs->trans('Documents'); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'document'; $h++; diff --git a/htdocs/core/lib/takepos.lib.php b/htdocs/core/lib/takepos.lib.php index 6cf8189f3c8..8a883ceef91 100644 --- a/htdocs/core/lib/takepos.lib.php +++ b/htdocs/core/lib/takepos.lib.php @@ -47,7 +47,7 @@ function takepos_prepare_head() for ($i = 1; $i <= $numterminals; $i++) { $head[$h][0] = DOL_URL_ROOT.'/takepos/admin/terminal.php?terminal='.$i; - $head[$h][1] = $langs->trans("Terminal"). " ".$i; + $head[$h][1] = $langs->trans("Terminal")." ".$i; $head[$h][2] = 'terminal'.$i; $h++; } diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php index ade6a7f49cf..cdf9fe29b1c 100644 --- a/htdocs/core/lib/tax.lib.php +++ b/htdocs/core/lib/tax.lib.php @@ -54,12 +54,12 @@ function tax_prepare_head(ChargeSociales $object) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->tax->dir_output . "/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->tax->dir_output."/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$h][0] = DOL_URL_ROOT.'/compta/sociales/document.php?id='.$object->id; $head[$h][1] = $langs->trans("Documents"); - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$h][1] .= ''.($nbFiles + $nbLinks).''; $head[$h][2] = 'documents'; $h++; @@ -93,131 +93,131 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di global $conf; // If we use date_start and date_end, we must not use $y, $m, $q - if (($date_start || $date_end) && (! empty($y) || ! empty($m) || ! empty($q))) + if (($date_start || $date_end) && (!empty($y) || !empty($m) || !empty($q))) { dol_print_error('', 'Bad value of input parameter for tax_by_rate'); } - $list=array(); + $list = array(); if ($direction == 'sell') { - $invoicetable='facture'; - $invoicedettable='facturedet'; - $fk_facture='fk_facture'; - $fk_facture2='fk_facture'; - $fk_payment='fk_paiement'; - $total_tva='total_tva'; - $paymenttable='paiement'; - $paymentfacturetable='paiement_facture'; - $invoicefieldref='ref'; + $invoicetable = 'facture'; + $invoicedettable = 'facturedet'; + $fk_facture = 'fk_facture'; + $fk_facture2 = 'fk_facture'; + $fk_payment = 'fk_paiement'; + $total_tva = 'total_tva'; + $paymenttable = 'paiement'; + $paymentfacturetable = 'paiement_facture'; + $invoicefieldref = 'ref'; } elseif ($direction == 'buy') { - $invoicetable='facture_fourn'; - $invoicedettable='facture_fourn_det'; - $fk_facture='fk_facture_fourn'; - $fk_facture2='fk_facturefourn'; - $fk_payment='fk_paiementfourn'; - $total_tva='tva'; - $paymenttable='paiementfourn'; - $paymentfacturetable='paiementfourn_facturefourn'; - $invoicefieldref='ref'; + $invoicetable = 'facture_fourn'; + $invoicedettable = 'facture_fourn_det'; + $fk_facture = 'fk_facture_fourn'; + $fk_facture2 = 'fk_facturefourn'; + $fk_payment = 'fk_paiementfourn'; + $total_tva = 'tva'; + $paymenttable = 'paiementfourn'; + $paymentfacturetable = 'paiementfourn_facturefourn'; + $invoicefieldref = 'ref'; } if (strpos($type, 'localtax') === 0) { - $f_rate = $type . '_tx'; + $f_rate = $type.'_tx'; } else { $f_rate = 'tva_tx'; } - $total_localtax1='total_localtax1'; - $total_localtax2='total_localtax2'; + $total_localtax1 = 'total_localtax1'; + $total_localtax2 = 'total_localtax2'; // CAS DES BIENS/PRODUITS // Define sql request - $sql=''; + $sql = ''; if (($direction == 'sell' && $conf->global->TAX_MODE_SELL_PRODUCT == 'invoice') || ($direction == 'buy' && $conf->global->TAX_MODE_BUY_PRODUCT == 'invoice')) { // Count on delivery date (use invoice date as delivery is unknown) $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; - $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; - $sql.= " d.date_start as date_start, d.date_end as date_end,"; - $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; - $sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; - $sql.= " 0 as payment_id, 0 as payment_amount"; - $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX."societe as s,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; - $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")"; - $sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)"; - else $sql.= " AND f.type IN (0,1,2,3,5)"; - $sql.= " AND f.rowid = d.".$fk_facture; - $sql.= " AND s.rowid = f.fk_soc"; + $sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; + $sql .= " d.date_start as date_start, d.date_end as date_end,"; + $sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; + $sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; + $sql .= " 0 as payment_id, 0 as payment_amount"; + $sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; + $sql .= " ".MAIN_DB_PREFIX."societe as s,"; + $sql .= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; + $sql .= " WHERE f.entity IN (".getEntity($invoicetable).")"; + $sql .= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) + if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql .= " AND f.type IN (0,1,2,5)"; + else $sql .= " AND f.type IN (0,1,2,3,5)"; + $sql .= " AND f.rowid = d.".$fk_facture; + $sql .= " AND s.rowid = f.fk_soc"; if ($y && $m) { - $sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND f.datef >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND f.datef <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND f.datef >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND f.datef <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(f.datef,'%m') > ".(($q-1)*3)." AND date_format(f.datef,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = 0"; // Limit to products - $sql.= " AND d.date_start is null AND d.date_end IS NULL)"; // enhance detection of products - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; - $sql.= " ORDER BY d.rowid, d.".$fk_facture; + if ($q) $sql .= " AND (date_format(f.datef,'%m') > ".(($q - 1) * 3)." AND date_format(f.datef,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = 0"; // Limit to products + $sql .= " AND d.date_start is null AND d.date_end IS NULL)"; // enhance detection of products + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; + $sql .= " ORDER BY d.rowid, d.".$fk_facture; } else { // Count on payments date $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; - $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; - $sql.= " d.date_start as date_start, d.date_end as date_end,"; - $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; - $sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; - $sql.= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,"; - $sql.= " pa.datep as datep"; - $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,"; - $sql.= " ".MAIN_DB_PREFIX.$paymenttable." as pa,"; - $sql.= " ".MAIN_DB_PREFIX."societe as s,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; - $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")"; - $sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)"; - else $sql.= " AND f.type IN (0,1,2,3,5)"; - $sql.= " AND f.rowid = d.".$fk_facture; - $sql.= " AND s.rowid = f.fk_soc"; - $sql.= " AND pf.".$fk_facture2." = f.rowid"; - $sql.= " AND pa.rowid = pf.".$fk_payment; + $sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; + $sql .= " d.date_start as date_start, d.date_end as date_end,"; + $sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; + $sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; + $sql .= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,"; + $sql .= " pa.datep as datep"; + $sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; + $sql .= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,"; + $sql .= " ".MAIN_DB_PREFIX.$paymenttable." as pa,"; + $sql .= " ".MAIN_DB_PREFIX."societe as s,"; + $sql .= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; + $sql .= " WHERE f.entity IN (".getEntity($invoicetable).")"; + $sql .= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) + if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql .= " AND f.type IN (0,1,2,5)"; + else $sql .= " AND f.type IN (0,1,2,3,5)"; + $sql .= " AND f.rowid = d.".$fk_facture; + $sql .= " AND s.rowid = f.fk_soc"; + $sql .= " AND pf.".$fk_facture2." = f.rowid"; + $sql .= " AND pa.rowid = pf.".$fk_payment; if ($y && $m) { - $sql.= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(pa.datep,'%m') > ".(($q-1)*3)." AND date_format(pa.datep,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND pa.datep >= '".$db->idate($date_start)."' AND pa.datep <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = 0"; // Limit to products - $sql.= " AND d.date_start is null AND d.date_end IS NULL)"; // enhance detection of products - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; - $sql.= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid"; + if ($q) $sql .= " AND (date_format(pa.datep,'%m') > ".(($q - 1) * 3)." AND date_format(pa.datep,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND pa.datep >= '".$db->idate($date_start)."' AND pa.datep <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = 0"; // Limit to products + $sql .= " AND d.date_start is null AND d.date_end IS NULL)"; // enhance detection of products + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; + $sql .= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid"; } - if (! $sql) return -1; + if (!$sql) return -1; if ($sql == 'TODO') return -2; if ($sql != 'TODO') { @@ -227,17 +227,17 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di if ($resql) { $company_id = -1; - $oldrowid=''; - while($assoc = $db->fetch_array($resql)) + $oldrowid = ''; + while ($assoc = $db->fetch_array($resql)) { - if (! isset($list[$assoc['company_id']]['totalht'])) $list[$assoc['company_id']]['totalht']=0; - if (! isset($list[$assoc['company_id']]['vat'])) $list[$assoc['company_id']]['vat']=0; - if (! isset($list[$assoc['company_id']]['localtax1'])) $list[$assoc['company_id']]['localtax1']=0; - if (! isset($list[$assoc['company_id']]['localtax2'])) $list[$assoc['company_id']]['localtax2']=0; + if (!isset($list[$assoc['company_id']]['totalht'])) $list[$assoc['company_id']]['totalht'] = 0; + if (!isset($list[$assoc['company_id']]['vat'])) $list[$assoc['company_id']]['vat'] = 0; + if (!isset($list[$assoc['company_id']]['localtax1'])) $list[$assoc['company_id']]['localtax1'] = 0; + if (!isset($list[$assoc['company_id']]['localtax2'])) $list[$assoc['company_id']]['localtax2'] = 0; if ($assoc['rowid'] != $oldrowid) // Si rupture sur d.rowid { - $oldrowid=$assoc['rowid']; + $oldrowid = $assoc['rowid']; $list[$assoc['company_id']]['totalht'] += $assoc['total_ht']; $list[$assoc['company_id']]['vat'] += $assoc['total_vat']; $list[$assoc['company_id']]['localtax1'] += $assoc['total_localtax1']; @@ -262,7 +262,7 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di $list[$assoc['company_id']]['totalht_list'][] = $assoc['total_ht']; $list[$assoc['company_id']]['vat_list'][] = $assoc['total_vat']; $list[$assoc['company_id']]['localtax1_list'][] = $assoc['total_localtax1']; - $list[$assoc['company_id']]['localtax2_list'][] = $assoc['total_localtax2']; + $list[$assoc['company_id']]['localtax2_list'][] = $assoc['total_localtax2']; $list[$assoc['company_id']]['pid'][] = $assoc['pid']; $list[$assoc['company_id']]['pref'][] = $assoc['pref']; @@ -285,90 +285,90 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di // CAS DES SERVICES // Define sql request - $sql=''; + $sql = ''; if (($direction == 'sell' && $conf->global->TAX_MODE_SELL_SERVICE == 'invoice') || ($direction == 'buy' && $conf->global->TAX_MODE_BUY_SERVICE == 'invoice')) { // Count on invoice date $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; - $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; - $sql.= " d.date_start as date_start, d.date_end as date_end,"; - $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; - $sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; - $sql.= " 0 as payment_id, 0 as payment_amount"; - $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX."societe as s,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; - $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")"; - $sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)"; - else $sql.= " AND f.type IN (0,1,2,3,5)"; - $sql.= " AND f.rowid = d.".$fk_facture; - $sql.= " AND s.rowid = f.fk_soc"; + $sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; + $sql .= " d.date_start as date_start, d.date_end as date_end,"; + $sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; + $sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; + $sql .= " 0 as payment_id, 0 as payment_amount"; + $sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; + $sql .= " ".MAIN_DB_PREFIX."societe as s,"; + $sql .= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; + $sql .= " WHERE f.entity IN (".getEntity($invoicetable).")"; + $sql .= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) + if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql .= " AND f.type IN (0,1,2,5)"; + else $sql .= " AND f.type IN (0,1,2,3,5)"; + $sql .= " AND f.rowid = d.".$fk_facture; + $sql .= " AND s.rowid = f.fk_soc"; if ($y && $m) { - $sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND f.datef >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND f.datef <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND f.datef >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND f.datef <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(f.datef,'%m') > ".(($q-1)*3)." AND date_format(f.datef,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = 1"; // Limit to services - $sql.= " OR d.date_start is NOT null OR d.date_end IS NOT NULL)"; // enhance detection of service - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; - $sql.= " ORDER BY d.rowid, d.".$fk_facture; + if ($q) $sql .= " AND (date_format(f.datef,'%m') > ".(($q - 1) * 3)." AND date_format(f.datef,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = 1"; // Limit to services + $sql .= " OR d.date_start is NOT null OR d.date_end IS NOT NULL)"; // enhance detection of service + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; + $sql .= " ORDER BY d.rowid, d.".$fk_facture; } else { // Count on payments date $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; - $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; - $sql.= " d.date_start as date_start, d.date_end as date_end,"; - $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; - $sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; - $sql.= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,"; - $sql.= " pa.datep as datep"; - $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,"; - $sql.= " ".MAIN_DB_PREFIX.$paymenttable." as pa,"; - $sql.= " ".MAIN_DB_PREFIX."societe as s,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; - $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")"; - $sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)"; - else $sql.= " AND f.type IN (0,1,2,3,5)"; - $sql.= " AND f.rowid = d.".$fk_facture; - $sql.= " AND s.rowid = f.fk_soc"; - $sql.= " AND pf.".$fk_facture2." = f.rowid"; - $sql.= " AND pa.rowid = pf.".$fk_payment; + $sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; + $sql .= " d.date_start as date_start, d.date_end as date_end,"; + $sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; + $sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; + $sql .= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,"; + $sql .= " pa.datep as datep"; + $sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; + $sql .= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,"; + $sql .= " ".MAIN_DB_PREFIX.$paymenttable." as pa,"; + $sql .= " ".MAIN_DB_PREFIX."societe as s,"; + $sql .= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; + $sql .= " WHERE f.entity IN (".getEntity($invoicetable).")"; + $sql .= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) + if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql .= " AND f.type IN (0,1,2,5)"; + else $sql .= " AND f.type IN (0,1,2,3,5)"; + $sql .= " AND f.rowid = d.".$fk_facture; + $sql .= " AND s.rowid = f.fk_soc"; + $sql .= " AND pf.".$fk_facture2." = f.rowid"; + $sql .= " AND pa.rowid = pf.".$fk_payment; if ($y && $m) { - $sql.= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(pa.datep,'%m') > ".(($q-1)*3)." AND date_format(pa.datep,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND pa.datep >= '".$db->idate($date_start)."' AND pa.datep <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = 1"; // Limit to services - $sql.= " OR d.date_start is NOT null OR d.date_end IS NOT NULL)"; // enhance detection of service - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; - $sql.= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid"; + if ($q) $sql .= " AND (date_format(pa.datep,'%m') > ".(($q - 1) * 3)." AND date_format(pa.datep,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND pa.datep >= '".$db->idate($date_start)."' AND pa.datep <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = 1"; // Limit to services + $sql .= " OR d.date_start is NOT null OR d.date_end IS NOT NULL)"; // enhance detection of service + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; + $sql .= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid"; } - if (! $sql) + if (!$sql) { dol_syslog("Tax.lib.php::tax_by_rate no accountancy module enabled".$sql, LOG_ERR); - return -1; // -1 = Not accountancy module enabled + return -1; // -1 = Not accountancy module enabled } if ($sql == 'TODO') return -2; // -2 = Feature not yet available if ($sql != 'TODO') @@ -378,17 +378,17 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di if ($resql) { $company_id = -1; - $oldrowid=''; - while($assoc = $db->fetch_array($resql)) + $oldrowid = ''; + while ($assoc = $db->fetch_array($resql)) { - if (! isset($list[$assoc['company_id']]['totalht'])) $list[$assoc['company_id']]['totalht']=0; - if (! isset($list[$assoc['company_id']]['vat'])) $list[$assoc['company_id']]['vat']=0; - if (! isset($list[$assoc['company_id']]['localtax1'])) $list[$assoc['company_id']]['localtax1']=0; - if (! isset($list[$assoc['company_id']]['localtax2'])) $list[$assoc['company_id']]['localtax2']=0; + if (!isset($list[$assoc['company_id']]['totalht'])) $list[$assoc['company_id']]['totalht'] = 0; + if (!isset($list[$assoc['company_id']]['vat'])) $list[$assoc['company_id']]['vat'] = 0; + if (!isset($list[$assoc['company_id']]['localtax1'])) $list[$assoc['company_id']]['localtax1'] = 0; + if (!isset($list[$assoc['company_id']]['localtax2'])) $list[$assoc['company_id']]['localtax2'] = 0; if ($assoc['rowid'] != $oldrowid) // Si rupture sur d.rowid { - $oldrowid=$assoc['rowid']; + $oldrowid = $assoc['rowid']; $list[$assoc['company_id']]['totalht'] += $assoc['total_ht']; $list[$assoc['company_id']]['vat'] += $assoc['total_vat']; $list[$assoc['company_id']]['localtax1'] += $assoc['total_localtax1']; @@ -438,40 +438,40 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di if ($direction == 'buy') // buy only for expense reports { // Define sql request - $sql=''; + $sql = ''; // Count on payments date $sql = "SELECT d.rowid, d.product_type as dtype, e.rowid as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.total_tva as total_vat, e.note_private as descr,"; - $sql .=" d.total_localtax1 as total_localtax1, d.total_localtax2 as total_localtax2, "; - $sql.= " e.date_debut as date_start, e.date_fin as date_end, e.fk_user_author,"; - $sql.= " e.ref as facnum, e.total_ttc as ftotal_ttc, e.date_create, d.fk_c_type_fees as type,"; - $sql.= " p.fk_bank as payment_id, p.amount as payment_amount, p.rowid as pid, e.ref as pref"; - $sql.= " FROM ".MAIN_DB_PREFIX."expensereport as e"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."expensereport_det as d ON d.fk_expensereport = e.rowid "; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."payment_expensereport as p ON p.fk_expensereport = e.rowid "; - $sql.= " WHERE e.entity = " . $conf->entity; - $sql.= " AND e.fk_statut in (6)"; + $sql .= " d.total_localtax1 as total_localtax1, d.total_localtax2 as total_localtax2, "; + $sql .= " e.date_debut as date_start, e.date_fin as date_end, e.fk_user_author,"; + $sql .= " e.ref as facnum, e.total_ttc as ftotal_ttc, e.date_create, d.fk_c_type_fees as type,"; + $sql .= " p.fk_bank as payment_id, p.amount as payment_amount, p.rowid as pid, e.ref as pref"; + $sql .= " FROM ".MAIN_DB_PREFIX."expensereport as e"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."expensereport_det as d ON d.fk_expensereport = e.rowid "; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."payment_expensereport as p ON p.fk_expensereport = e.rowid "; + $sql .= " WHERE e.entity = ".$conf->entity; + $sql .= " AND e.fk_statut in (6)"; if ($y && $m) { - $sql.= " AND p.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND p.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND p.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND p.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND p.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND p.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND p.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND p.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(p.datep,'%m') > ".(($q-1)*3)." AND date_format(p.datep,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = -1"; - $sql.= " OR e.date_debut is NOT null OR e.date_fin IS NOT NULL)"; // enhance detection of service - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.total_tva <> 0)"; - $sql.= " ORDER BY e.rowid"; + if ($q) $sql .= " AND (date_format(p.datep,'%m') > ".(($q - 1) * 3)." AND date_format(p.datep,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = -1"; + $sql .= " OR e.date_debut is NOT null OR e.date_fin IS NOT NULL)"; // enhance detection of service + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.total_tva <> 0)"; + $sql .= " ORDER BY e.rowid"; - if (! $sql) + if (!$sql) { dol_syslog("Tax.lib.php::tax_by_rate no accountancy module enabled".$sql, LOG_ERR); - return -1; // -1 = Not accountancy module enabled + return -1; // -1 = Not accountancy module enabled } if ($sql == 'TODO') return -2; // -2 = Feature not yet available if ($sql != 'TODO') @@ -481,18 +481,18 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di if ($resql) { $company_id = -1; - $oldrowid=''; - while($assoc = $db->fetch_array($resql)) + $oldrowid = ''; + while ($assoc = $db->fetch_array($resql)) { - if (! isset($list[$assoc['company_id']]['totalht'])) $list[$assoc['company_id']]['totalht']=0; - if (! isset($list[$assoc['company_id']]['vat'])) $list[$assoc['company_id']]['vat']=0; - if (! isset($list[$assoc['company_id']]['localtax1'])) $list[$assoc['company_id']]['localtax1']=0; - if (! isset($list[$assoc['company_id']]['localtax2'])) $list[$assoc['company_id']]['localtax2']=0; + if (!isset($list[$assoc['company_id']]['totalht'])) $list[$assoc['company_id']]['totalht'] = 0; + if (!isset($list[$assoc['company_id']]['vat'])) $list[$assoc['company_id']]['vat'] = 0; + if (!isset($list[$assoc['company_id']]['localtax1'])) $list[$assoc['company_id']]['localtax1'] = 0; + if (!isset($list[$assoc['company_id']]['localtax2'])) $list[$assoc['company_id']]['localtax2'] = 0; if ($assoc['rowid'] != $oldrowid) // Si rupture sur d.rowid { - $oldrowid=$assoc['rowid']; - $list[$assoc['company_id']]['totalht'] += $assoc['total_ht']; + $oldrowid = $assoc['rowid']; + $list[$assoc['company_id']]['totalht'] += $assoc['total_ht']; $list[$assoc['company_id']]['vat'] += $assoc['total_vat']; $list[$assoc['company_id']]['localtax1'] += $assoc['total_localtax1']; $list[$assoc['company_id']]['localtax2'] += $assoc['total_localtax2']; @@ -561,132 +561,132 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire global $conf; // If we use date_start and date_end, we must not use $y, $m, $q - if (($date_start || $date_end) && (! empty($y) || ! empty($m) || ! empty($q))) + if (($date_start || $date_end) && (!empty($y) || !empty($m) || !empty($q))) { dol_print_error('', 'Bad value of input parameter for tax_by_rate'); } - $list=array(); + $list = array(); if ($direction == 'sell') { - $invoicetable='facture'; - $invoicedettable='facturedet'; - $fk_facture='fk_facture'; - $fk_facture2='fk_facture'; - $fk_payment='fk_paiement'; - $total_tva='total_tva'; - $paymenttable='paiement'; - $paymentfacturetable='paiement_facture'; - $invoicefieldref='ref'; + $invoicetable = 'facture'; + $invoicedettable = 'facturedet'; + $fk_facture = 'fk_facture'; + $fk_facture2 = 'fk_facture'; + $fk_payment = 'fk_paiement'; + $total_tva = 'total_tva'; + $paymenttable = 'paiement'; + $paymentfacturetable = 'paiement_facture'; + $invoicefieldref = 'ref'; } else { - $invoicetable='facture_fourn'; - $invoicedettable='facture_fourn_det'; - $fk_facture='fk_facture_fourn'; - $fk_facture2='fk_facturefourn'; - $fk_payment='fk_paiementfourn'; - $total_tva='tva'; - $paymenttable='paiementfourn'; - $paymentfacturetable='paiementfourn_facturefourn'; - $invoicefieldref='ref'; + $invoicetable = 'facture_fourn'; + $invoicedettable = 'facture_fourn_det'; + $fk_facture = 'fk_facture_fourn'; + $fk_facture2 = 'fk_facturefourn'; + $fk_payment = 'fk_paiementfourn'; + $total_tva = 'tva'; + $paymenttable = 'paiementfourn'; + $paymentfacturetable = 'paiementfourn_facturefourn'; + $invoicefieldref = 'ref'; } - if ( strpos($type, 'localtax') === 0 ) { - $f_rate = $type . '_tx'; + if (strpos($type, 'localtax') === 0) { + $f_rate = $type.'_tx'; } else { $f_rate = 'tva_tx'; } - $total_localtax1='total_localtax1'; - $total_localtax2='total_localtax2'; + $total_localtax1 = 'total_localtax1'; + $total_localtax2 = 'total_localtax2'; // CAS DES BIENS/PRODUITS // Define sql request - $sql=''; + $sql = ''; if (($direction == 'sell' && $conf->global->TAX_MODE_SELL_PRODUCT == 'invoice') || ($direction == 'buy' && $conf->global->TAX_MODE_BUY_PRODUCT == 'invoice')) { // Count on delivery date (use invoice date as delivery is unknown) $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; - $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; - $sql.= " d.date_start as date_start, d.date_end as date_end,"; - $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; - $sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; - $sql.= " 0 as payment_id, 0 as payment_amount"; - $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX."societe as s,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; - $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")"; - $sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)"; - else $sql.= " AND f.type IN (0,1,2,3,5)"; - $sql.= " AND f.rowid = d.".$fk_facture; - $sql.= " AND s.rowid = f.fk_soc"; + $sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; + $sql .= " d.date_start as date_start, d.date_end as date_end,"; + $sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; + $sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; + $sql .= " 0 as payment_id, 0 as payment_amount"; + $sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; + $sql .= " ".MAIN_DB_PREFIX."societe as s,"; + $sql .= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; + $sql .= " WHERE f.entity IN (".getEntity($invoicetable).")"; + $sql .= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) + if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql .= " AND f.type IN (0,1,2,5)"; + else $sql .= " AND f.type IN (0,1,2,3,5)"; + $sql .= " AND f.rowid = d.".$fk_facture; + $sql .= " AND s.rowid = f.fk_soc"; if ($y && $m) { - $sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND f.datef >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND f.datef <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND f.datef >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND f.datef <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(f.datef,'%m') > ".(($q-1)*3)." AND date_format(f.datef,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = 0"; // Limit to products - $sql.= " AND d.date_start is null AND d.date_end IS NULL)"; // enhance detection of products - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; - $sql.= " ORDER BY d.rowid, d.".$fk_facture; + if ($q) $sql .= " AND (date_format(f.datef,'%m') > ".(($q - 1) * 3)." AND date_format(f.datef,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = 0"; // Limit to products + $sql .= " AND d.date_start is null AND d.date_end IS NULL)"; // enhance detection of products + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; + $sql .= " ORDER BY d.rowid, d.".$fk_facture; } else { // Count on payments date $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; - $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; - $sql.= " d.date_start as date_start, d.date_end as date_end,"; - $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; - $sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; - $sql.= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,"; - $sql.= " pa.datep as datep"; - $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,"; - $sql.= " ".MAIN_DB_PREFIX.$paymenttable." as pa,"; - $sql.= " ".MAIN_DB_PREFIX."societe as s,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; - $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")"; - $sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)"; - else $sql.= " AND f.type IN (0,1,2,3,5)"; - $sql.= " AND f.rowid = d.".$fk_facture; - $sql.= " AND s.rowid = f.fk_soc"; - $sql.= " AND pf.".$fk_facture2." = f.rowid"; - $sql.= " AND pa.rowid = pf.".$fk_payment; + $sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; + $sql .= " d.date_start as date_start, d.date_end as date_end,"; + $sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; + $sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; + $sql .= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,"; + $sql .= " pa.datep as datep"; + $sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; + $sql .= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,"; + $sql .= " ".MAIN_DB_PREFIX.$paymenttable." as pa,"; + $sql .= " ".MAIN_DB_PREFIX."societe as s,"; + $sql .= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; + $sql .= " WHERE f.entity IN (".getEntity($invoicetable).")"; + $sql .= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) + if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql .= " AND f.type IN (0,1,2,5)"; + else $sql .= " AND f.type IN (0,1,2,3,5)"; + $sql .= " AND f.rowid = d.".$fk_facture; + $sql .= " AND s.rowid = f.fk_soc"; + $sql .= " AND pf.".$fk_facture2." = f.rowid"; + $sql .= " AND pa.rowid = pf.".$fk_payment; if ($y && $m) { - $sql.= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(pa.datep,'%m') > ".(($q-1)*3)." AND date_format(pa.datep,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND pa.datep >= '".$db->idate($date_start)."' AND pa.datep <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = 0"; // Limit to products - $sql.= " AND d.date_start is null AND d.date_end IS NULL)"; // enhance detection of products - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; - $sql.= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid"; + if ($q) $sql .= " AND (date_format(pa.datep,'%m') > ".(($q - 1) * 3)." AND date_format(pa.datep,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND pa.datep >= '".$db->idate($date_start)."' AND pa.datep <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = 0"; // Limit to products + $sql .= " AND d.date_start is null AND d.date_end IS NULL)"; // enhance detection of products + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; + $sql .= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid"; } - if (! $sql) return -1; + if (!$sql) return -1; if ($sql == 'TODO') return -2; if ($sql != 'TODO') { @@ -696,18 +696,18 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire if ($resql) { $rate = -1; - $oldrowid=''; - while($assoc = $db->fetch_array($resql)) + $oldrowid = ''; + while ($assoc = $db->fetch_array($resql)) { // Code to avoid warnings when array entry not defined - if (! isset($list[$assoc['rate']]['totalht'])) $list[$assoc['rate']]['totalht']=0; - if (! isset($list[$assoc['rate']]['vat'])) $list[$assoc['rate']]['vat']=0; - if (! isset($list[$assoc['rate']]['localtax1'])) $list[$assoc['rate']]['localtax1']=0; - if (! isset($list[$assoc['rate']]['localtax2'])) $list[$assoc['rate']]['localtax2']=0; + if (!isset($list[$assoc['rate']]['totalht'])) $list[$assoc['rate']]['totalht'] = 0; + if (!isset($list[$assoc['rate']]['vat'])) $list[$assoc['rate']]['vat'] = 0; + if (!isset($list[$assoc['rate']]['localtax1'])) $list[$assoc['rate']]['localtax1'] = 0; + if (!isset($list[$assoc['rate']]['localtax2'])) $list[$assoc['rate']]['localtax2'] = 0; if ($assoc['rowid'] != $oldrowid) // Si rupture sur d.rowid { - $oldrowid=$assoc['rowid']; + $oldrowid = $assoc['rowid']; $list[$assoc['rate']]['totalht'] += $assoc['total_ht']; $list[$assoc['rate']]['vat'] += $assoc['total_vat']; $list[$assoc['rate']]['localtax1'] += $assoc['total_localtax1']; @@ -754,90 +754,90 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire // CAS DES SERVICES // Define sql request - $sql=''; + $sql = ''; if (($direction == 'sell' && $conf->global->TAX_MODE_SELL_SERVICE == 'invoice') || ($direction == 'buy' && $conf->global->TAX_MODE_BUY_SERVICE == 'invoice')) { // Count on invoice date $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; - $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; - $sql.= " d.date_start as date_start, d.date_end as date_end,"; - $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; - $sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; - $sql.= " 0 as payment_id, 0 as payment_amount"; - $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX."societe as s,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; - $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")"; - $sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)"; - else $sql.= " AND f.type IN (0,1,2,3,5)"; - $sql.= " AND f.rowid = d.".$fk_facture; - $sql.= " AND s.rowid = f.fk_soc"; + $sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; + $sql .= " d.date_start as date_start, d.date_end as date_end,"; + $sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; + $sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; + $sql .= " 0 as payment_id, 0 as payment_amount"; + $sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; + $sql .= " ".MAIN_DB_PREFIX."societe as s,"; + $sql .= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; + $sql .= " WHERE f.entity IN (".getEntity($invoicetable).")"; + $sql .= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) + if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql .= " AND f.type IN (0,1,2,5)"; + else $sql .= " AND f.type IN (0,1,2,3,5)"; + $sql .= " AND f.rowid = d.".$fk_facture; + $sql .= " AND s.rowid = f.fk_soc"; if ($y && $m) { - $sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND f.datef >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND f.datef <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND f.datef >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND f.datef >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND f.datef <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(f.datef,'%m') > ".(($q-1)*3)." AND date_format(f.datef,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = 1"; // Limit to services - $sql.= " OR d.date_start is NOT null OR d.date_end IS NOT NULL)"; // enhance detection of service - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; - $sql.= " ORDER BY d.rowid, d.".$fk_facture; + if ($q) $sql .= " AND (date_format(f.datef,'%m') > ".(($q - 1) * 3)." AND date_format(f.datef,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = 1"; // Limit to services + $sql .= " OR d.date_start is NOT null OR d.date_end IS NOT NULL)"; // enhance detection of service + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; + $sql .= " ORDER BY d.rowid, d.".$fk_facture; } else { // Count on payments date $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; - $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; - $sql.= " d.date_start as date_start, d.date_end as date_end,"; - $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; - $sql.= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; - $sql.= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,"; - $sql.= " pa.datep as datep"; - $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,"; - $sql.= " ".MAIN_DB_PREFIX.$paymenttable." as pa,"; - $sql.= " ".MAIN_DB_PREFIX."societe as s,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; - $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")"; - $sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)"; - else $sql.= " AND f.type IN (0,1,2,3,5)"; - $sql.= " AND f.rowid = d.".$fk_facture; - $sql.= " AND s.rowid = f.fk_soc"; - $sql.= " AND pf.".$fk_facture2." = f.rowid"; - $sql.= " AND pa.rowid = pf.".$fk_payment; + $sql .= " d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; + $sql .= " d.date_start as date_start, d.date_end as date_end,"; + $sql .= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; + $sql .= " p.rowid as pid, p.ref as pref, p.fk_product_type as ptype,"; + $sql .= " pf.".$fk_payment." as payment_id, pf.amount as payment_amount,"; + $sql .= " pa.datep as datep"; + $sql .= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; + $sql .= " ".MAIN_DB_PREFIX.$paymentfacturetable." as pf,"; + $sql .= " ".MAIN_DB_PREFIX.$paymenttable." as pa,"; + $sql .= " ".MAIN_DB_PREFIX."societe as s,"; + $sql .= " ".MAIN_DB_PREFIX.$invoicedettable." as d"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid"; + $sql .= " WHERE f.entity IN (".getEntity($invoicetable).")"; + $sql .= " AND f.fk_statut in (1,2)"; // Paid (partially or completely) + if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql .= " AND f.type IN (0,1,2,5)"; + else $sql .= " AND f.type IN (0,1,2,3,5)"; + $sql .= " AND f.rowid = d.".$fk_facture; + $sql .= " AND s.rowid = f.fk_soc"; + $sql .= " AND pf.".$fk_facture2." = f.rowid"; + $sql .= " AND pa.rowid = pf.".$fk_payment; if ($y && $m) { - $sql.= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND pa.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND pa.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(pa.datep,'%m') > ".(($q-1)*3)." AND date_format(pa.datep,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND pa.datep >= '".$db->idate($date_start)."' AND pa.datep <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = 1"; // Limit to services - $sql.= " OR d.date_start is NOT null OR d.date_end IS NOT NULL)"; // enhance detection of service - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; - $sql.= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid"; + if ($q) $sql .= " AND (date_format(pa.datep,'%m') > ".(($q - 1) * 3)." AND date_format(pa.datep,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND pa.datep >= '".$db->idate($date_start)."' AND pa.datep <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = 1"; // Limit to services + $sql .= " OR d.date_start is NOT null OR d.date_end IS NOT NULL)"; // enhance detection of service + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.".$total_tva." <> 0)"; + $sql .= " ORDER BY d.rowid, d.".$fk_facture.", pf.rowid"; } - if (! $sql) + if (!$sql) { dol_syslog("Tax.lib.php::tax_by_rate no accountancy module enabled".$sql, LOG_ERR); - return -1; // -1 = Not accountancy module enabled + return -1; // -1 = Not accountancy module enabled } if ($sql == 'TODO') return -2; // -2 = Feature not yet available if ($sql != 'TODO') @@ -847,18 +847,18 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire if ($resql) { $rate = -1; - $oldrowid=''; - while($assoc = $db->fetch_array($resql)) + $oldrowid = ''; + while ($assoc = $db->fetch_array($resql)) { // Code to avoid warnings when array entry not defined - if (! isset($list[$assoc['rate']]['totalht'])) $list[$assoc['rate']]['totalht']=0; - if (! isset($list[$assoc['rate']]['vat'])) $list[$assoc['rate']]['vat']=0; - if (! isset($list[$assoc['rate']]['localtax1'])) $list[$assoc['rate']]['localtax1']=0; - if (! isset($list[$assoc['rate']]['localtax2'])) $list[$assoc['rate']]['localtax2']=0; + if (!isset($list[$assoc['rate']]['totalht'])) $list[$assoc['rate']]['totalht'] = 0; + if (!isset($list[$assoc['rate']]['vat'])) $list[$assoc['rate']]['vat'] = 0; + if (!isset($list[$assoc['rate']]['localtax1'])) $list[$assoc['rate']]['localtax1'] = 0; + if (!isset($list[$assoc['rate']]['localtax2'])) $list[$assoc['rate']]['localtax2'] = 0; if ($assoc['rowid'] != $oldrowid) // Si rupture sur d.rowid { - $oldrowid=$assoc['rowid']; + $oldrowid = $assoc['rowid']; $list[$assoc['rate']]['totalht'] += $assoc['total_ht']; $list[$assoc['rate']]['vat'] += $assoc['total_vat']; $list[$assoc['rate']]['localtax1'] += $assoc['total_localtax1']; @@ -907,40 +907,40 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire if ($direction == 'buy') // buy only for expense reports { // Define sql request - $sql=''; + $sql = ''; // Count on payments date $sql = "SELECT d.rowid, d.product_type as dtype, e.rowid as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.total_tva as total_vat, e.note_private as descr,"; - $sql .=" d.total_localtax1 as total_localtax1, d.total_localtax2 as total_localtax2, "; - $sql.= " e.date_debut as date_start, e.date_fin as date_end, e.fk_user_author,"; - $sql.= " e.ref as facnum, e.total_ttc as ftotal_ttc, e.date_create, d.fk_c_type_fees as type,"; - $sql.= " p.fk_bank as payment_id, p.amount as payment_amount, p.rowid as pid, e.ref as pref"; - $sql.= " FROM ".MAIN_DB_PREFIX."expensereport as e "; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."expensereport_det as d ON d.fk_expensereport = e.rowid "; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."payment_expensereport as p ON p.fk_expensereport = e.rowid "; - $sql.= " WHERE e.entity = " . $conf->entity; - $sql.= " AND e.fk_statut in (6)"; + $sql .= " d.total_localtax1 as total_localtax1, d.total_localtax2 as total_localtax2, "; + $sql .= " e.date_debut as date_start, e.date_fin as date_end, e.fk_user_author,"; + $sql .= " e.ref as facnum, e.total_ttc as ftotal_ttc, e.date_create, d.fk_c_type_fees as type,"; + $sql .= " p.fk_bank as payment_id, p.amount as payment_amount, p.rowid as pid, e.ref as pref"; + $sql .= " FROM ".MAIN_DB_PREFIX."expensereport as e "; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."expensereport_det as d ON d.fk_expensereport = e.rowid "; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."payment_expensereport as p ON p.fk_expensereport = e.rowid "; + $sql .= " WHERE e.entity = ".$conf->entity; + $sql .= " AND e.fk_statut in (6)"; if ($y && $m) { - $sql.= " AND p.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; - $sql.= " AND p.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; + $sql .= " AND p.datep >= '".$db->idate(dol_get_first_day($y, $m, false))."'"; + $sql .= " AND p.datep <= '".$db->idate(dol_get_last_day($y, $m, false))."'"; } elseif ($y) { - $sql.= " AND p.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; - $sql.= " AND p.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; + $sql .= " AND p.datep >= '".$db->idate(dol_get_first_day($y, 1, false))."'"; + $sql .= " AND p.datep <= '".$db->idate(dol_get_last_day($y, 12, false))."'"; } - if ($q) $sql.= " AND (date_format(p.datep,'%m') > ".(($q-1)*3)." AND date_format(p.datep,'%m') <= ".($q*3).")"; - if ($date_start && $date_end) $sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'"; - $sql.= " AND (d.product_type = -1"; - $sql.= " OR e.date_debut is NOT null OR e.date_fin IS NOT NULL)"; // enhance detection of service - if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql.= " AND (d.".$f_rate." <> 0 OR d.total_tva <> 0)"; - $sql.= " ORDER BY e.rowid"; + if ($q) $sql .= " AND (date_format(p.datep,'%m') > ".(($q - 1) * 3)." AND date_format(p.datep,'%m') <= ".($q * 3).")"; + if ($date_start && $date_end) $sql .= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'"; + $sql .= " AND (d.product_type = -1"; + $sql .= " OR e.date_debut is NOT null OR e.date_fin IS NOT NULL)"; // enhance detection of service + if (empty($conf->global->MAIN_INCLUDE_ZERO_VAT_IN_REPORTS)) $sql .= " AND (d.".$f_rate." <> 0 OR d.total_tva <> 0)"; + $sql .= " ORDER BY e.rowid"; - if (! $sql) + if (!$sql) { dol_syslog("Tax.lib.php::tax_by_rate no accountancy module enabled".$sql, LOG_ERR); - return -1; // -1 = Not accountancy module enabled + return -1; // -1 = Not accountancy module enabled } if ($sql == 'TODO') return -2; // -2 = Feature not yet available if ($sql != 'TODO') @@ -950,20 +950,20 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire if ($resql) { $rate = -1; - $oldrowid=''; - while($assoc = $db->fetch_array($resql)) + $oldrowid = ''; + while ($assoc = $db->fetch_array($resql)) { // Code to avoid warnings when array entry not defined - if (! isset($list[$assoc['rate']]['totalht'])) $list[$assoc['rate']]['totalht']=0; - if (! isset($list[$assoc['rate']]['vat'])) $list[$assoc['rate']]['vat']=0; - if (! isset($list[$assoc['rate']]['localtax1'])) $list[$assoc['rate']]['localtax1']=0; - if (! isset($list[$assoc['rate']]['localtax2'])) $list[$assoc['rate']]['localtax2']=0; + if (!isset($list[$assoc['rate']]['totalht'])) $list[$assoc['rate']]['totalht'] = 0; + if (!isset($list[$assoc['rate']]['vat'])) $list[$assoc['rate']]['vat'] = 0; + if (!isset($list[$assoc['rate']]['localtax1'])) $list[$assoc['rate']]['localtax1'] = 0; + if (!isset($list[$assoc['rate']]['localtax2'])) $list[$assoc['rate']]['localtax2'] = 0; if ($assoc['rowid'] != $oldrowid) // Si rupture sur d.rowid { - $oldrowid=$assoc['rowid']; + $oldrowid = $assoc['rowid']; $list[$assoc['rate']]['totalht'] += $assoc['total_ht']; - $list[$assoc['rate']]['vat'] += $assoc['total_vat']; + $list[$assoc['rate']]['vat'] += $assoc['total_vat']; $list[$assoc['rate']]['localtax1'] += $assoc['total_localtax1']; $list[$assoc['rate']]['localtax2'] += $assoc['total_localtax2']; } diff --git a/htdocs/core/lib/ticket.lib.php b/htdocs/core/lib/ticket.lib.php index fe7fb4ba5a7..e12531b3846 100644 --- a/htdocs/core/lib/ticket.lib.php +++ b/htdocs/core/lib/ticket.lib.php @@ -87,7 +87,7 @@ function ticket_prepare_head($object) $nbContact = count($object->liste_contact(-1, 'internal')) + count($object->liste_contact(-1, 'external')); $head[$h][0] = DOL_URL_ROOT.'/ticket/contact.php?track_id='.$object->track_id; $head[$h][1] = $langs->trans('ContactsAddresses'); - if ($nbContact > 0) $head[$h][1].= ''.$nbContact.''; + if ($nbContact > 0) $head[$h][1] .= ''.$nbContact.''; $head[$h][2] = 'contact'; $h++; } @@ -95,13 +95,13 @@ function ticket_prepare_head($object) complete_head_from_modules($conf, $langs, $object, $head, $h, 'ticket'); // Attached files - include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; - $upload_dir = $conf->ticket->dir_output . "/" . $object->ref; + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $upload_dir = $conf->ticket->dir_output."/".$object->ref; $nbFiles = count(dol_dir_list($upload_dir, 'files')); - $head[$h][0] = dol_buildpath('/ticket/document.php', 1) . '?id=' . $object->id; + $head[$h][0] = dol_buildpath('/ticket/document.php', 1).'?id='.$object->id; $head[$h][1] = $langs->trans("Documents"); if ($nbFiles > 0) { - $head[$h][1] .= '' . $nbFiles . ''; + $head[$h][1] .= ''.$nbFiles.''; } $head[$h][2] = 'tabTicketDocument'; @@ -218,39 +218,39 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $ // Define urllogo $width = 0; - if (! empty($conf->global->TICKET_SHOW_COMPANY_LOGO) || ! empty($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC)) { + if (!empty($conf->global->TICKET_SHOW_COMPANY_LOGO) || !empty($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC)) { // Print logo - if (! empty($conf->global->TICKET_SHOW_COMPANY_LOGO)) + if (!empty($conf->global->TICKET_SHOW_COMPANY_LOGO)) { - $urllogo = DOL_URL_ROOT . '/theme/common/login_logo.png'; + $urllogo = DOL_URL_ROOT.'/theme/common/login_logo.png'; - if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output . '/logos/thumbs/' . $mysoc->logo_small)) { - $urllogo = DOL_URL_ROOT . '/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file=' . urlencode('logos/thumbs/'.$mysoc->logo_small); + if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) { + $urllogo = DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode('logos/thumbs/'.$mysoc->logo_small); $width = 150; - } elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output . '/logos/' . $mysoc->logo)) { - $urllogo = DOL_URL_ROOT . '/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file=' . urlencode('logos/'.$mysoc->logo); + } elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo)) { + $urllogo = DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode('logos/'.$mysoc->logo); $width = 150; - } elseif (is_readable(DOL_DOCUMENT_ROOT . '/theme/dolibarr_logo.png')) { - $urllogo = DOL_URL_ROOT . '/theme/dolibarr_logo.png'; + } elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.png')) { + $urllogo = DOL_URL_ROOT.'/theme/dolibarr_logo.png'; } } } print '
'; // Output html code for logo - if ($urllogo || ! empty($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC)) + if ($urllogo || !empty($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC)) { print '
'; print '
'; if ($urllogo) { - print ''; + print ''; print ''; print ''; } - if (! empty($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC)) { - print '
' . ($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC ? $conf->global->TICKET_PUBLIC_INTERFACE_TOPIC : $langs->trans("TicketSystem")) . ''; + if (!empty($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC)) { + print '
'.($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC ? $conf->global->TICKET_PUBLIC_INTERFACE_TOPIC : $langs->trans("TicketSystem")).''; } print '
'; if (empty($conf->global->MAIN_HIDE_POWERED_BY)) { @@ -721,64 +721,64 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no if ($user->rights->agenda->allactions->create || (($actionstatic->authorid == $user->id || $actionstatic->userownerid == $user->id) && $user->rights->agenda->myactions->create)) { - $out.=''; + $out .= ''; } - $out.=''; + $out .= ''; // Date - $out.=' '; - $out.=dol_print_date($histo[$key]['datestart'], 'dayhour'); + $out .= ' '; + $out .= dol_print_date($histo[$key]['datestart'], 'dayhour'); if ($histo[$key]['dateend'] && $histo[$key]['dateend'] != $histo[$key]['datestart']) { - $tmpa=dol_getdate($histo[$key]['datestart'], true); - $tmpb=dol_getdate($histo[$key]['dateend'], true); - if ($tmpa['mday'] == $tmpb['mday'] && $tmpa['mon'] == $tmpb['mon'] && $tmpa['year'] == $tmpb['year']) $out.='-'.dol_print_date($histo[$key]['dateend'], 'hour'); - else $out.='-'.dol_print_date($histo[$key]['dateend'], 'dayhour'); + $tmpa = dol_getdate($histo[$key]['datestart'], true); + $tmpb = dol_getdate($histo[$key]['dateend'], true); + if ($tmpa['mday'] == $tmpb['mday'] && $tmpa['mon'] == $tmpb['mon'] && $tmpa['year'] == $tmpb['year']) $out .= '-'.dol_print_date($histo[$key]['dateend'], 'hour'); + else $out .= '-'.dol_print_date($histo[$key]['dateend'], 'dayhour'); } - $late=0; - if ($histo[$key]['percent'] == 0 && $histo[$key]['datestart'] && $histo[$key]['datestart'] < ($now - $delay_warning)) $late=1; - if ($histo[$key]['percent'] == 0 && ! $histo[$key]['datestart'] && $histo[$key]['dateend'] && $histo[$key]['datestart'] < ($now - $delay_warning)) $late=1; - if ($histo[$key]['percent'] > 0 && $histo[$key]['percent'] < 100 && $histo[$key]['dateend'] && $histo[$key]['dateend'] < ($now - $delay_warning)) $late=1; - if ($histo[$key]['percent'] > 0 && $histo[$key]['percent'] < 100 && ! $histo[$key]['dateend'] && $histo[$key]['datestart'] && $histo[$key]['datestart'] < ($now - $delay_warning)) $late=1; - if ($late) $out.=img_warning($langs->trans("Late")).' '; - $out.="\n"; + $late = 0; + if ($histo[$key]['percent'] == 0 && $histo[$key]['datestart'] && $histo[$key]['datestart'] < ($now - $delay_warning)) $late = 1; + if ($histo[$key]['percent'] == 0 && !$histo[$key]['datestart'] && $histo[$key]['dateend'] && $histo[$key]['datestart'] < ($now - $delay_warning)) $late = 1; + if ($histo[$key]['percent'] > 0 && $histo[$key]['percent'] < 100 && $histo[$key]['dateend'] && $histo[$key]['dateend'] < ($now - $delay_warning)) $late = 1; + if ($histo[$key]['percent'] > 0 && $histo[$key]['percent'] < 100 && !$histo[$key]['dateend'] && $histo[$key]['datestart'] && $histo[$key]['datestart'] < ($now - $delay_warning)) $late = 1; + if ($late) $out .= img_warning($langs->trans("Late")).' '; + $out .= "\n"; // Ref - $out.='

'; + $out .= '

'; // Author of event - $out.=''; + $out .= ''; if ($histo[$key]['userid'] > 0) { - if(!isset($userGetNomUrlCache[$histo[$key]['userid']])){ // is in cache ? + if (!isset($userGetNomUrlCache[$histo[$key]['userid']])) { // is in cache ? $userstatic->fetch($histo[$key]['userid']); $userGetNomUrlCache[$histo[$key]['userid']] = $userstatic->getNomUrl(-1, '', 0, 0, 16, 0, 'firstelselast', ''); } - $out.= $userGetNomUrlCache[$histo[$key]['userid']]; + $out .= $userGetNomUrlCache[$histo[$key]['userid']]; } - $out.=''; + $out .= ''; // Title $out .= ' '; - if($actionstatic->code == 'TICKET_MSG') { + if ($actionstatic->code == 'TICKET_MSG') { $out .= $langs->trans('TicketNewMessage'); } - elseif($actionstatic->code == 'TICKET_MSG_PRIVATE') { + elseif ($actionstatic->code == 'TICKET_MSG_PRIVATE') { $out .= $langs->trans('TicketNewMessage').' ('.$langs->trans('Private').')'; - }else{ + } else { if (isset($histo[$key]['type']) && $histo[$key]['type'] == 'action') { - $transcode = $langs->trans("Action" . $histo[$key]['acode']); - $libelle = ($transcode != "Action" . $histo[$key]['acode'] ? $transcode : $histo[$key]['alabel']); + $transcode = $langs->trans("Action".$histo[$key]['acode']); + $libelle = ($transcode != "Action".$histo[$key]['acode'] ? $transcode : $histo[$key]['alabel']); $libelle = $histo[$key]['note']; $actionstatic->id = $histo[$key]['id']; $out .= dol_trunc($libelle, 120); } if (isset($histo[$key]['type']) && $histo[$key]['type'] == 'mailing') { - $out .= '' . img_object($langs->trans("ShowEMailing"), "email") . ' '; - $transcode = $langs->trans("Action" . $histo[$key]['acode']); - $libelle = ($transcode != "Action" . $histo[$key]['acode'] ? $transcode : 'Send mass mailing'); + $out .= ''.img_object($langs->trans("ShowEMailing"), "email").' '; + $transcode = $langs->trans("Action".$histo[$key]['acode']); + $libelle = ($transcode != "Action".$histo[$key]['acode'] ? $transcode : 'Send mass mailing'); $out .= dol_trunc($libelle, 120); } } @@ -835,25 +835,25 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no if ($result > 0) { $footer .= $contact->getNomUrl(1); if (isset($histo[$key]['acode']) && $histo[$key]['acode'] == 'AC_TEL') { - if (! empty($contact->phone_pro)) - $footer .= '(' . dol_print_phone($contact->phone_pro) . ')'; + if (!empty($contact->phone_pro)) + $footer .= '('.dol_print_phone($contact->phone_pro).')'; } } } - $documents = getTicketActionCommEcmList($actionstatic) ; - if(!empty($documents)) + $documents = getTicketActionCommEcmList($actionstatic); + if (!empty($documents)) { - $footer.= ''; } @@ -881,19 +881,19 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no - if(!empty($footer)){ - $out.=''; + if (!empty($footer)) { + $out .= ''; } - $out.='

'."\n"; // end timeline-item + $out .= '
'."\n"; // end timeline-item - $out.=''; - $out.=''; + $out .= ''; + $out .= ''; $i++; } - $out.="\n"; + $out .= "\n"; } @@ -915,12 +915,12 @@ function getTicketActionCommEcmList($object) $documents = array(); $sql = 'SELECT ecm.rowid as id, ecm.src_object_type, ecm.src_object_id, ecm.filepath, ecm.filename'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'ecm_files ecm'; - $sql.= ' WHERE ecm.filepath = \'agenda/'.$object->id.'\''; + $sql .= ' FROM '.MAIN_DB_PREFIX.'ecm_files ecm'; + $sql .= ' WHERE ecm.filepath = \'agenda/'.$object->id.'\''; //$sql.= ' ecm.src_object_type = \''.$object->element.'\' AND ecm.src_object_id = '.$object->id; // Actually upload file doesn't add type - $sql.= ' ORDER BY ecm.position ASC'; + $sql .= ' ORDER BY ecm.position ASC'; - $resql= $db->query($sql); + $resql = $db->query($sql); if ($resql) { if ($db->num_rows($resql)) { while ($obj = $db->fetch_object($resql)) { diff --git a/htdocs/core/lib/treeview.lib.php b/htdocs/core/lib/treeview.lib.php index cb4088c6bf2..0dcb6e8242d 100644 --- a/htdocs/core/lib/treeview.lib.php +++ b/htdocs/core/lib/treeview.lib.php @@ -35,19 +35,19 @@ */ function tree_showpad(&$fulltree, $key, $silent = 0) { - $pos=1; + $pos = 1; // Loop on each pos, because we will output an img for each pos while ($pos <= $fulltree[$key]['level'] && $fulltree[$key]['level'] > 0) { // Process for column $pos - $atleastoneofthislevelafter=0; - $nbofdirinsub=0; - $nbofdocinsub=0; - $found=0; + $atleastoneofthislevelafter = 0; + $nbofdirinsub = 0; + $nbofdocinsub = 0; + $found = 0; //print 'x'.$key; - foreach($fulltree as $key2 => $val2) + foreach ($fulltree as $key2 => $val2) { //print "x".$pos." ".$key2." ".$found." ".$fulltree[$key2]['level']; if ($found == 1) // We are after the entry to show @@ -55,11 +55,11 @@ function tree_showpad(&$fulltree, $key, $silent = 0) if ($fulltree[$key2]['level'] > $pos) { $nbofdirinsub++; - if (isset($fulltree[$key2]['cachenbofdoc']) && $fulltree[$key2]['cachenbofdoc'] > 0) $nbofdocinsub+=$fulltree[$key2]['cachenbofdoc']; + if (isset($fulltree[$key2]['cachenbofdoc']) && $fulltree[$key2]['cachenbofdoc'] > 0) $nbofdocinsub += $fulltree[$key2]['cachenbofdoc']; } if ($fulltree[$key2]['level'] == $pos) { - $atleastoneofthislevelafter=1; + $atleastoneofthislevelafter = 1; } if ($fulltree[$key2]['level'] <= $pos) { @@ -68,12 +68,12 @@ function tree_showpad(&$fulltree, $key, $silent = 0) } if ($key2 == $key) // We found ourself, so now every lower level will be counted { - $found=1; + $found = 1; } } //print $atleastoneofthislevelafter; - if (! $silent) + if (!$silent) { if ($atleastoneofthislevelafter) { @@ -89,7 +89,7 @@ function tree_showpad(&$fulltree, $key, $silent = 0) $pos++; } - return array($atleastoneofthislevelafter,$nbofdirinsub,$nbofdocinsub); + return array($atleastoneofthislevelafter, $nbofdirinsub, $nbofdocinsub); } @@ -117,7 +117,7 @@ function tree_recur($tab, $pere, $rang, $iddivjstree = 'iddivjstree', $donoreset { global $tree_recur_alreadyadded, $menu_handler_to_search; - if ($rang == 0 && empty($donoresetalreadyloaded)) $tree_recur_alreadyadded=array(); + if ($rang == 0 && empty($donoresetalreadyloaded)) $tree_recur_alreadyadded = array(); if ($rang == 0) { @@ -141,30 +141,30 @@ function tree_recur($tab, $pere, $rang, $iddivjstree = 'iddivjstree', $donoreset if ($rang > 50) { - return; // Protect against infinite loop. Max 50 depth + return; // Protect against infinite loop. Max 50 depth } //ballayage du tableau - $sizeoftab=count($tab); - $ulprinted=0; - for ($x=0; $x < $sizeoftab; $x++) + $sizeoftab = count($tab); + $ulprinted = 0; + for ($x = 0; $x < $sizeoftab; $x++) { //var_dump($tab[$x]);exit; // If an element has $pere for parent if ($tab[$x]['fk_menu'] != -1 && $tab[$x]['fk_menu'] == $pere['rowid']) { //print 'rang='.$rang.'-x='.$x." rowid=".$tab[$x]['rowid']." tab[x]['fk_leftmenu'] = ".$tab[$x]['fk_leftmenu']." leftmenu pere = ".$pere['leftmenu']."
\n"; - if (empty($ulprinted) && ! empty($pere['rowid'])) + if (empty($ulprinted) && !empty($pere['rowid'])) { - if (! empty($tree_recur_alreadyadded[$tab[$x]['rowid']])) + if (!empty($tree_recur_alreadyadded[$tab[$x]['rowid']])) { dol_syslog('Error, record with id '.$tab[$x]['rowid'].' seems to be a child of record with id '.$pere['rowid'].' but it was already output. Complete field "leftmenu" and "mainmenu" on ALL records to avoid ambiguity.', LOG_WARNING); continue; } - print ''; $ulprinted++; + print ''; $ulprinted++; } - print "\n".'
  • '; + print "\n".'
  • '; if ($showfk) { print ''; print ''; print ''; @@ -52,7 +52,7 @@ print ''; if (count($linkedObjectBlock) > 1) { ?> - + diff --git a/htdocs/ecm/ajax/ecmdatabase.php b/htdocs/ecm/ajax/ecmdatabase.php index 754f68a9930..9f4820cd723 100644 --- a/htdocs/ecm/ajax/ecmdatabase.php +++ b/htdocs/ecm/ajax/ecmdatabase.php @@ -20,15 +20,15 @@ * \brief File to build ecm database */ -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disables token renewal -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); -if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); +if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disables token renewal +if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); +if (!defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -$action = GETPOST('action', 'alpha'); +$action = GETPOST('action', 'alpha'); $element = GETPOST('element', 'alpha'); /* @@ -40,13 +40,13 @@ top_httphead(); //print ''."\n"; // Load original field value -if (isset($action) && ! empty($action)) +if (isset($action) && !empty($action)) { - $error=0; + $error = 0; - if ($action == 'build' && ! empty($element)) + if ($action == 'build' && !empty($element)) { - require_once DOL_DOCUMENT_ROOT . '/ecm/class/ecmdirectory.class.php'; + require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; $ecmdirstatic = new EcmDirectory($db); $ecmdirtmp = new EcmDirectory($db); @@ -54,57 +54,57 @@ if (isset($action) && ! empty($action)) // This part of code is same than into file index.php for action refreshmanual TODO Remove duplicate clearstatcache(); - $diroutputslash=str_replace('\\', '/', $conf->$element->dir_output); - $diroutputslash.='/'; + $diroutputslash = str_replace('\\', '/', $conf->$element->dir_output); + $diroutputslash .= '/'; // Scan directory tree on disk - $disktree=dol_dir_list($conf->$element->dir_output, 'directories', 1, '', array('^temp$'), '', '', 0); + $disktree = dol_dir_list($conf->$element->dir_output, 'directories', 1, '', array('^temp$'), '', '', 0); // Scan directory tree in database - $sqltree=$ecmdirstatic->get_full_arbo(0); + $sqltree = $ecmdirstatic->get_full_arbo(0); - $adirwascreated=0; + $adirwascreated = 0; // Now we compare both trees to complete missing trees into database //var_dump($disktree); //var_dump($sqltree); - foreach($disktree as $dirdesc) // Loop on tree onto disk + foreach ($disktree as $dirdesc) // Loop on tree onto disk { set_time_limit(0); // To force restarts the timeout counter from zero - $dirisindatabase=0; - foreach($sqltree as $dirsqldesc) + $dirisindatabase = 0; + foreach ($sqltree as $dirsqldesc) { if ($conf->$element->dir_output.'/'.$dirsqldesc['fullrelativename'] == $dirdesc['fullname']) { - $dirisindatabase=1; + $dirisindatabase = 1; break; } } - if (! $dirisindatabase) + if (!$dirisindatabase) { - $txt="Directory found on disk ".$dirdesc['fullname'].", not found into database so we add it"; + $txt = "Directory found on disk ".$dirdesc['fullname'].", not found into database so we add it"; dol_syslog($txt); // We must first find the fk_parent of directory to create $dirdesc['fullname'] - $fk_parent=-1; - $relativepathmissing=str_replace($diroutputslash, '', $dirdesc['fullname']); - $relativepathtosearchparent=$relativepathmissing; + $fk_parent = -1; + $relativepathmissing = str_replace($diroutputslash, '', $dirdesc['fullname']); + $relativepathtosearchparent = $relativepathmissing; //dol_syslog("Try to find parent id for directory ".$relativepathtosearchparent); if (preg_match('/\//', $relativepathtosearchparent)) //while (preg_match('/\//',$relativepathtosearchparent)) { - $relativepathtosearchparent=preg_replace('/\/[^\/]*$/', '', $relativepathtosearchparent); - $txt="Is relative parent path ".$relativepathtosearchparent." for ".$relativepathmissing." found in sql tree ?"; + $relativepathtosearchparent = preg_replace('/\/[^\/]*$/', '', $relativepathtosearchparent); + $txt = "Is relative parent path ".$relativepathtosearchparent." for ".$relativepathmissing." found in sql tree ?"; dol_syslog($txt); //print $txt." -> "; - $parentdirisindatabase=0; - foreach($sqltree as $dirsqldesc) + $parentdirisindatabase = 0; + foreach ($sqltree as $dirsqldesc) { if ($dirsqldesc['fullrelativename'] == $relativepathtosearchparent) { - $parentdirisindatabase=$dirsqldesc['id']; + $parentdirisindatabase = $dirsqldesc['id']; break; } } @@ -112,7 +112,7 @@ if (isset($action) && ! empty($action)) { dol_syslog("Yes with id ".$parentdirisindatabase); //print "Yes with id ".$parentdirisindatabase."
    \n"; - $fk_parent=$parentdirisindatabase; + $fk_parent = $parentdirisindatabase; //break; // We found parent, we can stop the while loop } else @@ -124,7 +124,7 @@ if (isset($action) && ! empty($action)) else { dol_syslog("Parent is root"); - $fk_parent=0; // Parent is root + $fk_parent = 0; // Parent is root } if ($fk_parent >= 0) @@ -134,20 +134,20 @@ if (isset($action) && ! empty($action)) $ecmdirtmp->description = ''; $ecmdirtmp->fk_parent = $fk_parent; - $txt="We create directory ".$ecmdirtmp->label." with parent ".$fk_parent; + $txt = "We create directory ".$ecmdirtmp->label." with parent ".$fk_parent; dol_syslog($txt); //print $txt."
    \n"; $id = $ecmdirtmp->create($user); if ($id > 0) { - $newdirsql=array('id'=>$id, + $newdirsql = array('id'=>$id, 'id_mere'=>$ecmdirtmp->fk_parent, 'label'=>$ecmdirtmp->label, 'description'=>$ecmdirtmp->description, 'fullrelativename'=>$relativepathmissing); - $sqltree[]=$newdirsql; // We complete fulltree for following loops + $sqltree[] = $newdirsql; // We complete fulltree for following loops //var_dump($sqltree); - $adirwascreated=1; + $adirwascreated = 1; } else { @@ -155,7 +155,7 @@ if (isset($action) && ! empty($action)) } } else { - $txt="Parent of ".$dirdesc['fullname']." not found"; + $txt = "Parent of ".$dirdesc['fullname']." not found"; dol_syslog($txt); //print $txt."
    \n"; } @@ -163,19 +163,19 @@ if (isset($action) && ! empty($action)) } // Loop now on each sql tree to check if dir exists - foreach($sqltree as $dirdesc) // Loop on each sqltree to check dir is on disk + foreach ($sqltree as $dirdesc) // Loop on each sqltree to check dir is on disk { - $dirtotest=$conf->$element->dir_output.'/'.$dirdesc['fullrelativename']; - if (! dol_is_dir($dirtotest)) + $dirtotest = $conf->$element->dir_output.'/'.$dirdesc['fullrelativename']; + if (!dol_is_dir($dirtotest)) { - $mesg.=$dirtotest." not found onto disk. We delete from database dir with id=".$dirdesc['id']."
    \n"; - $ecmdirtmp->id=$dirdesc['id']; + $mesg .= $dirtotest." not found onto disk. We delete from database dir with id=".$dirdesc['id']."
    \n"; + $ecmdirtmp->id = $dirdesc['id']; $ecmdirtmp->delete($user, 'databaseonly'); //exit; } } - $sql="UPDATE ".MAIN_DB_PREFIX."ecm_directories set cachenbofdoc = -1 WHERE cachenbofdoc < 0"; // If pb into cahce counting, we set to value -1 = "unknown" + $sql = "UPDATE ".MAIN_DB_PREFIX."ecm_directories set cachenbofdoc = -1 WHERE cachenbofdoc < 0"; // If pb into cahce counting, we set to value -1 = "unknown" dol_syslog("sql = ".$sql); $db->query($sql); } diff --git a/htdocs/ecm/class/ecmdirectory.class.php b/htdocs/ecm/class/ecmdirectory.class.php index 7471b3d30a4..3bddd70bfaa 100644 --- a/htdocs/ecm/class/ecmdirectory.class.php +++ b/htdocs/ecm/class/ecmdirectory.class.php @@ -30,7 +30,7 @@ class EcmDirectory // extends CommonObject /** * @var string ID to identify managed object */ - public $element='ecm_directories'; + public $element = 'ecm_directories'; /** * @var string Name of table without prefix where object is stored @@ -62,7 +62,7 @@ class EcmDirectory // extends CommonObject */ public $description; - public $cachenbofdoc=-1; // By default cache initialized with value 'not calculated' + public $cachenbofdoc = -1; // By default cache initialized with value 'not calculated' public $date_c; public $date_m; @@ -81,11 +81,11 @@ class EcmDirectory // extends CommonObject */ public $ref; - public $cats=array(); - public $motherof=array(); + public $cats = array(); + public $motherof = array(); - public $forbiddenchars = array('<','>',':','/','\\','?','*','|','"'); - public $forbiddencharsdir = array('<','>',':','?','*','|','"'); + public $forbiddenchars = array('<', '>', ':', '/', '\\', '?', '*', '|', '"'); + public $forbiddencharsdir = array('<', '>', ':', '?', '*', '|', '"'); public $full_arbo_loaded; @@ -122,46 +122,46 @@ class EcmDirectory // extends CommonObject { global $conf, $langs; - $error=0; - $now=dol_now(); + $error = 0; + $now = dol_now(); // Clean parameters - $this->label=dol_sanitizeFileName(trim($this->label)); - $this->fk_parent=trim($this->fk_parent); - $this->description=trim($this->description); - $this->date_c=$now; - $this->fk_user_c=$user->id; - if ($this->fk_parent <= 0) $this->fk_parent=0; + $this->label = dol_sanitizeFileName(trim($this->label)); + $this->fk_parent = trim($this->fk_parent); + $this->description = trim($this->description); + $this->date_c = $now; + $this->fk_user_c = $user->id; + if ($this->fk_parent <= 0) $this->fk_parent = 0; // Check if same directory does not exists with this name - $relativepath=$this->label; + $relativepath = $this->label; if ($this->fk_parent) { $parent = new EcmDirectory($this->db); $parent->fetch($this->fk_parent); - $relativepath=$parent->getRelativePath().$relativepath; + $relativepath = $parent->getRelativePath().$relativepath; } - $relativepath=preg_replace('/([\/])+/i', '/', $relativepath); // Avoid duplicate / or \ + $relativepath = preg_replace('/([\/])+/i', '/', $relativepath); // Avoid duplicate / or \ //print $relativepath.'
    '; $cat = new EcmDirectory($this->db); $cate_arbo = $cat->get_full_arbo(1); - $pathfound=0; + $pathfound = 0; foreach ($cate_arbo as $key => $categ) { - $path=str_replace($this->forbiddencharsdir, '_', $categ['fullrelativename']); + $path = str_replace($this->forbiddencharsdir, '_', $categ['fullrelativename']); //print $relativepath.' - '.$path.'
    '; if ($path == $relativepath) { - $pathfound=1; + $pathfound = 1; break; } } if ($pathfound) { - $this->error="ErrorDirAlreadyExists"; + $this->error = "ErrorDirAlreadyExists"; dol_syslog(get_class($this)."::create ".$this->error, LOG_WARNING); return -1; } @@ -171,39 +171,39 @@ class EcmDirectory // extends CommonObject // Insert request $sql = "INSERT INTO ".MAIN_DB_PREFIX."ecm_directories("; - $sql.= "label,"; - $sql.= "entity,"; - $sql.= "fk_parent,"; - $sql.= "description,"; - $sql.= "cachenbofdoc,"; - $sql.= "date_c,"; - $sql.= "fk_user_c"; - $sql.= ") VALUES ("; - $sql.= " '".$this->db->escape($this->label)."',"; - $sql.= " '".$this->db->escape($conf->entity)."',"; - $sql.= " '".$this->db->escape($this->fk_parent)."',"; - $sql.= " '".$this->db->escape($this->description)."',"; - $sql.= " ".$this->cachenbofdoc.","; - $sql.= " '".$this->db->idate($this->date_c)."',"; - $sql.= " '".$this->db->escape($this->fk_user_c)."'"; - $sql.= ")"; + $sql .= "label,"; + $sql .= "entity,"; + $sql .= "fk_parent,"; + $sql .= "description,"; + $sql .= "cachenbofdoc,"; + $sql .= "date_c,"; + $sql .= "fk_user_c"; + $sql .= ") VALUES ("; + $sql .= " '".$this->db->escape($this->label)."',"; + $sql .= " '".$this->db->escape($conf->entity)."',"; + $sql .= " '".$this->db->escape($this->fk_parent)."',"; + $sql .= " '".$this->db->escape($this->description)."',"; + $sql .= " ".$this->cachenbofdoc.","; + $sql .= " '".$this->db->idate($this->date_c)."',"; + $sql .= " '".$this->db->escape($this->fk_user_c)."'"; + $sql .= ")"; dol_syslog(get_class($this)."::create", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."ecm_directories"); - $dir=$conf->ecm->dir_output.'/'.$this->getRelativePath(); - $result=dol_mkdir($dir); - if ($result < 0) { $error++; $this->error="ErrorFailedToCreateDir"; } + $dir = $conf->ecm->dir_output.'/'.$this->getRelativePath(); + $result = dol_mkdir($dir); + if ($result < 0) { $error++; $this->error = "ErrorFailedToCreateDir"; } // Call trigger - $result=$this->call_trigger('MYECMDIR_CREATE', $user); + $result = $this->call_trigger('MYECMDIR_CREATE', $user); if ($result < 0) { $error++; } // End call triggers - if (! $error) + if (!$error) { $this->db->commit(); return $this->id; @@ -216,7 +216,7 @@ class EcmDirectory // extends CommonObject } else { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); $this->db->rollback(); return -1; } @@ -234,12 +234,12 @@ class EcmDirectory // extends CommonObject { global $conf, $langs; - $error=0; + $error = 0; // Clean parameters - $this->label=trim($this->label); - $this->fk_parent=trim($this->fk_parent); - $this->description=trim($this->description); + $this->label = trim($this->label); + $this->fk_parent = trim($this->fk_parent); + $this->description = trim($this->description); // Check parameters // Put here code to add control on parameters values @@ -248,28 +248,28 @@ class EcmDirectory // extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."ecm_directories SET"; - $sql.= " label='".$this->db->escape($this->label)."',"; - $sql.= " fk_parent='".$this->db->escape($this->fk_parent)."',"; - $sql.= " description='".$this->db->escape($this->description)."'"; - $sql.= " WHERE rowid=".$this->id; + $sql .= " label='".$this->db->escape($this->label)."',"; + $sql .= " fk_parent='".$this->db->escape($this->fk_parent)."',"; + $sql .= " description='".$this->db->escape($this->description)."'"; + $sql .= " WHERE rowid=".$this->id; dol_syslog(get_class($this)."::update", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) + if (!$resql) { $error++; - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); } - if (! $error && ! $notrigger) + if (!$error && !$notrigger) { // Call trigger - $result=$this->call_trigger('MYECMDIR_MODIFY', $user); + $result = $this->call_trigger('MYECMDIR_MODIFY', $user); if ($result < 0) { $error++; } // End call triggers } - if (! $error) + if (!$error) { $this->db->commit(); return 1; @@ -292,15 +292,15 @@ class EcmDirectory // extends CommonObject { // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."ecm_directories SET"; - if (preg_match('/[0-9]+/', $value)) $sql.= " cachenbofdoc = ".(int) $value; - else $sql.= " cachenbofdoc = cachenbofdoc ".$value." 1"; - $sql.= " WHERE rowid = ".$this->id; + if (preg_match('/[0-9]+/', $value)) $sql .= " cachenbofdoc = ".(int) $value; + else $sql .= " cachenbofdoc = cachenbofdoc ".$value." 1"; + $sql .= " WHERE rowid = ".$this->id; dol_syslog(get_class($this)."::changeNbOfFiles", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) + if (!$resql) { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } else @@ -323,20 +323,20 @@ class EcmDirectory // extends CommonObject public function fetch($id) { $sql = "SELECT"; - $sql.= " t.rowid,"; - $sql.= " t.label,"; - $sql.= " t.fk_parent,"; - $sql.= " t.description,"; - $sql.= " t.cachenbofdoc,"; - $sql.= " t.fk_user_c,"; - $sql.= " t.fk_user_m,"; - $sql.= " t.date_c as date_c,"; - $sql.= " t.date_m as date_m"; - $sql.= " FROM ".MAIN_DB_PREFIX."ecm_directories as t"; - $sql.= " WHERE t.rowid = ".$id; + $sql .= " t.rowid,"; + $sql .= " t.label,"; + $sql .= " t.fk_parent,"; + $sql .= " t.description,"; + $sql .= " t.cachenbofdoc,"; + $sql .= " t.fk_user_c,"; + $sql .= " t.fk_user_m,"; + $sql .= " t.date_c as date_c,"; + $sql .= " t.date_m as date_m"; + $sql .= " FROM ".MAIN_DB_PREFIX."ecm_directories as t"; + $sql .= " WHERE t.rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $obj = $this->db->fetch_object($resql); @@ -357,11 +357,11 @@ class EcmDirectory // extends CommonObject $this->db->free($resql); - return $obj?1:0; + return $obj ? 1 : 0; } else { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } } @@ -380,29 +380,29 @@ class EcmDirectory // extends CommonObject global $conf, $langs; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $error=0; + $error = 0; - if ($mode != 'databaseonly') $relativepath=$this->getRelativePath(1); // Ex: dir1/dir2/dir3 + if ($mode != 'databaseonly') $relativepath = $this->getRelativePath(1); // Ex: dir1/dir2/dir3 - dol_syslog(get_class($this)."::delete remove directory id=".$this->id." mode=".$mode.(($mode == 'databaseonly')?'':' relativepath='.$relativepath)); + dol_syslog(get_class($this)."::delete remove directory id=".$this->id." mode=".$mode.(($mode == 'databaseonly') ? '' : ' relativepath='.$relativepath)); $this->db->begin(); $sql = "DELETE FROM ".MAIN_DB_PREFIX."ecm_directories"; - $sql.= " WHERE rowid=".$this->id; + $sql .= " WHERE rowid=".$this->id; dol_syslog(get_class($this)."::delete", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) + if (!$resql) { $this->db->rollback(); - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -2; } else { // Call trigger - $result=$this->call_trigger('MYECMDIR_DELETE', $user); + $result = $this->call_trigger('MYECMDIR_DELETE', $user); if ($result < 0) { $this->db->rollback(); @@ -413,30 +413,30 @@ class EcmDirectory // extends CommonObject if ($mode != 'databaseonly') { - $file = $conf->ecm->dir_output . "/" . $relativepath; + $file = $conf->ecm->dir_output."/".$relativepath; if ($deletedirrecursive) { - $result=@dol_delete_dir_recursive($file, 0, 0); + $result = @dol_delete_dir_recursive($file, 0, 0); } else { - $result=@dol_delete_dir($file, 0); + $result = @dol_delete_dir($file, 0); } } - if ($result || ! @is_dir(dol_osencode($file))) + if ($result || !@is_dir(dol_osencode($file))) { $this->db->commit(); } else { - $this->error='ErrorFailToDeleteDir'; + $this->error = 'ErrorFailToDeleteDir'; dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR); $this->db->rollback(); $error++; } - if (! $error) return 1; + if (!$error) return 1; else return -1; } @@ -450,11 +450,11 @@ class EcmDirectory // extends CommonObject */ public function initAsSpecimen() { - $this->id=0; + $this->id = 0; - $this->label='MyDirectory'; - $this->fk_parent='0'; - $this->description='This is a directory'; + $this->label = 'MyDirectory'; + $this->fk_parent = '0'; + $this->description = 'This is a directory'; } @@ -472,24 +472,24 @@ class EcmDirectory // extends CommonObject { global $langs; - $result=''; + $result = ''; //$newref=str_replace('_',' ',$this->ref); - $newref=$this->ref; - $label=$langs->trans("ShowECMSection").': '.$newref; - $linkclose='"'.($more?' '.$more:'').' title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">'; + $newref = $this->ref; + $label = $langs->trans("ShowECMSection").': '.$newref; + $linkclose = '"'.($more ? ' '.$more : '').' title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">'; $linkstart = 'picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); - if ($withpicto != 2) $result.= ($max?dol_trunc($newref, $max, 'middle'):$newref); + 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 != 2) $result .= ($max ?dol_trunc($newref, $max, 'middle') : $newref); $result .= $linkend; return $result; @@ -505,17 +505,17 @@ class EcmDirectory // extends CommonObject { $this->get_full_arbo($force); - $ret=''; - $idtosearch=$this->id; - $i=0; + $ret = ''; + $idtosearch = $this->id; + $i = 0; do { // Get index cursor in this->cats for id_mere - $cursorindex=-1; + $cursorindex = -1; foreach ($this->cats as $key => $val) { if ($this->cats[$key]['id'] == $idtosearch) { - $cursorindex=$key; + $cursorindex = $key; break; } } @@ -524,13 +524,13 @@ class EcmDirectory // extends CommonObject if ($cursorindex >= 0) { // Path is label sanitized (no space and no special char) and concatenated - $ret=dol_sanitizeFileName($this->cats[$cursorindex]['label']).'/'.$ret; + $ret = dol_sanitizeFileName($this->cats[$cursorindex]['label']).'/'.$ret; - $idtosearch=$this->cats[$cursorindex]['id_mere']; + $idtosearch = $this->cats[$cursorindex]['id_mere']; $i++; } } - while ($cursorindex >= 0 && ! empty($idtosearch) && $i < 100); // i avoid infinite loop + while ($cursorindex >= 0 && !empty($idtosearch) && $i < 100); // i avoid infinite loop return $ret; } @@ -546,22 +546,22 @@ class EcmDirectory // extends CommonObject // phpcs:enable global $conf; - $this->motherof=array(); + $this->motherof = array(); // Load array[child]=parent $sql = "SELECT fk_parent as id_parent, rowid as id_son"; - $sql.= " FROM ".MAIN_DB_PREFIX."ecm_directories"; - $sql.= " WHERE fk_parent != 0"; - $sql.= " AND entity = ".$conf->entity; + $sql .= " FROM ".MAIN_DB_PREFIX."ecm_directories"; + $sql .= " WHERE fk_parent != 0"; + $sql .= " AND entity = ".$conf->entity; dol_syslog(get_class($this)."::load_motherof", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { // This assignment in condition is not a bug. It allows walking the results. - while ($obj=$this->db->fetch_object($resql)) + while ($obj = $this->db->fetch_object($resql)) { - $this->motherof[$obj->id_son]=$obj->id_parent; + $this->motherof[$obj->id_son] = $obj->id_parent; } return 1; } @@ -625,7 +625,7 @@ class EcmDirectory // extends CommonObject // phpcs:enable global $conf; - if (empty($force) && ! empty($this->full_arbo_loaded)) + if (empty($force) && !empty($this->full_arbo_loaded)) { return $this->cats; } @@ -635,29 +635,29 @@ class EcmDirectory // extends CommonObject // Charge tableau des categories $sql = "SELECT c.rowid as rowid, c.label as label,"; - $sql.= " c.description as description, c.cachenbofdoc,"; - $sql.= " c.fk_user_c,"; - $sql.= " c.date_c,"; - $sql.= " u.login as login_c,"; - $sql.= " ca.rowid as rowid_fille"; - $sql.= " FROM ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."ecm_directories as c"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."ecm_directories as ca"; - $sql.= " ON c.rowid = ca.fk_parent"; - $sql.= " WHERE c.fk_user_c = u.rowid"; - $sql.= " AND c.entity = ".$conf->entity; - $sql.= " ORDER BY c.label, c.rowid"; + $sql .= " c.description as description, c.cachenbofdoc,"; + $sql .= " c.fk_user_c,"; + $sql .= " c.date_c,"; + $sql .= " u.login as login_c,"; + $sql .= " ca.rowid as rowid_fille"; + $sql .= " FROM ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."ecm_directories as c"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."ecm_directories as ca"; + $sql .= " ON c.rowid = ca.fk_parent"; + $sql .= " WHERE c.fk_user_c = u.rowid"; + $sql .= " AND c.entity = ".$conf->entity; + $sql .= " ORDER BY c.label, c.rowid"; dol_syslog(get_class($this)."::get_full_arbo", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $this->cats = array(); - $i=0; + $i = 0; // This assignment in condition is not a bug. It allows walking the results. while ($obj = $this->db->fetch_object($resql)) { $this->cats[$obj->rowid]['id'] = $obj->rowid; - $this->cats[$obj->rowid]['id_mere'] = (isset($this->motherof[$obj->rowid])?$this->motherof[$obj->rowid]:''); + $this->cats[$obj->rowid]['id_mere'] = (isset($this->motherof[$obj->rowid]) ? $this->motherof[$obj->rowid] : ''); $this->cats[$obj->rowid]['label'] = $obj->label; $this->cats[$obj->rowid]['description'] = $obj->description; $this->cats[$obj->rowid]['cachenbofdoc'] = $obj->cachenbofdoc; @@ -665,18 +665,18 @@ class EcmDirectory // extends CommonObject $this->cats[$obj->rowid]['fk_user_c'] = $obj->fk_user_c; $this->cats[$obj->rowid]['login_c'] = $obj->login_c; - if (! empty($obj->rowid_fille)) + if (!empty($obj->rowid_fille)) { if (isset($this->cats[$obj->rowid]['id_children']) && is_array($this->cats[$obj->rowid]['id_children'])) { - $newelempos=count($this->cats[$obj->rowid]['id_children']); + $newelempos = count($this->cats[$obj->rowid]['id_children']); //print "this->cats[$i]['id_children'] est deja un tableau de $newelem elements
    "; - $this->cats[$obj->rowid]['id_children'][$newelempos]=$obj->rowid_fille; + $this->cats[$obj->rowid]['id_children'][$newelempos] = $obj->rowid_fille; } else { //print "this->cats[".$obj->rowid."]['id_children'] n'est pas encore un tableau
    "; - $this->cats[$obj->rowid]['id_children']=array($obj->rowid_fille); + $this->cats[$obj->rowid]['id_children'] = array($obj->rowid_fille); } } $i++; @@ -689,14 +689,14 @@ class EcmDirectory // extends CommonObject } // We add properties fullxxx to all elements - foreach($this->cats as $key => $val) + foreach ($this->cats as $key => $val) { if (isset($motherof[$key])) continue; $this->build_path_from_id_categ($key, 0); } - $this->cats=dol_sort_array($this->cats, 'fulllabel', 'asc', true, false); - $this->full_arbo_loaded=1; + $this->cats = dol_sort_array($this->cats, 'fulllabel', 'asc', true, false); + $this->full_arbo_loaded = 1; return $this->cats; } @@ -714,30 +714,30 @@ class EcmDirectory // extends CommonObject { // phpcs:enable // Define fullpath - if (! empty($this->cats[$id_categ]['id_mere'])) + if (!empty($this->cats[$id_categ]['id_mere'])) { - $this->cats[$id_categ]['fullpath'] =$this->cats[$this->cats[$id_categ]['id_mere']]['fullpath']; - $this->cats[$id_categ]['fullpath'].='_'.$id_categ; - $this->cats[$id_categ]['fullrelativename'] =$this->cats[$this->cats[$id_categ]['id_mere']]['fullrelativename']; - $this->cats[$id_categ]['fullrelativename'].='/'.$this->cats[$id_categ]['label']; - $this->cats[$id_categ]['fulllabel'] =$this->cats[$this->cats[$id_categ]['id_mere']]['fulllabel']; - $this->cats[$id_categ]['fulllabel'].=' >> '.$this->cats[$id_categ]['label']; + $this->cats[$id_categ]['fullpath'] = $this->cats[$this->cats[$id_categ]['id_mere']]['fullpath']; + $this->cats[$id_categ]['fullpath'] .= '_'.$id_categ; + $this->cats[$id_categ]['fullrelativename'] = $this->cats[$this->cats[$id_categ]['id_mere']]['fullrelativename']; + $this->cats[$id_categ]['fullrelativename'] .= '/'.$this->cats[$id_categ]['label']; + $this->cats[$id_categ]['fulllabel'] = $this->cats[$this->cats[$id_categ]['id_mere']]['fulllabel']; + $this->cats[$id_categ]['fulllabel'] .= ' >> '.$this->cats[$id_categ]['label']; } else { - $this->cats[$id_categ]['fullpath']='_'.$id_categ; - $this->cats[$id_categ]['fullrelativename']=$this->cats[$id_categ]['label']; - $this->cats[$id_categ]['fulllabel']=$this->cats[$id_categ]['label']; + $this->cats[$id_categ]['fullpath'] = '_'.$id_categ; + $this->cats[$id_categ]['fullrelativename'] = $this->cats[$id_categ]['label']; + $this->cats[$id_categ]['fulllabel'] = $this->cats[$id_categ]['label']; } // We count number of _ to have level (we use strlen that is faster than dol_strlen) - $this->cats[$id_categ]['level']=strlen(preg_replace('/([^_])/i', '', $this->cats[$id_categ]['fullpath'])); + $this->cats[$id_categ]['level'] = strlen(preg_replace('/([^_])/i', '', $this->cats[$id_categ]['fullpath'])); // Traite ces enfants $protection++; - if ($protection > 20) return; // On ne traite pas plus de 20 niveaux + if ($protection > 20) return; // On ne traite pas plus de 20 niveaux if (isset($this->cats[$id_categ]['id_children']) && is_array($this->cats[$id_categ]['id_children'])) { - foreach($this->cats[$id_categ]['id_children'] as $key => $val) + foreach ($this->cats[$id_categ]['id_children'] as $key => $val) { $this->build_path_from_id_categ($val, $protection); } @@ -755,45 +755,46 @@ class EcmDirectory // extends CommonObject global $conf; include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $dir=$conf->ecm->dir_output.'/'.$this->getRelativePath(); - $filelist=dol_dir_list($dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'); + $dir = $conf->ecm->dir_output.'/'.$this->getRelativePath(); + $filelist = dol_dir_list($dir, 'files', 0, '', '(\.meta|_preview.*\.png)$'); // Test if filelist is in database // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."ecm_directories SET"; - $sql.= " cachenbofdoc = '".count($filelist)."'"; + $sql .= " cachenbofdoc = '".count($filelist)."'"; if (empty($all)) // By default { - $sql.= " WHERE rowid = ".$this->id; + $sql .= " WHERE rowid = ".$this->id; } else { - $sql.= " WHERE entity = ".$conf->entity; + $sql .= " WHERE entity = ".$conf->entity; } dol_syslog(get_class($this)."::refreshcachenboffile", LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { - $this->cachenbofdoc=count($filelist); + $this->cachenbofdoc = count($filelist); return $this->cachenbofdoc; } else { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Call trigger based on this instance + * Call trigger based on this instance. + * We implement it here because this class doe not extend CommonObject. * - * NB: Error from trigger are stacked in errors - * NB2: if trigger fail, action should be canceled. - * NB3: Should be deleted if EcmDirectory extend CommonObject + * NB1: Error from trigger are stacked in errors + * NB2: if trigger fail, action should be canceled. + * NB3: Should be deleted if EcmDirectory extend CommonObject * * @param string $triggerName trigger's name to execute * @param User $user Object user @@ -802,19 +803,19 @@ class EcmDirectory // extends CommonObject public function call_trigger($triggerName, $user) { // phpcs:enable - global $langs,$conf; + global $langs, $conf; - include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - $interface=new Interfaces($this->db); - $result=$interface->run_triggers($triggerName, $this, $user, $langs, $conf); + include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; + $interface = new Interfaces($this->db); + $result = $interface->run_triggers($triggerName, $this, $user, $langs, $conf); if ($result < 0) { if (!empty($this->errors)) { - $this->errors=array_merge($this->errors, $interface->errors); + $this->errors = array_merge($this->errors, $interface->errors); } else { - $this->errors=$interface->errors; + $this->errors = $interface->errors; } } return $result; diff --git a/htdocs/ecm/class/ecmfiles.class.php b/htdocs/ecm/class/ecmfiles.class.php index 01f6228ad83..0c7c4c4cebb 100644 --- a/htdocs/ecm/class/ecmfiles.class.php +++ b/htdocs/ecm/class/ecmfiles.class.php @@ -27,7 +27,7 @@ */ // Put here all includes required by your class file -require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; /** * Class to manage ECM files @@ -60,7 +60,7 @@ class EcmFiles extends CommonObject */ public $label; - public $share; // hash for file sharing, empty by default (example: getRandomPassword(true)) + public $share; // hash for file sharing, empty by default (example: getRandomPassword(true)) /** * @var int Entity @@ -79,7 +79,7 @@ class EcmFiles extends CommonObject public $keywords; public $cover; public $position; - public $gen_or_uploaded; // can be 'generated', 'uploaded', 'unknown' + public $gen_or_uploaded; // can be 'generated', 'uploaded', 'unknown' public $extraparams; public $date_c = ''; public $date_m = ''; @@ -142,7 +142,7 @@ class EcmFiles extends CommonObject } if (isset($this->filepath)) { $this->filepath = trim($this->filepath); - $this->filepath = preg_replace('/[\\/]+$/', '', $this->filepath); // Remove last / + $this->filepath = preg_replace('/[\\/]+$/', '', $this->filepath); // Remove last / } if (isset($this->fullpath_orig)) { $this->fullpath_orig = trim($this->fullpath_orig); @@ -179,20 +179,20 @@ class EcmFiles extends CommonObject // If ref not defined $ref = ''; - if (! empty($this->ref)) + if (!empty($this->ref)) { - $ref=$this->ref; + $ref = $this->ref; } else { include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; $ref = dol_hash($this->filepath.'/'.$this->filename, 3); } - $maxposition=0; + $maxposition = 0; if (empty($this->position)) // Get max used { - $sql = "SELECT MAX(position) as maxposition FROM " . MAIN_DB_PREFIX . $this->table_element; - $sql.= " WHERE filepath ='".$this->db->escape($this->filepath)."'"; + $sql = "SELECT MAX(position) as maxposition FROM ".MAIN_DB_PREFIX.$this->table_element; + $sql .= " WHERE filepath ='".$this->db->escape($this->filepath)."'"; $resql = $this->db->query($sql); if ($resql) @@ -202,14 +202,14 @@ class EcmFiles extends CommonObject } else { - $this->errors[] = 'Error ' . $this->db->lasterror(); + $this->errors[] = 'Error '.$this->db->lasterror(); return --$error; } - $maxposition=$maxposition+1; + $maxposition = $maxposition + 1; } else { - $maxposition=$this->position; + $maxposition = $this->position; } // Check parameters @@ -218,75 +218,75 @@ class EcmFiles extends CommonObject $this->errors[] = 'Bad property filename or filepath'; return --$error; } - if (! isset($this->entity)) + if (!isset($this->entity)) { $this->entity = $conf->entity; } // Put here code to add control on parameters values // Insert request - $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '('; - $sql.= 'ref,'; - $sql.= 'label,'; - $sql.= 'share,'; - $sql.= 'entity,'; - $sql.= 'filename,'; - $sql.= 'filepath,'; - $sql.= 'fullpath_orig,'; - $sql.= 'description,'; - $sql.= 'keywords,'; - $sql.= 'cover,'; - $sql.= 'position,'; - $sql.= 'gen_or_uploaded,'; - $sql.= 'extraparams,'; - $sql.= 'date_c,'; - $sql.= 'date_m,'; - $sql.= 'fk_user_c,'; - $sql.= 'fk_user_m,'; - $sql.= 'acl,'; - $sql.= 'src_object_type,'; - $sql.= 'src_object_id'; + $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.'('; + $sql .= 'ref,'; + $sql .= 'label,'; + $sql .= 'share,'; + $sql .= 'entity,'; + $sql .= 'filename,'; + $sql .= 'filepath,'; + $sql .= 'fullpath_orig,'; + $sql .= 'description,'; + $sql .= 'keywords,'; + $sql .= 'cover,'; + $sql .= 'position,'; + $sql .= 'gen_or_uploaded,'; + $sql .= 'extraparams,'; + $sql .= 'date_c,'; + $sql .= 'date_m,'; + $sql .= 'fk_user_c,'; + $sql .= 'fk_user_m,'; + $sql .= 'acl,'; + $sql .= 'src_object_type,'; + $sql .= 'src_object_id'; $sql .= ') VALUES ('; $sql .= " '".$ref."', "; - $sql .= ' '.(! isset($this->label)?'NULL':"'".$this->db->escape($this->label)."'").','; - $sql .= ' '.(! isset($this->share)?'NULL':"'".$this->db->escape($this->share)."'").','; + $sql .= ' '.(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'").','; + $sql .= ' '.(!isset($this->share) ? 'NULL' : "'".$this->db->escape($this->share)."'").','; $sql .= ' '.$this->entity.','; - $sql .= ' '.(! isset($this->filename)?'NULL':"'".$this->db->escape($this->filename)."'").','; - $sql .= ' '.(! isset($this->filepath)?'NULL':"'".$this->db->escape($this->filepath)."'").','; - $sql .= ' '.(! isset($this->fullpath_orig)?'NULL':"'".$this->db->escape($this->fullpath_orig)."'").','; - $sql .= ' '.(! isset($this->description)?'NULL':"'".$this->db->escape($this->description)."'").','; - $sql .= ' '.(! isset($this->keywords)?'NULL':"'".$this->db->escape($this->keywords)."'").','; - $sql .= ' '.(! isset($this->cover)?'NULL':"'".$this->db->escape($this->cover)."'").','; + $sql .= ' '.(!isset($this->filename) ? 'NULL' : "'".$this->db->escape($this->filename)."'").','; + $sql .= ' '.(!isset($this->filepath) ? 'NULL' : "'".$this->db->escape($this->filepath)."'").','; + $sql .= ' '.(!isset($this->fullpath_orig) ? 'NULL' : "'".$this->db->escape($this->fullpath_orig)."'").','; + $sql .= ' '.(!isset($this->description) ? 'NULL' : "'".$this->db->escape($this->description)."'").','; + $sql .= ' '.(!isset($this->keywords) ? 'NULL' : "'".$this->db->escape($this->keywords)."'").','; + $sql .= ' '.(!isset($this->cover) ? 'NULL' : "'".$this->db->escape($this->cover)."'").','; $sql .= ' '.$maxposition.','; - $sql .= ' '.(! isset($this->gen_or_uploaded)?'NULL':"'".$this->db->escape($this->gen_or_uploaded)."'").','; - $sql .= ' '.(! isset($this->extraparams)?'NULL':"'".$this->db->escape($this->extraparams)."'").','; + $sql .= ' '.(!isset($this->gen_or_uploaded) ? 'NULL' : "'".$this->db->escape($this->gen_or_uploaded)."'").','; + $sql .= ' '.(!isset($this->extraparams) ? 'NULL' : "'".$this->db->escape($this->extraparams)."'").','; $sql .= ' '."'".$this->db->idate($this->date_c)."'".','; - $sql .= ' '.(! isset($this->date_m) || dol_strlen($this->date_m)==0?'NULL':"'".$this->db->idate($this->date_m)."'").','; - $sql .= ' '.(! isset($this->fk_user_c)?$user->id:$this->fk_user_c).','; - $sql .= ' '.(! isset($this->fk_user_m)?'NULL':$this->fk_user_m).','; - $sql .= ' '.(! isset($this->acl)?'NULL':"'".$this->db->escape($this->acl)."'").','; - $sql .= ' '.(! isset($this->src_object_type)?'NULL':"'".$this->db->escape($this->src_object_type)."'").','; - $sql .= ' '.(! isset($this->src_object_id)?'NULL':$this->src_object_id); + $sql .= ' '.(!isset($this->date_m) || dol_strlen($this->date_m) == 0 ? 'NULL' : "'".$this->db->idate($this->date_m)."'").','; + $sql .= ' '.(!isset($this->fk_user_c) ? $user->id : $this->fk_user_c).','; + $sql .= ' '.(!isset($this->fk_user_m) ? 'NULL' : $this->fk_user_m).','; + $sql .= ' '.(!isset($this->acl) ? 'NULL' : "'".$this->db->escape($this->acl)."'").','; + $sql .= ' '.(!isset($this->src_object_type) ? 'NULL' : "'".$this->db->escape($this->src_object_type)."'").','; + $sql .= ' '.(!isset($this->src_object_id) ? 'NULL' : $this->src_object_id); $sql .= ')'; $this->db->begin(); $resql = $this->db->query($sql); if (!$resql) { - $error ++; - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.implode(',', $this->errors), LOG_ERR); } if (!$error) { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element); + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.$this->table_element); $this->position = $maxposition; // Triggers - if (! $notrigger) + if (!$notrigger) { // Call triggers - $result=$this->call_trigger(strtoupper(get_class($this)).'_CREATE', $user); + $result = $this->call_trigger(strtoupper(get_class($this)).'_CREATE', $user); if ($result < 0) { $error++; } // End call triggers } @@ -296,7 +296,7 @@ class EcmFiles extends CommonObject if ($error) { $this->db->rollback(); - return - 1 * $error; + return -1 * $error; } else { $this->db->commit(); @@ -344,25 +344,25 @@ class EcmFiles extends CommonObject $sql .= " t.acl,"; $sql .= " t.src_object_type,"; $sql .= " t.src_object_id"; - $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; - $sql.= ' WHERE 1 = 1'; + $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; + $sql .= ' WHERE 1 = 1'; /* Fetching this table depends on filepath+filename, it must not depends on entity if (! empty($conf->multicompany->enabled)) { $sql .= " AND entity IN (" . getEntity('ecmfiles') . ")"; }*/ if ($relativepath) { - $sql .= " AND t.filepath = '" . $this->db->escape(dirname($relativepath)) . "' AND t.filename = '".$this->db->escape(basename($relativepath))."'"; - $sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index + $sql .= " AND t.filepath = '".$this->db->escape(dirname($relativepath))."' AND t.filename = '".$this->db->escape(basename($relativepath))."'"; + $sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index } - elseif (! empty($ref)) { // hash of file path + elseif (!empty($ref)) { // hash of file path $sql .= " AND t.ref = '".$this->db->escape($ref)."'"; - $sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index + $sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index } - elseif (! empty($hashoffile)) { // hash of content + elseif (!empty($hashoffile)) { // hash of content $sql .= " AND t.label = '".$this->db->escape($hashoffile)."'"; - $sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index + $sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index } - elseif (! empty($hashforshare)) { + elseif (!empty($hashforshare)) { $sql .= " AND t.share = '".$this->db->escape($hashforshare)."'"; //$sql .= " AND t.entity = ".$conf->entity; // hashforshare already unique } @@ -373,10 +373,10 @@ class EcmFiles extends CommonObject $sql .= " AND t.entity = ".$conf->entity; } else { - $sql .= ' AND t.rowid = '.$this->db->escape($id); // rowid already unique + $sql .= ' AND t.rowid = '.$this->db->escape($id); // rowid already unique } - $this->db->plimit(1); // When we search on src or on hash of content (hashforfile) to solve hash conflict when several files has same content, we take first one only + $this->db->plimit(1); // When we search on src or on hash of content (hashforfile) to solve hash conflict when several files has same content, we take first one only $this->db->order('t.rowid', 'ASC'); $resql = $this->db->query($sql); @@ -422,8 +422,8 @@ class EcmFiles extends CommonObject return 0; } } else { - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.implode(',', $this->errors), LOG_ERR); return -1; } @@ -466,28 +466,28 @@ class EcmFiles extends CommonObject $sql .= " t.acl,"; $sql .= " t.src_object_type,"; $sql .= " t.src_object_id"; - $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element. ' as t'; + $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; // Manage filter $sqlwhere = array(); if (count($filter) > 0) { foreach ($filter as $key => $value) { - $sqlwhere [] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\''; + $sqlwhere [] = $key.' LIKE \'%'.$this->db->escape($value).'%\''; } } - $sql.= ' WHERE 1 = 1'; + $sql .= ' WHERE 1 = 1'; /* Fetching this table depends on filepath+filename, it must not depends on entity if (! empty($conf->multicompany->enabled)) { $sql .= " AND entity IN (" . getEntity('ecmfiles') . ")"; }*/ if (count($sqlwhere) > 0) { - $sql .= ' AND ' . implode(' '.$filtermode.' ', $sqlwhere); + $sql .= ' AND '.implode(' '.$filtermode.' ', $sqlwhere); } if (!empty($sortfield)) { $sql .= $this->db->order($sortfield, $sortorder); } if (!empty($limit)) { - $sql .= ' ' . $this->db->plimit($limit, $offset); + $sql .= ' '.$this->db->plimit($limit, $offset); } $this->lines = array(); @@ -526,10 +526,10 @@ class EcmFiles extends CommonObject return $num; } else { - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.implode(',', $this->errors), LOG_ERR); - return - 1; + return -1; } } @@ -601,42 +601,42 @@ class EcmFiles extends CommonObject // Put here code to add a control on parameters values // Update request - $sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . ' SET'; + $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET'; $sql .= " ref = '".dol_hash($this->filepath.'/'.$this->filename, 3)."',"; - $sql .= ' label = '.(isset($this->label)?"'".$this->db->escape($this->label)."'":"null").','; - $sql .= ' share = '.(! empty($this->share)?"'".$this->db->escape($this->share)."'":"null").','; - $sql .= ' entity = '.(isset($this->entity)?$this->entity:$conf->entity).','; - $sql .= ' filename = '.(isset($this->filename)?"'".$this->db->escape($this->filename)."'":"null").','; - $sql .= ' filepath = '.(isset($this->filepath)?"'".$this->db->escape($this->filepath)."'":"null").','; - $sql .= ' fullpath_orig = '.(isset($this->fullpath_orig)?"'".$this->db->escape($this->fullpath_orig)."'":"null").','; - $sql .= ' description = '.(isset($this->description)?"'".$this->db->escape($this->description)."'":"null").','; - $sql .= ' keywords = '.(isset($this->keywords)?"'".$this->db->escape($this->keywords)."'":"null").','; - $sql .= ' cover = '.(isset($this->cover)?"'".$this->db->escape($this->cover)."'":"null").','; - $sql .= ' position = '.(isset($this->position)?$this->db->escape($this->position):"0").','; - $sql .= ' gen_or_uploaded = '.(isset($this->gen_or_uploaded)?"'".$this->db->escape($this->gen_or_uploaded)."'":"null").','; - $sql .= ' extraparams = '.(isset($this->extraparams)?"'".$this->db->escape($this->extraparams)."'":"null").','; - $sql .= ' date_c = '.(! isset($this->date_c) || dol_strlen($this->date_c) != 0 ? "'".$this->db->idate($this->date_c)."'" : 'null').','; + $sql .= ' label = '.(isset($this->label) ? "'".$this->db->escape($this->label)."'" : "null").','; + $sql .= ' share = '.(!empty($this->share) ? "'".$this->db->escape($this->share)."'" : "null").','; + $sql .= ' entity = '.(isset($this->entity) ? $this->entity : $conf->entity).','; + $sql .= ' filename = '.(isset($this->filename) ? "'".$this->db->escape($this->filename)."'" : "null").','; + $sql .= ' filepath = '.(isset($this->filepath) ? "'".$this->db->escape($this->filepath)."'" : "null").','; + $sql .= ' fullpath_orig = '.(isset($this->fullpath_orig) ? "'".$this->db->escape($this->fullpath_orig)."'" : "null").','; + $sql .= ' description = '.(isset($this->description) ? "'".$this->db->escape($this->description)."'" : "null").','; + $sql .= ' keywords = '.(isset($this->keywords) ? "'".$this->db->escape($this->keywords)."'" : "null").','; + $sql .= ' cover = '.(isset($this->cover) ? "'".$this->db->escape($this->cover)."'" : "null").','; + $sql .= ' position = '.(isset($this->position) ? $this->db->escape($this->position) : "0").','; + $sql .= ' gen_or_uploaded = '.(isset($this->gen_or_uploaded) ? "'".$this->db->escape($this->gen_or_uploaded)."'" : "null").','; + $sql .= ' extraparams = '.(isset($this->extraparams) ? "'".$this->db->escape($this->extraparams)."'" : "null").','; + $sql .= ' date_c = '.(!isset($this->date_c) || dol_strlen($this->date_c) != 0 ? "'".$this->db->idate($this->date_c)."'" : 'null').','; //$sql .= ' date_m = '.(! isset($this->date_m) || dol_strlen($this->date_m) != 0 ? "'".$this->db->idate($this->date_m)."'" : 'null').','; // Field automatically updated - $sql .= ' fk_user_m = '.($this->fk_user_m > 0?$this->fk_user_m:$user->id).','; - $sql .= ' acl = '.(isset($this->acl)?"'".$this->db->escape($this->acl)."'":"null").','; - $sql .= ' src_object_id = '.($this->src_object_id > 0?$this->src_object_id:"null").','; - $sql .= ' src_object_type = '.(isset($this->src_object_type)?"'".$this->db->escape($this->src_object_type)."'":"null"); - $sql .= ' WHERE rowid=' . $this->id; + $sql .= ' fk_user_m = '.($this->fk_user_m > 0 ? $this->fk_user_m : $user->id).','; + $sql .= ' acl = '.(isset($this->acl) ? "'".$this->db->escape($this->acl)."'" : "null").','; + $sql .= ' src_object_id = '.($this->src_object_id > 0 ? $this->src_object_id : "null").','; + $sql .= ' src_object_type = '.(isset($this->src_object_type) ? "'".$this->db->escape($this->src_object_type)."'" : "null"); + $sql .= ' WHERE rowid='.$this->id; $this->db->begin(); $resql = $this->db->query($sql); if (!$resql) { - $error ++; - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.implode(',', $this->errors), LOG_ERR); } // Triggers - if (! $error && ! $notrigger) + if (!$error && !$notrigger) { // Call triggers - $result=$this->call_trigger(strtoupper(get_class($this)).'_MODIFY', $user); + $result = $this->call_trigger(strtoupper(get_class($this)).'_MODIFY', $user); if ($result < 0) { $error++; } //Do also here what you must do to rollback action if trigger fail // End call triggers } @@ -645,7 +645,7 @@ class EcmFiles extends CommonObject if ($error) { $this->db->rollback(); - return - 1 * $error; + return -1 * $error; } else { $this->db->commit(); @@ -670,10 +670,10 @@ class EcmFiles extends CommonObject $this->db->begin(); // Triggers - if (! $notrigger) + if (!$notrigger) { // Call triggers - $result=$this->call_trigger(strtoupper(get_class($this)).'_DELETE', $user); + $result = $this->call_trigger(strtoupper(get_class($this)).'_DELETE', $user); if ($result < 0) { $error++; } //Do also here what you must do to rollback action if trigger fail // End call triggers } @@ -681,14 +681,14 @@ class EcmFiles extends CommonObject // If you need to delete child tables to, you can insert them here if (!$error) { - $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element; - $sql .= ' WHERE rowid=' . $this->id; + $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element; + $sql .= ' WHERE rowid='.$this->id; $resql = $this->db->query($sql); if (!$resql) { - $error ++; - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); + $error++; + $this->errors[] = 'Error '.$this->db->lasterror(); + dol_syslog(__METHOD__.' '.implode(',', $this->errors), LOG_ERR); } } @@ -696,7 +696,7 @@ class EcmFiles extends CommonObject if ($error) { $this->db->rollback(); - return - 1 * $error; + return -1 * $error; } else { $this->db->commit(); @@ -734,9 +734,9 @@ class EcmFiles extends CommonObject // Other options if ($result < 0) { - $error ++; + $error++; $this->errors = $object->errors; - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); + dol_syslog(__METHOD__.' '.implode(',', $this->errors), LOG_ERR); } unset($object->context['createfromclone']); @@ -749,7 +749,7 @@ class EcmFiles extends CommonObject } else { $this->db->rollback(); - return - 1; + return -1; } } @@ -769,40 +769,40 @@ class EcmFiles extends CommonObject global $dolibarr_main_authentication, $dolibarr_main_demo; global $menumanager; - if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips + if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips $result = ''; $companylink = ''; - $label = '' . $langs->trans("MyModule") . ''; - $label.= '
    '; - $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; + $label = ''.$langs->trans("MyModule").''; + $label .= '
    '; + $label .= ''.$langs->trans('Ref').': '.$this->ref; $url = DOL_URL_ROOT.'/ecm/'.$this->table_name.'_card.php?id='.$this->id; - $linkclose=''; + $linkclose = ''; if (empty($notooltip)) { - if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $label=$langs->trans("ShowProject"); - $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; + $label = $langs->trans("ShowProject"); + $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; } - $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; - $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"'; + $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; } - else $linkclose = ($morecss?' class="'.$morecss.'"':''); + else $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); $linkstart = '
    '; - $linkend=''; + $linkstart .= $linkclose.'>'; + $linkend = ''; if ($withpicto) { - $result.=($linkstart.img_object(($notooltip?'':$label), 'label', ($notooltip?'':'class="classfortooltip"')).$linkend); - if ($withpicto != 2) $result.=' '; + $result .= ($linkstart.img_object(($notooltip ? '' : $label), 'label', ($notooltip ? '' : 'class="classfortooltip"')).$linkend); + if ($withpicto != 2) $result .= ' '; } - $result.= $linkstart . $this->ref . $linkend; + $result .= $linkstart.$this->ref.$linkend; return $result; } @@ -841,7 +841,7 @@ class EcmFiles extends CommonObject */ public function initAsSpecimen() { - global $conf,$user; + global $conf, $user; $this->id = 0; @@ -891,7 +891,7 @@ class EcmfilesLine public $keywords; public $cover; public $position; - public $gen_or_uploaded; // can be 'generated', 'uploaded', 'unknown' + public $gen_or_uploaded; // can be 'generated', 'uploaded', 'unknown' public $extraparams; public $date_c = ''; public $date_m = ''; diff --git a/htdocs/ecm/class/htmlecm.form.class.php b/htdocs/ecm/class/htmlecm.form.class.php index 92cee2570bc..de9f289eb79 100644 --- a/htdocs/ecm/class/htmlecm.form.class.php +++ b/htdocs/ecm/class/htmlecm.form.class.php @@ -35,7 +35,7 @@ class FormEcm /** * @var string Error code (or message) */ - public $error=''; + public $error = ''; /** @@ -62,9 +62,9 @@ class FormEcm global $conf, $langs; $langs->load("ecm"); - if ($select_name=='') $select_name="catParent"; + if ($select_name == '') $select_name = "catParent"; - $cate_arbo=null; + $cate_arbo = null; if ($module == 'ecm') { $cat = new EcmDirectory($this->db); @@ -74,17 +74,17 @@ class FormEcm { include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $path = $conf->medias->multidir_output[$conf->entity]; - $cate_arbo = dol_dir_list($path, 'directories', 1, '', array('(\.meta|_preview.*\.png)$','^\.'), 'relativename', SORT_ASC); + $cate_arbo = dol_dir_list($path, 'directories', 1, '', array('(\.meta|_preview.*\.png)$', '^\.'), 'relativename', SORT_ASC); } $output = ''; - $output.=ajax_combobox($select_name); - $output.= "\n"; + $output .= ''; + $output .= ajax_combobox($select_name); + $output .= "\n"; return $output; } } diff --git a/htdocs/ecm/dir_add_card.php b/htdocs/ecm/dir_add_card.php index 979d4cf2709..0c9190b9a4c 100644 --- a/htdocs/ecm/dir_add_card.php +++ b/htdocs/ecm/dir_add_card.php @@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/ecm/class/htmlecm.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; // Load translation files required by the page -$langs->loadLangs(array("ecm","companies","other","users","orders","propal","bills","contracts","categories")); +$langs->loadLangs(array("ecm", "companies", "other", "users", "orders", "propal", "bills", "contracts", "categories")); // Get parameters $socid = GETPOST('socid', 'int'); @@ -41,7 +41,7 @@ $confirm = GETPOST('confirm', 'alpha'); $module = GETPOST('module', 'alpha'); $website = GETPOST('website', 'alpha'); $pageid = GETPOST('pageid', 'int'); -if (empty($module)) $module='ecm'; +if (empty($module)) $module = 'ecm'; // Security check if ($user->socid > 0) @@ -50,8 +50,8 @@ if ($user->socid > 0) $socid = $user->socid; } -$section=$urlsection=GETPOST('section', 'alpha'); -if (empty($urlsection)) $urlsection='misc'; +$section = $urlsection = GETPOST('section', 'alpha'); +if (empty($urlsection)) $urlsection = 'misc'; if ($module == 'ecm') { @@ -69,14 +69,14 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="label"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "label"; $ecmdir = new EcmDirectory($db); -if (! empty($section)) +if (!empty($section)) { - $result=$ecmdir->fetch($section); - if (! $result > 0) + $result = $ecmdir->fetch($section); + if (!$result > 0) { dol_print_error($db, $ecmdir->error); exit; @@ -97,7 +97,7 @@ if ($module == 'medias') $permtoupload = ($user->rights->mailing->creer || $user->rights->website->write); } -if (! $permtoadd) accessforbidden(); +if (!$permtoadd) accessforbidden(); @@ -110,14 +110,14 @@ if ($action == 'add' && $permtoadd) { if ($cancel) { - if (! empty($backtopage)) + if (!empty($backtopage)) { header("Location: ".$backtopage); exit; } else { - header("Location: ".DOL_URL_ROOT.'/ecm/index.php?action=file_manager'.($module?'&module='.$module:'')); + header("Location: ".DOL_URL_ROOT.'/ecm/index.php?action=file_manager'.($module ? '&module='.$module : '')); exit; } } @@ -125,10 +125,10 @@ if ($action == 'add' && $permtoadd) $ref = trim(GETPOST("ref", 'alpha')); $label = trim(GETPOST("label", 'alpha')); $desc = trim(GETPOST("desc", 'alpha')); - $catParent = GETPOST("catParent", 'alpha'); // Can be an int (with ECM) or a string (with generic filemanager) - if ($catParent == '-1') $catParent=0; + $catParent = GETPOST("catParent", 'alpha'); // Can be an int (with ECM) or a string (with generic filemanager) + if ($catParent == '-1') $catParent = 0; - $error=0; + $error = 0; if (empty($label)) { @@ -137,7 +137,7 @@ if ($action == 'add' && $permtoadd) $error++; } - if (! $error) + if (!$error) { if ($module == 'ecm') { @@ -168,9 +168,9 @@ if ($action == 'add' && $permtoadd) dol_print_error('', 'Bad value for module. Not supported.'); } - if (! $error) + if (!$error) { - $fullpathofdir = $dirfornewdir.'/'.($catParent? $catParent.'/' : '').$label; + $fullpathofdir = $dirfornewdir.'/'.($catParent ? $catParent.'/' : '').$label; $result = dol_mkdir($fullpathofdir, DOL_DATA_ROOT); if ($result < 0) { @@ -185,9 +185,9 @@ if ($action == 'add' && $permtoadd) } } - if (! $error) + if (!$error) { - if (! empty($backtopage)) + if (!empty($backtopage)) { header("Location: ".$backtopage); exit; @@ -203,7 +203,7 @@ if ($action == 'add' && $permtoadd) // Deleting file elseif ($action == 'confirm_deletesection' && $confirm == 'yes') { - $result=$ecmdir->delete($user); + $result = $ecmdir->delete($user); setEventMessages($langs->trans("ECMSectionWasRemoved", $ecmdir->label), null, 'mesgs'); } @@ -216,8 +216,8 @@ elseif ($action == 'confirm_deletesection' && $confirm == 'yes') llxHeader('', $langs->trans("ECMNewSection")); -$form=new Form($db); -$formecm=new FormEcm($db); +$form = new Form($db); +$formecm = new FormEcm($db); if ($action == 'create') { @@ -232,7 +232,7 @@ if ($action == 'create') if ($website) print ''; if ($pageid) print ''; - $title=$langs->trans("ECMNewSection"); + $title = $langs->trans("ECMNewSection"); print load_fiche_titre($title); dol_fiche_head(); diff --git a/htdocs/ecm/dir_card.php b/htdocs/ecm/dir_card.php index 3793be8a784..42c6b140f3c 100644 --- a/htdocs/ecm/dir_card.php +++ b/htdocs/ecm/dir_card.php @@ -39,7 +39,7 @@ $confirm = GETPOST('confirm', 'alpha'); $module = GETPOST('module', 'alpha'); $website = GETPOST('website', 'alpha'); $pageid = GETPOST('pageid', 'int'); -if (empty($module)) $module='ecm'; +if (empty($module)) $module = 'ecm'; // Get parameters $sortfield = GETPOST("sortfield", 'alpha'); @@ -49,11 +49,11 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="name"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "name"; -$section=GETPOST("section", 'alpha')?GETPOST("section", 'alpha'):GETPOST("relativedir", 'alpha'); -if (! $section) +$section = GETPOST("section", 'alpha') ?GETPOST("section", 'alpha') : GETPOST("relativedir", 'alpha'); +if (!$section) { dol_print_error('', "ErrorSectionParamNotDefined"); exit; @@ -64,14 +64,14 @@ $ecmdir = new EcmDirectory($db); if ($module == 'ecm') { - $result=$ecmdir->fetch($section); - if (! $result > 0) + $result = $ecmdir->fetch($section); + if (!$result > 0) { dol_print_error($db, $ecmdir->error); exit; } - $relativepath=$ecmdir->getRelativePath(); + $relativepath = $ecmdir->getRelativePath(); $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; } else // For example $module == 'medias' @@ -101,14 +101,14 @@ if ($module == 'medias') */ // Upload file -if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC)) +if (GETPOST("sendit") && !empty($conf->global->MAIN_UPLOAD_DOC)) { if (dol_mkdir($upload_dir) >= 0) { - $resupload = dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . dol_unescapefile($_FILES['userfile']['name']), 0, 0, $_FILES['userfile']['error']); + $resupload = dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir."/".dol_unescapefile($_FILES['userfile']['name']), 0, 0, $_FILES['userfile']['error']); if (is_numeric($resupload) && $resupload > 0) { - $result=$ecmdir->changeNbOfFiles('+'); + $result = $ecmdir->changeNbOfFiles('+'); } else { @@ -138,12 +138,12 @@ if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC)) if ($action == 'confirm_deletefile' && $confirm == 'yes') { $langs->load("other"); - $file = $upload_dir . "/" . GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). - $ret=dol_delete_file($file); + $file = $upload_dir."/".GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). + $ret = dol_delete_file($file); if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs'); else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors'); - $result=$ecmdir->changeNbOfFiles('-'); + $result = $ecmdir->changeNbOfFiles('-'); } // Remove dir @@ -160,7 +160,7 @@ if ($action == 'confirm_deletedir' && $confirm == 'yes') if ($module == 'ecm') { // Fetch was already done - $result=$ecmdir->delete($user, 'all', $deletedirrecursive); + $result = $ecmdir->delete($user, 'all', $deletedirrecursive); if ($result <= 0) { $langs->load('errors'); @@ -193,20 +193,20 @@ if ($action == 'confirm_deletedir' && $confirm == 'yes') } // Update dirname or description -if ($action == 'update' && ! GETPOST('cancel', 'alpha')) +if ($action == 'update' && !GETPOST('cancel', 'alpha')) { - $error=0; + $error = 0; if ($module == 'ecm') { - $oldlabel=$ecmdir->label; - $olddir=$ecmdir->getRelativePath(0); - $olddir=$conf->ecm->dir_output.'/'.$olddir; + $oldlabel = $ecmdir->label; + $olddir = $ecmdir->getRelativePath(0); + $olddir = $conf->ecm->dir_output.'/'.$olddir; } else { - $olddir=GETPOST('section', 'alpha'); - $olddir=$conf->medias->multidir_output[$conf->entity].'/'.$relativepath; + $olddir = GETPOST('section', 'alpha'); + $olddir = $conf->medias->multidir_output[$conf->entity].'/'.$relativepath; } if ($module == 'ecm') @@ -216,17 +216,17 @@ if ($action == 'update' && ! GETPOST('cancel', 'alpha')) // Fetch was already done $ecmdir->label = dol_sanitizeFileName(GETPOST("label")); $ecmdir->description = GETPOST("description"); - $result=$ecmdir->update($user); + $result = $ecmdir->update($user); if ($result > 0) { // Try to rename file if changed - if ($oldlabel != $ecmdir->label && file_exists($olddir)) + if ($oldlabel != $ecmdir->label && file_exists($olddir)) { - $newdir=$ecmdir->getRelativePath(1); // return "xxx/zzz/" from ecm directory - $newdir=$conf->ecm->dir_output.'/'.$newdir; + $newdir = $ecmdir->getRelativePath(1); // return "xxx/zzz/" from ecm directory + $newdir = $conf->ecm->dir_output.'/'.$newdir; //print $olddir.'-'.$newdir; - $result=@rename($olddir, $newdir); - if (! $result) + $result = @rename($olddir, $newdir); + if (!$result) { $langs->load('errors'); setEventMessages($langs->trans('ErrorFailToRenameDir', $olddir, $newdir), null, 'errors'); @@ -234,12 +234,12 @@ if ($action == 'update' && ! GETPOST('cancel', 'alpha')) } } - if (! $error) + if (!$error) { $db->commit(); // Set new value after renaming - $relativepath=$ecmdir->getRelativePath(); + $relativepath = $ecmdir->getRelativePath(); $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; } else @@ -257,18 +257,18 @@ if ($action == 'update' && ! GETPOST('cancel', 'alpha')) { $newdir = $conf->medias->multidir_output[$conf->entity].'/'.GETPOST('oldrelparentdir', 'alpha').'/'.GETPOST('label', 'alpha'); - $result=@rename($olddir, $newdir); - if (! $result) + $result = @rename($olddir, $newdir); + if (!$result) { $langs->load('errors'); setEventMessages($langs->trans('ErrorFailToRenameDir', $olddir, $newdir), null, 'errors'); $error++; } - if (! $error) + if (!$error) { // Set new value after renaming - $relativepath=GETPOST('oldrelparentdir', 'alpha').'/'.GETPOST('label', 'alpha'); + $relativepath = GETPOST('oldrelparentdir', 'alpha').'/'.GETPOST('label', 'alpha'); $upload_dir = $conf->medias->multidir_output[$conf->entity].'/'.$relativepath; $section = $relativepath; } @@ -281,9 +281,9 @@ if ($action == 'update' && ! GETPOST('cancel', 'alpha')) * View ********************************************************************/ -$form=new Form($db); +$form = new Form($db); -$object=new EcmDirectory($db); // Need to create a new one instance +$object = new EcmDirectory($db); // Need to create a new one instance if ($module == 'ecm') { @@ -293,12 +293,12 @@ if ($module == 'ecm') llxHeader(); // Built the file List -$filearrayall=dol_dir_list($upload_dir, "all", 0, '', '', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); -$filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); -$totalsize=0; -foreach($filearray as $key => $file) +$filearrayall = dol_dir_list($upload_dir, "all", 0, '', '', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); +$filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); +$totalsize = 0; +foreach ($filearray as $key => $file) { - $totalsize+=$file['size']; + $totalsize += $file['size']; } @@ -316,33 +316,33 @@ if ($action == 'edit') } -$morehtml=''; +$morehtml = ''; $morehtmlref = '/'.$module.'/'.$relativepath; if ($module == 'ecm') { - $s=''; + $s = ''; $result = 1; - $i=0; - $tmpecmdir=new EcmDirectory($db); // Need to create a new one + $i = 0; + $tmpecmdir = new EcmDirectory($db); // Need to create a new one $tmpecmdir->fetch($ecmdir->id); while ($tmpecmdir && $result > 0) { - $tmpecmdir->ref=$tmpecmdir->label; + $tmpecmdir->ref = $tmpecmdir->label; if ($i == 0 && $action == 'edit') { - $s=''; + $s = ''; } - else $s=$tmpecmdir->getNomUrl(1).$s; + else $s = $tmpecmdir->getNomUrl(1).$s; if ($tmpecmdir->fk_parent) { - $s=' -> '.$s; - $result=$tmpecmdir->fetch($tmpecmdir->fk_parent); + $s = ' -> '.$s; + $result = $tmpecmdir->fetch($tmpecmdir->fk_parent); } else { - $tmpecmdir=0; + $tmpecmdir = 0; } $i++; } @@ -351,25 +351,25 @@ if ($module == 'ecm') } if ($module == 'medias') { - $s='medias -> '; + $s = 'medias -> '; $result = 1; - $subdirs=explode('/', $section); - $i=0; - foreach($subdirs as $subdir) + $subdirs = explode('/', $section); + $i = 0; + foreach ($subdirs as $subdir) { if ($i == (count($subdirs) - 1)) { if ($action == 'edit') { - $s.=''; - $s.=''; - $s.=''; + $s .= ''; + $s .= ''; + $s .= ''; } - else $s.=$subdir; + else $s .= $subdir; } if ($i < (count($subdirs) - 1)) { - $s.=$subdir.' -> '; + $s .= $subdir.' -> '; } $i++; } @@ -401,7 +401,7 @@ if ($module == 'ecm') print ''; print ''; @@ -428,7 +428,7 @@ else } print ''; print ''; - $showonrightsize=''; + $showonrightsize = ''; // Auto section if (count($sectionauto)) { - $htmltooltip=$langs->trans("ECMAreaDesc2"); + $htmltooltip = $langs->trans("ECMAreaDesc2"); - $sectionauto=dol_sort_array($sectionauto, 'label', 'ASC', true, false); + $sectionauto = dol_sort_array($sectionauto, 'label', 'ASC', true, false); print ''; print '
    '; @@ -180,26 +180,26 @@ function tree_recur($tab, $pere, $rang, $iddivjstree = 'iddivjstree', $donoreset print $tab[$x]['entry']; } //print ' -> A '.$tab[$x]['rowid'].' mainmenu='.$tab[$x]['mainmenu'].' leftmenu='.$tab[$x]['leftmenu'].' fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].'
    '."\n"; - $tree_recur_alreadyadded[$tab[$x]['rowid']]=($rang + 1); + $tree_recur_alreadyadded[$tab[$x]['rowid']] = ($rang + 1); // And now we search all its sons of lower level - tree_recur($tab, $tab[$x], $rang+1, 'iddivjstree', 0, $showfk); + tree_recur($tab, $tab[$x], $rang + 1, 'iddivjstree', 0, $showfk); print ''; } - elseif (! empty($tab[$x]['rowid']) && $tab[$x]['fk_menu'] == -1 && $tab[$x]['fk_mainmenu'] == $pere['mainmenu'] && $tab[$x]['fk_leftmenu'] == $pere['leftmenu']) + elseif (!empty($tab[$x]['rowid']) && $tab[$x]['fk_menu'] == -1 && $tab[$x]['fk_mainmenu'] == $pere['mainmenu'] && $tab[$x]['fk_leftmenu'] == $pere['leftmenu']) { //print 'rang='.$rang.'-x='.$x." rowid=".$tab[$x]['rowid']." tab[x]['fk_leftmenu'] = ".$tab[$x]['fk_leftmenu']." leftmenu pere = ".$pere['leftmenu']."
    \n"; - if (empty($ulprinted) && ! empty($pere['rowid'])) + if (empty($ulprinted) && !empty($pere['rowid'])) { - if (! empty($tree_recur_alreadyadded[$tab[$x]['rowid']])) + if (!empty($tree_recur_alreadyadded[$tab[$x]['rowid']])) { dol_syslog('Error, record with id '.$tab[$x]['rowid'].' seems to be a child of record with id '.$pere['rowid'].' but it was already output. Complete field "leftmenu" and "mainmenu" on ALL records to avoid ambiguity.', LOG_WARNING); //print 'Error, record with id '.$tab[$x]['rowid'].' seems to be a child of record with id '.$pere['rowid'].' but it was already output. Complete field "leftmenu" and "mainmenu" on ALL records to avoid ambiguity.'; continue; } - print ''; $ulprinted++; + print ''; $ulprinted++; } - print "\n".'
  • '; + print "\n".'
  • '; if ($showfk) { print ''; // Year print ''; @@ -251,11 +251,11 @@ print ''; print '';*/ print ''; -$oldyear=0; +$oldyear = 0; foreach ($data as $val) { $year = $val['year']; - while (! empty($year) && $oldyear > $year+1) + while (!empty($year) && $oldyear > $year + 1) { // If we have empty year $oldyear--; print ''; @@ -273,7 +273,7 @@ foreach ($data as $val) /*print ''; print '';*/ print ''; - $oldyear=$year; + $oldyear = $year; } print '
    '; @@ -216,14 +216,14 @@ function tree_recur($tab, $pere, $rang, $iddivjstree = 'iddivjstree', $donoreset print $tab[$x]['entry']; } //print ' -> B '.$tab[$x]['rowid'].' mainmenu='.$tab[$x]['mainmenu'].' leftmenu='.$tab[$x]['leftmenu'].' fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].'
    '."\n"; - $tree_recur_alreadyadded[$tab[$x]['rowid']]=($rang + 1); + $tree_recur_alreadyadded[$tab[$x]['rowid']] = ($rang + 1); // And now we search all its sons of lower level //print 'Call tree_recur for x='.$x.' rowid='.$tab[$x]['rowid']." fk_mainmenu pere = ".$tab[$x]['fk_mainmenu']." fk_leftmenu pere = ".$tab[$x]['fk_leftmenu']."
    \n"; - tree_recur($tab, $tab[$x], $rang+1, 'iddivjstree', 0, $showfk); + tree_recur($tab, $tab[$x], $rang + 1, 'iddivjstree', 0, $showfk); print ''; } } - if (! empty($ulprinted) && ! empty($pere['rowid'])) { print ''."\n"; } + if (!empty($ulprinted) && !empty($pere['rowid'])) { print ''."\n"; } if ($rang == 0) print ''; } diff --git a/htdocs/core/lib/trip.lib.php b/htdocs/core/lib/trip.lib.php index cb54b263a00..ec8c6a6858f 100644 --- a/htdocs/core/lib/trip.lib.php +++ b/htdocs/core/lib/trip.lib.php @@ -34,7 +34,7 @@ function trip_prepare_head(Deplacement $object) $h = 0; $head = array(); - $head[$h][0] = DOL_URL_ROOT . '/compta/deplacement/card.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/compta/deplacement/card.php?id='.$object->id; $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'card'; $h++; @@ -50,7 +50,7 @@ function trip_prepare_head(Deplacement $object) $head[$h][2] = 'documents'; $h++; - $head[$h][0] = DOL_URL_ROOT . '/compta/deplacement/info.php?id=' . $object->id; + $head[$h][0] = DOL_URL_ROOT.'/compta/deplacement/info.php?id='.$object->id; $head[$h][1] = $langs->trans("Info"); $head[$h][2] = 'info'; $h++; diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index 2b510373299..f3e7cee141d 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -331,7 +331,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) if ($foruserprofile) $colspan = 4; $thumbsbyrow = 6; - print ''; + print '
    '; // Title if ($foruserprofile) @@ -582,11 +582,11 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colorbackhmenu1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbackhmenu1))); + $default = (empty($colorbackhmenu1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbackhmenu1))); print ''; print ''; - print ''; print ''; - print ''; print ''; @@ -685,7 +685,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colorbacktitle1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacktitle1))); + $default = (empty($colorbacktitle1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacktitle1))); print ''; print ''; @@ -698,7 +698,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) { print $formother->showColor($conf->global->THEME_ELDY_BACKTITLE1, $langs->trans("Default")); } - print '   ('.$langs->trans("Default").': '.$default.') '; // $colorbacktitle1 in CSS + print '   ('.$langs->trans("Default").': '.$default.') '; // $colorbacktitle1 in CSS print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis")); print ''; print ''; @@ -712,7 +712,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colortexttitle) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitle))); + $default = (empty($colortexttitle) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitle))); print ''; print ''; @@ -739,11 +739,11 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colorbacklineimpair1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklineimpair1))); + $default = (empty($colorbacklineimpair1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklineimpair1))); print ''; print ''; - print ''; print ''; - print ''; print ''; @@ -857,22 +857,22 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) */ } else { - $default=(empty($colorbacklinepairhover) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepairhover))); + $default = (empty($colorbacklinepairhover) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepairhover))); print ''; print ''; - print ''; print ''; diff --git a/htdocs/core/lib/vat.lib.php b/htdocs/core/lib/vat.lib.php index 1649e686ec2..0bc3bb66e90 100644 --- a/htdocs/core/lib/vat.lib.php +++ b/htdocs/core/lib/vat.lib.php @@ -49,12 +49,12 @@ function vat_prepare_head($object) require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; - $upload_dir = $conf->tax->dir_output . "/vat/" . dol_sanitizeFileName($object->ref); + $upload_dir = $conf->tax->dir_output."/vat/".dol_sanitizeFileName($object->ref); $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); - $nbLinks=Link::count($db, $object->element, $object->id); + $nbLinks = Link::count($db, $object->element, $object->id); $head[$tab][0] = DOL_URL_ROOT.'/compta/tva/document.php?id='.$object->id; $head[$tab][1] = $langs->trans("Documents"); - if (($nbFiles+$nbLinks) > 0) $head[$tab][1].= ''.($nbFiles+$nbLinks).''; + if (($nbFiles + $nbLinks) > 0) $head[$tab][1] .= ''.($nbFiles + $nbLinks).''; $head[$tab][2] = 'documents'; $tab++; diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index 0822109d45e..770bc3fda88 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -562,7 +562,7 @@ function getStructuredData($type, $data = array()) } elseif ($type == 'blogpost') { - if (! empty($websitepage->author_alias)) + if (!empty($websitepage->author_alias)) { //include_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; //$tmpuser = new User($db); @@ -665,24 +665,24 @@ function getSocialNetworkSharingLinks() $hashtags = trim(join(' #', array_map('trim', explode(',', $websitepage->keywords)))); $out = ''."\n"; - $out.= ' -global->MAIN_VIEW_LINE_NUMBER)) { ?> - +global->MAIN_VIEW_LINE_NUMBER)) { ?> + info_bits & 2) != 2) { - print 'fk_prev_id != null ) print ' readonly'; + print 'fk_prev_id != null) print ' readonly'; print '>%'; } else { ?>   @@ -216,7 +216,7 @@ $coldisplay++; ?> - global->MAIN_VIEW_LINE_NUMBER)) { ?> + global->MAIN_VIEW_LINE_NUMBER)) { ?> - "; print "\n"; - if ( $object->socid && ! empty($conf->societe->enabled) && ! empty($conf->global->DONATION_USE_THIRDPARTIES) ) { - $company=new Societe($db); - $result=$company->fetch($object->socid); + if ($object->socid && !empty($conf->societe->enabled) && !empty($conf->global->DONATION_USE_THIRDPARTIES)) { + $company = new Societe($db); + $result = $company->fetch($object->socid); print ''; } else { @@ -547,14 +547,14 @@ if (!empty($id) && $action == 'edit') // Zip / Town print ''; // Country print ''; if ($object->socid) { - $company=new Societe($db); - $result=$company->fetch($object->socid); + $company = new Societe($db); + $result = $company->fetch($object->socid); print ''; } else { @@ -865,7 +865,7 @@ if (!empty($id) && $action != 'edit') $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); // Show online payment link - $useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled)); + $useonlinepayment = (!empty($conf->paypal->enabled) || !empty($conf->stripe->enabled) || !empty($conf->paybox->enabled)); if ($useonlinepayment) //$object->statut != Facture::STATUS_DRAFT && { diff --git a/htdocs/don/class/api_donations.class.php b/htdocs/don/class/api_donations.class.php index 95ea92f1ff3..872e2009b9b 100644 --- a/htdocs/don/class/api_donations.class.php +++ b/htdocs/don/class/api_donations.class.php @@ -63,16 +63,16 @@ class Donations extends DolibarrApi */ public function get($id) { - if(! DolibarrApiAccess::$user->rights->don->lire) { + if (!DolibarrApiAccess::$user->rights->don->lire) { throw new RestException(401); } $result = $this->don->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'Donation not found'); } - if( ! DolibarrApi::_checkAccessToResource('don', $this->don->id)) { + if (!DolibarrApi::_checkAccessToResource('don', $this->don->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -109,33 +109,33 @@ class Donations extends DolibarrApi $socids = DolibarrApiAccess::$user->socid ? DolibarrApiAccess::$user->socid : $thirdparty_ids; $sql = "SELECT t.rowid"; - if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) ) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) - $sql.= " FROM ".MAIN_DB_PREFIX."don as t"; + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids)) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) + $sql .= " FROM ".MAIN_DB_PREFIX."don as t"; - $sql.= ' WHERE t.entity IN ('.getEntity('don').')'; - if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) ) $sql.= " AND t.fk_soc = sc.fk_soc"; - if ($thirdparty_ids) $sql.= " AND t.fk_soc = ".$thirdparty_ids." "; + $sql .= ' WHERE t.entity IN ('.getEntity('don').')'; + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids)) $sql .= " AND t.fk_soc = sc.fk_soc"; + if ($thirdparty_ids) $sql .= " AND t.fk_soc = ".$thirdparty_ids." "; // Add sql filters if ($sqlfilters) { - if (! DolibarrApi::_checkFilters($sqlfilters)) + if (!DolibarrApi::_checkFilters($sqlfilters)) { throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); } - $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; - $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - $sql.= $db->order($sortfield, $sortorder); - if ($limit) { + $sql .= $db->order($sortfield, $sortorder); + if ($limit) { if ($page < 0) { $page = 0; } $offset = $limit * $page; - $sql.= $db->plimit($limit + 1, $offset); + $sql .= $db->plimit($limit + 1, $offset); } dol_syslog("API Rest request"); @@ -145,12 +145,12 @@ class Donations extends DolibarrApi { $num = $db->num_rows($result); $min = min($num, ($limit <= 0 ? $num : $limit)); - $i=0; + $i = 0; while ($i < $min) { $obj = $db->fetch_object($result); $don_static = new Don($db); - if($don_static->fetch($obj->rowid)) { + if ($don_static->fetch($obj->rowid)) { // Add external contacts ids //$don_static->contacts_ids = $don_static->liste_contact(-1, 'external', 1); $obj_ret[] = $this->_cleanObjectDatas($don_static); @@ -161,7 +161,7 @@ class Donations extends DolibarrApi else { throw new RestException(503, 'Error when retrieve donation list : '.$db->lasterror()); } - if( ! count($obj_ret)) { + if (!count($obj_ret)) { throw new RestException(404, 'No donation found'); } @@ -176,7 +176,7 @@ class Donations extends DolibarrApi */ public function post($request_data = null) { - if (! DolibarrApiAccess::$user->rights->don->creer) { + if (!DolibarrApiAccess::$user->rights->don->creer) { throw new RestException(401, "Insuffisant rights"); } // Check mandatory fields @@ -210,16 +210,16 @@ class Donations extends DolibarrApi */ public function put($id, $request_data = null) { - if (! DolibarrApiAccess::$user->rights->don->creer) { + if (!DolibarrApiAccess::$user->rights->don->creer) { throw new RestException(401); } $result = $this->don->fetch($id); - if (! $result) { + if (!$result) { throw new RestException(404, 'Donation not found'); } - if (! DolibarrApi::_checkAccessToResource('donation', $this->don->id)) { + if (!DolibarrApi::_checkAccessToResource('donation', $this->don->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } foreach ($request_data as $field => $value) { @@ -245,19 +245,19 @@ class Donations extends DolibarrApi */ public function delete($id) { - if(! DolibarrApiAccess::$user->rights->don->supprimer) { + if (!DolibarrApiAccess::$user->rights->don->supprimer) { throw new RestException(401); } $result = $this->don->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'Donation not found'); } - if( ! DolibarrApi::_checkAccessToResource('donation', $this->don->id)) { + if (!DolibarrApi::_checkAccessToResource('donation', $this->don->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - if( ! $this->don->delete(DolibarrApiAccess::$user)) { + if (!$this->don->delete(DolibarrApiAccess::$user)) { throw new RestException(500, 'Error when delete donation : '.$this->don->error); } @@ -293,15 +293,15 @@ class Donations extends DolibarrApi */ public function validate($id, $idwarehouse = 0, $notrigger = 0) { - if(! DolibarrApiAccess::$user->rights->don->creer) { + if (!DolibarrApiAccess::$user->rights->don->creer) { throw new RestException(401); } $result = $this->don->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'Donation not found'); } - if( ! DolibarrApi::_checkAccessToResource('don', $this->don->id)) { + if (!DolibarrApi::_checkAccessToResource('don', $this->don->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -313,11 +313,11 @@ class Donations extends DolibarrApi throw new RestException(500, 'Error when validating Order: '.$this->don->error); } $result = $this->don->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'Order not found'); } - if( ! DolibarrApi::_checkAccessToResource('don', $this->don->id)) { + if (!DolibarrApi::_checkAccessToResource('don', $this->don->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -360,7 +360,7 @@ class Donations extends DolibarrApi $don = array(); foreach (Orders::$FIELDS as $field) { if (!isset($data[$field])) - throw new RestException(400, $field ." field missing"); + throw new RestException(400, $field." field missing"); $don[$field] = $data[$field]; } return $don; diff --git a/htdocs/don/class/donstats.class.php b/htdocs/don/class/donstats.class.php index 607d6555337..5370bdcaf73 100644 --- a/htdocs/don/class/donstats.class.php +++ b/htdocs/don/class/donstats.class.php @@ -24,9 +24,9 @@ * \brief File of class to manage donations statistics */ -include_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php'; -include_once DOL_DOCUMENT_ROOT . '/don/class/don.class.php'; -include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; +include_once DOL_DOCUMENT_ROOT.'/core/class/stats.class.php'; +include_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; +include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; /** @@ -76,15 +76,15 @@ class DonationStats extends Stats $this->userid = $userid; $this->cachefilesuffix = $mode; - $object=new Don($this->db); + $object = new Don($this->db); $this->from = MAIN_DB_PREFIX.$object->table_element." as d"; //$this->from.= ", ".MAIN_DB_PREFIX."societe as s"; //$this->field='weight'; // Warning, unit of weight is NOT USED AND MUST BE - $this->where.= " d.fk_statut > 0"; // Not draft and not cancelled + $this->where .= " d.fk_statut > 0"; // Not draft and not cancelled //$this->where.= " AND c.fk_soc = s.rowid AND c.entity = ".$conf->entity; - $this->where.= " AND d.entity = ".$conf->entity; - if ($this->userid > 0) $this->where.=' WHERE c.fk_user_author = '.$this->userid; + $this->where .= " AND d.entity = ".$conf->entity; + if ($this->userid > 0) $this->where .= ' WHERE c.fk_user_author = '.$this->userid; } /** @@ -99,13 +99,13 @@ class DonationStats extends Stats global $user; $sql = "SELECT date_format(d.datedon,'%m') as dm, COUNT(*) as nb"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE d.datedon BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE d.datedon BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); - $res=$this->_getNbByMonth($year, $sql, $format); + $res = $this->_getNbByMonth($year, $sql, $format); return $res; } @@ -120,10 +120,10 @@ class DonationStats extends Stats global $user; $sql = "SELECT date_format(d.datedon,'%Y') as dm, COUNT(*) as nb, SUM(d.".$this->field.")"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); return $this->_getNbByYear($sql); } @@ -138,10 +138,10 @@ class DonationStats extends Stats global $user; $sql = "SELECT date_format(d.datedon,'%Y') as year, COUNT(*) as nb, SUM(d.".$this->field.") as total, AVG(".$this->field.") as avg"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE ".$this->where; - $sql.= " GROUP BY year"; - $sql.= $this->db->order('year', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY year"; + $sql .= $this->db->order('year', 'DESC'); return $this->_getAllByYear($sql); } diff --git a/htdocs/don/class/paymentdonation.class.php b/htdocs/don/class/paymentdonation.class.php index 22b75cd777b..ee8156c229e 100644 --- a/htdocs/don/class/paymentdonation.class.php +++ b/htdocs/don/class/paymentdonation.class.php @@ -32,12 +32,12 @@ class PaymentDonation extends CommonObject /** * @var string ID to identify managed object */ - public $element='payment_donation'; + public $element = 'payment_donation'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='payment_donation'; + public $table_element = 'payment_donation'; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png @@ -54,11 +54,11 @@ class PaymentDonation extends CommonObject */ public $fk_donation; - public $datec=''; - public $tms=''; - public $datep=''; - public $amount; // Total amount of payment - public $amounts=array(); // Array of amounts + public $datec = ''; + public $tms = ''; + public $datep = ''; + public $amount; // Total amount of payment + public $amounts = array(); // Array of amounts public $typepayment; public $num_payment; @@ -109,23 +109,23 @@ class PaymentDonation extends CommonObject { global $conf, $langs; - $error=0; + $error = 0; - $now=dol_now(); + $now = dol_now(); // Validate parameters - if (! $this->datepaid) + if (!$this->datepaid) { - $this->error='ErrorBadValueForParameterCreatePaymentDonation'; + $this->error = 'ErrorBadValueForParameterCreatePaymentDonation'; return -1; } // Clean parameters if (isset($this->fk_donation)) $this->fk_donation = (int) $this->fk_donation; - if (isset($this->amount)) $this->amount=trim($this->amount); - if (isset($this->fk_typepayment)) $this->fk_typepayment=trim($this->fk_typepayment); - if (isset($this->num_payment)) $this->num_payment=trim($this->num_payment); - if (isset($this->note_public)) $this->note_public=trim($this->note_public); + if (isset($this->amount)) $this->amount = trim($this->amount); + if (isset($this->fk_typepayment)) $this->fk_typepayment = trim($this->fk_typepayment); + if (isset($this->num_payment)) $this->num_payment = trim($this->num_payment); + if (isset($this->note_public)) $this->note_public = trim($this->note_public); if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank; if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat; if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif; @@ -148,15 +148,15 @@ class PaymentDonation extends CommonObject if ($totalamount != 0) { $sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_donation (fk_donation, datec, datep, amount,"; - $sql.= " fk_typepayment, num_payment, note, fk_user_creat, fk_bank)"; - $sql.= " VALUES ($this->chid, '".$this->db->idate($now)."',"; - $sql.= " '".$this->db->idate($this->datepaid)."',"; - $sql.= " ".$totalamount.","; - $sql.= " ".$this->paymenttype.", '".$this->db->escape($this->num_payment)."', '".$this->db->escape($this->note_public)."', ".$user->id.","; - $sql.= " 0)"; + $sql .= " fk_typepayment, num_payment, note, fk_user_creat, fk_bank)"; + $sql .= " VALUES ($this->chid, '".$this->db->idate($now)."',"; + $sql .= " '".$this->db->idate($this->datepaid)."',"; + $sql .= " ".$totalamount.","; + $sql .= " ".$this->paymenttype.", '".$this->db->escape($this->num_payment)."', '".$this->db->escape($this->note_public)."', ".$user->id.","; + $sql .= " 0)"; dol_syslog(get_class($this)."::create", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."payment_donation"); @@ -168,24 +168,24 @@ class PaymentDonation extends CommonObject } } - if (! $error && ! $notrigger) + if (!$error && !$notrigger) { // Call triggers - $result=$this->call_trigger('DONATION_PAYMENT_CREATE', $user); + $result = $this->call_trigger('DONATION_PAYMENT_CREATE', $user); if ($result < 0) { $error++; } // End call triggers } - if ($totalamount != 0 && ! $error) + if ($totalamount != 0 && !$error) { - $this->amount=$totalamount; - $this->total=$totalamount; // deprecated + $this->amount = $totalamount; + $this->total = $totalamount; // deprecated $this->db->commit(); return $this->id; } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); $this->db->rollback(); return -1; } @@ -201,27 +201,27 @@ class PaymentDonation extends CommonObject { global $langs; $sql = "SELECT"; - $sql.= " t.rowid,"; - $sql.= " t.fk_donation,"; - $sql.= " t.datec,"; - $sql.= " t.tms,"; - $sql.= " t.datep,"; - $sql.= " t.amount,"; - $sql.= " t.fk_typepayment,"; - $sql.= " t.num_payment,"; - $sql.= " t.note as note_public,"; - $sql.= " t.fk_bank,"; - $sql.= " t.fk_user_creat,"; - $sql.= " t.fk_user_modif,"; - $sql.= " pt.code as type_code, pt.libelle as type_label,"; - $sql.= ' b.fk_account'; - $sql.= " FROM ".MAIN_DB_PREFIX."payment_donation as t"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pt ON t.fk_typepayment = pt.id"; - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON t.fk_bank = b.rowid'; - $sql.= " WHERE t.rowid = ".$id; + $sql .= " t.rowid,"; + $sql .= " t.fk_donation,"; + $sql .= " t.datec,"; + $sql .= " t.tms,"; + $sql .= " t.datep,"; + $sql .= " t.amount,"; + $sql .= " t.fk_typepayment,"; + $sql .= " t.num_payment,"; + $sql .= " t.note as note_public,"; + $sql .= " t.fk_bank,"; + $sql .= " t.fk_user_creat,"; + $sql .= " t.fk_user_modif,"; + $sql .= " pt.code as type_code, pt.libelle as type_label,"; + $sql .= ' b.fk_account'; + $sql .= " FROM ".MAIN_DB_PREFIX."payment_donation as t"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pt ON t.fk_typepayment = pt.id"; + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON t.fk_bank = b.rowid'; + $sql .= " WHERE t.rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { if ($this->db->num_rows($resql)) @@ -231,23 +231,23 @@ class PaymentDonation extends CommonObject $this->id = $obj->rowid; $this->ref = $obj->rowid; - $this->fk_donation = $obj->fk_donation; + $this->fk_donation = $obj->fk_donation; $this->datec = $this->db->jdate($obj->datec); - $this->tms = $this->db->jdate($obj->tms); + $this->tms = $this->db->jdate($obj->tms); $this->datep = $this->db->jdate($obj->datep); - $this->amount = $obj->amount; - $this->fk_typepayment = $obj->fk_typepayment; - $this->num_payment = $obj->num_payment; - $this->note_public = $obj->note_public; - $this->fk_bank = $obj->fk_bank; + $this->amount = $obj->amount; + $this->fk_typepayment = $obj->fk_typepayment; + $this->num_payment = $obj->num_payment; + $this->note_public = $obj->note_public; + $this->fk_bank = $obj->fk_bank; $this->fk_user_creat = $obj->fk_user_creat; $this->fk_user_modif = $obj->fk_user_modif; - $this->type_code = $obj->type_code; - $this->type_label = $obj->type_label; + $this->type_code = $obj->type_code; + $this->type_label = $obj->type_label; - $this->bank_account = $obj->fk_account; - $this->bank_line = $obj->fk_bank; + $this->bank_account = $obj->fk_account; + $this->bank_line = $obj->fk_bank; } $this->db->free($resql); @@ -255,7 +255,7 @@ class PaymentDonation extends CommonObject } else { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } } @@ -271,15 +271,15 @@ class PaymentDonation extends CommonObject public function update($user, $notrigger = 0) { global $conf, $langs; - $error=0; + $error = 0; // Clean parameters if (isset($this->fk_donation)) $this->fk_donation = (int) $this->fk_donation; - if (isset($this->amount)) $this->amount=trim($this->amount); - if (isset($this->fk_typepayment)) $this->fk_typepayment=trim($this->fk_typepayment); - if (isset($this->num_payment)) $this->num_payment=trim($this->num_payment); - if (isset($this->note_public)) $this->note_public=trim($this->note_public); + if (isset($this->amount)) $this->amount = trim($this->amount); + if (isset($this->fk_typepayment)) $this->fk_typepayment = trim($this->fk_typepayment); + if (isset($this->num_payment)) $this->num_payment = trim($this->num_payment); + if (isset($this->note_public)) $this->note_public = trim($this->note_public); if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank; if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat; if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif; @@ -289,36 +289,36 @@ class PaymentDonation extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."payment_donation SET"; - $sql.= " fk_donation=".(isset($this->fk_donation)?$this->fk_donation:"null").","; - $sql.= " datec=".(dol_strlen($this->datec)!=0 ? "'".$this->db->idate($this->datec)."'" : 'null').","; - $sql.= " tms=".(dol_strlen($this->tms)!=0 ? "'".$this->db->idate($this->tms)."'" : 'null').","; - $sql.= " datep=".(dol_strlen($this->datep)!=0 ? "'".$this->db->idate($this->datep)."'" : 'null').","; - $sql.= " amount=".(isset($this->amount)?$this->amount:"null").","; - $sql.= " fk_typepayment=".(isset($this->fk_typepayment)?$this->fk_typepayment:"null").","; - $sql.= " num_payment=".(isset($this->num_payment)?"'".$this->db->escape($this->num_payment)."'":"null").","; - $sql.= " note=".(isset($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null").","; - $sql.= " fk_bank=".(isset($this->fk_bank)?$this->fk_bank:"null").","; - $sql.= " fk_user_creat=".(isset($this->fk_user_creat)?$this->fk_user_creat:"null").","; - $sql.= " fk_user_modif=".(isset($this->fk_user_modif)?$this->fk_user_modif:"null").""; - $sql.= " WHERE rowid=".(int) $this->id; + $sql .= " fk_donation=".(isset($this->fk_donation) ? $this->fk_donation : "null").","; + $sql .= " datec=".(dol_strlen($this->datec) != 0 ? "'".$this->db->idate($this->datec)."'" : 'null').","; + $sql .= " tms=".(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : 'null').","; + $sql .= " datep=".(dol_strlen($this->datep) != 0 ? "'".$this->db->idate($this->datep)."'" : 'null').","; + $sql .= " amount=".(isset($this->amount) ? $this->amount : "null").","; + $sql .= " fk_typepayment=".(isset($this->fk_typepayment) ? $this->fk_typepayment : "null").","; + $sql .= " num_payment=".(isset($this->num_payment) ? "'".$this->db->escape($this->num_payment)."'" : "null").","; + $sql .= " note=".(isset($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null").","; + $sql .= " fk_bank=".(isset($this->fk_bank) ? $this->fk_bank : "null").","; + $sql .= " fk_user_creat=".(isset($this->fk_user_creat) ? $this->fk_user_creat : "null").","; + $sql .= " fk_user_modif=".(isset($this->fk_user_modif) ? $this->fk_user_modif : "null").""; + $sql .= " WHERE rowid=".(int) $this->id; $this->db->begin(); dol_syslog(get_class($this)."::update", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { + if (!$resql) { $error++; - $this->errors[]="Error ".$this->db->lasterror(); + $this->errors[] = "Error ".$this->db->lasterror(); } - if (! $error) + if (!$error) { - if (! $notrigger) + if (!$notrigger) { - if (! $error && ! $notrigger) + if (!$error && !$notrigger) { // Call triggers - $result=$this->call_trigger('DONATION_PAYMENT_MODIFY', $user); + $result = $this->call_trigger('DONATION_PAYMENT_MODIFY', $user); if ($result < 0) { $error++; } // End call triggers } @@ -328,13 +328,13 @@ class PaymentDonation extends CommonObject // Commit or rollback if ($error) { - foreach($this->errors as $errmsg) + foreach ($this->errors as $errmsg) { dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR); - $this->error.=($this->error?', '.$errmsg:$errmsg); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return -1*$error; + return -1 * $error; } else { @@ -354,41 +354,41 @@ class PaymentDonation extends CommonObject public function delete($user, $notrigger = 0) { global $conf, $langs; - $error=0; + $error = 0; $this->db->begin(); - if (! $error) + if (!$error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_url"; - $sql.= " WHERE type='payment_donation' AND url_id=".(int) $this->id; + $sql .= " WHERE type='payment_donation' AND url_id=".(int) $this->id; dol_syslog(get_class($this)."::delete", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); } } - if (! $error) + if (!$error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."payment_donation"; - $sql.= " WHERE rowid=".$this->id; + $sql .= " WHERE rowid=".$this->id; dol_syslog(get_class($this)."::delete", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) { + if (!$resql) { $error++; - $this->errors[]="Error ".$this->db->lasterror(); + $this->errors[] = "Error ".$this->db->lasterror(); } } - if (! $error) + if (!$error) { - if (! $notrigger) + if (!$notrigger) { - if (! $error && ! $notrigger) + if (!$error && !$notrigger) { // Call triggers - $result=$this->call_trigger('DONATION_PAYMENT_DELETE', $user); + $result = $this->call_trigger('DONATION_PAYMENT_DELETE', $user); if ($result < 0) { $error++; } // End call triggers } @@ -398,13 +398,13 @@ class PaymentDonation extends CommonObject // Commit or rollback if ($error) { - foreach($this->errors as $errmsg) + foreach ($this->errors as $errmsg) { dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); - $this->error.=($this->error?', '.$errmsg:$errmsg); + $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); - return -1*$error; + return -1 * $error; } else { @@ -424,39 +424,39 @@ class PaymentDonation extends CommonObject */ public function createFromClone(User $user, $fromid) { - $error=0; + $error = 0; - $object=new PaymentDonation($this->db); + $object = new PaymentDonation($this->db); $this->db->begin(); // Load source object $object->fetch($fromid); - $object->id=0; - $object->statut=0; + $object->id = 0; + $object->statut = 0; // Clear fields // ... // Create clone $object->context['createfromclone'] = 'createfromclone'; - $result=$object->create($user); + $result = $object->create($user); // Other options if ($result < 0) { - $this->error=$object->error; + $this->error = $object->error; $error++; } - if (! $error) + if (!$error) { } unset($object->context['createfromclone']); // End - if (! $error) + if (!$error) { $this->db->commit(); return $object->id; @@ -506,19 +506,19 @@ class PaymentDonation extends CommonObject */ public function initAsSpecimen() { - $this->id=0; + $this->id = 0; - $this->fk_donation=''; - $this->datec=''; - $this->tms=''; - $this->datep=''; - $this->amount=''; - $this->fk_typepayment=''; - $this->num_payment=''; - $this->note_public=''; - $this->fk_bank=''; - $this->fk_user_creat=''; - $this->fk_user_modif=''; + $this->fk_donation = ''; + $this->datec = ''; + $this->tms = ''; + $this->datep = ''; + $this->amount = ''; + $this->fk_typepayment = ''; + $this->num_payment = ''; + $this->note_public = ''; + $this->fk_bank = ''; + $this->fk_user_creat = ''; + $this->fk_user_modif = ''; } @@ -538,22 +538,22 @@ class PaymentDonation extends CommonObject { global $conf; - $error=0; + $error = 0; - if (! empty($conf->banque->enabled)) + if (!empty($conf->banque->enabled)) { require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $acc = new Account($this->db); $acc->fetch($accountid); - $total=$this->total; - if ($mode == 'payment_donation') $amount=$total; + $total = $this->total; + if ($mode == 'payment_donation') $amount = $total; // Insert payment into llx_bank $bank_line_id = $acc->addline( $this->datepaid, - $this->paymenttype, // Payment mode id or code ("CHQ or VIR for example") + $this->paymenttype, // Payment mode id or code ("CHQ or VIR for example") $label, $amount, $this->num_payment, @@ -567,7 +567,7 @@ class PaymentDonation extends CommonObject // On connait ainsi le paiement qui a genere l'ecriture bancaire if ($bank_line_id > 0) { - $result=$this->update_fk_bank($bank_line_id); + $result = $this->update_fk_bank($bank_line_id); if ($result <= 0) { $error++; @@ -575,11 +575,11 @@ class PaymentDonation extends CommonObject } // Add link 'payment', 'payment_supplier', 'payment_donation' in bank_url between payment and bank transaction - $url=''; - if ($mode == 'payment_donation') $url=DOL_URL_ROOT.'/don/payment/card.php?rowid='; + $url = ''; + if ($mode == 'payment_donation') $url = DOL_URL_ROOT.'/don/payment/card.php?rowid='; if ($url) { - $result=$acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode); + $result = $acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode); if ($result <= 0) { $error++; @@ -589,12 +589,12 @@ class PaymentDonation extends CommonObject } else { - $this->error=$acc->error; + $this->error = $acc->error; $error++; } } - if (! $error) + if (!$error) { return 1; } @@ -625,7 +625,7 @@ class PaymentDonation extends CommonObject } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); return 0; } } @@ -641,18 +641,18 @@ class PaymentDonation extends CommonObject { global $langs; - $result=''; + $result = ''; $label = $langs->trans("ShowPayment").': '.$this->ref; if (!empty($this->id)) { $link = ''; - $linkend=''; + $linkend = ''; - if ($withpicto) $result.=($link.img_object($label, 'payment', 'class="classfortooltip"').$linkend.' '); - if ($withpicto && $withpicto != 2) $result.=' '; - if ($withpicto != 2) $result.=$link.($maxlen?dol_trunc($this->ref, $maxlen):$this->ref).$linkend; + if ($withpicto) $result .= ($link.img_object($label, 'payment', 'class="classfortooltip"').$linkend.' '); + if ($withpicto && $withpicto != 2) $result .= ' '; + if ($withpicto != 2) $result .= $link.($maxlen ?dol_trunc($this->ref, $maxlen) : $this->ref).$linkend; } return $result; diff --git a/htdocs/don/document.php b/htdocs/don/document.php index dba5b4cff7b..8dbb6f99fda 100644 --- a/htdocs/don/document.php +++ b/htdocs/don/document.php @@ -50,7 +50,7 @@ $confirm = GETPOST('confirm', 'alpha'); $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'don', $id, ''); @@ -101,27 +101,27 @@ if ($object->id) { $object->fetch_thirdparty(); - $head=donation_prepare_head($object); + $head = donation_prepare_head($object); dol_fiche_head($head, 'documents', $langs->trans("Donation"), -1, 'generic'); // Build file list - $filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); - $totalsize=0; - foreach($filearray as $key => $file) + $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); + $totalsize = 0; + foreach ($filearray as $key => $file) { - $totalsize+=$file['size']; + $totalsize += $file['size']; } - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; + $morehtmlref = '
    '; // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.=$langs->trans('Project') . ' '; + $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->don->creer) { if ($action != 'classify') { @@ -129,28 +129,28 @@ if ($object->id) } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } - $morehtmlref.='
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'rowid', $linkback, 1, 'rowid', 'ref', $morehtmlref); diff --git a/htdocs/don/info.php b/htdocs/don/info.php index e2249e082a7..cff4aceae79 100644 --- a/htdocs/don/info.php +++ b/htdocs/don/info.php @@ -34,12 +34,12 @@ if (!empty($conf->projet->enabled)) $langs->load("donations"); $id = GETPOST('id', 'int'); -$ref=GETPOST('ref', 'alpha'); -$action=GETPOST('action', 'alpha'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'don', $id, ''); $object = new Don($db); @@ -69,14 +69,14 @@ $head = donation_prepare_head($object); dol_fiche_head($head, 'info', $langs->trans("Donation"), -1, 'generic'); -$linkback = ''.$langs->trans("BackToList").''; +$linkback = ''.$langs->trans("BackToList").''; -$morehtmlref='
    '; +$morehtmlref = '
    '; // Project -if (! empty($conf->projet->enabled)) +if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.=$langs->trans('Project') . ' '; + $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->don->creer) { if ($action != 'classify') { @@ -84,28 +84,28 @@ if (! empty($conf->projet->enabled)) } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } -$morehtmlref.='
    '; +$morehtmlref .= '
    '; dol_banner_tab($object, 'rowid', $linkback, 1, 'rowid', 'ref', $morehtmlref); diff --git a/htdocs/don/note.php b/htdocs/don/note.php index 128ea2163c7..08b8c05b520 100644 --- a/htdocs/don/note.php +++ b/htdocs/don/note.php @@ -29,35 +29,35 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -if (! empty($conf->projet->enabled)) +if (!empty($conf->projet->enabled)) { require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("companies","bills","donations")); +$langs->loadLangs(array("companies", "bills", "donations")); -$id=(GETPOST('id', 'int')?GETPOST('id', 'int'):GETPOST('facid', 'int')); // For backward compatibility -$ref=GETPOST('ref', 'alpha'); -$action=GETPOST('action', 'alpha'); +$id = (GETPOST('id', 'int') ?GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); // Security check -$socid=0; -if ($user->socid) $socid=$user->socid; -$result=restrictedArea($user, 'don', $id, ''); +$socid = 0; +if ($user->socid) $socid = $user->socid; +$result = restrictedArea($user, 'don', $id, ''); $object = new Don($db); $object->fetch($id); -$permissionnote=$user->rights->don->creer; // Used by the include of actions_setnotes.inc.php +$permissionnote = $user->rights->don->creer; // Used by the include of actions_setnotes.inc.php /* * Actions */ -include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once +include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once if ($action == 'classin' && $user->rights->don->creer) { @@ -85,14 +85,14 @@ if ($id > 0 || !empty($ref)) dol_fiche_head($head, 'note', $langs->trans("Donation"), -1, 'generic'); - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; + $morehtmlref = '
    '; // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.=$langs->trans('Project') . ' '; + $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->don->creer) { if ($action != 'classify') { @@ -100,35 +100,35 @@ if ($id > 0 || !empty($ref)) } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } - $morehtmlref.='
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'rowid', $linkback, 1, 'rowid', 'ref', $morehtmlref); print '
    '; print '
    '; - $cssclass="titlefield"; + $cssclass = "titlefield"; include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; dol_fiche_end(); diff --git a/htdocs/don/payment/card.php b/htdocs/don/payment/card.php index c5517a72696..0017f0a8556 100644 --- a/htdocs/don/payment/card.php +++ b/htdocs/don/payment/card.php @@ -27,24 +27,24 @@ require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/paymentdonation.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/facture/modules_facture.php'; -if (! empty($conf->banque->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; +if (!empty($conf->banque->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page -$langs->loadLangs(array("bills","banks","companies")); +$langs->loadLangs(array("bills", "banks", "companies")); // Security check -$id=GETPOST('rowid')?GETPOST('rowid', 'int'):GETPOST('id', 'int'); -$action=GETPOST('action', 'aZ09'); -$confirm=GETPOST('confirm'); -if ($user->socid) $socid=$user->socid; +$id = GETPOST('rowid') ?GETPOST('rowid', 'int') : GETPOST('id', 'int'); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm'); +if ($user->socid) $socid = $user->socid; // TODO Add rule to restrict access payment //$result = restrictedArea($user, 'facture', $id,''); $object = new PaymentDonation($db); if ($id > 0) { - $result=$object->fetch($id); - if (! $result) dol_print_error($db, 'Failed to get payment id '.$id); + $result = $object->fetch($id); + if (!$result) dol_print_error($db, 'Failed to get payment id '.$id); } @@ -76,20 +76,20 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->don->cree { $db->begin(); - $result=$object->valide(); + $result = $object->valide(); if ($result > 0) { $db->commit(); - $factures=array(); // TODO Get all id of invoices linked to this payment - foreach($factures as $id) + $factures = array(); // TODO Get all id of invoices linked to this payment + foreach ($factures as $id) { $fac = new Facture($db); $fac->fetch($id); $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) + if (!empty($_REQUEST['lang_id'])) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($_REQUEST['lang_id']); @@ -119,7 +119,7 @@ llxHeader(); $don = new Don($db); $form = new Form($db); -$h=0; +$h = 0; $head[$h][0] = DOL_URL_ROOT.'/don/payment/card.php?id='.$id; $head[$h][1] = $langs->trans("Card"); @@ -176,11 +176,11 @@ print '
    '; // Bank account -if (! empty($conf->banque->enabled)) +if (!empty($conf->banque->enabled)) { if ($object->bank_account) { - $bankline=new AccountLine($db); + $bankline = new AccountLine($db); $bankline->fetch($object->bank_line); print ''; @@ -201,13 +201,13 @@ print '
    '.$langs->trans("TopMenuBackgroundColor").''; + print ''; if ($edit) { print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1, array()), ''), 'THEME_ELDY_TOPMENU_BACK1', 'formcolor', 1).' '; @@ -630,11 +630,11 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colorbackvmenu1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbackvmenu1))); + $default = (empty($colorbackvmenu1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbackvmenu1))); print '
    '.$langs->trans("LeftMenuBackgroundColor").''; + print ''; if ($edit) { print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_VERMENU_BACK1, array()), ''), 'THEME_ELDY_VERMENU_BACK1', 'formcolor', 1).' '; @@ -658,7 +658,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colortexttitlenotab) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitlenotab))); + $default = (empty($colortexttitlenotab) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortexttitlenotab))); print '
    '.$langs->trans("TextTitleColor").'
    '.$langs->trans("BackgroundTableTitleColor").'
    '.$langs->trans("BackgroundTableTitleTextColor").'
    '.$langs->trans("BackgroundTableLineOddColor").''; + print ''; if ($edit) { print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_LINEIMPAIR1, array()), ''), 'THEME_ELDY_LINEIMPAIR1', 'formcolor', 1).' '; @@ -767,11 +767,11 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colorbacklinepair1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepair1))); + $default = (empty($colorbacklinepair1) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepair1))); print '
    '.$langs->trans("BackgroundTableLineEvenColor").''; + print ''; if ($edit) { print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_LINEPAIR1, array()), ''), 'THEME_ELDY_LINEPAIR1', 'formcolor', 1).' '; @@ -815,7 +815,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colortextlink) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortextlink))); + $default = (empty($colortextlink) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colortextlink))); print '
    '.$langs->trans("LinkColor").'
    '.$langs->trans("HighlightLinesColor").''; + print ''; //print ''; //print '   ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; if ($edit) { - if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color=colorArrayToHex(colorStringToArray($colorbacklinepairhover)); + if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color = colorArrayToHex(colorStringToArray($colorbacklinepairhover)); else $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_USE_HOVER, array()), ''); print $formother->selectColor($color, 'THEME_ELDY_USE_HOVER', 'formcolor', 1).' '; } else { - if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color=colorArrayToHex(colorStringToArray($colorbacklinepairhover)); + if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color = colorArrayToHex(colorStringToArray($colorbacklinepairhover)); else $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_USE_HOVER, array()), ''); if ($color) { @@ -903,7 +903,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) } else { - $default=(empty($colorbacklinepairchecked) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepairchecked))); + $default = (empty($colorbacklinepairchecked) ? $langs->trans("Unknown") : colorArrayToHex(colorStringToArray($colorbacklinepairchecked))); print '
    '.$langs->trans("HighlightLinesChecked").'
    - product->enabled) || ! empty($conf->service->enabled)) { ?> + product->enabled) || !empty($conf->service->enabled)) { ?> @@ -264,17 +264,17 @@ if (!empty($extrafields)) } ?> -service->enabled) && $line->product_type == 1 && $dateSelector) { ?> +service->enabled) && $line->product_type == 1 && $dateSelector) { ?>
    trans('ServiceLimitedDuration').' '.$langs->trans('From').' '; ?> + 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); + $hourmin = (isset($conf->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 $form->selectDate($line->date_end, 'date_end', $hourmin, $hourmin, $line->date_end ? 0 : 1, "updateline", 1, 0); print '"; -print ''; -print ''; +print ''; +print ''; print ''; print ''; if ($conf->global->MAIN_MULTILANGS) { - print ''; } -$subject = 'DATAPOLICIESSUBJECT_' . $l; -$linka = 'TXTLINKDATAPOLICIESACCEPT_' . $l; -$linkr = 'TXTLINKDATAPOLICIESREFUSE_' . $l; -$content = 'DATAPOLICIESCONTENT_' . $l; -$acc = 'DATAPOLICIESACCEPT_' . $l; -$ref = 'DATAPOLICIESREFUSE_' . $l; +$subject = 'DATAPOLICIESSUBJECT_'.$l; +$linka = 'TXTLINKDATAPOLICIESACCEPT_'.$l; +$linkr = 'TXTLINKDATAPOLICIESREFUSE_'.$l; +$content = 'DATAPOLICIESCONTENT_'.$l; +$acc = 'DATAPOLICIESACCEPT_'.$l; +$ref = 'DATAPOLICIESREFUSE_'.$l; print ''; print ''; print ''; print ''; print ''; print '
    ' . $form->editfieldkey('DefaultLang', 'default_lang', '', null, 0) . '' . "\n"; + print '
    '.$form->editfieldkey('DefaultLang', 'default_lang', '', null, 0).''."\n"; print $formadmin->select_language((GETPOST('l') ? GETPOST('l') : $langs->defaultlang), 'default_lang', 0, 0, 1, 0, 0, 'maxwidth200onsmartphone'); print '
    '; -print $langs->trans('DATAPOLICIESSUBJECTMAIL') . ''; -print ''; +print $langs->trans('DATAPOLICIESSUBJECTMAIL').''; +print ''; print '
    '; print $langs->trans('DATAPOLICIESCONTENTMAIL').''; -print $langs->trans('DATAPOLICIESSUBSITUTION');echo'__LINKACCEPT__,__LINKREFUSED__,__FIRSTNAME__,__NAME__,__CIVILITY__'; +print $langs->trans('DATAPOLICIESSUBSITUTION'); echo'__LINKACCEPT__,__LINKREFUSED__,__FIRSTNAME__,__NAME__,__CIVILITY__'; $doleditor = new DolEditor($content, $conf->global->$content, '', 250, 'Full', '', false, true, 1, 200, 70); $doleditor->Create(); print '
    '; -print $langs->trans('TXTLINKDATAPOLICIESACCEPT') . ''; -print ''; +print $langs->trans('TXTLINKDATAPOLICIESACCEPT').''; +print ''; print '
    '; -print $langs->trans('TXTLINKDATAPOLICIESREFUSE') . ''; -print ''; +print $langs->trans('TXTLINKDATAPOLICIESREFUSE').''; +print ''; print '
    '; @@ -149,7 +149,7 @@ $doleditor->Create(); print '
    '; -print '
    '; +print '
    '; print ''; diff --git a/htdocs/datapolicy/class/actions_datapolicy.class.php b/htdocs/datapolicy/class/actions_datapolicy.class.php index 7d467729841..3ef5a12d720 100644 --- a/htdocs/datapolicy/class/actions_datapolicy.class.php +++ b/htdocs/datapolicy/class/actions_datapolicy.class.php @@ -133,22 +133,22 @@ class ActionsDatapolicy header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv'); header('Pragma: no-cache'); $object->fetch(GETPOST('socid')); - echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;' . PHP_EOL; - echo $object->name . ';'; + echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL; + echo $object->name.';'; echo ';'; echo ';'; echo ';'; echo ';'; - echo $object->address . ';'; - echo $object->zip . ';'; - echo $object->town . ';'; - echo $object->state . ';'; - echo $object->country . ';'; - echo $object->email . ';'; - echo $object->phone . ';'; + echo $object->address.';'; + echo $object->zip.';'; + echo $object->town.';'; + echo $object->state.';'; + echo $object->country.';'; + echo $object->email.';'; + echo $object->phone.';'; echo ';'; echo ';'; - echo $object->skype . ';'; + echo $object->skype.';'; echo ';'; exit; } elseif ($parameters['currentcontext'] == 'membercard' && $action == 'datapolicy_portabilite') { @@ -157,23 +157,23 @@ class ActionsDatapolicy header('Pragma: no-cache'); $soc = $object->fetch_thirdparty(); - echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;' . PHP_EOL; - echo $object->lastname . ';'; - echo $object->firstname . ';'; - echo $object->getCivilityLabel() . ';'; - echo ($soc != -1 ? $object->thirdparty->name : '') . ';'; + echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL; + echo $object->lastname.';'; + echo $object->firstname.';'; + echo $object->getCivilityLabel().';'; + echo ($soc != -1 ? $object->thirdparty->name : '').';'; echo ';'; - echo $object->address . ';'; - echo $object->zip . ';'; - echo $object->town . ';'; - echo $object->state . ';'; - echo $object->country . ';'; - echo $object->email . ';'; - echo $object->phone . ';'; - echo $object->phone_perso . ';'; - echo $object->phone_mobile . ';'; - echo $object->skype . ';'; - echo dol_print_date($object->birth) . ';'; + echo $object->address.';'; + echo $object->zip.';'; + echo $object->town.';'; + echo $object->state.';'; + echo $object->country.';'; + echo $object->email.';'; + echo $object->phone.';'; + echo $object->phone_perso.';'; + echo $object->phone_mobile.';'; + echo $object->skype.';'; + echo dol_print_date($object->birth).';'; exit; } elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'datapolicy_portabilite') { $object->fetch(GETPOST('id')); @@ -181,39 +181,39 @@ class ActionsDatapolicy header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv'); header('Pragma: no-cache'); $soc = $object->fetch_thirdparty(); - echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;' . PHP_EOL; - echo $object->lastname . ';'; - echo $object->firstname . ';'; - echo $object->getCivilityLabel() . ';'; - echo ($soc != -1 ? $object->thirdparty->name : '') . ';'; - echo $object->poste . ';'; - echo $object->address . ';'; - echo $object->zip . ';'; - echo $object->town . ';'; - echo $object->state . ';'; - echo $object->country . ';'; - echo $object->email . ';'; - echo $object->phone_pro . ';'; - echo $object->phone_perso . ';'; - echo $object->phone_mobile . ';'; - echo $object->jabberid . ';'; - echo dol_print_date($object->birth) . ';'; + echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;'.PHP_EOL; + echo $object->lastname.';'; + echo $object->firstname.';'; + echo $object->getCivilityLabel().';'; + echo ($soc != -1 ? $object->thirdparty->name : '').';'; + echo $object->poste.';'; + echo $object->address.';'; + echo $object->zip.';'; + echo $object->town.';'; + echo $object->state.';'; + echo $object->country.';'; + echo $object->email.';'; + echo $object->phone_pro.';'; + echo $object->phone_perso.';'; + echo $object->phone_mobile.';'; + echo $object->jabberid.';'; + echo dol_print_date($object->birth).';'; exit; } elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'send_datapolicy') { $object->fetch(GETPOST('id')); - require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php'; - require_once DOL_DOCUMENT_ROOT . '/datapolicy/class/datapolicy.class.php'; + require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; + require_once DOL_DOCUMENT_ROOT.'/datapolicy/class/datapolicy.class.php'; DataPolicy::sendMailDataPolicyContact($object); } elseif ($parameters['currentcontext'] == 'membercard' && $action == 'send_datapolicy') { $object->fetch(GETPOST('id')); - require_once DOL_DOCUMENT_ROOT . '/adherents/class/adherent.class.php'; - require_once DOL_DOCUMENT_ROOT . '/datapolicy/class/datapolicy.class.php'; + require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; + require_once DOL_DOCUMENT_ROOT.'/datapolicy/class/datapolicy.class.php'; DataPolicy::sendMailDataPolicyAdherent($object); } elseif ($parameters['currentcontext'] == 'thirdpartycard' && $action == 'send_datapolicy') { $object->fetch(GETPOST('socid')); - require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; - require_once DOL_DOCUMENT_ROOT . '/datapolicy/class/datapolicy.class.php'; + require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; + require_once DOL_DOCUMENT_ROOT.'/datapolicy/class/datapolicy.class.php'; DataPolicy::sendMailDataPolicyCompany($object); } @@ -278,7 +278,7 @@ class ActionsDatapolicy /* print_r($parameters); print_r($object); echo "action: " . $action; */ if (in_array($parameters['currentcontext'], array('somecontext1', 'somecontext2'))) { // do something only for the context 'somecontext1' or 'somecontext2' - $this->resprints = ''; + $this->resprints = ''; } if (!$error) { @@ -308,7 +308,7 @@ class ActionsDatapolicy $ret = 0; $deltemp = array(); - dol_syslog(get_class($this) . '::executeHooks action=' . $action); + dol_syslog(get_class($this).'::executeHooks action='.$action); /* print_r($parameters); print_r($object); echo "action: " . $action; */ if (in_array($parameters['currentcontext'], array('somecontext1', 'somecontext2'))) { // do something only for the context 'somecontext1' or 'somecontext2' @@ -332,10 +332,10 @@ class ActionsDatapolicy global $conf, $user, $langs; $langs->load('datapolicy@datapolicy'); - if (! empty($conf->global->DATAPOLICIES_ENABLE_EMAILS)) + if (!empty($conf->global->DATAPOLICIES_ENABLE_EMAILS)) { - $dialog = '
    '.$langs->trans("LinkedToDolibarrThirdParty").''.$company->getNomUrl(1).'
    '.$langs->trans("Zip").' / '.$langs->trans("Town").''; - print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip), 'zipcode', array('town','selectcountry_id','state_id'), 6); + print $formcompany->select_ziptown((isset($_POST["zipcode"]) ? $_POST["zipcode"] : $object->zip), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6); print ' '; - print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town), 'town', array('zipcode','selectcountry_id','state_id')); + print $formcompany->select_ziptown((isset($_POST["town"]) ? $_POST["town"] : $object->town), 'town', array('zipcode', 'selectcountry_id', 'state_id')); print '
    '.$langs->trans('Country').''; - print $form->select_country((!empty($object->country_id)?$object->country_id:$mysoc->country_code), 'country_id'); + print $form->select_country((!empty($object->country_id) ? $object->country_id : $mysoc->country_code), 'country_id'); if ($user->admin) { print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); } @@ -634,43 +634,43 @@ if (!empty($id) && $action != 'edit') // Print form confirm print $formconfirm; - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; + $morehtmlref = '
    '; // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.=$langs->trans('Project') . ' '; + $morehtmlref .= $langs->trans('Project').' '; if ($user->rights->don->creer) { if ($action != 'classify') { - $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1, 0, 'maxwidth500'); - $morehtmlref.=''; - $morehtmlref.='
    '; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1, 0, 'maxwidth500'); + $morehtmlref .= ''; + $morehtmlref .= '
    '; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } - $morehtmlref.='
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'rowid', $linkback, 1, 'rowid', 'ref', $morehtmlref); @@ -696,8 +696,8 @@ if (!empty($id) && $action != 'edit') print '
    '.$langs->trans("LinkedToDolibarrThirdParty").''.$company->getNomUrl(1).'
    '.$langs->trans('Amount').''.price($object->amount, 0, $ print '
    '.$langs->trans('Note').''.nl2br($object->note_public).'
    '; $disable_delete = 0; $sql = 'SELECT d.rowid as did, d.paid, d.amount as d_amount, pd.amount'; -$sql.= ' FROM '.MAIN_DB_PREFIX.'payment_donation as pd,'.MAIN_DB_PREFIX.'don as d'; -$sql.= ' WHERE pd.fk_donation = d.rowid'; -$sql.= ' AND d.entity = '.$conf->entity; -$sql.= ' AND pd.rowid = '.$id; +$sql .= ' FROM '.MAIN_DB_PREFIX.'payment_donation as pd,'.MAIN_DB_PREFIX.'don as d'; +$sql .= ' WHERE pd.fk_donation = d.rowid'; +$sql .= ' AND d.entity = '.$conf->entity; +$sql .= ' AND pd.rowid = '.$id; dol_syslog("don/payment/card.php", LOG_DEBUG); -$resql=$db->query($sql); +$resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -286,7 +286,7 @@ if (empty($action)) { if ($user->rights->don->supprimer) { - if (! $disable_delete) + if (!$disable_delete) { print ''.$langs->trans('Delete').''; } diff --git a/htdocs/don/stats/index.php b/htdocs/don/stats/index.php index 182f7697601..46b0d93d564 100644 --- a/htdocs/don/stats/index.php +++ b/htdocs/don/stats/index.php @@ -29,11 +29,11 @@ require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/donstats.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; -$WIDTH=DolGraph::getDefaultGraphSizeForStats('width'); -$HEIGHT=DolGraph::getDefaultGraphSizeForStats('height'); +$WIDTH = DolGraph::getDefaultGraphSizeForStats('width'); +$HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); -$userid=GETPOST('userid', 'int'); -$socid=GETPOST('socid', 'int'); +$userid = GETPOST('userid', 'int'); +$socid = GETPOST('socid', 'int'); // Security check if ($user->socid > 0) { @@ -41,21 +41,21 @@ if ($user->socid > 0) $socid = $user->socid; } -$nowyear=strftime("%Y", dol_now()); -$year = GETPOST('year')>0?GETPOST('year'):$nowyear; +$nowyear = strftime("%Y", dol_now()); +$year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; //$startyear=$year-2; -$startyear=$year-1; -$endyear=$year; +$startyear = $year - 1; +$endyear = $year; // Load translation files required by the page -$langs->loadLangs(array("companies","other","sendings")); +$langs->loadLangs(array("companies", "other", "sendings")); /* * View */ -$form=new Form($db); +$form = new Form($db); llxHeader(); @@ -64,7 +64,7 @@ print load_fiche_titre($langs->trans("StatisticsOfSendings"), $mesg); dol_mkdir($dir); -$stats = new DonationStats($db, $socid, '', ($userid>0?$userid:0)); +$stats = new DonationStats($db, $socid, '', ($userid > 0 ? $userid : 0)); // Build graphic number of object $data = $stats->getNbByMonthWithPrevYear($endyear, $startyear); @@ -83,13 +83,13 @@ else $px1 = new DolGraph(); $mesg = $px1->isGraphKo(); -if (! $mesg) +if (!$mesg) { $px1->SetData($data); - $i=$startyear;$legend=array(); + $i = $startyear; $legend = array(); while ($i <= $endyear) { - $legend[]=$i; + $legend[] = $i; $i++; } $px1->SetLegend($legend); @@ -100,7 +100,7 @@ if (! $mesg) $px1->SetYLabel($langs->trans("NbOfSendings")); $px1->SetShading(3); $px1->SetHorizTickIncrement(1); - $px1->mode='depth'; + $px1->mode = 'depth'; $px1->SetTitle($langs->trans("NumberOfShipmentsByMonth")); $px1->draw($filenamenb, $fileurlnb); @@ -188,22 +188,22 @@ if (! $mesg) // Show array $data = $stats->getAllByYear(); -$arrayyears=array(); -foreach($data as $val) { - if (! empty($val['year'])) { - $arrayyears[$val['year']]=$val['year']; +$arrayyears = array(); +foreach ($data as $val) { + if (!empty($val['year'])) { + $arrayyears[$val['year']] = $val['year']; } } -if (! count($arrayyears)) $arrayyears[$nowyear]=$nowyear; +if (!count($arrayyears)) $arrayyears[$nowyear] = $nowyear; -$h=0; +$h = 0; $head = array(); -$head[$h][0] = DOL_URL_ROOT . '/don/stats/index.php'; +$head[$h][0] = DOL_URL_ROOT.'/don/stats/index.php'; $head[$h][1] = $langs->trans("ByMonthYear"); $head[$h][2] = 'byyear'; $h++; -$type='donation_stats'; +$type = 'donation_stats'; complete_head_from_modules($conf, $langs, null, $head, $h, $type); @@ -231,8 +231,8 @@ print '
    '; print '
    '.$langs->trans("Year").''; - if (! in_array($year, $arrayyears)) $arrayyears[$year]=$year; - if (! in_array($nowyear, $arrayyears)) $arrayyears[$nowyear]=$nowyear; + if (!in_array($year, $arrayyears)) $arrayyears[$year] = $year; + if (!in_array($nowyear, $arrayyears)) $arrayyears[$nowyear] = $nowyear; arsort($arrayyears); print $form->selectarray('year', $arrayyears, $year, 0); print '
    '.$langs->trans("NbOfSendings").''.$langs->trans("AmountAverage").'
    '.price(price2num($val['total'],'MT'),1).''.price(price2num($val['avg'],'MT'),1).'
    '; diff --git a/htdocs/don/tpl/linkedobjectblock.tpl.php b/htdocs/don/tpl/linkedobjectblock.tpl.php index 94a676f964d..18c410ba4d0 100644 --- a/htdocs/don/tpl/linkedobjectblock.tpl.php +++ b/htdocs/don/tpl/linkedobjectblock.tpl.php @@ -29,13 +29,13 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $langs->load("donations"); -$total=0; -$ilink=0; -foreach($linkedObjectBlock as $key => $objectlink) { +$total = 0; +$ilink = 0; +foreach ($linkedObjectBlock as $key => $objectlink) { $ilink++; - $trclass='oddeven'; - if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total'; + $trclass = 'oddeven'; + if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass .= ' liste_sub_total'; print '
  • '.$langs->trans("Donation").''.$objectlink->getNomUrl(1).'
    trans("Total"); ?>
    '.$langs->trans("ECMCreationUser").''; - $userecm=new User($db); + $userecm = new User($db); $userecm->fetch($ecmdir->fk_user_c); print $userecm->getNomUrl(1); print '
    '.$langs->trans("ECMNbOfDocs").''; -$nbofiles=count($filearray); +$nbofiles = count($filearray); print $nbofiles; if ($ecmdir->id > 0) { @@ -470,12 +470,12 @@ if ($action != 'edit' && $action != 'delete') if ($permtoadd) { - print ''.$langs->trans('Edit').''; + print ''.$langs->trans('Edit').''; } if ($permtoadd) { - print ''.$langs->trans('ECMAddSection').''; + print ''.$langs->trans('ECMAddSection').''; } else { @@ -486,7 +486,7 @@ if ($action != 'edit' && $action != 'delete') //{ if ($permtoadd) { - print ''.$langs->trans('Delete').''; + print ''.$langs->trans('Delete').''; } else { @@ -512,18 +512,18 @@ if ($action == 'delete') // Confirm remove file if ($action == 'delete_dir') { - $relativepathwithoutslash=preg_replace('/[\/]$/', '', $relativepath); + $relativepathwithoutslash = preg_replace('/[\/]$/', '', $relativepath); //Form to close proposal (signed or not) if (count($filearrayall) > 0) { $langs->load("other"); $formquestion = array( - array('type' => 'checkbox', 'name' => 'deletedirrecursive', 'label' => $langs->trans("ContentOfDirectoryIsNotEmpty").'
    '.$langs->trans("DeleteAlsoContentRecursively"),'value' => '0') // Field to complete private note (not replace) + array('type' => 'checkbox', 'name' => 'deletedirrecursive', 'label' => $langs->trans("ContentOfDirectoryIsNotEmpty").'
    '.$langs->trans("DeleteAlsoContentRecursively"), 'value' => '0') // Field to complete private note (not replace) ); } - print $form->formconfirm($_SERVER["PHP_SELF"].'?section='.GETPOST('section', 'alpha').($module?'&module='.$module:'').($backtopage ? '&backtopage='.urlencode($backtopage) : ''), $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection', $relativepathwithoutslash), 'confirm_deletedir', $formquestion, 1, 1); + print $form->formconfirm($_SERVER["PHP_SELF"].'?section='.GETPOST('section', 'alpha').($module ? '&module='.$module : '').($backtopage ? '&backtopage='.urlencode($backtopage) : ''), $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection', $relativepathwithoutslash), 'confirm_deletedir', $formquestion, 1, 1); } diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index e88417c526a..9e51da09899 100644 --- a/htdocs/ecm/index.php +++ b/htdocs/ecm/index.php @@ -32,18 +32,18 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; // Load translation files required by the page -$langs->loadLangs(array("ecm","companies","other","users","orders","propal","bills","contracts")); +$langs->loadLangs(array("ecm", "companies", "other", "users", "orders", "propal", "bills", "contracts")); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'ecm', 0); // Get parameters -$socid=GETPOST('socid', 'int'); -$action=GETPOST('action', 'aZ09'); -$section=GETPOST('section', 'int')?GETPOST('section', 'int'):GETPOST('section_id', 'int'); -if (! $section) $section=0; -$section_dir=GETPOST('section_dir', 'alpha'); +$socid = GETPOST('socid', 'int'); +$action = GETPOST('action', 'aZ09'); +$section = GETPOST('section', 'int') ?GETPOST('section', 'int') : GETPOST('section_id', 'int'); +if (!$section) $section = 0; +$section_dir = GETPOST('section_dir', 'alpha'); $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); @@ -52,25 +52,25 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="fullname"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "fullname"; $ecmdir = new EcmDirectory($db); if ($section) { - $result=$ecmdir->fetch($section); - if (! $result > 0) + $result = $ecmdir->fetch($section); + if (!$result > 0) { dol_print_error($db, $ecmdir->error); exit; } } -$form=new Form($db); +$form = new Form($db); $ecmdirstatic = new EcmDirectory($db); $userstatic = new User($db); -$error=0; +$error = 0; /* @@ -82,23 +82,23 @@ $error=0; //include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; // Upload file (code similar but different than actions_linkedfiles.inc.php) -if (GETPOST("sendit", 'none') && ! empty($conf->global->MAIN_UPLOAD_DOC)) +if (GETPOST("sendit", 'none') && !empty($conf->global->MAIN_UPLOAD_DOC)) { // Define relativepath and upload_dir - $relativepath=''; - if ($ecmdir->id) $relativepath=$ecmdir->getRelativePath(); - else $relativepath=$section_dir; + $relativepath = ''; + if ($ecmdir->id) $relativepath = $ecmdir->getRelativePath(); + else $relativepath = $section_dir; $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; - if (is_array($_FILES['userfile']['tmp_name'])) $userfiles=$_FILES['userfile']['tmp_name']; - else $userfiles=array($_FILES['userfile']['tmp_name']); + if (is_array($_FILES['userfile']['tmp_name'])) $userfiles = $_FILES['userfile']['tmp_name']; + else $userfiles = array($_FILES['userfile']['tmp_name']); - foreach($userfiles as $key => $userfile) + foreach ($userfiles as $key => $userfile) { if (empty($_FILES['userfile']['tmp_name'][$key])) { $error++; - if ($_FILES['userfile']['error'][$key] == 1 || $_FILES['userfile']['error'][$key] == 2){ + if ($_FILES['userfile']['error'][$key] == 1 || $_FILES['userfile']['error'][$key] == 2) { setEventMessages($langs->trans('ErrorFileSizeTooLarge'), null, 'errors'); } else { @@ -107,13 +107,13 @@ if (GETPOST("sendit", 'none') && ! empty($conf->global->MAIN_UPLOAD_DOC)) } } - if (! $error) + if (!$error) { $generatethumbs = 0; $res = dol_add_file_process($upload_dir, 0, 1, 'userfile', '', null, '', $generatethumbs); if ($res > 0) { - $result=$ecmdir->changeNbOfFiles('+'); + $result = $ecmdir->changeNbOfFiles('+'); } } } @@ -126,14 +126,14 @@ if ($action == 'confirm_deletefile') // GETPOST('urlfile','alpha') is full relative URL from ecm root dir. Contains path of all sections. //var_dump(GETPOST('urlfile'));exit; - $upload_dir = $conf->ecm->dir_output.($relativepath?'/'.$relativepath:''); - $file = $upload_dir . "/" . GETPOST('urlfile', 'alpha'); + $upload_dir = $conf->ecm->dir_output.($relativepath ? '/'.$relativepath : ''); + $file = $upload_dir."/".GETPOST('urlfile', 'alpha'); - $ret=dol_delete_file($file); // This include also the delete from file index in database. + $ret = dol_delete_file($file); // This include also the delete from file index in database. if ($ret) { setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile', 'alpha')), null, 'mesgs'); - $result=$ecmdir->changeNbOfFiles('-'); + $result = $ecmdir->changeNbOfFiles('-'); } else { @@ -142,7 +142,7 @@ if ($action == 'confirm_deletefile') clearstatcache(); } - $action='file_manager'; + $action = 'file_manager'; } // Add directory @@ -170,7 +170,7 @@ if ($action == 'add' && $user->rights->ecm->setup) // Remove directory if ($action == 'confirm_deletesection' && GETPOST('confirm') == 'yes') { - $result=$ecmdir->delete($user); + $result = $ecmdir->delete($user); setEventMessages($langs->trans("ECMSectionWasRemoved", $ecmdir->label), null, 'mesgs'); clearstatcache(); @@ -186,56 +186,56 @@ if ($action == 'refreshmanual') // This part of code is same than into file ecm/ajax/ecmdatabase.php TODO Remove duplicate clearstatcache(); - $diroutputslash=str_replace('\\', '/', $conf->ecm->dir_output); - $diroutputslash.='/'; + $diroutputslash = str_replace('\\', '/', $conf->ecm->dir_output); + $diroutputslash .= '/'; // Scan directory tree on disk - $disktree=dol_dir_list($conf->ecm->dir_output, 'directories', 1, '', '^temp$', '', '', 0); + $disktree = dol_dir_list($conf->ecm->dir_output, 'directories', 1, '', '^temp$', '', '', 0); // Scan directory tree in database - $sqltree=$ecmdirstatic->get_full_arbo(0); + $sqltree = $ecmdirstatic->get_full_arbo(0); - $adirwascreated=0; + $adirwascreated = 0; // Now we compare both trees to complete missing trees into database //var_dump($disktree); //var_dump($sqltree); - foreach($disktree as $dirdesc) // Loop on tree onto disk + foreach ($disktree as $dirdesc) // Loop on tree onto disk { - $dirisindatabase=0; - foreach($sqltree as $dirsqldesc) + $dirisindatabase = 0; + foreach ($sqltree as $dirsqldesc) { if ($conf->ecm->dir_output.'/'.$dirsqldesc['fullrelativename'] == $dirdesc['fullname']) { - $dirisindatabase=1; + $dirisindatabase = 1; break; } } - if (! $dirisindatabase) + if (!$dirisindatabase) { - $txt="Directory found on disk ".$dirdesc['fullname'].", not found into database so we add it"; + $txt = "Directory found on disk ".$dirdesc['fullname'].", not found into database so we add it"; dol_syslog($txt); //print $txt."
    \n"; // We must first find the fk_parent of directory to create $dirdesc['fullname'] - $fk_parent=-1; - $relativepathmissing=str_replace($diroutputslash, '', $dirdesc['fullname']); - $relativepathtosearchparent=$relativepathmissing; + $fk_parent = -1; + $relativepathmissing = str_replace($diroutputslash, '', $dirdesc['fullname']); + $relativepathtosearchparent = $relativepathmissing; //dol_syslog("Try to find parent id for directory ".$relativepathtosearchparent); if (preg_match('/\//', $relativepathtosearchparent)) //while (preg_match('/\//',$relativepathtosearchparent)) { - $relativepathtosearchparent=preg_replace('/\/[^\/]*$/', '', $relativepathtosearchparent); - $txt="Is relative parent path ".$relativepathtosearchparent." for ".$relativepathmissing." found in sql tree ?"; + $relativepathtosearchparent = preg_replace('/\/[^\/]*$/', '', $relativepathtosearchparent); + $txt = "Is relative parent path ".$relativepathtosearchparent." for ".$relativepathmissing." found in sql tree ?"; dol_syslog($txt); //print $txt." -> "; - $parentdirisindatabase=0; - foreach($sqltree as $dirsqldesc) + $parentdirisindatabase = 0; + foreach ($sqltree as $dirsqldesc) { if ($dirsqldesc['fullrelativename'] == $relativepathtosearchparent) { - $parentdirisindatabase=$dirsqldesc['id']; + $parentdirisindatabase = $dirsqldesc['id']; break; } } @@ -243,7 +243,7 @@ if ($action == 'refreshmanual') { dol_syslog("Yes with id ".$parentdirisindatabase); //print "Yes with id ".$parentdirisindatabase."
    \n"; - $fk_parent=$parentdirisindatabase; + $fk_parent = $parentdirisindatabase; //break; // We found parent, we can stop the while loop } else @@ -255,7 +255,7 @@ if ($action == 'refreshmanual') else { dol_syslog("Parent is root"); - $fk_parent=0; // Parent is root + $fk_parent = 0; // Parent is root } if ($fk_parent >= 0) @@ -265,20 +265,20 @@ if ($action == 'refreshmanual') $ecmdirtmp->description = ''; $ecmdirtmp->fk_parent = $fk_parent; - $txt="We create directory ".$ecmdirtmp->label." with parent ".$fk_parent; + $txt = "We create directory ".$ecmdirtmp->label." with parent ".$fk_parent; dol_syslog($txt); //print $ecmdirtmp->cachenbofdoc."
    \n";exit; $id = $ecmdirtmp->create($user); if ($id > 0) { - $newdirsql=array('id'=>$id, + $newdirsql = array('id'=>$id, 'id_mere'=>$ecmdirtmp->fk_parent, 'label'=>$ecmdirtmp->label, 'description'=>$ecmdirtmp->description, 'fullrelativename'=>$relativepathmissing); - $sqltree[]=$newdirsql; // We complete fulltree for following loops + $sqltree[] = $newdirsql; // We complete fulltree for following loops //var_dump($sqltree); - $adirwascreated=1; + $adirwascreated = 1; } else { @@ -286,7 +286,7 @@ if ($action == 'refreshmanual') } } else { - $txt="Parent of ".$dirdesc['fullname']." not found"; + $txt = "Parent of ".$dirdesc['fullname']." not found"; dol_syslog($txt); //print $txt."
    \n"; } @@ -294,24 +294,24 @@ if ($action == 'refreshmanual') } // Loop now on each sql tree to check if dir exists - foreach($sqltree as $dirdesc) // Loop on each sqltree to check dir is on disk + foreach ($sqltree as $dirdesc) // Loop on each sqltree to check dir is on disk { - $dirtotest=$conf->ecm->dir_output.'/'.$dirdesc['fullrelativename']; - if (! dol_is_dir($dirtotest)) + $dirtotest = $conf->ecm->dir_output.'/'.$dirdesc['fullrelativename']; + if (!dol_is_dir($dirtotest)) { - $ecmdirtmp->id=$dirdesc['id']; + $ecmdirtmp->id = $dirdesc['id']; $ecmdirtmp->delete($user, 'databaseonly'); //exit; } } - $sql="UPDATE ".MAIN_DB_PREFIX."ecm_directories set cachenbofdoc = -1 WHERE cachenbofdoc < 0"; // If pb into cahce counting, we set to value -1 = "unknown" + $sql = "UPDATE ".MAIN_DB_PREFIX."ecm_directories set cachenbofdoc = -1 WHERE cachenbofdoc < 0"; // If pb into cahce counting, we set to value -1 = "unknown" dol_syslog("sql = ".$sql); $db->query($sql); // If a directory was added, the fulltree array is not correctly completed and sorted, so we clean // it to be sure that fulltree array is not used without reloading it. - if ($adirwascreated) $sqltree=null; + if ($adirwascreated) $sqltree = null; } @@ -322,18 +322,18 @@ if ($action == 'refreshmanual') // Define height of file area (depends on $_SESSION["dol_screenheight"]) //print $_SESSION["dol_screenheight"]; -$maxheightwin=(isset($_SESSION["dol_screenheight"]) && $_SESSION["dol_screenheight"] > 466)?($_SESSION["dol_screenheight"]-136):660; // Also into index_auto.php file +$maxheightwin = (isset($_SESSION["dol_screenheight"]) && $_SESSION["dol_screenheight"] > 466) ? ($_SESSION["dol_screenheight"] - 136) : 660; // Also into index_auto.php file -$moreheadcss=''; -$moreheadjs=''; +$moreheadcss = ''; +$moreheadjs = ''; //$morejs=array(); -$morejs=array('includes/jquery/plugins/blockUI/jquery.blockUI.js','core/js/blockUI.js'); // Used by ecm/tpl/enabledfiletreeajax.tpl.pgp -if (empty($conf->global->MAIN_ECM_DISABLE_JS)) $morejs[]="includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js"; +$morejs = array('includes/jquery/plugins/blockUI/jquery.blockUI.js', 'core/js/blockUI.js'); // Used by ecm/tpl/enabledfiletreeajax.tpl.pgp +if (empty($conf->global->MAIN_ECM_DISABLE_JS)) $morejs[] = "includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js"; -$moreheadjs.=''."\n"; +$moreheadjs .= ''."\n"; llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $morejs, '', 0, 0); @@ -342,7 +342,7 @@ dol_fiche_head($head, 'index', $langs->trans("ECMArea").' - '.$langs->trans("ECM // Add filemanager component -$module='ecm'; +$module = 'ecm'; include DOL_DOCUMENT_ROOT.'/core/tpl/filemanager.tpl.php'; // End of page diff --git a/htdocs/ecm/index_auto.php b/htdocs/ecm/index_auto.php index be3cc7a372c..6c245e3ad1c 100644 --- a/htdocs/ecm/index_auto.php +++ b/htdocs/ecm/index_auto.php @@ -31,21 +31,21 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; // Load translation files required by the page -$langs->loadLangs(array("ecm","companies","other","users","orders","propal","bills","contracts")); +$langs->loadLangs(array("ecm", "companies", "other", "users", "orders", "propal", "bills", "contracts")); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'ecm', 0); // Get parameters -$socid=GETPOST('socid', 'int'); -$action=GETPOST('action', 'aZ09'); -$section=GETPOST('section', 'int')?GETPOST('section', 'int'):GETPOST('section_id', 'int'); -$module=GETPOST('module', 'alpha'); -if (! $section) $section=0; -$section_dir=GETPOST('section_dir', 'alpha'); +$socid = GETPOST('socid', 'int'); +$action = GETPOST('action', 'aZ09'); +$section = GETPOST('section', 'int') ?GETPOST('section', 'int') : GETPOST('section_id', 'int'); +$module = GETPOST('module', 'alpha'); +if (!$section) $section = 0; +$section_dir = GETPOST('section_dir', 'alpha'); -$search_doc_ref=GETPOST('search_doc_ref', 'alpha'); +$search_doc_ref = GETPOST('search_doc_ref', 'alpha'); $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); @@ -54,26 +54,26 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="fullname"; -if ($module == 'invoice_supplier' && $sortfield == "fullname") $sortfield="level1name"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "fullname"; +if ($module == 'invoice_supplier' && $sortfield == "fullname") $sortfield = "level1name"; $ecmdir = new EcmDirectory($db); if ($section) { - $result=$ecmdir->fetch($section); - if (! $result > 0) + $result = $ecmdir->fetch($section); + if (!$result > 0) { dol_print_error($db, $ecmdir->error); exit; } } -$form=new Form($db); +$form = new Form($db); $ecmdirstatic = new EcmDirectory($db); $userstatic = new User($db); -$error=0; +$error = 0; /* @@ -83,7 +83,7 @@ $error=0; // Purge search criteria if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers { - $search_doc_ref=''; + $search_doc_ref = ''; } @@ -119,33 +119,33 @@ if ($action == 'confirm_deletefile') $langs->load("other"); if ($section) { - $result=$ecmdir->fetch($section); - if (! ($result > 0)) + $result = $ecmdir->fetch($section); + if (!($result > 0)) { dol_print_error($db, $ecmdir->error); exit; } - $relativepath=$ecmdir->getRelativePath(); + $relativepath = $ecmdir->getRelativePath(); } - else $relativepath=''; - $upload_dir = $conf->ecm->dir_output.($relativepath?'/'.$relativepath:''); - $file = $upload_dir . "/" . GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_POST are already decoded by PHP). + else $relativepath = ''; + $upload_dir = $conf->ecm->dir_output.($relativepath ? '/'.$relativepath : ''); + $file = $upload_dir."/".GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_POST are already decoded by PHP). - $ret=dol_delete_file($file); + $ret = dol_delete_file($file); if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs'); else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors'); - $result=$ecmdir->changeNbOfFiles('-'); + $result = $ecmdir->changeNbOfFiles('-'); clearstatcache(); } - $action='file_manager'; + $action = 'file_manager'; } // Remove directory if ($action == 'confirm_deletesection' && GETPOST('confirm') == 'yes') { - $result=$ecmdir->delete($user); + $result = $ecmdir->delete($user); setEventMessages($langs->trans("ECMSectionWasRemoved", $ecmdir->label), null, 'mesgs'); clearstatcache(); @@ -161,56 +161,56 @@ if ($action == 'refreshmanual') // This part of code is same than into file ecm/ajax/ecmdatabase.php TODO Remove duplicate clearstatcache(); - $diroutputslash=str_replace('\\', '/', $conf->ecm->dir_output); - $diroutputslash.='/'; + $diroutputslash = str_replace('\\', '/', $conf->ecm->dir_output); + $diroutputslash .= '/'; // Scan directory tree on disk - $disktree=dol_dir_list($conf->ecm->dir_output, 'directories', 1, '', '^temp$', '', '', 0); + $disktree = dol_dir_list($conf->ecm->dir_output, 'directories', 1, '', '^temp$', '', '', 0); // Scan directory tree in database - $sqltree=$ecmdirstatic->get_full_arbo(0); + $sqltree = $ecmdirstatic->get_full_arbo(0); - $adirwascreated=0; + $adirwascreated = 0; // Now we compare both trees to complete missing trees into database //var_dump($disktree); //var_dump($sqltree); - foreach($disktree as $dirdesc) // Loop on tree onto disk + foreach ($disktree as $dirdesc) // Loop on tree onto disk { - $dirisindatabase=0; - foreach($sqltree as $dirsqldesc) + $dirisindatabase = 0; + foreach ($sqltree as $dirsqldesc) { if ($conf->ecm->dir_output.'/'.$dirsqldesc['fullrelativename'] == $dirdesc['fullname']) { - $dirisindatabase=1; + $dirisindatabase = 1; break; } } - if (! $dirisindatabase) + if (!$dirisindatabase) { - $txt="Directory found on disk ".$dirdesc['fullname'].", not found into database so we add it"; + $txt = "Directory found on disk ".$dirdesc['fullname'].", not found into database so we add it"; dol_syslog($txt); //print $txt."
    \n"; // We must first find the fk_parent of directory to create $dirdesc['fullname'] - $fk_parent=-1; - $relativepathmissing=str_replace($diroutputslash, '', $dirdesc['fullname']); - $relativepathtosearchparent=$relativepathmissing; + $fk_parent = -1; + $relativepathmissing = str_replace($diroutputslash, '', $dirdesc['fullname']); + $relativepathtosearchparent = $relativepathmissing; //dol_syslog("Try to find parent id for directory ".$relativepathtosearchparent); if (preg_match('/\//', $relativepathtosearchparent)) //while (preg_match('/\//',$relativepathtosearchparent)) { - $relativepathtosearchparent=preg_replace('/\/[^\/]*$/', '', $relativepathtosearchparent); - $txt="Is relative parent path ".$relativepathtosearchparent." for ".$relativepathmissing." found in sql tree ?"; + $relativepathtosearchparent = preg_replace('/\/[^\/]*$/', '', $relativepathtosearchparent); + $txt = "Is relative parent path ".$relativepathtosearchparent." for ".$relativepathmissing." found in sql tree ?"; dol_syslog($txt); //print $txt." -> "; - $parentdirisindatabase=0; - foreach($sqltree as $dirsqldesc) + $parentdirisindatabase = 0; + foreach ($sqltree as $dirsqldesc) { if ($dirsqldesc['fullrelativename'] == $relativepathtosearchparent) { - $parentdirisindatabase=$dirsqldesc['id']; + $parentdirisindatabase = $dirsqldesc['id']; break; } } @@ -218,7 +218,7 @@ if ($action == 'refreshmanual') { dol_syslog("Yes with id ".$parentdirisindatabase); //print "Yes with id ".$parentdirisindatabase."
    \n"; - $fk_parent=$parentdirisindatabase; + $fk_parent = $parentdirisindatabase; //break; // We found parent, we can stop the while loop } else @@ -230,7 +230,7 @@ if ($action == 'refreshmanual') else { dol_syslog("Parent is root"); - $fk_parent=0; // Parent is root + $fk_parent = 0; // Parent is root } if ($fk_parent >= 0) @@ -240,20 +240,20 @@ if ($action == 'refreshmanual') $ecmdirtmp->description = ''; $ecmdirtmp->fk_parent = $fk_parent; - $txt="We create directory ".$ecmdirtmp->label." with parent ".$fk_parent; + $txt = "We create directory ".$ecmdirtmp->label." with parent ".$fk_parent; dol_syslog($txt); //print $ecmdirtmp->cachenbofdoc."
    \n";exit; $id = $ecmdirtmp->create($user); if ($id > 0) { - $newdirsql=array('id'=>$id, + $newdirsql = array('id'=>$id, 'id_mere'=>$ecmdirtmp->fk_parent, 'label'=>$ecmdirtmp->label, 'description'=>$ecmdirtmp->description, 'fullrelativename'=>$relativepathmissing); - $sqltree[]=$newdirsql; // We complete fulltree for following loops + $sqltree[] = $newdirsql; // We complete fulltree for following loops //var_dump($sqltree); - $adirwascreated=1; + $adirwascreated = 1; } else { @@ -261,7 +261,7 @@ if ($action == 'refreshmanual') } } else { - $txt="Parent of ".$dirdesc['fullname']." not found"; + $txt = "Parent of ".$dirdesc['fullname']." not found"; dol_syslog($txt); //print $txt."
    \n"; } @@ -269,24 +269,24 @@ if ($action == 'refreshmanual') } // Loop now on each sql tree to check if dir exists - foreach($sqltree as $dirdesc) // Loop on each sqltree to check dir is on disk + foreach ($sqltree as $dirdesc) // Loop on each sqltree to check dir is on disk { - $dirtotest=$conf->ecm->dir_output.'/'.$dirdesc['fullrelativename']; - if (! dol_is_dir($dirtotest)) + $dirtotest = $conf->ecm->dir_output.'/'.$dirdesc['fullrelativename']; + if (!dol_is_dir($dirtotest)) { - $ecmdirtmp->id=$dirdesc['id']; + $ecmdirtmp->id = $dirdesc['id']; $ecmdirtmp->delete($user, 'databaseonly'); //exit; } } - $sql="UPDATE ".MAIN_DB_PREFIX."ecm_directories set cachenbofdoc = -1 WHERE cachenbofdoc < 0"; // If pb into cahce counting, we set to value -1 = "unknown" + $sql = "UPDATE ".MAIN_DB_PREFIX."ecm_directories set cachenbofdoc = -1 WHERE cachenbofdoc < 0"; // If pb into cahce counting, we set to value -1 = "unknown" dol_syslog("sql = ".$sql); $db->query($sql); // If a directory was added, the fulltree array is not correctly completed and sorted, so we clean // it to be sure that fulltree array is not used without reloading it. - if ($adirwascreated) $sqltree=null; + if ($adirwascreated) $sqltree = null; } @@ -297,43 +297,43 @@ if ($action == 'refreshmanual') // Define height of file area (depends on $_SESSION["dol_screenheight"]) //print $_SESSION["dol_screenheight"]; -$maxheightwin=(isset($_SESSION["dol_screenheight"]) && $_SESSION["dol_screenheight"] > 466)?($_SESSION["dol_screenheight"]-136):660; // Also into index.php file +$maxheightwin = (isset($_SESSION["dol_screenheight"]) && $_SESSION["dol_screenheight"] > 466) ? ($_SESSION["dol_screenheight"] - 136) : 660; // Also into index.php file -$moreheadcss=''; -$moreheadjs=''; +$moreheadcss = ''; +$moreheadjs = ''; //$morejs=array(); -$morejs=array('includes/jquery/plugins/blockUI/jquery.blockUI.js','core/js/blockUI.js'); // Used by ecm/tpl/enabledfiletreeajax.tpl.pgp -if (empty($conf->global->MAIN_ECM_DISABLE_JS)) $morejs[]="includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js"; +$morejs = array('includes/jquery/plugins/blockUI/jquery.blockUI.js', 'core/js/blockUI.js'); // Used by ecm/tpl/enabledfiletreeajax.tpl.pgp +if (empty($conf->global->MAIN_ECM_DISABLE_JS)) $morejs[] = "includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js"; -$moreheadjs.=''."\n"; +$moreheadjs .= ''."\n"; llxHeader($moreheadcss.$moreheadjs, $langs->trans("ECMArea"), '', '', '', '', $morejs, '', 0, 0); // Add sections to manage -$rowspan=0; -$sectionauto=array(); -if (! empty($conf->global->ECM_AUTO_TREE_ENABLED)) +$rowspan = 0; +$sectionauto = array(); +if (!empty($conf->global->ECM_AUTO_TREE_ENABLED)) { - if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) { $langs->load("products"); $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'product', 'test'=>(! empty($conf->product->enabled) || ! empty($conf->service->enabled)), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } - if (! empty($conf->societe->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); } - if (! empty($conf->propal->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Proposals"), 'desc'=>$langs->trans("ECMDocsByProposals")); } - if (! empty($conf->contrat->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'contract','test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); } - if (! empty($conf->commande->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'order', 'test'=>$conf->commande->enabled, 'label'=>$langs->trans("CustomersOrders"), 'desc'=>$langs->trans("ECMDocsByOrders")); } - if (! empty($conf->facture->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'invoice', 'test'=>$conf->facture->enabled, 'label'=>$langs->trans("CustomersInvoices"), 'desc'=>$langs->trans("ECMDocsByInvoices")); } - if (! empty($conf->supplier_proposal->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'supplier_proposal', 'test'=>$conf->supplier_proposal->enabled, 'label'=>$langs->trans("SupplierProposals"), 'desc'=>$langs->trans("ECMDocsBySupplierProposals")); } - if (! empty($conf->fournisseur->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'order_supplier', 'test'=>$conf->fournisseur->enabled, 'label'=>$langs->trans("SuppliersOrders"), 'desc'=>$langs->trans("ECMDocsByOrders")); } - if (! empty($conf->fournisseur->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'invoice_supplier', 'test'=>$conf->fournisseur->enabled, 'label'=>$langs->trans("SuppliersInvoices"), 'desc'=>$langs->trans("ECMDocsByInvoices")); } - if (! empty($conf->tax->enabled)) { $langs->load("compta"); $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'tax', 'test'=>$conf->tax->enabled, 'label'=>$langs->trans("SocialContributions"), 'desc'=>$langs->trans("ECMDocsBySocialContributions")); } - if (! empty($conf->projet->enabled)) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'project', 'test'=>$conf->projet->enabled, 'label'=>$langs->trans("Projects"), 'desc'=>$langs->trans("ECMDocsByProjects")); } - if (! empty($conf->ficheinter->enabled)) { $langs->load("interventions"); $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'fichinter', 'test'=>$conf->ficheinter->enabled, 'label'=>$langs->trans("Interventions"), 'desc'=>$langs->trans("ECMDocsByInterventions")); } - if (! empty($conf->expensereport->enabled)) { $langs->load("trips"); $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'expensereport', 'test'=>$conf->expensereport->enabled, 'label'=>$langs->trans("ExpenseReports"), 'desc'=>$langs->trans("ECMDocsByExpenseReports")); } - if (! empty($conf->holiday->enabled)) { $langs->load("holiday"); $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'holiday', 'test'=>$conf->holiday->enabled, 'label'=>$langs->trans("Holidays"), 'desc'=>$langs->trans("ECMDocsByHolidays")); } - if (! empty($conf->banque->enabled)) { $langs->load("banks"); $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'banque', 'test'=>$conf->banque->enabled, 'label'=>$langs->trans("BankAccount"), 'desc'=>$langs->trans("ECMDocsByBankAccount")); } - $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'user', 'test'=>1, 'label'=>$langs->trans("Users"), 'desc'=>$langs->trans("ECMDocsByUsers")); + if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { $langs->load("products"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'product', 'test'=>(!empty($conf->product->enabled) || !empty($conf->service->enabled)), 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } + if (!empty($conf->societe->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); } + if (!empty($conf->propal->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Proposals"), 'desc'=>$langs->trans("ECMDocsByProposals")); } + if (!empty($conf->contrat->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'contract', 'test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); } + if (!empty($conf->commande->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'order', 'test'=>$conf->commande->enabled, 'label'=>$langs->trans("CustomersOrders"), 'desc'=>$langs->trans("ECMDocsByOrders")); } + if (!empty($conf->facture->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'invoice', 'test'=>$conf->facture->enabled, 'label'=>$langs->trans("CustomersInvoices"), 'desc'=>$langs->trans("ECMDocsByInvoices")); } + if (!empty($conf->supplier_proposal->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'supplier_proposal', 'test'=>$conf->supplier_proposal->enabled, 'label'=>$langs->trans("SupplierProposals"), 'desc'=>$langs->trans("ECMDocsBySupplierProposals")); } + if (!empty($conf->fournisseur->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'order_supplier', 'test'=>$conf->fournisseur->enabled, 'label'=>$langs->trans("SuppliersOrders"), 'desc'=>$langs->trans("ECMDocsByOrders")); } + if (!empty($conf->fournisseur->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'invoice_supplier', 'test'=>$conf->fournisseur->enabled, 'label'=>$langs->trans("SuppliersInvoices"), 'desc'=>$langs->trans("ECMDocsByInvoices")); } + if (!empty($conf->tax->enabled)) { $langs->load("compta"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'tax', 'test'=>$conf->tax->enabled, 'label'=>$langs->trans("SocialContributions"), 'desc'=>$langs->trans("ECMDocsBySocialContributions")); } + if (!empty($conf->projet->enabled)) { $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'project', 'test'=>$conf->projet->enabled, 'label'=>$langs->trans("Projects"), 'desc'=>$langs->trans("ECMDocsByProjects")); } + if (!empty($conf->ficheinter->enabled)) { $langs->load("interventions"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'fichinter', 'test'=>$conf->ficheinter->enabled, 'label'=>$langs->trans("Interventions"), 'desc'=>$langs->trans("ECMDocsByInterventions")); } + if (!empty($conf->expensereport->enabled)) { $langs->load("trips"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'expensereport', 'test'=>$conf->expensereport->enabled, 'label'=>$langs->trans("ExpenseReports"), 'desc'=>$langs->trans("ECMDocsByExpenseReports")); } + if (!empty($conf->holiday->enabled)) { $langs->load("holiday"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'holiday', 'test'=>$conf->holiday->enabled, 'label'=>$langs->trans("Holidays"), 'desc'=>$langs->trans("ECMDocsByHolidays")); } + if (!empty($conf->banque->enabled)) { $langs->load("banks"); $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'banque', 'test'=>$conf->banque->enabled, 'label'=>$langs->trans("BankAccount"), 'desc'=>$langs->trans("ECMDocsByBankAccount")); } + $rowspan++; $sectionauto[] = array('level'=>1, 'module'=>'user', 'test'=>1, 'label'=>$langs->trans("Users"), 'desc'=>$langs->trans("ECMDocsByUsers")); } $head = ecm_prepare_dasboard_head(''); @@ -358,7 +358,7 @@ if ($action == 'delete' && empty($conf->use_javascript_ajax)) print '
    '; // Toolbar -$url=((! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS))?'#':($_SERVER["PHP_SELF"].'?action=refreshmanual'.($module?'&module='.$module:'').($section?'&section='.$section:''))); +$url = ((!empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS)) ? '#' : ($_SERVER["PHP_SELF"].'?action=refreshmanual'.($module ? '&module='.$module : '').($section ? '&section='.$section : ''))); print ''; print ''; print ''; @@ -391,28 +391,28 @@ if (empty($action) || $action == 'file_manager' || preg_match('/refresh/i', $act print ' '.$langs->trans("ECMSections"); print '
    '; print '
    "; print ''; // Right area -$relativepath=$ecmdir->getRelativePath(); +$relativepath = $ecmdir->getRelativePath(); $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; -$filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); +$filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); -$formfile=new FormFile($db); -$param='&section='.$section; -$textifempty=($section?$langs->trans("NoFileFound"):$langs->trans("ECMSelectASection")); +$formfile = new FormFile($db); +$param = '&section='.$section; +$textifempty = ($section ? $langs->trans("NoFileFound") : $langs->trans("ECMSelectASection")); $formfile->list_of_documents($filearray, '', 'ecm', $param, 1, $relativepath, $user->rights->ecm->upload, 1, $textifempty); // print ''; diff --git a/htdocs/ecm/tpl/enablefiletreeajax.tpl.php b/htdocs/ecm/tpl/enablefiletreeajax.tpl.php index 3f8b889aaff..4dd9cd63cb2 100644 --- a/htdocs/ecm/tpl/enablefiletreeajax.tpl.php +++ b/htdocs/ecm/tpl/enablefiletreeajax.tpl.php @@ -19,7 +19,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template enablefiletreeajax.tpl.php can't be called as URL"; exit; @@ -33,10 +33,10 @@ if (empty($conf) || ! is_object($conf)) '."\n"; @@ -409,7 +409,7 @@ function pHeader($subtitle, $next, $action = 'set', $param = '', $forcejqueryurl } print ''."\n"; - print ''."\n"; print ''."\n"; @@ -431,7 +431,7 @@ function pHeader($subtitle, $next, $action = 'set', $param = '', $forcejqueryurl */ function pFooter($nonext = 0, $setuplang = '', $jscheckfunction = '', $withpleasewait = 0) { - global $conf,$langs; + global $conf, $langs; $langs->load("main"); $langs->load("other"); @@ -440,15 +440,15 @@ function pFooter($nonext = 0, $setuplang = '', $jscheckfunction = '', $withpleas print '
    '."\n"; print ''."\n"; - if (! $nonext || ($nonext == '2')) + if (!$nonext || ($nonext == '2')) { print '
    '; if ($nonext == '2') { - print $langs->trans("ErrorFoundDuringMigration", isset($_SERVER["REQUEST_URI"])?$_SERVER["REQUEST_URI"].'&ignoreerrors=1':'').'

    '; + print $langs->trans("ErrorFoundDuringMigration", isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"].'&ignoreerrors=1' : '').'

    '; } - print '"'; + print '"'; if ($jscheckfunction) print ' onClick="return '.$jscheckfunction.'();"'; print '>
    '; if ($withpleasewait) print ''; @@ -466,7 +466,7 @@ function pFooter($nonext = 0, $setuplang = '', $jscheckfunction = '', $withpleas print "\n"; print " Subtotal A (41 - 51)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,187,'EC-SUPERCIAS','Ingresos','43',0,'OTROS INGRESOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,188,'EC-SUPERCIAS','Ingresos','4301',187,'DIVIDENDOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,189,'EC-SUPERCIAS','Ingresos','4302',187,'INTERESES FINANCIEROS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,190,'EC-SUPERCIAS','Ingresos','4303',187,'GANANCIA EN INVERSIONES EN ASOCIADAS / SUBSIDIARIAS Y OTRAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,191,'EC-SUPERCIAS','Ingresos','4304',187,'VALUACIÓN DE INSTRUMENTOS FINANCIEROS A VALOR RAZONABLE CON CAMBIO EN RESULTADOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,192,'EC-SUPERCIAS','Ingresos','4305',187,'OTRAS RENTAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,193,'EC-SUPERCIAS','Egresos','51',0,'COSTO DE VENTAS Y PRODUCCIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,194,'EC-SUPERCIAS','Egresos','5101',193,'MATERIALES UTILIZADOS O PRODUCTOS VENDIDOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,195,'EC-SUPERCIAS','Egresos','510101',194,'(+) INVENTARIO INICIAL DE BIENES NO PRODUCIDOS POR LA COMPAÑÍA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,196,'EC-SUPERCIAS','Egresos','510102',194,'(+) COMPRAS NETAS LOCALES DE BIENES NO PRODUCIDOS POR LA COMPAÑÍA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,197,'EC-SUPERCIAS','Egresos','510103',194,'(+) IMPORTACIONES DE BIENES NO PRODUCIDOS POR LA COMPAÑÍA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,198,'EC-SUPERCIAS','Egresos','510104',194,'(-) INVENTARIO FINAL DE BIENES NO PRODUCIDOS POR LA COMPAÑÍA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,199,'EC-SUPERCIAS','Egresos','510105',194,'(+) INVENTARIO INICIAL DE MATERIA PRIMA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,200,'EC-SUPERCIAS','Egresos','510106',194,'(+) COMPRAS NETAS LOCALES DE MATERIA PRIMA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,201,'EC-SUPERCIAS','Egresos','510107',194,'(+) IMPORTACIONES DE MATERIA PRIMA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,202,'EC-SUPERCIAS','Egresos','510108',194,'(-) INVENTARIO FINAL DE MATERIA PRIMA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,203,'EC-SUPERCIAS','Egresos','510109',194,'(+) INVENTARIO INICIAL DE PRODUCTOS EN PROCESO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,204,'EC-SUPERCIAS','Egresos','510110',194,'(-) INVENTARIO FINAL DE PRODUCTOS EN PROCESO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,205,'EC-SUPERCIAS','Egresos','510111',194,'(+) INVENTARIO INICIAL PRODUCTOS TERMINADOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,206,'EC-SUPERCIAS','Egresos','510112',194,'(-) INVENTARIO FINAL DE PRODUCTOS TERMINADOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,207,'EC-SUPERCIAS','Egresos','5102',193,'(+) MANO DE OBRA DIRECTA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,208,'EC-SUPERCIAS','Egresos','510201',207,'SUELDOS Y BENEFICIOS SOCIALES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,209,'EC-SUPERCIAS','Egresos','510202',207,'GASTO PLANES DE BENEFICIOS A EMPLEADOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,210,'EC-SUPERCIAS','Egresos','5103',193,'(+) MANO DE OBRA INDIRECTA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,211,'EC-SUPERCIAS','Egresos','510301',210,'SUELDOS Y BENEFICIOS SOCIALES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,212,'EC-SUPERCIAS','Egresos','510302',210,'GASTO PLANES DE BENEFICIOS A EMPLEADOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,213,'EC-SUPERCIAS','Egresos','5104',193,'(+) OTROS COSTOS INDIRECTOS DE FABRICACIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,214,'EC-SUPERCIAS','Egresos','510401',213,'DEPRECIACIÓN PROPIEDADES, PLANTA Y EQUIPO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,215,'EC-SUPERCIAS','Egresos','510402',213,'DETERIORO O PÉRDIDAS DE ACTIVOS BIOLÓGICOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,216,'EC-SUPERCIAS','Egresos','510403',213,'DETERIORO DE PROPIEDAD, PLANTA Y EQUIPO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,217,'EC-SUPERCIAS','Egresos','510404',213,'EFECTO VALOR NETO DE REALIZACIÓN DE INVENTARIOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,218,'EC-SUPERCIAS','Egresos','510405',213,'GASTO POR GARANTÍAS EN VENTA DE PRODUCTOS O SERVICIOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,219,'EC-SUPERCIAS','Egresos','510406',213,'MANTENIMIENTO Y REPARACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,220,'EC-SUPERCIAS','Egresos','510407',213,'SUMINISTROS MATERIALES Y REPUESTOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,221,'EC-SUPERCIAS','Egresos','510408',213,'OTROS COSTOS DE PRODUCCIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,222,'EC-SUPERCIAS','Egresos','52',0,'GASTOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,223,'EC-SUPERCIAS','Egresos','5201',222,'GASTOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,224,'EC-SUPERCIAS','Egresos','520101',223,'SUELDOS, SALARIOS Y DEMÁS REMUNERACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,225,'EC-SUPERCIAS','Egresos','520102',223,'APORTES A LA SEGURIDAD SOCIAL (incluido fondo de reserva)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,226,'EC-SUPERCIAS','Egresos','520103',223,'BENEFICIOS SOCIALES E INDEMNIZACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,227,'EC-SUPERCIAS','Egresos','520104',223,'GASTO PLANES DE BENEFICIOS A EMPLEADOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,228,'EC-SUPERCIAS','Egresos','520105',223,'HONORARIOS, COMISIONES Y DIETAS A PERSONAS NATURALES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,229,'EC-SUPERCIAS','Egresos','520106',223,'REMUNERACIONES A OTROS TRABAJADORES AUTÓNOMOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,230,'EC-SUPERCIAS','Egresos','520107',223,'HONORARIOS A EXTRANJEROS POR SERVICIOS OCASIONALES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,231,'EC-SUPERCIAS','Egresos','520108',223,'MANTENIMIENTO Y REPARACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,232,'EC-SUPERCIAS','Egresos','520109',223,'ARRENDAMIENTO OPERATIVO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,233,'EC-SUPERCIAS','Egresos','520110',223,'COMISIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,234,'EC-SUPERCIAS','Egresos','520111',223,'PROMOCIÓN Y PUBLICIDAD',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,235,'EC-SUPERCIAS','Egresos','520112',223,'COMBUSTIBLES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,236,'EC-SUPERCIAS','Egresos','520113',223,'LUBRICANTES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,237,'EC-SUPERCIAS','Egresos','520114',223,'SEGUROS Y REASEGUROS (primas y cesiones)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,238,'EC-SUPERCIAS','Egresos','520115',223,'TRANSPORTE',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,239,'EC-SUPERCIAS','Egresos','520116',223,'GASTOS DE GESTIÓN (agasajos a accionistas, trabajadores y clientes)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,240,'EC-SUPERCIAS','Egresos','520117',223,'GASTOS DE VIAJE',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,241,'EC-SUPERCIAS','Egresos','520118',223,'AGUA, ENERGÍA, LUZ Y TELECOMUNICACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,242,'EC-SUPERCIAS','Egresos','520119',223,'NOTARIOS Y REGISTRADORES DE LA PROPIEDAD O MERCANTILES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,243,'EC-SUPERCIAS','Egresos','520121',223,'DEPRECIACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,244,'EC-SUPERCIAS','Egresos','52012101',243,'PROPIEDADES, PLANTA Y EQUIPO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,245,'EC-SUPERCIAS','Egresos','52012102',243,'PROPIEDADES DE INVERSIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,246,'EC-SUPERCIAS','Egresos','520122',223,'AMORTIZACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,247,'EC-SUPERCIAS','Egresos','52012201',246,'INTANGIBLES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,248,'EC-SUPERCIAS','Egresos','52012202',246,'OTROS ACTIVOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,249,'EC-SUPERCIAS','Egresos','520123',223,'GASTO DETERIORO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,250,'EC-SUPERCIAS','Egresos','52012301',249,'PROPIEDADES, PLANTA Y EQUIPO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,251,'EC-SUPERCIAS','Egresos','52012306',249,'OTROS ACTIVOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,252,'EC-SUPERCIAS','Egresos','520124',223,'GASTOS POR CANTIDADES ANORMALES DE UTILIZACIÓN EN EL PROCESO DE PRODUCCIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,253,'EC-SUPERCIAS','Egresos','52012401',252,'MANO DE OBRA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,254,'EC-SUPERCIAS','Egresos','52012402',252,'MATERIALES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,255,'EC-SUPERCIAS','Egresos','52012403',252,'COSTOS DE PRODUCCIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,256,'EC-SUPERCIAS','Egresos','520125',223,'GASTO POR REESTRUCTURACIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,257,'EC-SUPERCIAS','Egresos','520126',223,'VALOR NETO DE REALIZACIÓN DE INVENTARIOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,258,'EC-SUPERCIAS','Egresos','520128',223,'OTROS GASTOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,259,'EC-SUPERCIAS','Egresos','5202',222,'GASTOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,260,'EC-SUPERCIAS','Egresos','520201',259,'SUELDOS, SALARIOS Y DEMÁS REMUNERACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,261,'EC-SUPERCIAS','Egresos','520202',259,'APORTES A LA SEGURIDAD SOCIAL (incluido fondo de reserva)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,262,'EC-SUPERCIAS','Egresos','520203',259,'BENEFICIOS SOCIALES E INDEMNIZACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,263,'EC-SUPERCIAS','Egresos','520204',259,'GASTO PLANES DE BENEFICIOS A EMPLEADOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,264,'EC-SUPERCIAS','Egresos','520205',259,'HONORARIOS, COMISIONES Y DIETAS A PERSONAS NATURALES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,265,'EC-SUPERCIAS','Egresos','520206',259,'REMUNERACIONES A OTROS TRABAJADORES AUTÓNOMOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,266,'EC-SUPERCIAS','Egresos','520207',259,'HONORARIOS A EXTRANJEROS POR SERVICIOS OCASIONALES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,267,'EC-SUPERCIAS','Egresos','520208',259,'MANTENIMIENTO Y REPARACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,268,'EC-SUPERCIAS','Egresos','520209',259,'ARRENDAMIENTO OPERATIVO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,269,'EC-SUPERCIAS','Egresos','520210',259,'COMISIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,270,'EC-SUPERCIAS','Egresos','520212',259,'COMBUSTIBLES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,271,'EC-SUPERCIAS','Egresos','520213',259,'LUBRICANTES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,272,'EC-SUPERCIAS','Egresos','520214',259,'SEGUROS Y REASEGUROS (primas y cesiones)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,273,'EC-SUPERCIAS','Egresos','520215',259,'TRANSPORTE',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,274,'EC-SUPERCIAS','Egresos','520216',259,'GASTOS DE GESTIÓN (agasajos a accionistas, trabajadores y clientes)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,275,'EC-SUPERCIAS','Egresos','520217',259,'GASTOS DE VIAJE',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,276,'EC-SUPERCIAS','Egresos','520218',259,'AGUA, ENERGÍA, LUZ Y TELECOMUNICACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,277,'EC-SUPERCIAS','Egresos','520219',259,'NOTARIOS Y REGISTRADORES DE LA PROPIEDAD O MERCANTILES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,278,'EC-SUPERCIAS','Egresos','520220',259,'IMPUESTOS, CONTRIBUCIONES Y OTROS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,279,'EC-SUPERCIAS','Egresos','520221',259,'DEPRECIACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,280,'EC-SUPERCIAS','Egresos','52022101',279,'PROPIEDADES, PLANTA Y EQUIPO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,281,'EC-SUPERCIAS','Egresos','52022102',279,'PROPIEDADES DE INVERSIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,282,'EC-SUPERCIAS','Egresos','520222',259,'AMORTIZACIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,283,'EC-SUPERCIAS','Egresos','52022201',282,'INTANGIBLES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,284,'EC-SUPERCIAS','Egresos','52022202',282,'OTROS ACTIVOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,285,'EC-SUPERCIAS','Egresos','520223',259,'GASTO DETERIORO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,286,'EC-SUPERCIAS','Egresos','52022301',285,'PROPIEDADES, PLANTA Y EQUIPO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,287,'EC-SUPERCIAS','Egresos','52022302',285,'INVENTARIOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,288,'EC-SUPERCIAS','Egresos','52022303',285,'INSTRUMENTOS FINANCIEROS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,289,'EC-SUPERCIAS','Egresos','52022304',285,'INTANGIBLES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,290,'EC-SUPERCIAS','Egresos','52022305',285,'CUENTAS POR COBRAR',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,291,'EC-SUPERCIAS','Egresos','52022306',285,'OTROS ACTIVOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,292,'EC-SUPERCIAS','Egresos','520224',259,'GASTOS POR CANTIDADES ANORMALES DE UTILIZACIÓN EN EL PROCESO DE PRODUCCIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,293,'EC-SUPERCIAS','Egresos','52022401',292,'MANO DE OBRA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,294,'EC-SUPERCIAS','Egresos','52022402',292,'MATERIALES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,295,'EC-SUPERCIAS','Egresos','52022403',292,'COSTOS DE PRODUCCIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,296,'EC-SUPERCIAS','Egresos','520225',259,'GASTO POR REESTRUCTURACIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,297,'EC-SUPERCIAS','Egresos','520226',259,'VALOR NETO DE REALIZACIÓN DE INVENTARIOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,298,'EC-SUPERCIAS','Egresos','520227',259,'GASTO IMPUESTO A LA RENTA (ACTIVOS Y PASIVOS DIFERIDOS)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,299,'EC-SUPERCIAS','Egresos','520228',259,'OTROS GASTOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,300,'EC-SUPERCIAS','Egresos','5203',222,'GASTOS FINANCIEROS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,301,'EC-SUPERCIAS','Egresos','520301',300,'INTERESES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,302,'EC-SUPERCIAS','Egresos','520302',300,'COMISIONES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,303,'EC-SUPERCIAS','Egresos','520303',300,'GASTOS DE FINANCIAMIENTO DE ACTIVOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,304,'EC-SUPERCIAS','Egresos','520304',300,'DIFERENCIA EN CAMBIO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,305,'EC-SUPERCIAS','Egresos','520305',300,'OTROS GASTOS FINANCIEROS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,306,'EC-SUPERCIAS','Egresos','5204',222,'OTROS GASTOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,307,'EC-SUPERCIAS','Egresos','520401',306,'PERDIDA EN INVERSIONES EN ASOCIADAS / SUBSIDIARIAS Y OTRAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,308,'EC-SUPERCIAS','Egresos','520402',306,'OTROS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,309,'EC-SUPERCIAS','Orden','60',0,'GANANCIA (PÉRDIDA) ANTES DE 15% A TRABAJADORES E IMPUESTO A LA RENTA DE OPERACIONES CONTINUADAS --> Subtotal B (A + 43 - 52)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,310,'EC-SUPERCIAS','Orden','61',0,'15% PARTICIPACIÓN TRABAJADORES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,311,'EC-SUPERCIAS','Orden','62',0,'GANANCIA (PÉRDIDA) ANTES DE IMPUESTOS --> Subtotal C (B - 61)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,312,'EC-SUPERCIAS','Orden','63',0,'IMPUESTO A LA RENTA CAUSADO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,313,'EC-SUPERCIAS','Orden','64',0,'GANANCIA (PÉRDIDA) DE OPERACIONES CONTINUADAS ANTES DEL IMPUESTO DIFERIDO --> Subtotal D (C - 63)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,314,'EC-SUPERCIAS','Orden','65',0,'(-) GASTO POR IMPUESTO DIFERIDO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,315,'EC-SUPERCIAS','Orden','66',0,'(+) INGRESO POR IMPUESTO DIFERIDO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,316,'EC-SUPERCIAS','Orden','67',0,'GANANCIA (PÉRDIDA) DE OPERACIONES CONTINUADAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,317,'EC-SUPERCIAS','Orden','71',0,'INGRESOS POR OPERACIONES DISCONTINUADAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,318,'EC-SUPERCIAS','Orden','72',0,'GASTOS POR OPERACIONES DISCONTINUADAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,319,'EC-SUPERCIAS','Orden','73',0,'GANANCIA (PÉRDIDA) ANTES DE 15% A TRABAJADORES E IMPUESTO A LA RENTA DE OPERACIONES DISCONTINUADAS --> Subtotal E (71 - 72)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,320,'EC-SUPERCIAS','Orden','74',0,'15% PARTICIPACIÓN TRABAJADORES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,321,'EC-SUPERCIAS','Orden','75',0,'GANANCIA (PÉRDIDA) ANTES DE IMPUESTOS DE OPERACIONES DISCONTINUADAS --> Subtotal F (E - 74)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,322,'EC-SUPERCIAS','Orden','76',0,'IMPUESTO A LA RENTA CAUSADO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,323,'EC-SUPERCIAS','Orden','77',0,'GANANCIA (PÉRDIDA) DE OPERACIONES DISCONTINUADAS --> Subtotal G (F - 76)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,324,'EC-SUPERCIAS','Orden','79',0,'GANANCIA (PÉRDIDA) NETA DEL PERIODO --> Subtotal H (D + G)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,325,'EC-SUPERCIAS','Orden','7901',324,'PROPIETARIOS DE LA CONTROLADORA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,326,'EC-SUPERCIAS','Orden','7902',324,'PARTICIPACIÓN ATRIBUIBLE A LA NO CONTROLADORA (informativo)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,327,'EC-SUPERCIAS','Orden','81',0,'COMPONENTES DEL OTRO RESULTADO INTEGRAL',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,328,'EC-SUPERCIAS','Orden','8101',327,'DIFERENCIA DE CAMBIO POR CONVERSIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,329,'EC-SUPERCIAS','Orden','8102',327,'VALUACIÓN DE ACTIVOS FINANCIEROS DISPONIBLES PARA LA VENTA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,330,'EC-SUPERCIAS','Orden','8103',327,'GANANCIAS POR REVALUACIÓN DE PROPIEDADES, PLANTA Y EQUIPO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,331,'EC-SUPERCIAS','Orden','8104',327,'GANANCIAS (PÉRDIDAS) ACTUARIALES POR PLANES DE BENEFICIOS DEFINIDOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,332,'EC-SUPERCIAS','Orden','8105',327,'REVERSIÓN DEL DETERIORO (PÉRDIDA POR DETERIORO) DE UN ACTIVO REVALUADO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,333,'EC-SUPERCIAS','Orden','8106',327,'PARTICIPACIÓN DE OTRO RESULTADO INTEGRAL DE ASOCIADAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,334,'EC-SUPERCIAS','Orden','8107',327,'IMPUESTO SOBRE LAS GANACIAS RELATIVO A OTRO RESULTADO INTEGRAL',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,335,'EC-SUPERCIAS','Orden','8108',327,'OTROS (DETALLAR EN NOTAS)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,336,'EC-SUPERCIAS','Orden','82',0,'RESULTADO INTEGRAL TOTAL DEL AÑO --> Subtotal I (H + 81)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,337,'EC-SUPERCIAS','Orden','8201',336,'PROPIETARIOS DE LA CONTROLADORA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,338,'EC-SUPERCIAS','Orden','8202',336,'PARTICIPACIÓN NO CONTROLADORA (informativo)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,339,'EC-SUPERCIAS','Orden','90',0,'GANANCIA POR ACCIÓN (SOLO EMPRESAS QUE COTIZAN EN BOLSA)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,340,'EC-SUPERCIAS','Orden','9001',339,'GANANCIA POR ACCIÓN BÁSICA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,341,'EC-SUPERCIAS','Orden','900101',340,'GANANCIA POR ACCIÓN BÁSICA EN OPERACIONES CONTINUADAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,342,'EC-SUPERCIAS','Orden','900102',340,'GANANCIA POR ACCIÓN BÁSICA EN OPERACIONES DISCONTINUADAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,343,'EC-SUPERCIAS','Orden','9002',339,'GANANCIA POR ACCIÓN DILUÍDA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,344,'EC-SUPERCIAS','Orden','900201',343,'GANANCIA POR ACCIÓN DILUÍDA EN OPERACIONES CONTINUADAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,345,'EC-SUPERCIAS','Orden','900202',343,'GANANCIA POR ACCIÓN DILUÍDA EN OPERACIONES DISCONTINUADAS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,346,'EC-SUPERCIAS','Orden','91',0,'UTILIDAD A REINVERTIR (INFORMATIVO)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,347,'EC-SUPERCIAS','Orden','95',0,'INCREMENTO NETO (DISMINUCIÓN) EN EL EFECTIVO Y EQUIVALENTES AL EFECTIVO, ANTES DEL EFECTO DE LOS CAMBIOS EN LA TASA DE CAMBIO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,348,'EC-SUPERCIAS','Orden','9501',347,'FLUJOS DE EFECTIVO PROCEDENTES DE (UTILIZADOS EN) ACTIVIDADES DE OPERACIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,349,'EC-SUPERCIAS','Orden','950101',348,'CLASES DE COBROS POR ACTIVIDADES DE OPERACIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,350,'EC-SUPERCIAS','Orden','95010101',349,'Cobros procedentes de las ventas de bienes y prestación de servicios',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,351,'EC-SUPERCIAS','Orden','95010102',349,'Cobros procedentes de regalías, cuotas, comisiones y otros ingresos de actividades ordinarias',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,352,'EC-SUPERCIAS','Orden','95010103',349,'Cobros procedentes de contratos mantenidos con propósitos de intermediación o para negociar',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,353,'EC-SUPERCIAS','Orden','95010104',349,'Cobros procedentes de primas y prestaciones, anualidades y otros beneficios de pólizas suscritas',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,354,'EC-SUPERCIAS','Orden','95010105',349,'Otros cobros por actividades de operación',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,355,'EC-SUPERCIAS','Orden','950102',348,'CLASES DE PAGOS POR ACTIVIDADES DE OPERACIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,356,'EC-SUPERCIAS','Orden','95010201',355,'Pagos a proveedores por el suministro de bienes y servicios',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,357,'EC-SUPERCIAS','Orden','95010202',355,'Pagos procedentes de contratos mantenidos para intermediación o para negociar',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,358,'EC-SUPERCIAS','Orden','95010203',355,'Pagos a y por cuenta de los empleados',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,359,'EC-SUPERCIAS','Orden','95010204',355,'Pagos por primas y prestaciones, anualidades y otras obligaciones derivadas de las pólizas suscritas',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,360,'EC-SUPERCIAS','Orden','95010205',355,'Otros pagos por actividades de operación',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,361,'EC-SUPERCIAS','Orden','950103',348,'Dividendos pagados',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,362,'EC-SUPERCIAS','Orden','950104',348,'Dividendos recibidos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,363,'EC-SUPERCIAS','Orden','950105',348,'Intereses pagados',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,364,'EC-SUPERCIAS','Orden','950106',348,'Intereses recibidos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,365,'EC-SUPERCIAS','Orden','950107',348,'Impuestos a las ganancias pagados',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,366,'EC-SUPERCIAS','Orden','950108',348,'Otras entradas (salidas) de efectivo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,367,'EC-SUPERCIAS','Orden','9502',347,'FLUJOS DE EFECTIVOS PROCEDENTES DE (UTILIZADOS EN) ACTIVIDADES DE INVERSIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,368,'EC-SUPERCIAS','Orden','950201',367,'Efectivo procedentes de la venta de acciones en subsidiarias u otros negocios',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,369,'EC-SUPERCIAS','Orden','950202',367,'Efectivo utilizado para adquirir acciones en subsidiarias u otros negocios para tener el control',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,370,'EC-SUPERCIAS','Orden','950203',367,'Efectivo utilizado en la compra de participaciones no controladoras',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,371,'EC-SUPERCIAS','Orden','950204',367,'Otros cobros por la venta de acciones o instrumentos de deuda de otras entidades',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,372,'EC-SUPERCIAS','Orden','950205',367,'Otros pagos para adquirir acciones o instrumentos de deuda de otras entidades',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,373,'EC-SUPERCIAS','Orden','950206',367,'Otros cobros por la venta de participaciones en negocios conjuntos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,374,'EC-SUPERCIAS','Orden','950207',367,'Otros pagos para adquirir participaciones en negocios conjuntos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,375,'EC-SUPERCIAS','Orden','950208',367,'Importes procedentes por la venta de propiedades, planta y equipo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,376,'EC-SUPERCIAS','Orden','950209',367,'Adquisiciones de propiedades, planta y equipo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,377,'EC-SUPERCIAS','Orden','950210',367,'Importes procedentes de ventas de activos intangibles',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,378,'EC-SUPERCIAS','Orden','950211',367,'Compras de activos intangibles',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,379,'EC-SUPERCIAS','Orden','950212',367,'Importes procedentes de otros activos a largo plazo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,380,'EC-SUPERCIAS','Orden','950213',367,'Compras de otros activos a largo plazo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,381,'EC-SUPERCIAS','Orden','950214',367,'Importes procedentes de subvenciones del gobierno',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,382,'EC-SUPERCIAS','Orden','950215',367,'Anticipos de efectivo efectuados a terceros',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,383,'EC-SUPERCIAS','Orden','950216',367,'Cobros procedentes del reembolso de anticipos y préstamos concedidos a terceros',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,384,'EC-SUPERCIAS','Orden','950217',367,'Pagos derivados de contratos de futuro, a término, de opciones y de permuta financiera',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,385,'EC-SUPERCIAS','Orden','950218',367,'Cobros procedentes de contratos de futuro, a término, de opciones y de permuta financiera',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,386,'EC-SUPERCIAS','Orden','950219',367,'Dividendos recibidos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,387,'EC-SUPERCIAS','Orden','950220',367,'Intereses recibidos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,388,'EC-SUPERCIAS','Orden','950221',367,'Otras entradas (salidas) de efectivo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,389,'EC-SUPERCIAS','Orden','9503',347,'FLUJOS DE EFECTIVO PROCEDENTES DE (UTILIZADOS EN) ACTIVIDADES DE FINANCIACIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,390,'EC-SUPERCIAS','Orden','950301',389,'Aporte en efectivo por aumento de capital',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,391,'EC-SUPERCIAS','Orden','950302',389,'Financiamiento por emisión de títulos valores',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,392,'EC-SUPERCIAS','Orden','950303',389,'Pagos por adquirir o rescatar las acciones de la entidad',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,393,'EC-SUPERCIAS','Orden','950304',389,'Financiación por préstamos a largo plazo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,394,'EC-SUPERCIAS','Orden','950305',389,'Pagos de préstamos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,395,'EC-SUPERCIAS','Orden','950306',389,'Pagos de pasivos por arrendamientos financieros',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,396,'EC-SUPERCIAS','Orden','950307',389,'Importes procedentes de subvenciones del gobierno',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,397,'EC-SUPERCIAS','Orden','950308',389,'Dividendos pagados',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,398,'EC-SUPERCIAS','Orden','950309',389,'Intereses recibidos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,399,'EC-SUPERCIAS','Orden','950310',389,'Otras entradas (salidas) de efectivo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,400,'EC-SUPERCIAS','Orden','9504',347,'EFECTOS DE LA VARIACIÓN EN LA TASA DE CAMBIO SOBRE EL EFECTIVO Y EQUIVALENTES AL EFECTIVO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,401,'EC-SUPERCIAS','Orden','950401',400,'Efectos de la variación en la tasa de cambio sobre el efectivo y equivalentes de efectivo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,402,'EC-SUPERCIAS','Orden','9505',347,'INCREMENTO (DISMINUCIÓN) NETO DE EFECTIVO Y EQUIVALENTES AL EFECTIVO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,403,'EC-SUPERCIAS','Orden','9506',347,'EFECTIVO Y EQUIVALENTES AL EFECTIVO AL PRINCIPIO DEL PERIODO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,404,'EC-SUPERCIAS','Orden','9507',347,'EFECTIVO Y EQUIVALENTES AL EFECTIVO AL FINAL DEL PERIODO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,405,'EC-SUPERCIAS','Orden','96',0,'GANANCIA (PÉRDIDA) ANTES DE 15% A TRABAJADORES E IMPUESTO A LA RENTA',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,406,'EC-SUPERCIAS','Orden','97',0,'AJUSTE POR PARTIDAS DISTINTAS AL EFECTIVO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,407,'EC-SUPERCIAS','Orden','9701',406,'Ajustes por gasto de depreciación y amortización',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,408,'EC-SUPERCIAS','Orden','9702',406,'Ajustes por gastos por deterioro (reversiones por deterioro) reconocidas en los resultados del periodo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,409,'EC-SUPERCIAS','Orden','9703',406,'Pérdida (ganancia) de moneda extranjera no realizada',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,410,'EC-SUPERCIAS','Orden','9704',406,'Pérdidas en cambio de moneda extranjera',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,411,'EC-SUPERCIAS','Orden','9705',406,'Ajustes por gastos en provisiones',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,412,'EC-SUPERCIAS','Orden','9706',406,'Ajuste por participaciones no controladoras',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,413,'EC-SUPERCIAS','Orden','9707',406,'Ajuste por pagos basados en acciones',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,414,'EC-SUPERCIAS','Orden','9708',406,'Ajustes por ganancias (pérdidas) en valor razonable',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,415,'EC-SUPERCIAS','Orden','9709',406,'Ajustes por gasto por impuesto a la renta',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,416,'EC-SUPERCIAS','Orden','9710',406,'Ajustes por gasto por participación trabajadores',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,417,'EC-SUPERCIAS','Orden','9711',406,'Otros ajustes por partidas distintas al efectivo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,418,'EC-SUPERCIAS','Orden','98',0,'CAMBIOS EN ACTIVOS Y PASIVOS',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,419,'EC-SUPERCIAS','Orden','9801',418,'(Incremento) disminución en cuentas por cobrar clientes',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,420,'EC-SUPERCIAS','Orden','9802',418,'(Incremento) disminución en otras cuentas por cobrar',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,421,'EC-SUPERCIAS','Orden','9803',418,'(Incremento) disminución en anticipos de proveedores',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,422,'EC-SUPERCIAS','Orden','9804',418,'(Incremento) disminución en inventarios',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,423,'EC-SUPERCIAS','Orden','9805',418,'(Incremento) disminución en otros activos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,424,'EC-SUPERCIAS','Orden','9806',418,'Incremento (disminución) en cuentas por pagar comerciales',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,425,'EC-SUPERCIAS','Orden','9807',418,'Incremento (disminución) en otras cuentas por pagar',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,426,'EC-SUPERCIAS','Orden','9808',418,'Incremento (disminución) en beneficios empleados',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,427,'EC-SUPERCIAS','Orden','9809',418,'Incremento (disminución) en anticipos de clientes',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,428,'EC-SUPERCIAS','Orden','9810',418,'Incremento (disminución) en otros pasivos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,429,'EC-SUPERCIAS','Orden','9820',418,'FLUJOS DE EFECTIVO PROCEDENTES DE (UTILIZADOS EN) ACTIVIDADES DE OPERACIÓN',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,430,'EC-SUPERCIAS','Orden','99',0,'SALDO AL FINAL DEL PERÍODO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,431,'EC-SUPERCIAS','Orden','9901',430,'SALDO REEXPRESADO DEL PERIODO INMEDIATO ANTERIOR',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,432,'EC-SUPERCIAS','Orden','990101',431,'SALDO DEL PERÍODO INMEDIATO ANTERIOR',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,433,'EC-SUPERCIAS','Orden','990102',431,'CAMBIOS EN POLÍTICAS CONTABLES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,434,'EC-SUPERCIAS','Orden','990103',431,'CORRECCIÓN DE ERRORES',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,435,'EC-SUPERCIAS','Orden','9902',430,'CAMBIOS DEL AÑO EN EL PATRIMONIO',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,436,'EC-SUPERCIAS','Orden','990201',435,'Aumento (disminución) de capital social',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,437,'EC-SUPERCIAS','Orden','990202',435,'Aportes para futuras capitalizaciones',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,438,'EC-SUPERCIAS','Orden','990203',435,'Prima por emisión primaria de acciones',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,439,'EC-SUPERCIAS','Orden','990204',435,'Dividendos',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,440,'EC-SUPERCIAS','Orden','990205',435,'Transferencia de Resultados a otras cuentas patrimoniales',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,441,'EC-SUPERCIAS','Orden','990206',435,'Realización de la Reserva por Valuación de Activos Financieros Disponibles para la venta',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,442,'EC-SUPERCIAS','Orden','990207',435,'Realización de la Reserva por Valuación de Propiedades, planta y equipo',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,443,'EC-SUPERCIAS','Orden','990208',435,'Realización de la Reserva por Valuación de Activos Intangibles',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,444,'EC-SUPERCIAS','Orden','990209',435,'Otros cambios (detallar)',1); +INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__,445,'EC-SUPERCIAS','Orden','990210',435,'Resultado Integral Total del Año (Ganancia o pérdida del ejercicio)',1); diff --git a/htdocs/install/mysql/migration/11.0.0-12.0.0.sql b/htdocs/install/mysql/migration/11.0.0-12.0.0.sql index 70eb7c7357c..4bae50bfe27 100644 --- a/htdocs/install/mysql/migration/11.0.0-12.0.0.sql +++ b/htdocs/install/mysql/migration/11.0.0-12.0.0.sql @@ -65,11 +65,22 @@ ALTER TABLE llx_website ADD COLUMN otherlang varchar(255); ALTER TABLE llx_website_page ADD COLUMN author_alias varchar(64); +UPDATE llx_rights_def SET perms = 'order_advance', subperms = 'close' WHERE module = 'commande' AND perms = 'cloturer'; +UPDATE llx_rights_def SET perms = 'propal_advance', subperms = 'close' WHERE module = 'propale' AND perms = 'cloturer'; + ALTER TABLE llx_holiday_users DROP INDEX uk_holiday_users; ALTER TABLE llx_holiday_users ADD UNIQUE INDEX uk_holiday_users(fk_user, fk_type); ALTER TABLE llx_ticket ADD COLUMN import_key varchar(14); +ALTER TABLE llx_ticket ADD UNIQUE uk_ticket_ref (ref, entity); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_entity (entity); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_fk_soc (fk_soc); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_fk_user_assign (fk_user_assign); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_fk_project (fk_project); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_fk_statut (fk_statut); + + --ALTER TABLE llx_facturerec DROP COLUMN vat_src_code; @@ -208,3 +219,27 @@ ALTER TABLE llx_societe_remise_except ADD COLUMN vat_src_code varchar(10) DEFAUL ALTER TABLE llx_blockedlog MODIFY COLUMN object_data mediumtext; ALTER TABLE llx_blockedlog ADD COLUMN object_version varchar(32) DEFAULT ''; +ALTER TABLE llx_product_lot MODIFY COLUMN batch varchar(128); +ALTER TABLE llx_product_batch MODIFY COLUMN batch varchar(128); +ALTER TABLE llx_commande_fournisseur_dispatch MODIFY COLUMN batch varchar(128); +ALTER TABLE llx_stock_mouvement MODIFY COLUMN batch varchar(128); +ALTER TABLE llx_mrp_production MODIFY COLUMN batch varchar(128); + +create table llx_categorie_website_page +( + fk_categorie integer NOT NULL, + fk_website_page integer NOT NULL, + import_key varchar(14) +)ENGINE=innodb; + +ALTER TABLE llx_categorie_website_page ADD PRIMARY KEY pk_categorie_website_page (fk_categorie, fk_website_page); +ALTER TABLE llx_categorie_website_page ADD INDEX idx_categorie_website_page_fk_categorie (fk_categorie); +ALTER TABLE llx_categorie_website_page ADD INDEX idx_categorie_website_page_fk_website_page (fk_website_page); + +ALTER TABLE llx_categorie_website_page ADD CONSTRAINT fk_categorie_website_page_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid); +ALTER TABLE llx_categorie_website_page ADD CONSTRAINT fk_categorie_website_page_website_page_rowid FOREIGN KEY (fk_website_page) REFERENCES llx_website_page (rowid); + +ALTER TABLE llx_categorie ADD COLUMN date_creation datetime; +ALTER TABLE llx_categorie ADD COLUMN tms timestamp; +ALTER TABLE llx_categorie ADD COLUMN fk_user_creat integer; +ALTER TABLE llx_categorie ADD COLUMN fk_user_modif integer; diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 7f5e6fafe3d..4297c5f324d 100644 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -165,6 +165,10 @@ DELETE FROM llx_product_batch WHERE qty = 0; UPDATE llx_product p SET p.stock= (SELECT SUM(ps.reel) FROM llx_product_stock ps WHERE ps.fk_product = p.rowid); +-- Fix: delete orphelins in product_association +delete from llx_product_association where fk_product_pere NOT IN (select rowid from llx_product); +delete from llx_product_association where fk_product_fils NOT IN (select rowid from llx_product); + -- Fix: delete category child with no category parent. drop table tmp_categorie; create table tmp_categorie as select * from llx_categorie; diff --git a/htdocs/install/mysql/tables/llx_adherent.sql b/htdocs/install/mysql/tables/llx_adherent.sql index cb96ab98164..1917e80c81a 100644 --- a/htdocs/install/mysql/tables/llx_adherent.sql +++ b/htdocs/install/mysql/tables/llx_adherent.sql @@ -39,7 +39,7 @@ create table llx_adherent pass_crypted varchar(128), fk_adherent_type integer NOT NULL, morphy varchar(3) NOT NULL, -- personne morale / personne physique - societe varchar(128), -- company name (should be same lenght than societe.name) + societe varchar(128), -- company name (should be same length than societe.name). No more used. fk_soc integer NULL, -- Link to third party linked to member address text, zip varchar(30), diff --git a/htdocs/install/mysql/tables/llx_blockedlog.sql b/htdocs/install/mysql/tables/llx_blockedlog.sql index 80a4c150150..889b28d7a73 100644 --- a/htdocs/install/mysql/tables/llx_blockedlog.sql +++ b/htdocs/install/mysql/tables/llx_blockedlog.sql @@ -33,7 +33,7 @@ CREATE TABLE llx_blockedlog signature varchar(100) NOT NULL, signature_line varchar(100) NOT NULL, object_data mediumtext, - object_version varchar(32) DEFAULT ''; + object_version varchar(32) DEFAULT '', certified integer ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_categorie.sql b/htdocs/install/mysql/tables/llx_categorie.sql index c57c2adaa10..cf1df953ba5 100644 --- a/htdocs/install/mysql/tables/llx_categorie.sql +++ b/htdocs/install/mysql/tables/llx_categorie.sql @@ -31,6 +31,10 @@ create table llx_categorie color varchar(8), -- color fk_soc integer DEFAULT NULL, -- not used by default. Used when option CATEGORY_ASSIGNED_TO_A_CUSTOMER is set. visible tinyint DEFAULT 1 NOT NULL, -- determine if the products are visible or not + date_creation datetime, -- date creation + tms timestamp, -- date modification + fk_user_creat integer, -- user making creation + fk_user_modif integer, -- user making last change import_key varchar(14) -- Import key )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_societe_log.sql b/htdocs/install/mysql/tables/llx_categorie_website_page.key.sql similarity index 50% rename from htdocs/install/mysql/tables/llx_societe_log.sql rename to htdocs/install/mysql/tables/llx_categorie_website_page.key.sql index 91a7ea65087..f819663fd31 100644 --- a/htdocs/install/mysql/tables/llx_societe_log.sql +++ b/htdocs/install/mysql/tables/llx_categorie_website_page.key.sql @@ -1,6 +1,5 @@ --- ======================================================================== --- Copyright (C) 2002-2003 Rodolphe Quiedeville --- Copyright (C) 2007 Laurent Destailleur +-- ============================================================================ +-- Copyright (C) 2020 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 @@ -15,15 +14,12 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -- --- ======================================================================== +-- ============================================================================ + +ALTER TABLE llx_categorie_website_page ADD PRIMARY KEY pk_categorie_website_page (fk_categorie, fk_website_page); +ALTER TABLE llx_categorie_website_page ADD INDEX idx_categorie_website_page_fk_categorie (fk_categorie); +ALTER TABLE llx_categorie_website_page ADD INDEX idx_categorie_website_page_fk_website_page (fk_website_page); + +ALTER TABLE llx_categorie_website_page ADD CONSTRAINT fk_categorie_websitepage_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid); +ALTER TABLE llx_categorie_website_page ADD CONSTRAINT fk_categorie_websitepage_website_page_rowid FOREIGN KEY (fk_website_page) REFERENCES llx_website_page (rowid); -create table llx_societe_log -( - id integer AUTO_INCREMENT PRIMARY KEY, - datel datetime, - fk_soc integer, -- Ne pas mettre de controle d'integrite sur les tables de logs - fk_statut integer, -- Ne pas mettre de controle d'integrite sur les tables de logs - fk_user integer, -- Ne pas mettre de controle d'integrite sur les tables de logs - author varchar(30), - label varchar(128) -)ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_categorie.key.sql b/htdocs/install/mysql/tables/llx_categorie_website_page.sql similarity index 81% rename from htdocs/install/mysql/tables/llx_categorie.key.sql rename to htdocs/install/mysql/tables/llx_categorie_website_page.sql index f1bc9746a46..fe5bd055601 100644 --- a/htdocs/install/mysql/tables/llx_categorie.key.sql +++ b/htdocs/install/mysql/tables/llx_categorie_website_page.sql @@ -17,7 +17,9 @@ -- -- ============================================================================ -ALTER TABLE llx_categorie ADD UNIQUE INDEX uk_categorie_ref (entity, fk_parent, label, type); - -ALTER TABLE llx_categorie ADD INDEX idx_categorie_type (type); -ALTER TABLE llx_categorie ADD INDEX idx_categorie_label (label); +create table llx_categorie_website_page +( + fk_categorie integer NOT NULL, + fk_website_page integer NOT NULL, + import_key varchar(14) +)ENGINE=innodb; \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_societe.key.sql b/htdocs/install/mysql/tables/llx_societe.key.sql index 29b713b608d..5e5bf73dcac 100644 --- a/htdocs/install/mysql/tables/llx_societe.key.sql +++ b/htdocs/install/mysql/tables/llx_societe.key.sql @@ -26,5 +26,14 @@ ALTER TABLE llx_societe ADD UNIQUE INDEX uk_societe_barcode (barcode, fk_barcode ALTER TABLE llx_societe ADD INDEX idx_societe_user_creat(fk_user_creat); ALTER TABLE llx_societe ADD INDEX idx_societe_user_modif(fk_user_modif); +ALTER TABLE llx_societe ADD INDEX idx_societe_stcomm(fk_stcomm); +ALTER TABLE llx_societe ADD INDEX idx_societe_pays(fk_pays); +ALTER TABLE llx_societe ADD INDEX idx_societe_account(fk_account); +ALTER TABLE llx_societe ADD INDEX idx_societe_prospectlevel(fk_prospectlevel); +ALTER TABLE llx_societe ADD INDEX idx_societe_typent(fk_typent); +ALTER TABLE llx_societe ADD INDEX idx_societe_forme_juridique(fk_forme_juridique); +ALTER TABLE llx_societe ADD INDEX idx_societe_shipping_method(fk_shipping_method); +ALTER TABLE llx_societe ADD INDEX idx_societe_entrepot(fk_entrepot); -- ALTER TABLE llx_societe ADD FOREIGN KEY fk_prospectlevel llx_c_prospectlevel(code); + diff --git a/htdocs/install/mysql/tables/llx_societe_rib.key.sql b/htdocs/install/mysql/tables/llx_societe_rib.key.sql index 0fccde0395c..23be102c418 100644 --- a/htdocs/install/mysql/tables/llx_societe_rib.key.sql +++ b/htdocs/install/mysql/tables/llx_societe_rib.key.sql @@ -18,3 +18,5 @@ ALTER TABLE llx_societe_rib ADD UNIQUE INDEX uk_societe_rib(label, fk_soc); + +ALTER TABLE llx_societe_rib ADD CONSTRAINT llx_societe_rib_fk_societe FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid); diff --git a/htdocs/install/mysql/tables/llx_ticket.key.sql b/htdocs/install/mysql/tables/llx_ticket.key.sql index 948eba45a83..d4805d8a788 100644 --- a/htdocs/install/mysql/tables/llx_ticket.key.sql +++ b/htdocs/install/mysql/tables/llx_ticket.key.sql @@ -15,3 +15,9 @@ -- along with this program. If not, see . ALTER TABLE llx_ticket ADD UNIQUE uk_ticket_track_id (track_id); +ALTER TABLE llx_ticket ADD UNIQUE uk_ticket_ref (ref, entity); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_entity (entity); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_fk_soc (fk_soc); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_fk_user_assign (fk_user_assign); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_fk_project (fk_project); +ALTER TABLE llx_ticket ADD INDEX idx_ticket_fk_statut (fk_statut); diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 78abde9caa1..d129fbeb1e4 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -30,30 +30,30 @@ include_once $dolibarr_main_document_root.'/core/lib/images.lib.php'; require_once $dolibarr_main_document_root.'/core/class/extrafields.class.php'; require_once 'lib/repair.lib.php'; -$grant_query=''; +$grant_query = ''; $step = 2; $ok = 0; // Cette page peut etre longue. On augmente le delai autorise. // Ne fonctionne que si on est pas en safe_mode. -$err=error_reporting(); +$err = error_reporting(); error_reporting(0); @set_time_limit(120); error_reporting($err); -$setuplang=GETPOST("selectlang", 'aZ09', 3)?GETPOST("selectlang", 'aZ09', 3):'auto'; +$setuplang = GETPOST("selectlang", 'aZ09', 3) ?GETPOST("selectlang", 'aZ09', 3) : 'auto'; $langs->setDefaultLang($setuplang); -$langs->loadLangs(array("admin","install","other")); +$langs->loadLangs(array("admin", "install", "other")); -if ($dolibarr_main_db_type == "mysqli") $choix=1; -if ($dolibarr_main_db_type == "pgsql") $choix=2; -if ($dolibarr_main_db_type == "mssql") $choix=3; +if ($dolibarr_main_db_type == "mysqli") $choix = 1; +if ($dolibarr_main_db_type == "pgsql") $choix = 2; +if ($dolibarr_main_db_type == "mssql") $choix = 3; dolibarr_install_syslog("--- repair: entering upgrade.php page"); -if (! is_object($conf)) dolibarr_install_syslog("repair: conf file not initialized", LOG_ERR); +if (!is_object($conf)) dolibarr_install_syslog("repair: conf file not initialized", LOG_ERR); /* @@ -63,42 +63,42 @@ if (! is_object($conf)) dolibarr_install_syslog("repair: conf file not initializ pHeader('', "upgrade2", GETPOST('action', 'aZ09')); // Action to launch the repair script -$actiondone=1; +$actiondone = 1; print '

    '.$langs->trans("Repair").'

    '; -print 'Option standard (\'test\' or \'confirmed\') is '.(GETPOST('standard', 'alpha')?GETPOST('standard', 'alpha'):'undefined').'
    '."\n"; +print 'Option standard (\'test\' or \'confirmed\') is '.(GETPOST('standard', 'alpha') ?GETPOST('standard', 'alpha') : 'undefined').'
    '."\n"; // Disable modules -print 'Option force_disable_of_modules_not_found (\'test\' or \'confirmed\') is '.(GETPOST('force_disable_of_modules_not_found', 'alpha')?GETPOST('force_disable_of_modules_not_found', 'alpha'):'undefined').'
    '."\n"; +print 'Option force_disable_of_modules_not_found (\'test\' or \'confirmed\') is '.(GETPOST('force_disable_of_modules_not_found', 'alpha') ?GETPOST('force_disable_of_modules_not_found', 'alpha') : 'undefined').'
    '."\n"; // Files -print 'Option restore_thirdparties_logos (\'test\' or \'confirmed\') is '.(GETPOST('restore_thirdparties_logos', 'alpha')?GETPOST('restore_thirdparties_logos', 'alpha'):'undefined').'
    '."\n"; -print 'Option restore_user_pictures (\'test\' or \'confirmed\') is '.(GETPOST('restore_user_pictures', 'alpha')?GETPOST('restore_user_pictures', 'alpha'):'undefined').'
    '."\n"; -print 'Option rebuild_product_thumbs (\'test\' or \'confirmed\') is '.(GETPOST('rebuild_product_thumbs', 'alpha')?GETPOST('rebuild_product_thumbs', 'alpha'):'undefined').'
    '."\n"; +print 'Option restore_thirdparties_logos (\'test\' or \'confirmed\') is '.(GETPOST('restore_thirdparties_logos', 'alpha') ?GETPOST('restore_thirdparties_logos', 'alpha') : 'undefined').'
    '."\n"; +print 'Option restore_user_pictures (\'test\' or \'confirmed\') is '.(GETPOST('restore_user_pictures', 'alpha') ?GETPOST('restore_user_pictures', 'alpha') : 'undefined').'
    '."\n"; +print 'Option rebuild_product_thumbs (\'test\' or \'confirmed\') is '.(GETPOST('rebuild_product_thumbs', 'alpha') ?GETPOST('rebuild_product_thumbs', 'alpha') : 'undefined').'
    '."\n"; // Clean tables and data -print 'Option clean_linked_elements (\'test\' or \'confirmed\') is '.(GETPOST('clean_linked_elements', 'alpha')?GETPOST('clean_linked_elements', 'alpha'):'undefined').'
    '."\n"; -print 'Option clean_menus (\'test\' or \'confirmed\') is '.(GETPOST('clean_menus', 'alpha')?GETPOST('clean_menus', 'alpha'):'undefined').'
    '."\n"; -print 'Option clean_orphelin_dir (\'test\' or \'confirmed\') is '.(GETPOST('clean_orphelin_dir', 'alpha')?GETPOST('clean_orphelin_dir', 'alpha'):'undefined').'
    '."\n"; -print 'Option clean_product_stock_batch (\'test\' or \'confirmed\') is '.(GETPOST('clean_product_stock_batch', 'alpha')?GETPOST('clean_product_stock_batch', 'alpha'):'undefined').'
    '."\n"; -print 'Option clean_perm_table (\'test\' or \'confirmed\') is '.(GETPOST('clean_perm_table', 'alpha')?GETPOST('clean_perm_table', 'alpha'):'undefined').'
    '."\n"; -print 'Option repair_link_dispatch_lines_supplier_order_lines, (\'test\' or \'confirmed\') is '.(GETPOST('repair_link_dispatch_lines_supplier_order_lines', 'alpha')?GETPOST('repair_link_dispatch_lines_supplier_order_lines', 'alpha'):'undefined').'
    '."\n"; +print 'Option clean_linked_elements (\'test\' or \'confirmed\') is '.(GETPOST('clean_linked_elements', 'alpha') ?GETPOST('clean_linked_elements', 'alpha') : 'undefined').'
    '."\n"; +print 'Option clean_menus (\'test\' or \'confirmed\') is '.(GETPOST('clean_menus', 'alpha') ?GETPOST('clean_menus', 'alpha') : 'undefined').'
    '."\n"; +print 'Option clean_orphelin_dir (\'test\' or \'confirmed\') is '.(GETPOST('clean_orphelin_dir', 'alpha') ?GETPOST('clean_orphelin_dir', 'alpha') : 'undefined').'
    '."\n"; +print 'Option clean_product_stock_batch (\'test\' or \'confirmed\') is '.(GETPOST('clean_product_stock_batch', 'alpha') ?GETPOST('clean_product_stock_batch', 'alpha') : 'undefined').'
    '."\n"; +print 'Option clean_perm_table (\'test\' or \'confirmed\') is '.(GETPOST('clean_perm_table', 'alpha') ?GETPOST('clean_perm_table', 'alpha') : 'undefined').'
    '."\n"; +print 'Option repair_link_dispatch_lines_supplier_order_lines, (\'test\' or \'confirmed\') is '.(GETPOST('repair_link_dispatch_lines_supplier_order_lines', 'alpha') ?GETPOST('repair_link_dispatch_lines_supplier_order_lines', 'alpha') : 'undefined').'
    '."\n"; // Init data -print 'Option set_empty_time_spent_amount (\'test\' or \'confirmed\') is '.(GETPOST('set_empty_time_spent_amount', 'alpha')?GETPOST('set_empty_time_spent_amount', 'alpha'):'undefined').'
    '."\n"; +print 'Option set_empty_time_spent_amount (\'test\' or \'confirmed\') is '.(GETPOST('set_empty_time_spent_amount', 'alpha') ?GETPOST('set_empty_time_spent_amount', 'alpha') : 'undefined').'
    '."\n"; // Structure -print 'Option force_utf8_on_tables, for mysql/mariadb only (\'test\' or \'confirmed\') is '.(GETPOST('force_utf8_on_tables', 'alpha')?GETPOST('force_utf8_on_tables', 'alpha'):'undefined').'
    '."\n"; +print 'Option force_utf8_on_tables, for mysql/mariadb only (\'test\' or \'confirmed\') is '.(GETPOST('force_utf8_on_tables', 'alpha') ?GETPOST('force_utf8_on_tables', 'alpha') : 'undefined').'
    '."\n"; print '
    '; print ''; -$error=0; +$error = 0; // If password is encoded, we decode it -if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || ! empty($dolibarr_main_db_encrypted_pass)) +if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) { require_once $dolibarr_main_document_root.'/core/lib/security.lib.php'; if (preg_match('/crypted:/i', $dolibarr_main_db_pass)) { $dolibarr_main_db_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_pass); - $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted + $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted } else $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass); } @@ -112,62 +112,62 @@ $conf->db->user = $dolibarr_main_db_user; $conf->db->pass = $dolibarr_main_db_pass; // For encryption -$conf->db->dolibarr_main_db_encryption = isset($dolibarr_main_db_encryption)?$dolibarr_main_db_encryption:''; -$conf->db->dolibarr_main_db_cryptkey = isset($dolibarr_main_db_cryptkey)?$dolibarr_main_db_cryptkey:''; +$conf->db->dolibarr_main_db_encryption = isset($dolibarr_main_db_encryption) ? $dolibarr_main_db_encryption : ''; +$conf->db->dolibarr_main_db_cryptkey = isset($dolibarr_main_db_cryptkey) ? $dolibarr_main_db_cryptkey : ''; -$db=getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); +$db = getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); if ($db->connected) { print '"; - dolibarr_install_syslog("repair: " . $langs->transnoentities("ServerConnection") . ": " . $dolibarr_main_db_host . $langs->transnoentities("OK")); + dolibarr_install_syslog("repair: ".$langs->transnoentities("ServerConnection").": ".$dolibarr_main_db_host.$langs->transnoentities("OK")); $ok = 1; } else { print ""; - dolibarr_install_syslog("repair: " . $langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); + dolibarr_install_syslog("repair: ".$langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); $ok = 0; } if ($ok) { - if($db->database_selected) + if ($db->database_selected) { print '"; - dolibarr_install_syslog("repair: database connection successful: " . $dolibarr_main_db_name); - $ok=1; + dolibarr_install_syslog("repair: database connection successful: ".$dolibarr_main_db_name); + $ok = 1; } else { print ""; - dolibarr_install_syslog("repair: " . $langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); - $ok=0; + dolibarr_install_syslog("repair: ".$langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); + $ok = 0; } } // Show database version if ($ok) { - $version=$db->getVersion(); - $versionarray=$db->getVersionArray(); + $version = $db->getVersion(); + $versionarray = $db->getVersionArray(); print ''; print ''; - dolibarr_install_syslog("repair: " . $langs->transnoentities("ServerVersion") . ": " . $version); + dolibarr_install_syslog("repair: ".$langs->transnoentities("ServerVersion").": ".$version); //print ''; } $conf->setValues($db); // Reset forced setup after the setValues -if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE=constant('SYSLOG_FILE'); +if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE = constant('SYSLOG_FILE'); $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; /* Start action here */ -$oneoptionset=0; -$oneoptionset=(GETPOST('standard', 'alpha') || GETPOST('restore_thirdparties_logos', 'alpha') || GETPOST('clean_linked_elements', 'alpha') || GETPOST('clean_menus', 'alpha') +$oneoptionset = 0; +$oneoptionset = (GETPOST('standard', 'alpha') || GETPOST('restore_thirdparties_logos', 'alpha') || GETPOST('clean_linked_elements', 'alpha') || GETPOST('clean_menus', 'alpha') || GETPOST('clean_orphelin_dir', 'alpha') || GETPOST('clean_product_stock_batch', 'alpha') || GETPOST('set_empty_time_spent_amount', 'alpha') || GETPOST('rebuild_product_thumbs', 'alpha') || GETPOST('clean_perm_table', 'alpha') || GETPOST('force_disable_of_modules_not_found', 'alpha') || GETPOST('force_utf8_on_tables', 'alpha')); @@ -185,32 +185,32 @@ if ($ok && GETPOST('standard', 'alpha')) { $dir = "mysql/migration/"; - $filelist=array(); + $filelist = array(); $i = 0; $ok = 0; // Recupere list fichier - $filesindir=array(); - $handle=opendir($dir); + $filesindir = array(); + $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - if (preg_match('/\.sql$/i', $file)) $filesindir[]=$file; + if (preg_match('/\.sql$/i', $file)) $filesindir[] = $file; } } sort($filesindir); - foreach($filesindir as $file) + foreach ($filesindir as $file) { if (preg_match('/repair/i', $file)) { - $filelist[]=$file; + $filelist[] = $file; } } // Loop on each file - foreach($filelist as $file) + foreach ($filelist as $file) { print ''; @@ -218,7 +218,7 @@ if ($ok && GETPOST('standard', 'alpha')) $name = substr($file, 0, dol_strlen($file) - 4); // Run sql script - $ok=run_sql($dir.$file, 0, '', 1); + $ok = run_sql($dir.$file, 0, '', 1); } } @@ -227,79 +227,79 @@ if ($ok && GETPOST('standard', 'alpha')) if ($ok && GETPOST('standard', 'alpha')) { - $extrafields=new ExtraFields($db); - $listofmodulesextra=array('societe'=>'societe','adherent'=>'adherent','product'=>'product', + $extrafields = new ExtraFields($db); + $listofmodulesextra = array('societe'=>'societe', 'adherent'=>'adherent', 'product'=>'product', 'socpeople'=>'socpeople', 'commande'=>'commande', 'facture'=>'facture', 'supplier_proposal'=>'supplier_proposal', 'commande_fournisseur'=>'commande_fournisseur', 'facture_fourn'=>'facture_fourn', 'actioncomm'=>'actioncomm', - 'adherent_type'=>'adherent_type','user'=>'user','projet'=>'projet', 'projet_task'=>'projet_task'); + 'adherent_type'=>'adherent_type', 'user'=>'user', 'projet'=>'projet', 'projet_task'=>'projet_task'); print ''; - foreach($listofmodulesextra as $tablename => $elementtype) + foreach ($listofmodulesextra as $tablename => $elementtype) { // Get list of fields - $tableextra=MAIN_DB_PREFIX.$tablename.'_extrafields'; + $tableextra = MAIN_DB_PREFIX.$tablename.'_extrafields'; // Define $arrayoffieldsdesc - $arrayoffieldsdesc=$extrafields->fetch_name_optionals_label($elementtype); + $arrayoffieldsdesc = $extrafields->fetch_name_optionals_label($elementtype); // Define $arrayoffieldsfound - $arrayoffieldsfound=array(); - $resql=$db->DDLDescTable($tableextra); + $arrayoffieldsfound = array(); + $resql = $db->DDLDescTable($tableextra); if ($resql) { print ''; - $sql ="SELECT name, entity, value"; - $sql.=" FROM ".MAIN_DB_PREFIX."const as c"; - $sql.=" WHERE name LIKE 'MAIN_MODULE_%_TPL' OR name LIKE 'MAIN_MODULE_%_CSS' OR name LIKE 'MAIN_MODULE_%_JS' OR name LIKE 'MAIN_MODULE_%_HOOKS'"; - $sql.=" OR name LIKE 'MAIN_MODULE_%_TRIGGERS' OR name LIKE 'MAIN_MODULE_%_THEME' OR name LIKE 'MAIN_MODULE_%_SUBSTITUTIONS' OR name LIKE 'MAIN_MODULE_%_MODELS'"; - $sql.=" OR name LIKE 'MAIN_MODULE_%_MENUS' OR name LIKE 'MAIN_MODULE_%_LOGIN' OR name LIKE 'MAIN_MODULE_%_BARCODE' OR name LIKE 'MAIN_MODULE_%_TABS_%'"; - $sql.=" OR name LIKE 'MAIN_MODULE_%_MODULEFOREXTERNAL'"; - $sql.=" ORDER BY name, entity"; + $sql = "SELECT name, entity, value"; + $sql .= " FROM ".MAIN_DB_PREFIX."const as c"; + $sql .= " WHERE name LIKE 'MAIN_MODULE_%_TPL' OR name LIKE 'MAIN_MODULE_%_CSS' OR name LIKE 'MAIN_MODULE_%_JS' OR name LIKE 'MAIN_MODULE_%_HOOKS'"; + $sql .= " OR name LIKE 'MAIN_MODULE_%_TRIGGERS' OR name LIKE 'MAIN_MODULE_%_THEME' OR name LIKE 'MAIN_MODULE_%_SUBSTITUTIONS' OR name LIKE 'MAIN_MODULE_%_MODELS'"; + $sql .= " OR name LIKE 'MAIN_MODULE_%_MENUS' OR name LIKE 'MAIN_MODULE_%_LOGIN' OR name LIKE 'MAIN_MODULE_%_BARCODE' OR name LIKE 'MAIN_MODULE_%_TABS_%'"; + $sql .= " OR name LIKE 'MAIN_MODULE_%_MODULEFOREXTERNAL'"; + $sql .= " ORDER BY name, entity"; $resql = $db->query($sql); if ($resql) @@ -372,18 +372,18 @@ if ($ok && GETPOST('standard', 'alpha')) $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); $reg = array(); if (preg_match('/MAIN_MODULE_([^_]+)_(.+)/i', $obj->name, $reg)) { - $name=$reg[1]; - $type=$reg[2]; + $name = $reg[1]; + $type = $reg[2]; - $sql2 ="SELECT COUNT(*) as nb"; - $sql2.=" FROM ".MAIN_DB_PREFIX."const as c"; - $sql2.=" WHERE name = 'MAIN_MODULE_".$name."'"; - $sql2.=" AND entity = ".$obj->entity; + $sql2 = "SELECT COUNT(*) as nb"; + $sql2 .= " FROM ".MAIN_DB_PREFIX."const as c"; + $sql2 .= " WHERE name = 'MAIN_MODULE_".$name."'"; + $sql2 .= " AND entity = ".$obj->entity; $resql2 = $db->query($sql2); if ($resql2) { @@ -427,8 +427,8 @@ if ($ok && GETPOST('standard', 'alpha')) { print ''; - $sql ="SELECT file, entity FROM ".MAIN_DB_PREFIX."boxes_def"; - $sql.=" WHERE file like '%@%'"; + $sql = "SELECT file, entity FROM ".MAIN_DB_PREFIX."boxes_def"; + $sql .= " WHERE file like '%@%'"; $resql = $db->query($sql); if ($resql) @@ -442,19 +442,19 @@ if ($ok && GETPOST('standard', 'alpha')) $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); $reg = array(); if (preg_match('/^(.+)@(.+)$/i', $obj->file, $reg)) { - $name=$reg[1]; - $module=$reg[2]; + $name = $reg[1]; + $module = $reg[2]; - $sql2 ="SELECT COUNT(*) as nb"; - $sql2.=" FROM ".MAIN_DB_PREFIX."const as c"; - $sql2.=" WHERE name = 'MAIN_MODULE_".strtoupper($module)."'"; - $sql2.=" AND entity = ".$obj->entity; - $sql2.=" AND value <> 0"; + $sql2 = "SELECT COUNT(*) as nb"; + $sql2 .= " FROM ".MAIN_DB_PREFIX."const as c"; + $sql2 .= " WHERE name = 'MAIN_MODULE_".strtoupper($module)."'"; + $sql2 .= " AND entity = ".$obj->entity; + $sql2 .= " AND value <> 0"; $resql2 = $db->query($sql2); if ($resql2) { @@ -498,20 +498,20 @@ if ($ok && GETPOST('restore_thirdparties_logos')) { //$exts=array('gif','png','jpg'); - $ext=''; + $ext = ''; print ''; - $sql ="SELECT rowid, module"; - $sql.=" FROM ".MAIN_DB_PREFIX."menu as c"; - $sql.=" WHERE module IS NOT NULL AND module <> ''"; - $sql.=" ORDER BY module"; + $sql = "SELECT rowid, module"; + $sql .= " FROM ".MAIN_DB_PREFIX."menu as c"; + $sql .= " WHERE module IS NOT NULL AND module <> ''"; + $sql .= " ORDER BY module"; $resql = $db->query($sql); if ($resql) @@ -782,10 +782,10 @@ if ($ok && GETPOST('clean_menus', 'alpha')) $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); - $modulecond=$obj->module; - $modulecondarray = explode('|', $obj->module); // Name of module + $modulecond = $obj->module; + $modulecondarray = explode('|', $obj->module); // Name of module print ''; - $filearray=dol_dir_list($upload_dir, "files", 1, '', array('^SPECIMEN\.pdf$','^\.','(\.meta|_preview.*\.png)$','^temp$','^payments$','^CVS$','^thumbs$'), '', SORT_DESC, 1, true); + $filearray = dol_dir_list($upload_dir, "files", 1, '', array('^SPECIMEN\.pdf$', '^\.', '(\.meta|_preview.*\.png)$', '^temp$', '^payments$', '^CVS$', '^thumbs$'), '', SORT_DESC, 1, true); // To show ref or specific information according to view to show (defined by $module) if ($modulepart == 'company') { include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; - $object_instance=new Societe($db); + $object_instance = new Societe($db); } if ($modulepart == 'invoice') { include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; - $object_instance=new Facture($db); + $object_instance = new Facture($db); } elseif ($modulepart == 'invoice_supplier') { include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; - $object_instance=new FactureFournisseur($db); + $object_instance = new FactureFournisseur($db); } elseif ($modulepart == 'propal') { include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; - $object_instance=new Propal($db); + $object_instance = new Propal($db); } elseif ($modulepart == 'order') { include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; - $object_instance=new Commande($db); + $object_instance = new Commande($db); } elseif ($modulepart == 'order_supplier') { include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; - $object_instance=new CommandeFournisseur($db); + $object_instance = new CommandeFournisseur($db); } elseif ($modulepart == 'contract') { include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; - $object_instance=new Contrat($db); + $object_instance = new Contrat($db); } elseif ($modulepart == 'tax') { include_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; - $object_instance=new ChargeSociales($db); + $object_instance = new ChargeSociales($db); } - foreach($filearray as $key => $file) + foreach ($filearray as $key => $file) { if (!is_dir($file['name']) && $file['name'] != '.' @@ -925,38 +925,38 @@ if ($ok && GETPOST('clean_orphelin_dir', 'alpha')) ) { // Define relative path used to store the file - $relativefile=preg_replace('/'.preg_quote($upload_dir.'/', '/').'/', '', $file['fullname']); + $relativefile = preg_replace('/'.preg_quote($upload_dir.'/', '/').'/', '', $file['fullname']); //var_dump($file); - $id=0; $ref=''; $object_instance->id=0; $object_instance->ref=''; $label=''; + $id = 0; $ref = ''; $object_instance->id = 0; $object_instance->ref = ''; $label = ''; // To show ref or specific information according to view to show (defined by $module) - if ($modulepart == 'invoice') { - preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref=$reg[1]; + if ($modulepart == 'invoice') { + preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref = $reg[1]; } if ($modulepart == 'invoice_supplier') { - preg_match('/(\d+)\/[^\/]+$/', $relativefile, $reg); $id=empty($reg[1])?'':$reg[1]; + preg_match('/(\d+)\/[^\/]+$/', $relativefile, $reg); $id = empty($reg[1]) ? '' : $reg[1]; } - if ($modulepart == 'propal') { - preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref=$reg[1]; + if ($modulepart == 'propal') { + preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref = $reg[1]; } - if ($modulepart == 'order') { - preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref=$reg[1]; + if ($modulepart == 'order') { + preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref = $reg[1]; } - if ($modulepart == 'order_supplier') { - preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref=$reg[1]; + if ($modulepart == 'order_supplier') { + preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref = $reg[1]; } - if ($modulepart == 'contract') { - preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref=$reg[1]; + if ($modulepart == 'contract') { + preg_match('/(.*)\/[^\/]+$/', $relativefile, $reg); $ref = $reg[1]; } - if ($modulepart == 'tax') { - preg_match('/(\d+)\/[^\/]+$/', $relativefile, $reg); $id=$reg[1]; + if ($modulepart == 'tax') { + preg_match('/(\d+)\/[^\/]+$/', $relativefile, $reg); $id = $reg[1]; } if ($id || $ref) { //print 'Fetch '.$id.' or '.$ref.'
    '; - $result=$object_instance->fetch($id, $ref); + $result = $object_instance->fetch($id, $ref); //print $result.'
    '; if ($result == 0) // Not found but no error { @@ -980,16 +980,16 @@ if ($ok && GETPOST('clean_orphelin_dir', 'alpha')) // clean_linked_elements: Check and clean linked elements if ($ok && GETPOST('clean_product_stock_batch', 'alpha')) { - $methodtofix=GETPOST('methodtofix', 'alpha')?GETPOST('methodtofix', 'alpha'):'updatestock'; + $methodtofix = GETPOST('methodtofix', 'alpha') ?GETPOST('methodtofix', 'alpha') : 'updatestock'; print ''; - $sql ="SELECT p.rowid, p.ref, p.tobatch, ps.rowid as psrowid, ps.fk_entrepot, ps.reel, SUM(pb.qty) as reelbatch"; - $sql.=" FROM ".MAIN_DB_PREFIX."product as p, ".MAIN_DB_PREFIX."product_stock as ps LEFT JOIN ".MAIN_DB_PREFIX."product_batch as pb ON ps.rowid = pb.fk_product_stock"; - $sql.=" WHERE p.rowid = ps.fk_product"; - $sql.=" AND p.tobatch = 1"; - $sql.=" GROUP BY p.rowid, p.ref, p.tobatch, ps.rowid, ps.fk_entrepot, ps.reel"; - $sql.=" HAVING reel != SUM(pb.qty) or SUM(pb.qty) IS NULL"; + $sql = "SELECT p.rowid, p.ref, p.tobatch, ps.rowid as psrowid, ps.fk_entrepot, ps.reel, SUM(pb.qty) as reelbatch"; + $sql .= " FROM ".MAIN_DB_PREFIX."product as p, ".MAIN_DB_PREFIX."product_stock as ps LEFT JOIN ".MAIN_DB_PREFIX."product_batch as pb ON ps.rowid = pb.fk_product_stock"; + $sql .= " WHERE p.rowid = ps.fk_product"; + $sql .= " AND p.tobatch = 1"; + $sql .= " GROUP BY p.rowid, p.ref, p.tobatch, ps.rowid, ps.fk_entrepot, ps.reel"; + $sql .= " HAVING reel != SUM(pb.qty) or SUM(pb.qty) IS NULL"; print $sql; $resql = $db->query($sql); if ($resql) @@ -1001,8 +1001,8 @@ if ($ok && GETPOST('clean_product_stock_batch', 'alpha')) $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); - print ''; - $sql ="SELECT p.rowid, p.ref, p.tobatch, ps.rowid as psrowid, ps.fk_entrepot, ps.reel, SUM(pb.qty) as reelbatch"; - $sql.=" FROM ".MAIN_DB_PREFIX."product as p, ".MAIN_DB_PREFIX."product_stock as ps, ".MAIN_DB_PREFIX."product_batch as pb"; - $sql.=" WHERE p.rowid = ps.fk_product AND ps.rowid = pb.fk_product_stock"; - $sql.=" AND p.tobatch = 1"; - $sql.=" GROUP BY p.rowid, p.ref, p.tobatch, ps.rowid, ps.fk_entrepot, ps.reel"; - $sql.=" HAVING reel != SUM(pb.qty)"; + $sql = "SELECT p.rowid, p.ref, p.tobatch, ps.rowid as psrowid, ps.fk_entrepot, ps.reel, SUM(pb.qty) as reelbatch"; + $sql .= " FROM ".MAIN_DB_PREFIX."product as p, ".MAIN_DB_PREFIX."product_stock as ps, ".MAIN_DB_PREFIX."product_batch as pb"; + $sql .= " WHERE p.rowid = ps.fk_product AND ps.rowid = pb.fk_product_stock"; + $sql .= " AND p.tobatch = 1"; + $sql .= " GROUP BY p.rowid, p.ref, p.tobatch, ps.rowid, ps.fk_entrepot, ps.reel"; + $sql .= " HAVING reel != SUM(pb.qty)"; $resql = $db->query($sql); if ($resql) { @@ -1099,7 +1099,7 @@ if ($ok && GETPOST('clean_product_stock_negative_if_batch', 'alpha')) $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); print ''; - $sql ="SELECT COUNT(ptt.rowid) as nb, u.rowid as user_id, u.login, u.thm as user_thm"; - $sql.=" FROM ".MAIN_DB_PREFIX."projet_task_time as ptt, ".MAIN_DB_PREFIX."user as u"; - $sql.=" WHERE ptt.fk_user = u.rowid"; - $sql.=" AND ptt.thm IS NULL and u.thm > 0"; - $sql.=" GROUP BY u.rowid, u.login, u.thm"; + $sql = "SELECT COUNT(ptt.rowid) as nb, u.rowid as user_id, u.login, u.thm as user_thm"; + $sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as ptt, ".MAIN_DB_PREFIX."user as u"; + $sql .= " WHERE ptt.fk_user = u.rowid"; + $sql .= " AND ptt.thm IS NULL and u.thm > 0"; + $sql .= " GROUP BY u.rowid, u.login, u.thm"; $resql = $db->query($sql); if ($resql) @@ -1129,17 +1129,17 @@ if ($ok && GETPOST('set_empty_time_spent_amount', 'alpha')) $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); print ''; - $arraylistofkey=array('hooks','js','css'); + $arraylistofkey = array('hooks', 'js', 'css'); - foreach($arraylistofkey as $key) + foreach ($arraylistofkey as $key) { - $sql ="SELECT DISTINCT name, value"; - $sql.=" FROM ".MAIN_DB_PREFIX."const as c"; - $sql.=" WHERE name LIKE 'MAIN_MODULE_%_".strtoupper($key)."'"; - $sql.=" ORDER BY name"; + $sql = "SELECT DISTINCT name, value"; + $sql .= " FROM ".MAIN_DB_PREFIX."const as c"; + $sql .= " WHERE name LIKE 'MAIN_MODULE_%_".strtoupper($key)."'"; + $sql .= " ORDER BY name"; $resql = $db->query($sql); if ($resql) @@ -1191,8 +1191,8 @@ if ($ok && GETPOST('force_disable_of_modules_not_found', 'alpha')) $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); - $constantname = $obj->name; // Name of constant for hook or js or css declaration + $obj = $db->fetch_object($resql); + $constantname = $obj->name; // Name of constant for hook or js or css declaration print ''; - $listofmods=''; - foreach($conf->modules as $key => $val) + $listofmods = ''; + foreach ($conf->modules as $key => $val) { - $listofmods.=($listofmods?',':'')."'".$val."'"; + $listofmods .= ($listofmods ? ',' : '')."'".$val."'"; } $sql = 'SELECT id, libelle as label, module from '.MAIN_DB_PREFIX.'rights_def WHERE module not in ('.$listofmods.') AND id > 100000'; $resql = $db->query($sql); @@ -1315,7 +1315,7 @@ if ($ok && GETPOST('clean_perm_table', 'alpha')) $i = 0; while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); if ($obj->id > 0) { print ''; @@ -1387,7 +1387,7 @@ if ($ok && GETPOST('force_utf8_on_tables', 'alpha')) // Enable foreign key checking if ($force_utf8_on_tables == 'confirmed') { - $sql='SET FOREIGN_KEY_CHECKS=1'; + $sql = 'SET FOREIGN_KEY_CHECKS=1'; print ''; $resql = $db->query($sql); } @@ -1429,7 +1429,7 @@ if ($ok && GETPOST('repair_link_dispatch_lines_supplier_order_lines')) { echo ''; echo ''; - $sql_dispatch = 'SELECT * FROM ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch WHERE COALESCE(fk_commandefourndet, 0) = 0'; + $sql_dispatch = 'SELECT * FROM '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch WHERE COALESCE(fk_commandefourndet, 0) = 0'; $db->begin(); $resql_dispatch = $db->query($sql_dispatch); $n_processed_rows = 0; @@ -1440,9 +1440,9 @@ if ($ok && GETPOST('repair_link_dispatch_lines_supplier_order_lines')) { exit; } while ($obj_dispatch = $db->fetch_object($resql_dispatch)) { - $sql_line = 'SELECT line.rowid, line.qty FROM ' . MAIN_DB_PREFIX . 'commande_fournisseurdet AS line' - . ' WHERE line.fk_commande = ' . $obj_dispatch->fk_commande - . ' AND line.fk_product = ' . $obj_dispatch->fk_product; + $sql_line = 'SELECT line.rowid, line.qty FROM '.MAIN_DB_PREFIX.'commande_fournisseurdet AS line' + . ' WHERE line.fk_commande = '.$obj_dispatch->fk_commande + . ' AND line.fk_product = '.$obj_dispatch->fk_product; $resql_line = $db->query($sql_line); // s’il y a plusieurs lignes avec le même produit sur cette commande fournisseur, @@ -1452,7 +1452,7 @@ if ($ok && GETPOST('repair_link_dispatch_lines_supplier_order_lines')) { $remaining_qty = $obj_dispatch->qty; $first_iteration = true; if (!$resql_line) { - echo ''; + echo ''; $errors[] = $sql_line; $n_processed_rows++; continue; @@ -1465,9 +1465,9 @@ if ($ok && GETPOST('repair_link_dispatch_lines_supplier_order_lines')) { } $qty_for_line = min($remaining_qty, $obj_line->qty); if ($first_iteration) { - $sql_attach = 'UPDATE ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch' - . ' SET fk_commandefourndet = ' . $obj_line->rowid . ', qty = ' . $qty_for_line - . ' WHERE rowid = ' . $obj_dispatch->rowid; + $sql_attach = 'UPDATE '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch' + . ' SET fk_commandefourndet = '.$obj_line->rowid.', qty = '.$qty_for_line + . ' WHERE rowid = '.$obj_dispatch->rowid; $first_iteration = false; } else { $sql_attach_values = array( @@ -1477,19 +1477,19 @@ if ($ok && GETPOST('repair_link_dispatch_lines_supplier_order_lines')) { $qty_for_line, $obj_dispatch->fk_entrepot, $obj_dispatch->fk_user, - $obj_dispatch->datec ? '"' . $db->escape($obj_dispatch->datec) . '"' : 'NULL', - $obj_dispatch->comment ? '"' . $db->escape($obj_dispatch->comment) . '"' : 'NULL', + $obj_dispatch->datec ? '"'.$db->escape($obj_dispatch->datec).'"' : 'NULL', + $obj_dispatch->comment ? '"'.$db->escape($obj_dispatch->comment).'"' : 'NULL', $obj_dispatch->status ?: 'NULL', - $obj_dispatch->tms ? '"' . $db->escape($obj_dispatch->tms) . '"': 'NULL', + $obj_dispatch->tms ? '"'.$db->escape($obj_dispatch->tms).'"' : 'NULL', $obj_dispatch->batch ?: 'NULL', - $obj_dispatch->eatby ? '"' . $db->escape($obj_dispatch->eatby) . '"': 'NULL', - $obj_dispatch->sellby ? '"' . $db->escape($obj_dispatch->sellby) . '"': 'NULL' + $obj_dispatch->eatby ? '"'.$db->escape($obj_dispatch->eatby).'"' : 'NULL', + $obj_dispatch->sellby ? '"'.$db->escape($obj_dispatch->sellby).'"' : 'NULL' ); $sql_attach_values = join(', ', $sql_attach_values); - $sql_attach = 'INSERT INTO ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch' + $sql_attach = 'INSERT INTO '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch' . ' (fk_commande, fk_product, fk_commandefourndet, qty, fk_entrepot, fk_user, datec, comment, status, tms, batch, eatby, sellby)' - . ' VALUES (' . $sql_attach_values . ')'; + . ' VALUES ('.$sql_attach_values.')'; } if ($repair_link_dispatch_lines_supplier_order_lines == 'confirmed') @@ -1498,7 +1498,7 @@ if ($ok && GETPOST('repair_link_dispatch_lines_supplier_order_lines')) { } else { - $resql_attach = true; // Force success in test mode + $resql_attach = true; // Force success in test mode } if ($resql_attach) { @@ -1513,17 +1513,17 @@ if ($ok && GETPOST('repair_link_dispatch_lines_supplier_order_lines')) { // report progress every 256th row if (!($n_processed_rows & 0xff)) { - echo '\n"; + echo '\n"; flush(); ob_flush(); } } } else { - echo '\n"; - echo $sql_dispatch . "\n"; + echo '\n"; + echo $sql_dispatch."\n"; } - echo '\n"; - echo '\n"; + echo '\n"; + echo '\n"; if (count($errors)) { $db->rollback(); @@ -1534,7 +1534,7 @@ if ($ok && GETPOST('repair_link_dispatch_lines_supplier_order_lines')) { $db->close(); echo ''; - echo ''; + echo ''; } print '
    '; print $langs->trans("ServerConnection")." : $dolibarr_main_db_host".$langs->trans("OK")."
    ".$langs->trans("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)."".$langs->transnoentities("Error")."
    '; print $langs->trans("DatabaseConnection")." : ".$dolibarr_main_db_name."".$langs->trans("OK")."
    ".$langs->trans("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)."".$langs->trans("Error")."
    '.$langs->trans("ServerVersion").''.$version.'
    '.join('.',$versionarray).'
    *** '; print $langs->trans("Script").''.$file.'

    *** Check fields into extra table structure match table of definition. If not add column into table
    Check availability of extra field for '.$tableextra."
    \n"; - $i=0; - while($obj=$db->fetch_object($resql)) + $i = 0; + while ($obj = $db->fetch_object($resql)) { - $fieldname=$fieldtype=''; + $fieldname = $fieldtype = ''; if (preg_match('/mysql/', $db->type)) { - $fieldname=$obj->Field; - $fieldtype=$obj->Type; + $fieldname = $obj->Field; + $fieldtype = $obj->Type; } else { - $fieldname = isset($obj->Key)?$obj->Key:$obj->attname; - $fieldtype = isset($obj->Type)?$obj->Type:'varchar'; + $fieldname = isset($obj->Key) ? $obj->Key : $obj->attname; + $fieldtype = isset($obj->Type) ? $obj->Type : 'varchar'; } if (empty($fieldname)) continue; - if (in_array($fieldname, array('rowid','tms','fk_object','import_key'))) continue; - $arrayoffieldsfound[$fieldname]=array('type'=>$fieldtype); + if (in_array($fieldname, array('rowid', 'tms', 'fk_object', 'import_key'))) continue; + $arrayoffieldsfound[$fieldname] = array('type'=>$fieldtype); } // If it does not match, we create fields - foreach($arrayoffieldsdesc as $code => $label) + foreach ($arrayoffieldsdesc as $code => $label) { - if (! in_array($code, array_keys($arrayoffieldsfound))) + if (!in_array($code, array_keys($arrayoffieldsfound))) { print 'Found field '.$code.' declared into '.MAIN_DB_PREFIX.'extrafields table but not found into desc of table '.$tableextra." -> "; - $type=$extrafields->attributes[$elementtype]['type'][$code]; $length=$extrafields->attributes[$elementtype]['size'][$code]; $attribute=''; $default=''; $extra=''; $null='null'; + $type = $extrafields->attributes[$elementtype]['type'][$code]; $length = $extrafields->attributes[$elementtype]['size'][$code]; $attribute = ''; $default = ''; $extra = ''; $null = 'null'; - if ($type=='boolean') { - $typedb='int'; - $lengthdb='1'; - } elseif($type=='price') { - $typedb='double'; - $lengthdb='24,8'; - } elseif($type=='phone') { - $typedb='varchar'; - $lengthdb='20'; - }elseif($type=='mail') { - $typedb='varchar'; - $lengthdb='128'; - } elseif (($type=='select') || ($type=='sellist') || ($type=='radio') ||($type=='checkbox') ||($type=='chkbxlst')){ - $typedb='text'; - $lengthdb=''; - } elseif ($type=='link') { - $typedb='int'; - $lengthdb='11'; + if ($type == 'boolean') { + $typedb = 'int'; + $lengthdb = '1'; + } elseif ($type == 'price') { + $typedb = 'double'; + $lengthdb = '24,8'; + } elseif ($type == 'phone') { + $typedb = 'varchar'; + $lengthdb = '20'; + }elseif ($type == 'mail') { + $typedb = 'varchar'; + $lengthdb = '128'; + } elseif (($type == 'select') || ($type == 'sellist') || ($type == 'radio') || ($type == 'checkbox') || ($type == 'chkbxlst')) { + $typedb = 'text'; + $lengthdb = ''; + } elseif ($type == 'link') { + $typedb = 'int'; + $lengthdb = '11'; } else { - $typedb=$type; - $lengthdb=$length; + $typedb = $type; + $lengthdb = $length; } - $field_desc=array( + $field_desc = array( 'type'=>$typedb, 'value'=>$lengthdb, 'attribute'=>$attribute, @@ -312,7 +312,7 @@ if ($ok && GETPOST('standard', 'alpha')) $result = 0; if (GETPOST('standard', 'alpha') == 'confirmed') { - $result=$db->DDLAddField($tableextra, $code, $field_desc, ""); + $result = $db->DDLAddField($tableextra, $code, $field_desc, ""); if ($result < 0) { @@ -352,13 +352,13 @@ if ($ok && GETPOST('standard', 'alpha')) { print '

    *** Clean constant record of modules not enabled

    *** Clean definition of boxes of modules not enabled

    *** Restore thirdparties logo
    '; - $sql="SELECT s.rowid, s.nom as name, s.logo FROM ".MAIN_DB_PREFIX."societe as s ORDER BY s.nom"; - $resql=$db->query($sql); + $sql = "SELECT s.rowid, s.nom as name, s.logo FROM ".MAIN_DB_PREFIX."societe as s ORDER BY s.nom"; + $resql = $db->query($sql); if ($resql) { - $num=$db->num_rows($resql); - $i=0; + $num = $db->num_rows($resql); + $i = 0; - while($i < $num) + while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); /* $name=preg_replace('/é/','',$obj->name); @@ -519,22 +519,22 @@ if ($ok && GETPOST('restore_thirdparties_logos')) $name=preg_replace('/\'/','',$name); */ - $tmp=explode('.', $obj->logo); - $name=$tmp[0]; - if (isset($tmp[1])) $ext='.'.$tmp[1]; + $tmp = explode('.', $obj->logo); + $name = $tmp[0]; + if (isset($tmp[1])) $ext = '.'.$tmp[1]; - if (! empty($name)) + if (!empty($name)) { - $filetotest=$dolibarr_main_data_root.'/societe/logos/'.$name.$ext; - $filetotestsmall=$dolibarr_main_data_root.'/societe/logos/thumbs/'.$name.'_small'.$ext; - $exists=dol_is_file($filetotest); + $filetotest = $dolibarr_main_data_root.'/societe/logos/'.$name.$ext; + $filetotestsmall = $dolibarr_main_data_root.'/societe/logos/thumbs/'.$name.'_small'.$ext; + $exists = dol_is_file($filetotest); print 'Check thirdparty '.$obj->rowid.' name='.$obj->name.' logo='.$obj->logo.' file '.$filetotest." exists=".$exists."
    \n"; if ($exists) { - $filetarget=$dolibarr_main_data_root.'/societe/'.$obj->rowid.'/logos/'.$name.$ext; - $filetargetsmall=$dolibarr_main_data_root.'/societe/'.$obj->rowid.'/logos/thumbs/'.$name.'_small'.$ext; - $existt=dol_is_file($filetarget); - if (! $existt) + $filetarget = $dolibarr_main_data_root.'/societe/'.$obj->rowid.'/logos/'.$name.$ext; + $filetargetsmall = $dolibarr_main_data_root.'/societe/'.$obj->rowid.'/logos/thumbs/'.$name.'_small'.$ext; + $existt = dol_is_file($filetarget); + if (!$existt) { if (GETPOST('restore_thirdparties_logos', 'alpha') == 'confirmed') { @@ -548,8 +548,8 @@ if ($ok && GETPOST('restore_thirdparties_logos')) } } - $existtt=dol_is_file($filetargetsmall); - if (! $existtt) + $existtt = dol_is_file($filetargetsmall); + if (!$existtt) { if (GETPOST('restore_thirdparties_logos', 'alpha') == 'confirmed') { @@ -569,7 +569,7 @@ if ($ok && GETPOST('restore_thirdparties_logos')) } else { - $ok=0; + $ok = 0; dol_print_error($db); } @@ -583,20 +583,20 @@ if ($ok && GETPOST('restore_user_pictures', 'alpha')) { //$exts=array('gif','png','jpg'); - $ext=''; + $ext = ''; print '

    *** Restore user pictures
    '; - $sql="SELECT s.rowid, s.firstname, s.lastname, s.login, s.photo FROM ".MAIN_DB_PREFIX."user as s ORDER BY s.rowid"; - $resql=$db->query($sql); + $sql = "SELECT s.rowid, s.firstname, s.lastname, s.login, s.photo FROM ".MAIN_DB_PREFIX."user as s ORDER BY s.rowid"; + $resql = $db->query($sql); if ($resql) { - $num=$db->num_rows($resql); - $i=0; + $num = $db->num_rows($resql); + $i = 0; - while($i < $num) + while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); /* $name=preg_replace('/é/','',$obj->name); @@ -604,25 +604,25 @@ if ($ok && GETPOST('restore_user_pictures', 'alpha')) $name=preg_replace('/\'/','',$name); */ - $tmp=explode('.', $obj->photo); - $name=$tmp[0]; - if (isset($tmp[1])) $ext='.'.$tmp[1]; + $tmp = explode('.', $obj->photo); + $name = $tmp[0]; + if (isset($tmp[1])) $ext = '.'.$tmp[1]; - if (! empty($name)) + if (!empty($name)) { - $filetotest=$dolibarr_main_data_root.'/users/'.substr(sprintf('%08d', $obj->rowid), -1, 1).'/'.substr(sprintf('%08d', $obj->rowid), -2, 1).'/'.$name.$ext; - $filetotestsmall=$dolibarr_main_data_root.'/users/'.substr(sprintf('%08d', $obj->rowid), -1, 1).'/'.substr(sprintf('%08d', $obj->rowid), -2, 1).'/thumbs/'.$name.'_small'.$ext; - $filetotestmini=$dolibarr_main_data_root.'/users/'.substr(sprintf('%08d', $obj->rowid), -1, 1).'/'.substr(sprintf('%08d', $obj->rowid), -2, 1).'/thumbs/'.$name.'_mini'.$ext; - $exists=dol_is_file($filetotest); + $filetotest = $dolibarr_main_data_root.'/users/'.substr(sprintf('%08d', $obj->rowid), -1, 1).'/'.substr(sprintf('%08d', $obj->rowid), -2, 1).'/'.$name.$ext; + $filetotestsmall = $dolibarr_main_data_root.'/users/'.substr(sprintf('%08d', $obj->rowid), -1, 1).'/'.substr(sprintf('%08d', $obj->rowid), -2, 1).'/thumbs/'.$name.'_small'.$ext; + $filetotestmini = $dolibarr_main_data_root.'/users/'.substr(sprintf('%08d', $obj->rowid), -1, 1).'/'.substr(sprintf('%08d', $obj->rowid), -2, 1).'/thumbs/'.$name.'_mini'.$ext; + $exists = dol_is_file($filetotest); print 'Check user '.$obj->rowid.' lastname='.$obj->lastname.' fistname='.$obj->firstname.' photo='.$obj->photo.' file '.$filetotest." exists=".$exists."
    \n"; if ($exists) { - $filetarget=$dolibarr_main_data_root.'/users/'.$obj->rowid.'/'.$name.$ext; - $filetargetsmall=$dolibarr_main_data_root.'/users/'.$obj->rowid.'/thumbs/'.$name.'_small'.$ext; - $filetargetmini=$dolibarr_main_data_root.'/users/'.$obj->rowid.'/thumbs/'.$name.'_mini'.$ext; + $filetarget = $dolibarr_main_data_root.'/users/'.$obj->rowid.'/'.$name.$ext; + $filetargetsmall = $dolibarr_main_data_root.'/users/'.$obj->rowid.'/thumbs/'.$name.'_small'.$ext; + $filetargetmini = $dolibarr_main_data_root.'/users/'.$obj->rowid.'/thumbs/'.$name.'_mini'.$ext; - $existt=dol_is_file($filetarget); - if (! $existt) + $existt = dol_is_file($filetarget); + if (!$existt) { if (GETPOST('restore_user_pictures', 'alpha') == 'confirmed') { @@ -636,8 +636,8 @@ if ($ok && GETPOST('restore_user_pictures', 'alpha')) } } - $existtt=dol_is_file($filetargetsmall); - if (! $existtt) + $existtt = dol_is_file($filetargetsmall); + if (!$existtt) { if (GETPOST('restore_user_pictures', 'alpha') == 'confirmed') { @@ -651,8 +651,8 @@ if ($ok && GETPOST('restore_user_pictures', 'alpha')) } } - $existtt=dol_is_file($filetargetmini); - if (! $existtt) + $existtt = dol_is_file($filetargetmini); + if (!$existtt) { if (GETPOST('restore_user_pictures', 'alpha') == 'confirmed') { @@ -673,7 +673,7 @@ if ($ok && GETPOST('restore_user_pictures', 'alpha')) } else { - $ok=0; + $ok = 0; dol_print_error($db); } @@ -684,38 +684,38 @@ if ($ok && GETPOST('restore_user_pictures', 'alpha')) // rebuild_product_thumbs: Rebuild thumbs for product files if ($ok && GETPOST('rebuild_product_thumbs', 'alpha')) { - $ext=''; + $ext = ''; global $maxwidthsmall, $maxheightsmall, $maxwidthmini, $maxheightmini; print '

    *** Rebuild product thumbs
    '; - $sql="SELECT s.rowid, s.ref FROM ".MAIN_DB_PREFIX."product as s ORDER BY s.ref"; - $resql=$db->query($sql); + $sql = "SELECT s.rowid, s.ref FROM ".MAIN_DB_PREFIX."product as s ORDER BY s.ref"; + $resql = $db->query($sql); if ($resql) { - $num=$db->num_rows($resql); - $i=0; + $num = $db->num_rows($resql); + $i = 0; - while($i < $num) + while ($i < $num) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); - if (! empty($obj->ref)) + if (!empty($obj->ref)) { - $files=dol_dir_list($dolibarr_main_data_root.'/produit/'.$obj->ref, 'files', 0); - foreach($files as $file) + $files = dol_dir_list($dolibarr_main_data_root.'/produit/'.$obj->ref, 'files', 0); + foreach ($files as $file) { // Generate thumbs. if (image_format_supported($file['fullname']) == 1) { - $imgThumbSmall='notbuild'; + $imgThumbSmall = 'notbuild'; if (GETPOST('rebuild_product_thumbs', 'alpha') == 'confirmed') { // Used on logon for example $imgThumbSmall = vignette($file['fullname'], $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs"); } print 'Check product '.$obj->rowid.", file ".$file['fullname']." -> ".$imgThumbSmall." maxwidthsmall=".$maxwidthsmall." maxheightsmall=".$maxheightsmall."
    \n"; - $imgThumbMini='notbuild'; + $imgThumbMini = 'notbuild'; if (GETPOST('rebuild_product_thumbs', 'alpha') == 'confirmed') { // Create mini thumbs for image (Ratio is near 16/9) @@ -732,7 +732,7 @@ if ($ok && GETPOST('rebuild_product_thumbs', 'alpha')) } else { - $ok=0; + $ok = 0; dol_print_error($db); } @@ -768,10 +768,10 @@ if ($ok && GETPOST('clean_menus', 'alpha')) { print '

    *** Clean menu entries coming from disabled modules
    '; print $modulecond; @@ -794,24 +794,24 @@ if ($ok && GETPOST('clean_menus', 'alpha')) if ($modulecond) // And menu entry for module $modulecond was found in database. { - $moduleok=0; - foreach($modulecondarray as $tmpname) + $moduleok = 0; + foreach ($modulecondarray as $tmpname) { - if ($tmpname == 'margins') $tmpname='margin'; // TODO Remove this when normalized + if ($tmpname == 'margins') $tmpname = 'margin'; // TODO Remove this when normalized $result = 0; - if (! empty($conf->$tmpname)) $result = $conf->$tmpname->enabled; + if (!empty($conf->$tmpname)) $result = $conf->$tmpname->enabled; if ($result) $moduleok++; } - if (! $moduleok && $modulecond) + if (!$moduleok && $modulecond) { print ' - Module condition '.$modulecond.' seems ko, we delete menu entry.'; if (GETPOST('clean_menus') == 'confirmed') { - $sql2 ="DELETE FROM ".MAIN_DB_PREFIX."menu WHERE module = '".$modulecond."'"; - $resql2=$db->query($sql2); - if (! $resql2) + $sql2 = "DELETE FROM ".MAIN_DB_PREFIX."menu WHERE module = '".$modulecond."'"; + $resql2 = $db->query($sql2); + if (!$resql2) { $error++; dol_print_error($db); @@ -856,11 +856,11 @@ if ($ok && GETPOST('clean_menus', 'alpha')) // clean_orphelin_dir: Run purge of directory if ($ok && GETPOST('clean_orphelin_dir', 'alpha')) { - $listmodulepart=array('company','invoice','invoice_supplier','propal','order','order_supplier','contract','tax'); + $listmodulepart = array('company', 'invoice', 'invoice_supplier', 'propal', 'order', 'order_supplier', 'contract', 'tax'); foreach ($listmodulepart as $modulepart) { - $filearray=array(); - $upload_dir = isset($conf->$modulepart->dir_output)?$conf->$modulepart->dir_output:''; + $filearray = array(); + $upload_dir = isset($conf->$modulepart->dir_output) ? $conf->$modulepart->dir_output : ''; if ($modulepart == 'company') $upload_dir = $conf->societe->dir_output; // TODO change for multicompany sharing if ($modulepart == 'invoice') $upload_dir = $conf->facture->dir_output; if ($modulepart == 'invoice_supplier') $upload_dir = $conf->fournisseur->facture->dir_output; @@ -872,51 +872,51 @@ if ($ok && GETPOST('clean_orphelin_dir', 'alpha')) print '

    *** Clean orphelins files into files '.$upload_dir.'

    *** Clean table product_batch, methodtofix='.$methodtofix.' (possible values: updatestock or updatebatch)
    Product '.$obj->rowid.'-'.$obj->ref.' in warehose '.$obj->fk_entrepot.' -> '.$obj->psrowid.': '.$obj->reel.' (product_stock.reel) != '.($obj->reelbatch?$obj->reelbatch:'0').' (sum product_batch)'; + $obj = $db->fetch_object($resql); + print '
    Product '.$obj->rowid.'-'.$obj->ref.' in warehose '.$obj->fk_entrepot.' -> '.$obj->psrowid.': '.$obj->reel.' (product_stock.reel) != '.($obj->reelbatch ? $obj->reelbatch : '0').' (sum product_batch)'; // Fix if ($obj->reel != $obj->reelbatch) @@ -1013,10 +1013,10 @@ if ($ok && GETPOST('clean_product_stock_batch', 'alpha')) print ' -> Insert qty '.($obj->reel - $obj->reelbatch).' with lot 000000 linked to fk_product_stock='.$obj->psrowid; if (GETPOST('clean_product_stock_batch') == 'confirmed') { - $sql2 ="INSERT INTO ".MAIN_DB_PREFIX."product_batch(fk_product_stock, batch, qty)"; - $sql2.="VALUES(".$obj->psrowid.", '000000', ".($obj->reel - $obj->reelbatch).")"; - $resql2=$db->query($sql2); - if (! $resql2) + $sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_batch(fk_product_stock, batch, qty)"; + $sql2 .= "VALUES(".$obj->psrowid.", '000000', ".($obj->reel - $obj->reelbatch).")"; + $resql2 = $db->query($sql2); + if (!$resql2) { // TODO If it fails, we must make update //$sql2 ="UPDATE ".MAIN_DB_PREFIX."product_batch"; @@ -1028,22 +1028,22 @@ if ($ok && GETPOST('clean_product_stock_batch', 'alpha')) if ($methodtofix == 'updatestock') { // Method 2 - print ' -> Update qty of product_stock with qty = '.($obj->reelbatch?$obj->reelbatch:'0').' for ps.rowid = '.$obj->psrowid; + print ' -> Update qty of product_stock with qty = '.($obj->reelbatch ? $obj->reelbatch : '0').' for ps.rowid = '.$obj->psrowid; if (GETPOST('clean_product_stock_batch') == 'confirmed') { - $error=0; + $error = 0; $db->begin(); - $sql2 ="UPDATE ".MAIN_DB_PREFIX."product_stock"; - $sql2.=" SET reel = ".($obj->reelbatch?$obj->reelbatch:'0')." WHERE rowid = ".$obj->psrowid; - $resql2=$db->query($sql2); + $sql2 = "UPDATE ".MAIN_DB_PREFIX."product_stock"; + $sql2 .= " SET reel = ".($obj->reelbatch ? $obj->reelbatch : '0')." WHERE rowid = ".$obj->psrowid; + $resql2 = $db->query($sql2); if ($resql2) { // We update product_stock, so we must field stock into product too. - $sql3='UPDATE '.MAIN_DB_PREFIX.'product p SET p.stock= (SELECT SUM(ps.reel) FROM '.MAIN_DB_PREFIX.'product_stock ps WHERE ps.fk_product = p.rowid)'; - $resql3=$db->query($sql3); - if (! $resql3) + $sql3 = 'UPDATE '.MAIN_DB_PREFIX.'product p SET p.stock= (SELECT SUM(ps.reel) FROM '.MAIN_DB_PREFIX.'product_stock ps WHERE ps.fk_product = p.rowid)'; + $resql3 = $db->query($sql3); + if (!$resql3) { $error++; dol_print_error($db); @@ -1083,12 +1083,12 @@ if ($ok && GETPOST('clean_product_stock_negative_if_batch', 'alpha')) { print '

    Clean table product_batch, methodtofix='.$methodtofix.' (possible values: updatestock or updatebatch)
    '.$obj->rowid.'-'.$obj->ref.'-'.$obj->fk_entrepot.' -> '.$obj->psrowid.': '.$obj->reel.' != '.$obj->reelbatch; // TODO @@ -1113,11 +1113,11 @@ if ($ok && GETPOST('set_empty_time_spent_amount', 'alpha')) { print '

    *** Set value of time spent without amount
    '.$obj->login.'-'.$obj->user_id.' ('.$obj->nb.' lines to fix) -> '.$obj->user_thm; $db->begin(); if (GETPOST('set_empty_time_spent_amount') == 'confirmed') { - $sql2 ="UPDATE ".MAIN_DB_PREFIX."projet_task_time"; - $sql2.=" SET thm = ".$obj->user_thm." WHERE thm IS NULL AND fk_user = ".$obj->user_id; - $resql2=$db->query($sql2); - if (! $resql2) + $sql2 = "UPDATE ".MAIN_DB_PREFIX."projet_task_time"; + $sql2 .= " SET thm = ".$obj->user_thm." WHERE thm IS NULL AND fk_user = ".$obj->user_id; + $resql2 = $db->query($sql2); + if (!$resql2) { $error++; dol_print_error($db); @@ -1173,14 +1173,14 @@ if ($ok && GETPOST('force_disable_of_modules_not_found', 'alpha')) { print '

    *** Force modules not found physicaly to be disabled (only modules adding js, css or hooks can be detected as removed physicaly)
    '; print $constantname; @@ -1202,27 +1202,27 @@ if ($ok && GETPOST('force_disable_of_modules_not_found', 'alpha')) $reg = array(); if (preg_match('/MAIN_MODULE_(.*)_'.strtoupper($key).'/i', $constantname, $reg)) { - $name=strtolower($reg[1]); + $name = strtolower($reg[1]); if ($name) // An entry for key $key and module $name was found in database. { $reloffile = ''; $result = 'found'; - if ($key == 'hooks') $reloffile=$name.'/class/actions_'.$name.'.class.php'; + if ($key == 'hooks') $reloffile = $name.'/class/actions_'.$name.'.class.php'; if ($key == 'js') { - $value=$obj->value; - $valuearray=json_decode($value); - $reloffile=$valuearray[0]; - $reloffile=preg_replace('/^\//', '', $valuearray[0]); + $value = $obj->value; + $valuearray = json_decode($value); + $reloffile = $valuearray[0]; + $reloffile = preg_replace('/^\//', '', $valuearray[0]); } if ($key == 'css') { - $value=$obj->value; - $valuearray=json_decode($value); - if ($value && count($valuearray)==0) $valuearray[0]=$value; // If value was not a json array but a string - $reloffile=preg_replace('/^\//', '', $valuearray[0]); + $value = $obj->value; + $valuearray = json_decode($value); + if ($value && count($valuearray) == 0) $valuearray[0] = $value; // If value was not a json array but a string + $reloffile = preg_replace('/^\//', '', $valuearray[0]); } if ($reloffile) @@ -1231,28 +1231,28 @@ if ($ok && GETPOST('force_disable_of_modules_not_found', 'alpha')) try { $result = dol_buildpath($reloffile, 0, 2); } - catch(Exception $e) + catch (Exception $e) { // No catch yet - $result = 'found'; // If error, we force lke if we found to avoid any deletion + $result = 'found'; // If error, we force lke if we found to avoid any deletion } } - if (! $result) + if (!$result) { print ' - File of '.$key.' ('.$reloffile.') NOT found, we disable the module.'; if (GETPOST('force_disable_of_modules_not_found') == 'confirmed') { - $sql2 ="DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = 'MAIN_MODULE_".strtoupper($name)."_".strtoupper($key)."'"; - $resql2=$db->query($sql2); - if (! $resql2) + $sql2 = "DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = 'MAIN_MODULE_".strtoupper($name)."_".strtoupper($key)."'"; + $resql2 = $db->query($sql2); + if (!$resql2) { $error++; dol_print_error($db); } - $sql3 ="DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = 'MAIN_MODULE_".strtoupper($name)."'"; - $resql3=$db->query($sql3); - if (! $resql3) + $sql3 = "DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = 'MAIN_MODULE_".strtoupper($name)."'"; + $resql3 = $db->query($sql3); + if (!$resql3) { $error++; dol_print_error($db); @@ -1300,10 +1300,10 @@ if ($ok && GETPOST('clean_perm_table', 'alpha')) { print '

    *** Clean table user_rights from lines of external modules no more enabled
    Found line with id '.$obj->id.', label "'.$obj->label.'" of module "'.$obj->module.'" to delete'; @@ -1323,7 +1323,7 @@ if ($ok && GETPOST('clean_perm_table', 'alpha')) { $sqldelete = 'DELETE FROM '.MAIN_DB_PREFIX.'rights_def WHERE id = '.$obj->id; $resqldelete = $db->query($sqldelete); - if (! $resqldelete) + if (!$resqldelete) { dol_print_error($db); } @@ -1361,24 +1361,24 @@ if ($ok && GETPOST('force_utf8_on_tables', 'alpha')) // Disable foreign key checking for avoid errors if ($force_utf8_on_tables == 'confirmed') { - $sql='SET FOREIGN_KEY_CHECKS=0'; + $sql = 'SET FOREIGN_KEY_CHECKS=0'; print ''; $resql = $db->query($sql); } - foreach($listoftables as $table) + foreach ($listoftables as $table) { // do not convert llx_const if mysql encrypt/decrypt is used if ($conf->db->dolibarr_main_db_encryption != 0 && preg_match('/\_const$/', $table)) continue; print '
    '; print $table; - $sql='ALTER TABLE '.$table.' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci'; + $sql = 'ALTER TABLE '.$table.' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci'; print ''; if ($force_utf8_on_tables == 'confirmed') { $resql = $db->query($sql); - print ' - Done ('.($resql?'OK':'KO').')'; + print ' - Done ('.($resql ? 'OK' : 'KO').')'; } else print ' - Disabled'; print '
    Repair llx_commande_fournisseur_dispatch.fk_commandefourndet
    Repair in progress. This may take a while.
    Unable to find a matching supplier order line for dispatch #' . $obj_dispatch->rowid . '
    Unable to find a matching supplier order line for dispatch #'.$obj_dispatch->rowid.'
    Processed ' . $n_processed_rows . ' rows with ' . count($errors) . ' errors…' . "
    Processed '.$n_processed_rows.' rows with '.count($errors).' errors…'."
    Unable to find any dispatch without an fk_commandefourndet.' . "
    Unable to find any dispatch without an fk_commandefourndet.'."
    Fixed ' . $n_processed_rows . ' rows with ' . count($errors) . ' errors…' . "
    DONE.' . "
    Fixed '.$n_processed_rows.' rows with '.count($errors).' errors…'."
    DONE.'."

    SQL queries with errors:

    ' . join('
    ', $errors) . '
    '.join('
    ', $errors).'
    '; @@ -1548,7 +1548,7 @@ if (empty($actiondone)) if ($oneoptionset) { - print '
    '; + print ''; } @@ -1565,4 +1565,4 @@ pFooter(1, $setuplang); if ($db->connected) $db->close(); // Return code if ran from command line -if (! $ok && isset($argv[1])) exit(1); +if (!$ok && isset($argv[1])) exit(1); diff --git a/htdocs/install/step1.php b/htdocs/install/step1.php index 62d984bf1f3..9d81bca42ce 100644 --- a/htdocs/install/step1.php +++ b/htdocs/install/step1.php @@ -26,37 +26,37 @@ * \brief Build conf file on disk */ -define('DONOTLOADCONF', 1); // To avoid loading conf by file inc.php +define('DONOTLOADCONF', 1); // To avoid loading conf by file inc.php include 'inc.php'; global $langs; -$action=GETPOST('action', 'aZ09')?GETPOST('action', 'aZ09'):(empty($argv[1])?'':$argv[1]); -$setuplang=GETPOST('selectlang', 'aZ09', 3)?GETPOST('selectlang', 'aZ09', 3):(empty($argv[2])?'auto':$argv[2]); +$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : (empty($argv[1]) ? '' : $argv[1]); +$setuplang = GETPOST('selectlang', 'aZ09', 3) ?GETPOST('selectlang', 'aZ09', 3) : (empty($argv[2]) ? 'auto' : $argv[2]); $langs->setDefaultLang($setuplang); $langs->loadLangs(array("admin", "install", "errors")); // Dolibarr pages directory -$main_dir = GETPOST('main_dir')?GETPOST('main_dir'):(empty($argv[3])?'':$argv[3]); +$main_dir = GETPOST('main_dir') ?GETPOST('main_dir') : (empty($argv[3]) ? '' : $argv[3]); // Directory for generated documents (invoices, orders, ecm, etc...) -$main_data_dir = GETPOST('main_data_dir') ? GETPOST('main_data_dir') : (empty($argv[4])? ($main_dir . '/documents') :$argv[4]); +$main_data_dir = GETPOST('main_data_dir') ? GETPOST('main_data_dir') : (empty($argv[4]) ? ($main_dir.'/documents') : $argv[4]); // Dolibarr root URL -$main_url = GETPOST('main_url')?GETPOST('main_url'):(empty($argv[5])?'':$argv[5]); +$main_url = GETPOST('main_url') ?GETPOST('main_url') : (empty($argv[5]) ? '' : $argv[5]); // Database login information -$userroot=GETPOST('db_user_root', 'alpha')?GETPOST('db_user_root', 'alpha'):(empty($argv[6])?'':$argv[6]); -$passroot=GETPOST('db_pass_root', 'none')?GETPOST('db_pass_root', 'none'):(empty($argv[7])?'':$argv[7]); +$userroot = GETPOST('db_user_root', 'alpha') ?GETPOST('db_user_root', 'alpha') : (empty($argv[6]) ? '' : $argv[6]); +$passroot = GETPOST('db_pass_root', 'none') ?GETPOST('db_pass_root', 'none') : (empty($argv[7]) ? '' : $argv[7]); // Database server -$db_type=GETPOST('db_type', 'aZ09')?GETPOST('db_type', 'aZ09'):(empty($argv[8])?'':$argv[8]); -$db_host=GETPOST('db_host', 'alpha')?GETPOST('db_host', 'alpha'):(empty($argv[9])?'':$argv[9]); -$db_name=GETPOST('db_name', 'aZ09')?GETPOST('db_name', 'aZ09'):(empty($argv[10])?'':$argv[10]); -$db_user=GETPOST('db_user', 'alpha')?GETPOST('db_user', 'alpha'):(empty($argv[11])?'':$argv[11]); -$db_pass=GETPOST('db_pass', 'none')?GETPOST('db_pass', 'none'):(empty($argv[12])?'':$argv[12]); -$db_port=GETPOST('db_port', 'int')?GETPOST('db_port', 'int'):(empty($argv[13])?'':$argv[13]); -$db_prefix=GETPOST('db_prefix', 'aZ09')?GETPOST('db_prefix', 'aZ09'):(empty($argv[14])?'':$argv[14]); -$db_create_database = GETPOST('db_create_database', 'none')?GETPOST('db_create_database', 'none'):(empty($argv[15])?'':$argv[15]); -$db_create_user = GETPOST('db_create_user', 'none')?GETPOST('db_create_user', 'none'):(empty($argv[16])?'':$argv[16]); +$db_type = GETPOST('db_type', 'aZ09') ?GETPOST('db_type', 'aZ09') : (empty($argv[8]) ? '' : $argv[8]); +$db_host = GETPOST('db_host', 'alpha') ?GETPOST('db_host', 'alpha') : (empty($argv[9]) ? '' : $argv[9]); +$db_name = GETPOST('db_name', 'aZ09') ?GETPOST('db_name', 'aZ09') : (empty($argv[10]) ? '' : $argv[10]); +$db_user = GETPOST('db_user', 'alpha') ?GETPOST('db_user', 'alpha') : (empty($argv[11]) ? '' : $argv[11]); +$db_pass = GETPOST('db_pass', 'none') ?GETPOST('db_pass', 'none') : (empty($argv[12]) ? '' : $argv[12]); +$db_port = GETPOST('db_port', 'int') ?GETPOST('db_port', 'int') : (empty($argv[13]) ? '' : $argv[13]); +$db_prefix = GETPOST('db_prefix', 'aZ09') ?GETPOST('db_prefix', 'aZ09') : (empty($argv[14]) ? '' : $argv[14]); +$db_create_database = GETPOST('db_create_database', 'none') ?GETPOST('db_create_database', 'none') : (empty($argv[15]) ? '' : $argv[15]); +$db_create_user = GETPOST('db_create_user', 'none') ?GETPOST('db_create_user', 'none') : (empty($argv[16]) ? '' : $argv[16]); // Force https $main_force_https = ((GETPOST("main_force_https", 'alpha') && (GETPOST("main_force_https", 'alpha') == "on" || GETPOST("main_force_https", 'alpha') == 1)) ? '1' : '0'); // Use alternative directory @@ -64,16 +64,16 @@ $main_use_alt_dir = ((GETPOST("main_use_alt_dir", 'alpha') == '' || (GETPOST("ma // Alternative root directory name $main_alt_dir_name = ((GETPOST("main_alt_dir_name", 'alpha') && GETPOST("main_alt_dir_name", 'alpha') != '') ? GETPOST("main_alt_dir_name", 'alpha') : 'custom'); -session_start(); // To be able to keep info into session (used for not losing password during navigation. The password must not transit through parameters) +session_start(); // To be able to keep info into session (used for not losing password during navigation. The password must not transit through parameters) // Save a flag to tell to restore input value if we go back -$_SESSION['dol_save_pass']=$db_pass; +$_SESSION['dol_save_pass'] = $db_pass; //$_SESSION['dol_save_passroot']=$passroot; // Now we load forced values from install.forced.php file. -$useforcedwizard=false; -$forcedfile="./install.forced.php"; -if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; +$useforcedwizard = false; +$forcedfile = "./install.forced.php"; +if ($conffile == "/etc/dolibarr/conf.php") $forcedfile = "/etc/dolibarr/install.forced.php"; if (@file_exists($forcedfile)) { $useforcedwizard = true; include_once $forcedfile; @@ -142,7 +142,7 @@ dolibarr_install_syslog("--- step1: entering step1.php page"); pHeader($langs->trans("ConfigurationFile"), "step2"); // Test if we can run a first install process -if (! is_writable($conffile)) +if (!is_writable($conffile)) { print $langs->trans("ConfFileIsNotWritable", $conffiletoshow); pFooter(1, $setuplang, 'jscheckparam'); @@ -157,9 +157,9 @@ if (empty($db_type)) print '
    '.$langs->trans("ErrorFieldRequired", $langs->transnoentities("DatabaseType")).'
    '; $error++; } else { - $is_sqlite = ($db_type === 'sqlite' || $db_type === 'sqlite3' ); + $is_sqlite = ($db_type === 'sqlite' || $db_type === 'sqlite3'); } -if (empty($db_host) && ! $is_sqlite) +if (empty($db_host) && !$is_sqlite) { print '
    '.$langs->trans("ErrorFieldRequired", $langs->transnoentities("Server")).'
    '; $error++; @@ -169,17 +169,17 @@ if (empty($db_name)) print '
    '.$langs->trans("ErrorFieldRequired", $langs->transnoentities("DatabaseName")).'
    '; $error++; } -if (empty($db_user) && ! $is_sqlite) +if (empty($db_user) && !$is_sqlite) { print '
    '.$langs->trans("ErrorFieldRequired", $langs->transnoentities("Login")).'
    '; $error++; } -if (! empty($db_port) && ! is_numeric($db_port)) +if (!empty($db_port) && !is_numeric($db_port)) { print '
    '.$langs->trans("ErrorBadValueForParameter", $db_port, $langs->transnoentities("Port")).'
    '; $error++; } -if (! empty($db_prefix) && ! preg_match('/^[a-z0-9]+_$/i', $db_prefix)) +if (!empty($db_prefix) && !preg_match('/^[a-z0-9]+_$/i', $db_prefix)) { print '
    '.$langs->trans("ErrorBadValueForParameter", $db_prefix, $langs->transnoentities("DatabasePrefix")).'
    '; $error++; @@ -187,20 +187,20 @@ if (! empty($db_prefix) && ! preg_match('/^[a-z0-9]+_$/i', $db_prefix)) // Remove last / into dans main_dir -if (substr($main_dir, dol_strlen($main_dir) -1) == "/") +if (substr($main_dir, dol_strlen($main_dir) - 1) == "/") { - $main_dir = substr($main_dir, 0, dol_strlen($main_dir)-1); + $main_dir = substr($main_dir, 0, dol_strlen($main_dir) - 1); } // Remove last / into dans main_url -if (! empty($main_url) && substr($main_url, dol_strlen($main_url) -1) == "/") +if (!empty($main_url) && substr($main_url, dol_strlen($main_url) - 1) == "/") { - $main_url = substr($main_url, 0, dol_strlen($main_url)-1); + $main_url = substr($main_url, 0, dol_strlen($main_url) - 1); } // Test database connection -if (! $error) { - $result=@include_once $main_dir."/core/db/".$db_type.'.class.php'; +if (!$error) { + $result = @include_once $main_dir."/core/db/".$db_type.'.class.php'; if ($result) { // If we require database or user creation we need to connect as root, so we need root login credentials @@ -221,39 +221,39 @@ if (! $error) { // If we need root access if (!$error && (!empty($db_create_database) || !empty($db_create_user))) { - $databasefortest=$db_name; + $databasefortest = $db_name; if (!empty($db_create_database)) { if ($db_type == 'mysql' || $db_type == 'mysqli') { - $databasefortest='mysql'; + $databasefortest = 'mysql'; } elseif ($db_type == 'pgsql') { - $databasefortest='postgres'; + $databasefortest = 'postgres'; } else { - $databasefortest='master'; + $databasefortest = 'master'; } } //print $_POST["db_type"].",".$_POST["db_host"].",$userroot,$passroot,$databasefortest,".$_POST["db_port"]; - $db=getDoliDBInstance($db_type, $db_host, $userroot, $passroot, $databasefortest, $db_port); + $db = getDoliDBInstance($db_type, $db_host, $userroot, $passroot, $databasefortest, $db_port); - dol_syslog("databasefortest=" . $databasefortest . " connected=" . $db->connected . " database_selected=" . $db->database_selected, LOG_DEBUG); + dol_syslog("databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected, LOG_DEBUG); //print "databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected; if (empty($db_create_database) && $db->connected && !$db->database_selected) { print '
    '.$langs->trans("ErrorConnectedButDatabaseNotFound", $db_name).'
    '; print '
    '; - if (! $db->connected) print $langs->trans("IfDatabaseNotExistsGoBackAndUncheckCreate").'

    '; + if (!$db->connected) print $langs->trans("IfDatabaseNotExistsGoBackAndUncheckCreate").'

    '; print $langs->trans("ErrorGoBackAndCorrectParameters"); $error++; - } elseif ($db->error && ! (! empty($db_create_database) && $db->connected)) { + } elseif ($db->error && !(!empty($db_create_database) && $db->connected)) { // Note: you may experience error here with message "No such file or directory" when mysql was installed for the first time but not yet launched. if ($db->error == "No such file or directory") print '
    '.$langs->trans("ErrorToConnectToMysqlCheckInstance").'
    '; else print '
    '.$db->error.'
    '; - if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

    '; + if (!$db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

    '; //print ''; print $langs->trans("ErrorGoBackAndCorrectParameters"); //print ''; @@ -262,12 +262,12 @@ if (! $error) { } // If we need simple access if (!$error && (empty($db_create_database) && empty($db_create_user))) { - $db=getDoliDBInstance($db_type, $db_host, $db_user, $db_pass, $db_name, $db_port); + $db = getDoliDBInstance($db_type, $db_host, $db_user, $db_pass, $db_name, $db_port); if ($db->error) { print '
    '.$db->error.'
    '; - if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

    '; + if (!$db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

    '; //print ''; print $langs->trans("ErrorGoBackAndCorrectParameters"); //print ''; @@ -289,15 +289,15 @@ if (! $error) { else { if (isset($db)) print $db->lasterror(); - if (isset($db) && ! $db->connected) print '
    '.$langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

    '; + if (isset($db) && !$db->connected) print '
    '.$langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

    '; print $langs->trans("ErrorGoBackAndCorrectParameters"); $error++; } -if (! $error && $db->connected) +if (!$error && $db->connected) { - if (! empty($db_create_database)) { - $result=$db->select_db($db_name); + if (!empty($db_create_database)) { + $result = $db->select_db($db_name); if ($result) { print '
    '.$langs->trans("ErrorDatabaseAlreadyExists", $db_name).'
    '; @@ -309,19 +309,19 @@ if (! $error && $db->connected) } // Define $defaultCharacterSet and $defaultDBSortingCollation -if (! $error && $db->connected) +if (!$error && $db->connected) { if (!empty($db_create_database)) // If we create database, we force default value { // Default values come from the database handler - $defaultCharacterSet=$db->forcecharset; - $defaultDBSortingCollation=$db->forcecollate; + $defaultCharacterSet = $db->forcecharset; + $defaultDBSortingCollation = $db->forcecollate; } else // If already created, we take current value { - $defaultCharacterSet=$db->getDefaultCharacterSetDatabase(); - $defaultDBSortingCollation=$db->getDefaultCollationDatabase(); + $defaultCharacterSet = $db->getDefaultCharacterSetDatabase(); + $defaultDBSortingCollation = $db->getDefaultCollationDatabase(); } // Force to avoid utf8mb4 because index on field char 255 reach limit of 767 char for indexes (example with mysql 5.6.34 = mariadb 10.0.29) @@ -334,22 +334,22 @@ if (! $error && $db->connected) print ''; print ''; - $db_character_set=$defaultCharacterSet; - $db_collation=$defaultDBSortingCollation; - dolibarr_install_syslog("step1: db_character_set=" . $db_character_set . " db_collation=" . $db_collation); + $db_character_set = $defaultCharacterSet; + $db_collation = $defaultDBSortingCollation; + dolibarr_install_syslog("step1: db_character_set=".$db_character_set." db_collation=".$db_collation); } // Create config file -if (! $error && $db->connected && $action == "set") +if (!$error && $db->connected && $action == "set") { umask(0); if (is_array($_POST)) { - foreach($_POST as $key => $value) + foreach ($_POST as $key => $value) { - if (! preg_match('/^db_pass/i', $key)) { - dolibarr_install_syslog("step1: choice for " . $key . " = " . $value); + if (!preg_match('/^db_pass/i', $key)) { + dolibarr_install_syslog("step1: choice for ".$key." = ".$value); } } } @@ -359,11 +359,11 @@ if (! $error && $db->connected && $action == "set") print ''; // Check parameter main_dir - if (! $error) + if (!$error) { - if (! is_dir($main_dir)) + if (!is_dir($main_dir)) { - dolibarr_install_syslog("step1: directory '" . $main_dir . "' is unavailable or can't be accessed"); + dolibarr_install_syslog("step1: directory '".$main_dir."' is unavailable or can't be accessed"); print "'; @@ -509,10 +509,10 @@ if (! $error && $db->connected && $action == "set") } // Table prefix - $main_db_prefix = (! empty($db_prefix) ? $db_prefix : 'llx_'); + $main_db_prefix = (!empty($db_prefix) ? $db_prefix : 'llx_'); // Write conf file on disk - if (! $error) + if (!$error) { // Save old conf file on disk if (file_exists("$conffile")) @@ -523,11 +523,11 @@ if (! $error && $db->connected && $action == "set") @dol_copy($conffile, $conffile.'.old', '0400'); } - $error+=write_conf_file($conffile); + $error += write_conf_file($conffile); } // Create database and admin user database - if (! $error) + if (!$error) { // We reload configuration file conf($dolibarr_main_document_root); @@ -539,26 +539,26 @@ if (! $error && $db->connected && $action == "set") // Create database user if requested if (isset($db_create_user) && ($db_create_user == "1" || $db_create_user == "on")) { - dolibarr_install_syslog("step1: create database user: " . $dolibarr_main_db_user); + dolibarr_install_syslog("step1: create database user: ".$dolibarr_main_db_user); //print $conf->db->host." , ".$conf->db->name." , ".$conf->db->user." , ".$conf->db->port; - $databasefortest=$conf->db->name; + $databasefortest = $conf->db->name; if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') { - $databasefortest='mysql'; + $databasefortest = 'mysql'; } elseif ($conf->db->type == 'pgsql') { - $databasefortest='postgres'; + $databasefortest = 'postgres'; } elseif ($conf->db->type == 'mssql') { - $databasefortest='master'; + $databasefortest = 'master'; } // Check database connection - $db=getDoliDBInstance($conf->db->type, $conf->db->host, $userroot, $passroot, $databasefortest, $conf->db->port); + $db = getDoliDBInstance($conf->db->type, $conf->db->host, $userroot, $passroot, $databasefortest, $conf->db->port); if ($db->error) { @@ -643,13 +643,13 @@ if (! $error && $db->connected && $action == "set") // If database creation was asked, we create it if (!$error && (isset($db_create_database) && ($db_create_database == "1" || $db_create_database == "on"))) { - dolibarr_install_syslog("step1: create database: " . $dolibarr_main_db_name . " " . $dolibarr_main_db_character_set . " " . $dolibarr_main_db_collation . " " . $dolibarr_main_db_user); - $newdb=getDoliDBInstance($conf->db->type, $conf->db->host, $userroot, $passroot, '', $conf->db->port); + dolibarr_install_syslog("step1: create database: ".$dolibarr_main_db_name." ".$dolibarr_main_db_character_set." ".$dolibarr_main_db_collation." ".$dolibarr_main_db_user); + $newdb = getDoliDBInstance($conf->db->type, $conf->db->host, $userroot, $passroot, '', $conf->db->port); //print 'eee'.$conf->db->type." ".$conf->db->host." ".$userroot." ".$passroot." ".$conf->db->port." ".$newdb->connected." ".$newdb->forcecharset;exit; if ($newdb->connected) { - $result=$newdb->DDLCreateDb($dolibarr_main_db_name, $dolibarr_main_db_character_set, $dolibarr_main_db_collation, $dolibarr_main_db_user); + $result = $newdb->DDLCreateDb($dolibarr_main_db_name, $dolibarr_main_db_character_set, $dolibarr_main_db_collation, $dolibarr_main_db_user); if ($result) { @@ -660,9 +660,9 @@ if (! $error && $db->connected && $action == "set") print ''; $newdb->select_db($dolibarr_main_db_name); - $check1=$newdb->getDefaultCharacterSetDatabase(); - $check2=$newdb->getDefaultCollationDatabase(); - dolibarr_install_syslog('step1: new database is using charset=' . $check1 . ' collation=' . $check2); + $check1 = $newdb->getDefaultCharacterSetDatabase(); + $check2 = $newdb->getDefaultCollationDatabase(); + dolibarr_install_syslog('step1: new database is using charset='.$check1.' collation='.$check2); // If values differs, we save conf file again //if ($check1 != $dolibarr_main_db_character_set) dolibarr_install_syslog('step1: value for character_set is not the one asked for database creation', LOG_WARNING); @@ -678,7 +678,7 @@ if (! $error && $db->connected && $action == "set") print '
    '; print ''; - dolibarr_install_syslog('step1: failed to create database ' . $dolibarr_main_db_name . ' ' . $newdb->lasterrno() . ' ' . $newdb->lasterror(), LOG_ERR); + dolibarr_install_syslog('step1: failed to create database '.$dolibarr_main_db_name.' '.$newdb->lasterrno().' '.$newdb->lasterror(), LOG_ERR); $error++; } $newdb->close(); @@ -705,16 +705,16 @@ if (! $error && $db->connected && $action == "set") // We test access with dolibarr database user (not admin) - if (! $error) + if (!$error) { - dolibarr_install_syslog("step1: connection type=" . $conf->db->type . " on host=" . $conf->db->host . " port=" . $conf->db->port . " user=" . $conf->db->user . " name=" . $conf->db->name); + dolibarr_install_syslog("step1: connection type=".$conf->db->type." on host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name); //print "connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name; - $db=getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); + $db = getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); if ($db->connected) { - dolibarr_install_syslog("step1: connection to server by user " . $conf->db->user . " ok"); + dolibarr_install_syslog("step1: connection to server by user ".$conf->db->user." ok"); print ""; print ''; print '\n"; print ''; print ''; print ''; print ''; // Number @@ -305,7 +305,7 @@ if ($action == 'create') print ' @@ -78,7 +78,7 @@ foreach ($linkedObjectBlock as $key => $objectlink) if (count($linkedObjectBlock) > 1) { ?> - + diff --git a/htdocs/resource/agenda.php b/htdocs/resource/agenda.php index 8e45cd9c015..1035d17d5f9 100644 --- a/htdocs/resource/agenda.php +++ b/htdocs/resource/agenda.php @@ -38,24 +38,24 @@ require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php'; $langs->load("companies"); // Get parameters -$id = GETPOST('id', 'int'); +$id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'alpha'); +$action = GETPOST('action', 'alpha'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); if (GETPOST('actioncode', 'array')) { - $actioncode=GETPOST('actioncode', 'array', 3); - if (! count($actioncode)) $actioncode='0'; + $actioncode = GETPOST('actioncode', 'array', 3); + if (!count($actioncode)) $actioncode = '0'; } else { - $actioncode=GETPOST("actioncode", "alpha", 3)?GETPOST("actioncode", "alpha", 3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); } -$search_agenda_label=GETPOST('search_agenda_label'); +$search_agenda_label = GETPOST('search_agenda_label'); -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); @@ -63,8 +63,8 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortfield) $sortfield='a.datep,a.id'; -if (! $sortorder) $sortorder='DESC,DESC'; +if (!$sortfield) $sortfield = 'a.datep,a.id'; +if (!$sortorder) $sortorder = 'DESC,DESC'; $object = new DolResource($db); $object->fetch($id, $ref); @@ -75,7 +75,7 @@ $extrafields = new ExtraFields($db); $hookmanager->initHooks(array('agendaresource')); // Security check -if( ! $user->rights->resource->read) +if (!$user->rights->resource->read) { accessforbidden(); } @@ -85,14 +85,14 @@ if( ! $user->rights->resource->read) * Actions */ -$parameters=array('id'=>$id); -$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +$parameters = array('id'=>$id); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) { // Cancel - if (GETPOST('cancel', 'alpha') && ! empty($backtopage)) + if (GETPOST('cancel', 'alpha') && !empty($backtopage)) { header("Location: ".$backtopage); exit; @@ -101,8 +101,8 @@ if (empty($reshook)) // Purge search criteria if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers { - $actioncode=''; - $search_agenda_label=''; + $actioncode = ''; + $search_agenda_label = ''; } } @@ -123,25 +123,25 @@ if ($object->id > 0) $langs->load("companies"); $picto = 'resource'; - $title=$langs->trans("Agenda"); - if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/productnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->ref." - ".$title; + $title = $langs->trans("Agenda"); + if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/productnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title = $object->ref." - ".$title; llxHeader('', $title); - if (! empty($conf->notification->enabled)) $langs->load("mails"); + if (!empty($conf->notification->enabled)) $langs->load("mails"); $type = $langs->trans('ResourceSingular'); $head = resource_prepare_head($object); - $titre=$langs->trans("ResourceSingular"); + $titre = $langs->trans("ResourceSingular"); dol_fiche_head($head, 'agenda', $titre, -1, $picto); $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; - $morehtmlref.='
    '; + $morehtmlref = '
    '; + $morehtmlref .= '
    '; $shownav = 1; - if ($user->socid && ! in_array('resource', explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL))) $shownav=0; + if ($user->socid && !in_array('resource', explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL))) $shownav = 0; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); @@ -152,17 +152,17 @@ if ($object->id > 0) dol_fiche_end(); - if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { - $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); + $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_barre_liste($langs->trans("ActionsOnResource"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlcenter, '', 0, 1, 1); // List of all actions - $filters=array(); - $filters['search_agenda_label']=$search_agenda_label; + $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); diff --git a/htdocs/resource/card.php b/htdocs/resource/card.php index 152a572a737..b403c0516f9 100644 --- a/htdocs/resource/card.php +++ b/htdocs/resource/card.php @@ -225,7 +225,7 @@ if ($action == 'create' || $object->fetch($id, $ref) > 0) { if ($action == 'create') { - print load_fiche_titre($title, '', 'generic'); + print load_fiche_titre($title, '', 'object_resource'); dol_fiche_head(''); } else diff --git a/htdocs/resource/class/dolresource.class.php b/htdocs/resource/class/dolresource.class.php index 3a079d4cca6..75c6e50dec3 100644 --- a/htdocs/resource/class/dolresource.class.php +++ b/htdocs/resource/class/dolresource.class.php @@ -146,17 +146,12 @@ class Dolresource extends CommonObject } } - if (!$error) + if (!$error && !$notrigger) { - if (!$notrigger) - { - //// Call triggers - include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; - $interface = new Interfaces($this->db); - $result = $interface->run_triggers('RESOURCE_CREATE', $this, $user, $langs, $conf); - if ($result < 0) { $error++; $this->errors = $interface->errors; } - //// End call triggers - } + // Call trigger + $result = $this->call_trigger('RESOURCE_CREATE', $user); + if ($result < 0) $error++; + // End call triggers } // Commit or rollback diff --git a/htdocs/resource/contact.php b/htdocs/resource/contact.php index f57b810394a..cbc94c2e843 100644 --- a/htdocs/resource/contact.php +++ b/htdocs/resource/contact.php @@ -39,7 +39,7 @@ $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'alpha'); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'resource', $id, 'resource'); $object = new DolResource($db); @@ -79,7 +79,7 @@ if ($action == 'addcontact' && $user->rights->resource->write) // Toggle the status of a contact elseif ($action == 'swapstatut' && $user->rights->resource->write) { - $result=$object->swapContactStatus(GETPOST('ligne', 'int')); + $result = $object->swapContactStatus(GETPOST('ligne', 'int')); } // Erase a contact @@ -104,14 +104,14 @@ elseif ($action == 'deletecontact' && $user->rights->resource->write) $form = new Form($db); $formcompany = new FormCompany($db); -$contactstatic=new Contact($db); -$userstatic=new User($db); +$contactstatic = new Contact($db); +$userstatic = new User($db); llxHeader('', $langs->trans("Resource")); // Mode vue et edition -if ($id > 0 || ! empty($ref)) +if ($id > 0 || !empty($ref)) { $soc = new Societe($db); $soc->fetch($object->socid); @@ -121,11 +121,11 @@ if ($id > 0 || ! empty($ref)) dol_fiche_head($head, 'contact', $langs->trans("ResourceSingular"), -1, 'resource'); - $linkback = '' . $langs->trans("BackToList") . ''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; - $morehtmlref.='
    '; + $morehtmlref = '
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); @@ -141,7 +141,7 @@ if ($id > 0 || ! empty($ref)) // Resource type print ''; - print ''; + print ''; print ''; @@ -154,10 +154,10 @@ if ($id > 0 || ! empty($ref)) print '
    '; - if (! empty($conf->global->RESOURCE_HIDE_ADD_CONTACT_USER)) $hideaddcontactforuser=1; - if (! empty($conf->global->RESOURCE_HIDE_ADD_CONTACT_THIPARTY)) $hideaddcontactforthirdparty=1; + if (!empty($conf->global->RESOURCE_HIDE_ADD_CONTACT_USER)) $hideaddcontactforuser = 1; + if (!empty($conf->global->RESOURCE_HIDE_ADD_CONTACT_THIPARTY)) $hideaddcontactforthirdparty = 1; - $permission=1; + $permission = 1; // Contacts lines include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php'; } diff --git a/htdocs/resource/document.php b/htdocs/resource/document.php index 174b1503dbe..5f053be4321 100644 --- a/htdocs/resource/document.php +++ b/htdocs/resource/document.php @@ -44,7 +44,7 @@ $action = GETPOST('action', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'resource', $id, 'resource'); @@ -56,22 +56,22 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="name"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "name"; $object = new DolResource($db); $object->fetch($id, $ref); $upload_dir = $conf->resource->dir_output.'/'.dol_sanitizeFileName($object->ref); -$modulepart='resource'; +$modulepart = 'resource'; /* * Actions */ -include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php'; +include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; /* @@ -86,25 +86,25 @@ if ($object->id > 0) { $object->fetch_thirdparty(); - $head=resource_prepare_head($object); + $head = resource_prepare_head($object); dol_fiche_head($head, 'documents', $langs->trans("ResourceSingular"), -1, 'resource'); // Build file list - $filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); - $totalsize=0; - foreach($filearray as $key => $file) + $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); + $totalsize = 0; + foreach ($filearray as $key => $file) { - $totalsize+=$file['size']; + $totalsize += $file['size']; } - $linkback = '' . $langs->trans("BackToList") . ''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; - $morehtmlref.='
    '; + $morehtmlref = '
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); @@ -117,7 +117,7 @@ if ($object->id > 0) // Resource type print ''; - print ''; + print ''; print ''; @@ -134,7 +134,7 @@ if ($object->id > 0) $modulepart = 'dolresource'; $permission = $user->rights->resource->write; - include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; + include_once DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; } else { diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php index 54cc8963b75..033d49ae8c8 100644 --- a/htdocs/resource/list.php +++ b/htdocs/resource/list.php @@ -55,14 +55,22 @@ if (!is_array($search_array_options)) $search_array_options = array(); $search_ref = GETPOST("search_ref", 'alpha'); $search_type = GETPOST("search_type", 'alpha'); +// Load variable for pagination +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; + + $filter = array(); +$param = ''; +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); +if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); + if ($search_ref != '') { - $param.='&search_ref='.urlencode($search_ref); + $param .= '&search_ref='.urlencode($search_ref); $filter['t.ref'] = $search_ref; } if ($search_type != '') { - $param.='&search_type='.urlencode($search_type); + $param .= '&search_type='.urlencode($search_type); $filter['ty.label'] = $search_type; } @@ -83,7 +91,7 @@ foreach ($search_array_options as $key => $val) $filter['ef.'.$tmpkey] = natural_search('ef.'.$tmpkey, $crit, $mode_search); } } -if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); $hookmanager->initHooks(array('resourcelist')); @@ -136,6 +144,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $filter = array(); } + /* * Action */ @@ -170,7 +179,6 @@ print ''; print ''; print ''; -print ''; print ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) @@ -196,7 +204,7 @@ if ($ret == -1) { $newcardbutton .= dolGetButtonTitle($langs->trans('MenuResourceAdd'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/resource/card.php?action=create'); } - print_barre_liste($pagetitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $ret + 1, $nbtotalofrecords, 'generic', 0, $newcardbutton, '', $limit); + print_barre_liste($pagetitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $ret + 1, $nbtotalofrecords, 'object_resource', 0, $newcardbutton, '', $limit, 0, 0, 1); } $moreforfilter = ''; @@ -261,12 +269,12 @@ if ($ret) include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; print ''; if (!$i) $totalarray['nbfield']++; diff --git a/htdocs/resource/note.php b/htdocs/resource/note.php index 322088ef317..1162909114e 100644 --- a/htdocs/resource/note.php +++ b/htdocs/resource/note.php @@ -34,23 +34,23 @@ $langs->loadLangs(array('companies', 'interventions')); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action=GETPOST('action', 'alpha'); +$action = GETPOST('action', 'alpha'); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'resource', $id, 'resource'); $object = new DolResource($db); $object->fetch($id, $ref); -$permissionnote=$user->rights->resource->write; // Used by the include of actions_setnotes.inc.php +$permissionnote = $user->rights->resource->write; // Used by the include of actions_setnotes.inc.php /* * Actions */ -include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once +include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once /* @@ -61,16 +61,16 @@ llxHeader(); $form = new Form($db); -if ($id > 0 || ! empty($ref)) +if ($id > 0 || !empty($ref)) { $head = resource_prepare_head($object); dol_fiche_head($head, 'note', $langs->trans('ResourceSingular'), -1, 'resource'); - $linkback = '' . $langs->trans("BackToList") . ''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; - $morehtmlref.='
    '; + $morehtmlref = '
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); @@ -83,7 +83,7 @@ if ($id > 0 || ! empty($ref)) // Resource type print ''; - print ''; + print ''; print ''; @@ -93,8 +93,8 @@ if ($id > 0 || ! empty($ref)) print ''; - $permission=$user->rights->resource->write; - $cssclass='titlefield'; + $permission = $user->rights->resource->write; + $cssclass = 'titlefield'; include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; dol_fiche_end(); diff --git a/htdocs/salaries/admin/salaries.php b/htdocs/salaries/admin/salaries.php index 6ab5f5d13b0..29e3c325ee0 100644 --- a/htdocs/salaries/admin/salaries.php +++ b/htdocs/salaries/admin/salaries.php @@ -27,7 +27,7 @@ require '../../main.inc.php'; // Class require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php'; -if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; +if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; // Load translation files required by the page $langs->loadLangs(array('admin', 'salaries')); @@ -39,7 +39,7 @@ if (!$user->admin) $action = GETPOST('action', 'alpha'); // Other parameters SALARIES_* -$list = array ( +$list = array( 'SALARIES_ACCOUNTING_ACCOUNT_PAYMENT', ); @@ -59,7 +59,7 @@ if ($action == 'update') } } - if (! $error) + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } @@ -76,9 +76,9 @@ if ($action == 'update') llxHeader('', $langs->trans('SalariesSetup')); $form = new Form($db); -if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db); +if (!empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans('SalariesSetup'), $linkback, 'title_setup'); $head = salaries_admin_prepare_head(); @@ -111,7 +111,7 @@ foreach ($list as $key) // Value print ''; // Year print ''; @@ -221,11 +221,11 @@ print ''; print ''; print ''; -$oldyear=0; +$oldyear = 0; foreach ($data as $val) { $year = $val['year']; - while ($year && $oldyear > $year+1) + while ($year && $oldyear > $year + 1) { // If we have empty year $oldyear--; @@ -244,7 +244,7 @@ foreach ($data as $val) print ''; print ''; print ''; - $oldyear=$year; + $oldyear = $year; } print '
    "; print $langs->trans("ErrorDirDoesNotExists", $main_dir).'
    '; @@ -376,22 +376,22 @@ if (! $error && $db->connected && $action == "set") } } - if (! $error) + if (!$error) { - dolibarr_install_syslog("step1: directory '" . $main_dir . "' exists"); + dolibarr_install_syslog("step1: directory '".$main_dir."' exists"); } // Create subdirectory main_data_dir - if (! $error) + if (!$error) { // Create directory for documents - if (! is_dir($main_data_dir)) + if (!is_dir($main_data_dir)) { dol_mkdir($main_data_dir); } - if (! is_dir($main_data_dir)) + if (!is_dir($main_data_dir)) { print "
    ".$langs->trans("ErrorDirDoesNotExists", $main_data_dir); print ' '.$langs->trans("YouMustCreateItAndAllowServerToWrite"); @@ -404,11 +404,11 @@ if (! $error && $db->connected && $action == "set") else { // Create .htaccess file in document directory - $pathhtaccess=$main_data_dir.'/.htaccess'; - if (! file_exists($pathhtaccess)) + $pathhtaccess = $main_data_dir.'/.htaccess'; + if (!file_exists($pathhtaccess)) { - dolibarr_install_syslog("step1: .htaccess file did not exist, we created it in '" . $main_data_dir . "'"); - $handlehtaccess=@fopen($pathhtaccess, 'w'); + dolibarr_install_syslog("step1: .htaccess file did not exist, we created it in '".$main_data_dir."'"); + $handlehtaccess = @fopen($pathhtaccess, 'w'); if ($handlehtaccess) { fwrite($handlehtaccess, 'Order allow,deny'."\n"); @@ -420,7 +420,7 @@ if (! $error && $db->connected && $action == "set") } // Documents are stored above the web pages root to prevent being downloaded without authentification - $dir=array(); + $dir = array(); $dir[] = $main_data_dir."/mycompany"; $dir[] = $main_data_dir."/medias"; $dir[] = $main_data_dir."/users"; @@ -431,12 +431,12 @@ if (! $error && $db->connected && $action == "set") $dir[] = $main_data_dir."/doctemplates"; // Loop on each directory of dir [] to create them if they do not exist - $num=count($dir); + $num = count($dir); for ($i = 0; $i < $num; $i++) { if (is_dir($dir[$i])) { - dolibarr_install_syslog("step1: directory '" . $dir[$i] . "' exists"); + dolibarr_install_syslog("step1: directory '".$dir[$i]."' exists"); } else { @@ -451,7 +451,7 @@ if (! $error && $db->connected && $action == "set") } else { - dolibarr_install_syslog("step1: directory '" . $dir[$i] . "' created"); + dolibarr_install_syslog("step1: directory '".$dir[$i]."' created"); } } } @@ -459,8 +459,8 @@ if (! $error && $db->connected && $action == "set") require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; // Copy directory medias - $srcroot=$main_dir.'/install/medias'; - $destroot=$main_data_dir.'/medias'; + $srcroot = $main_dir.'/install/medias'; + $destroot = $main_data_dir.'/medias'; dolCopyDir($srcroot, $destroot, 0, 0); if ($error) @@ -475,9 +475,9 @@ if (! $error && $db->connected && $action == "set") else { //ODT templates - $srcroot=$main_dir.'/install/doctemplates'; - $destroot=$main_data_dir.'/doctemplates'; - $docs=array( + $srcroot = $main_dir.'/install/doctemplates'; + $destroot = $main_data_dir.'/doctemplates'; + $docs = array( 'contracts' => 'contract', 'invoices' => 'invoice', 'orders' => 'order', @@ -491,14 +491,14 @@ if (! $error && $db->connected && $action == "set") 'usergroups' => 'usergroups', 'users' => 'user', ); - foreach($docs as $cursordir => $cursorfile) + foreach ($docs as $cursordir => $cursorfile) { - $src=$srcroot.'/'.$cursordir.'/template_'.$cursorfile.'.odt'; - $dirodt=$destroot.'/'.$cursordir; - $dest=$dirodt.'/template_'.$cursorfile.'.odt'; + $src = $srcroot.'/'.$cursordir.'/template_'.$cursorfile.'.odt'; + $dirodt = $destroot.'/'.$cursordir; + $dest = $dirodt.'/template_'.$cursorfile.'.odt'; dol_mkdir($dirodt); - $result=dol_copy($src, $dest, 0, 0); + $result = dol_copy($src, $dest, 0, 0); if ($result < 0) { print '

    '.$langs->trans('ErrorFailToCopyFile', $src, $dest).'
    Ok
    "; print $langs->trans("ServerConnection")." (".$langs->trans("User")." ".$conf->db->user.") : "; print $dolibarr_main_db_host; @@ -725,7 +725,7 @@ if (! $error && $db->connected && $action == "set") // server access ok, basic access ok if ($db->database_selected) { - dolibarr_install_syslog("step1: connection to database " . $conf->db->name . " by user " . $conf->db->user . " ok"); + dolibarr_install_syslog("step1: connection to database ".$conf->db->name." by user ".$conf->db->user." ok"); print "
    "; print $langs->trans("DatabaseConnection")." (".$langs->trans("User")." ".$conf->db->user.") : "; print $dolibarr_main_db_name; @@ -737,7 +737,7 @@ if (! $error && $db->connected && $action == "set") } else { - dolibarr_install_syslog("step1: connection to database " . $conf->db->name . " by user " . $conf->db->user . " failed", LOG_ERR); + dolibarr_install_syslog("step1: connection to database ".$conf->db->name." by user ".$conf->db->user." failed", LOG_ERR); print "
    "; print $langs->trans("DatabaseConnection")." (".$langs->trans("User")." ".$conf->db->user.") : "; print $dolibarr_main_db_name; @@ -757,7 +757,7 @@ if (! $error && $db->connected && $action == "set") } else { - dolibarr_install_syslog("step1: connection to server by user " . $conf->db->user . " failed", LOG_ERR); + dolibarr_install_syslog("step1: connection to server by user ".$conf->db->user." failed", LOG_ERR); print "
    "; print $langs->trans("ServerConnection")." (".$langs->trans("User")." ".$conf->db->user.") : "; print $dolibarr_main_db_host; @@ -798,13 +798,13 @@ function jsinfo() "; diff --git a/htdocs/install/step2.php b/htdocs/install/step2.php index 7a4a3a92595..5b794b781bd 100644 --- a/htdocs/install/step2.php +++ b/htdocs/install/step2.php @@ -36,31 +36,31 @@ $ok = 0; // Cette page peut etre longue. On augmente le delai autorise. // Ne fonctionne que si on est pas en safe_mode. -$err=error_reporting(); -error_reporting(0); // Disable all errors +$err = error_reporting(); +error_reporting(0); // Disable all errors //error_reporting(E_ALL); -@set_time_limit(900); // Need 900 on some OS like Windows 7/64 +@set_time_limit(900); // Need 900 on some OS like Windows 7/64 error_reporting($err); -$action=GETPOST('action', 'aZ09')?GETPOST('action', 'aZ09'):(empty($argv[1])?'':$argv[1]); -$setuplang=GETPOST('selectlang', 'aZ09', 3)?GETPOST('selectlang', 'aZ09', 3):(empty($argv[2])?'auto':$argv[2]); +$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : (empty($argv[1]) ? '' : $argv[1]); +$setuplang = GETPOST('selectlang', 'aZ09', 3) ?GETPOST('selectlang', 'aZ09', 3) : (empty($argv[2]) ? 'auto' : $argv[2]); $langs->setDefaultLang($setuplang); $langs->loadLangs(array("admin", "install")); -$choix=0; -if ($dolibarr_main_db_type == "mysqli") $choix=1; -if ($dolibarr_main_db_type == "pgsql") $choix=2; -if ($dolibarr_main_db_type == "mssql") $choix=3; -if ($dolibarr_main_db_type == "sqlite") $choix=4; -if ($dolibarr_main_db_type == "sqlite3") $choix=5; +$choix = 0; +if ($dolibarr_main_db_type == "mysqli") $choix = 1; +if ($dolibarr_main_db_type == "pgsql") $choix = 2; +if ($dolibarr_main_db_type == "mssql") $choix = 3; +if ($dolibarr_main_db_type == "sqlite") $choix = 4; +if ($dolibarr_main_db_type == "sqlite3") $choix = 5; //if (empty($choix)) dol_print_error('','Database type '.$dolibarr_main_db_type.' not supported into step2.php page'); // Now we load forced values from install.forced.php file. -$useforcedwizard=false; -$forcedfile="./install.forced.php"; -if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; +$useforcedwizard = false; +$forcedfile = "./install.forced.php"; +if ($conffile == "/etc/dolibarr/conf.php") $forcedfile = "/etc/dolibarr/install.forced.php"; if (@file_exists($forcedfile)) { $useforcedwizard = true; include_once $forcedfile; @@ -78,7 +78,7 @@ dolibarr_install_syslog("- step2: entering step2.php page"); pHeader($langs->trans("CreateDatabaseObjects"), "step4"); // Test if we can run a first install process -if (! is_writable($conffile)) +if (!is_writable($conffile)) { print $langs->trans("ConfFileIsNotWritable", $conffiletoshow); pFooter(1, $setuplang, 'jscheckparam'); @@ -90,15 +90,15 @@ if ($action == "set") print '

    Database '.$langs->trans("Database").'

    '; print ''; - $error=0; + $error = 0; - $db=getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); + $db = getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); if ($db->connected) { print "'; - $ok = 1 ; + $ok = 1; } else { @@ -107,15 +107,15 @@ if ($action == "set") if ($ok) { - if($db->database_selected) + if ($db->database_selected) { - dolibarr_install_syslog("step2: successful connection to database: " . $conf->db->name); + dolibarr_install_syslog("step2: successful connection to database: ".$conf->db->name); } else { - dolibarr_install_syslog("step2: failed connection to database :" . $conf->db->name, LOG_ERR); + dolibarr_install_syslog("step2: failed connection to database :".$conf->db->name, LOG_ERR); print "'; - $ok = 0 ; + $ok = 0; } } @@ -123,8 +123,8 @@ if ($action == "set") // Affiche version if ($ok) { - $version=$db->getVersion(); - $versionarray=$db->getVersionArray(); + $version = $db->getVersion(); + $versionarray = $db->getVersionArray(); print ''; print ''; //print ''; @@ -134,18 +134,18 @@ if ($action == "set") //print ''; } - $requestnb=0; + $requestnb = 0; // To disable some code, so you can call step2 with url like // http://localhost/dolibarrnew/install/step2.php?action=set&createtables=0&createkeys=0&createfunctions=0&createdata=llx_20_c_departements - $createtables=isset($_GET['createtables'])?GETPOST('createtables'):1; - $createkeys=isset($_GET['createkeys'])?GETPOST('createkeys'):1; - $createfunctions=isset($_GET['createfunctions'])?GETPOST('createfunction'):1; - $createdata=isset($_GET['createdata'])?GETPOST('createdata'):1; + $createtables = isset($_GET['createtables']) ?GETPOST('createtables') : 1; + $createkeys = isset($_GET['createkeys']) ?GETPOST('createkeys') : 1; + $createfunctions = isset($_GET['createfunctions']) ?GETPOST('createfunction') : 1; + $createdata = isset($_GET['createdata']) ?GETPOST('createdata') : 1; // To say sql requests are escaped for mysql so we need to unescape them - $db->unescapeslashquot=true; + $db->unescapeslashquot = true; /************************************************************************************** @@ -160,18 +160,18 @@ if ($action == "set") $dir = "mysql/tables/"; $ok = 0; - $handle=opendir($dir); - dolibarr_install_syslog("step2: open tables directory " . $dir . " handle=" . $handle); + $handle = opendir($dir); + dolibarr_install_syslog("step2: open tables directory ".$dir." handle=".$handle); $tablefound = 0; - $tabledata=array(); + $tabledata = array(); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - if (preg_match('/\.sql$/i', $file) && preg_match('/^llx_/i', $file) && ! preg_match('/\.key\.sql$/i', $file)) + if (preg_match('/\.sql$/i', $file) && preg_match('/^llx_/i', $file) && !preg_match('/\.key\.sql$/i', $file)) { $tablefound++; - $tabledata[]=$file; + $tabledata[] = $file; } } closedir($handle); @@ -179,7 +179,7 @@ if ($action == "set") // Sort list of sql files on alphabetical order (load order is important) sort($tabledata); - foreach($tabledata as $file) + foreach ($tabledata as $file) { $name = substr($file, 0, dol_strlen($file) - 4); $buffer = ''; @@ -191,36 +191,36 @@ if ($action == "set") $buf = fgets($fp, 4096); if (substr($buf, 0, 2) <> '--') { - $buf=preg_replace('/--(.+)*/', '', $buf); + $buf = preg_replace('/--(.+)*/', '', $buf); $buffer .= $buf; } } fclose($fp); - $buffer=trim($buffer); + $buffer = trim($buffer); if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') // For Mysql 5.5+, we must replace type=innodb with ENGINE=innodb { - $buffer=preg_replace('/type=innodb/i', 'ENGINE=innodb', $buffer); + $buffer = preg_replace('/type=innodb/i', 'ENGINE=innodb', $buffer); } else { // Keyword ENGINE is MySQL-specific, so scrub it for // other database types (mssql, pgsql) - $buffer=preg_replace('/type=innodb/i', '', $buffer); - $buffer=preg_replace('/ENGINE=innodb/i', '', $buffer); + $buffer = preg_replace('/type=innodb/i', '', $buffer); + $buffer = preg_replace('/ENGINE=innodb/i', '', $buffer); } // Replace the prefix tables if ($dolibarr_main_db_prefix != 'llx_') { - $buffer=preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); + $buffer = preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); } //print ""; @@ -249,7 +249,7 @@ if ($action == "set") print ""; print ''; $error++; - dolibarr_install_syslog("step2: failed to open file " . $dir . $file, LOG_ERR); + dolibarr_install_syslog("step2: failed to open file ".$dir.$file, LOG_ERR); } } @@ -265,7 +265,7 @@ if ($action == "set") else { print ''; - dolibarr_install_syslog("step2: failed to find files to create database in directory " . $dir, LOG_ERR); + dolibarr_install_syslog("step2: failed to find files to create database in directory ".$dir, LOG_ERR); } } @@ -282,18 +282,18 @@ if ($action == "set") $dir = "mysql/tables/"; $okkeys = 0; - $handle=opendir($dir); - dolibarr_install_syslog("step2: open keys directory " . $dir . " handle=" . $handle); + $handle = opendir($dir); + dolibarr_install_syslog("step2: open keys directory ".$dir." handle=".$handle); $tablefound = 0; - $tabledata=array(); + $tabledata = array(); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { if (preg_match('/\.sql$/i', $file) && preg_match('/^llx_/i', $file) && preg_match('/\.key\.sql$/i', $file)) { $tablefound++; - $tabledata[]=$file; + $tabledata[] = $file; } } closedir($handle); @@ -301,7 +301,7 @@ if ($action == "set") // Sort list of sql files on alphabetical order (load order is important) sort($tabledata); - foreach($tabledata as $file) + foreach ($tabledata as $file) { $name = substr($file, 0, dol_strlen($file) - 4); //print ""; @@ -316,54 +316,54 @@ if ($action == "set") // Special case of lines allowed for some version only if ($choix == 1 && preg_match('/^--\sV([0-9\.]+)/i', $buf, $reg)) { - $versioncommande=explode('.', $reg[1]); + $versioncommande = explode('.', $reg[1]); //print var_dump($versioncommande); //print var_dump($versionarray); if (count($versioncommande) && count($versionarray) && versioncompare($versioncommande, $versionarray) <= 0) { // Version qualified, delete SQL comments - $buf=preg_replace('/^--\sV([0-9\.]+)/i', '', $buf); + $buf = preg_replace('/^--\sV([0-9\.]+)/i', '', $buf); //print "Ligne $i qualifiee par version: ".$buf.'
    '; } } if ($choix == 2 && preg_match('/^--\sPOSTGRESQL\sV([0-9\.]+)/i', $buf, $reg)) { - $versioncommande=explode('.', $reg[1]); + $versioncommande = explode('.', $reg[1]); //print var_dump($versioncommande); //print var_dump($versionarray); if (count($versioncommande) && count($versionarray) && versioncompare($versioncommande, $versionarray) <= 0) { // Version qualified, delete SQL comments - $buf=preg_replace('/^--\sPOSTGRESQL\sV([0-9\.]+)/i', '', $buf); + $buf = preg_replace('/^--\sPOSTGRESQL\sV([0-9\.]+)/i', '', $buf); //print "Ligne $i qualifiee par version: ".$buf.'
    '; } } // Ajout ligne si non commentaire - if (! preg_match('/^--/i', $buf)) $buffer .= $buf; + if (!preg_match('/^--/i', $buf)) $buffer .= $buf; } fclose($fp); // Si plusieurs requetes, on boucle sur chaque - $listesql=explode(';', $buffer); + $listesql = explode(';', $buffer); foreach ($listesql as $req) { - $buffer=trim($req); + $buffer = trim($req); if ($buffer) { // Replace the prefix tables if ($dolibarr_main_db_prefix != 'llx_') { - $buffer=preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); + $buffer = preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); } //print ""; $requestnb++; - dolibarr_install_syslog("step2: request: " . $buffer); - $resql=$db->query($buffer, 0, 'dml'); + dolibarr_install_syslog("step2: request: ".$buffer); + $resql = $db->query($buffer, 0, 'dml'); if ($resql) { //print ""; @@ -398,7 +398,7 @@ if ($action == "set") print ""; print '"; $error++; - dolibarr_install_syslog("step2: failed to open file " . $dir . $file, LOG_ERR); + dolibarr_install_syslog("step2: failed to open file ".$dir.$file, LOG_ERR); } } @@ -419,20 +419,20 @@ if ($action == "set") if ($ok && $createfunctions) { // For this file, we use a directory according to database type - if ($choix==1) $dir = "mysql/functions/"; - elseif ($choix==2) $dir = "pgsql/functions/"; - elseif ($choix==3) $dir = "mssql/functions/"; - elseif ($choix==4) { $dir = "sqlite3/functions/"; } + if ($choix == 1) $dir = "mysql/functions/"; + elseif ($choix == 2) $dir = "pgsql/functions/"; + elseif ($choix == 3) $dir = "mssql/functions/"; + elseif ($choix == 4) { $dir = "sqlite3/functions/"; } // Creation donnees $file = "functions.sql"; if (file_exists($dir.$file)) { $fp = fopen($dir.$file, "r"); - dolibarr_install_syslog("step2: open function file " . $dir . $file . " handle=" . $fp); + dolibarr_install_syslog("step2: open function file ".$dir.$file." handle=".$fp); if ($fp) { - $buffer=''; + $buffer = ''; while (!feof($fp)) { $buf = fgets($fp, 4096); @@ -446,20 +446,20 @@ if ($action == "set") //$buffer=preg_replace('/;\';/',";'§",$buffer); // If several requests, we loop on each of them - $listesql=explode('§', $buffer); + $listesql = explode('§', $buffer); foreach ($listesql as $buffer) { - $buffer=trim($buffer); + $buffer = trim($buffer); if ($buffer) { // Replace the prefix in table names if ($dolibarr_main_db_prefix != 'llx_') { - $buffer=preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); + $buffer = preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); } - dolibarr_install_syslog("step2: request: " . $buffer); + dolibarr_install_syslog("step2: request: ".$buffer); print "\n"; - $resql=$db->query($buffer, 0, 'dml'); + $resql = $db->query($buffer, 0, 'dml'); if ($resql) { $ok = 1; @@ -494,7 +494,7 @@ if ($action == "set") else { print ''; - $ok = 1 ; + $ok = 1; } } } @@ -511,23 +511,23 @@ if ($action == "set") $dir = "mysql/data/"; // Insert data - $handle=opendir($dir); - dolibarr_install_syslog("step2: open directory data " . $dir . " handle=" . $handle); + $handle = opendir($dir); + dolibarr_install_syslog("step2: open directory data ".$dir." handle=".$handle); $tablefound = 0; - $tabledata=array(); + $tabledata = array(); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { if (preg_match('/\.sql$/i', $file) && preg_match('/^llx_/i', $file)) { - if (preg_match('/^llx_accounting_account_/', $file)) continue; // We discard data file of chart of account. Will be loaded when a chart is selected. + if (preg_match('/^llx_accounting_account_/', $file)) continue; // We discard data file of chart of account. Will be loaded when a chart is selected. //print 'x'.$file.'-'.$createdata.'
    '; if (is_numeric($createdata) || preg_match('/'.preg_quote($createdata).'/i', $file)) { $tablefound++; - $tabledata[]=$file; + $tabledata[] = $file; } } } @@ -536,17 +536,17 @@ if ($action == "set") // Sort list of data files on alphabetical order (load order is important) sort($tabledata); - foreach($tabledata as $file) + foreach ($tabledata as $file) { $name = substr($file, 0, dol_strlen($file) - 4); $fp = fopen($dir.$file, "r"); - dolibarr_install_syslog("step2: open data file " . $dir . $file . " handle=" . $fp); + dolibarr_install_syslog("step2: open data file ".$dir.$file." handle=".$fp); if ($fp) { - $arrayofrequests=array(); - $linefound=0; - $linegroup=0; - $sizeofgroup=1; // Grouping request to have 1 query for several requests does not works with mysql, so we use 1. + $arrayofrequests = array(); + $linefound = 0; + $linegroup = 0; + $sizeofgroup = 1; // Grouping request to have 1 query for several requests does not works with mysql, so we use 1. // Load all requests while (!feof($fp)) @@ -561,30 +561,30 @@ if ($action == "set") { $linegroup++; } - if (empty($arrayofrequests[$linegroup])) $arrayofrequests[$linegroup]=$buffer; - else $arrayofrequests[$linegroup].=" ".$buffer; + if (empty($arrayofrequests[$linegroup])) $arrayofrequests[$linegroup] = $buffer; + else $arrayofrequests[$linegroup] .= " ".$buffer; $linefound++; } } fclose($fp); - dolibarr_install_syslog("step2: found " . $linefound . " records, defined " . count($arrayofrequests) . " group(s)."); + dolibarr_install_syslog("step2: found ".$linefound." records, defined ".count($arrayofrequests)." group(s)."); - $okallfile=1; + $okallfile = 1; $db->begin(); // We loop on each requests of file - foreach($arrayofrequests as $buffer) + foreach ($arrayofrequests as $buffer) { // Replace the prefix tables if ($dolibarr_main_db_prefix != 'llx_') { - $buffer=preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); + $buffer = preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); } //dolibarr_install_syslog("step2: request: " . $buffer); - $resql=$db->query($buffer, 1); + $resql = $db->query($buffer, 1); if ($resql) { //$db->free($resql); // Not required as request we launch here does not return memory needs. @@ -617,7 +617,7 @@ if ($action == "set") else { print ''; - $ok = 1; // Data loading are not blocking errors + $ok = 1; // Data loading are not blocking errors } } print '
    "; print $langs->trans("ServerConnection")." : ".$conf->db->host.'Ok
    Failed to select database ".$conf->db->name.'Error
    '.$langs->trans("DatabaseVersion").''.$version.'
    '.join('.',$versionarray).'
    '.join('.',$versionarray).'
    Creation de la table $name/td>"; $requestnb++; - dolibarr_install_syslog("step2: request: " . $buffer); - $resql=$db->query($buffer, 0, 'dml'); + dolibarr_install_syslog("step2: request: ".$buffer); + $resql = $db->query($buffer, 0, 'dml'); if ($resql) { // print "OK requete ==== $buffer
    '.$langs->trans("Error").' Failed to open file '.$dir.$file.'
    '.$langs->trans("ErrorFailedToFindSomeFiles", $dir).'Error
    Creation de la table $name
    Creation des cles et index de la table $name: '$buffer'OK requete ==== $buffer
    '.$langs->trans("Error")." Failed to open file ".$dir.$file."
    Error
    Error
    '; @@ -628,8 +628,8 @@ else } -$ret=0; -if (!$ok && isset($argv[1])) $ret=1; +$ret = 0; +if (!$ok && isset($argv[1])) $ret = 1; dolibarr_install_syslog("Exit ".$ret); dolibarr_install_syslog("- step2: end"); @@ -653,7 +653,7 @@ $out .= ''; print $out; -pFooter($ok?0:1, $setuplang); +pFooter($ok ? 0 : 1, $setuplang); if (isset($db) && is_object($db)) $db->close(); diff --git a/htdocs/install/step4.php b/htdocs/install/step4.php index b8feb89d246..b780f9d3b0f 100644 --- a/htdocs/install/step4.php +++ b/htdocs/install/step4.php @@ -32,15 +32,15 @@ require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php'; global $langs; -$setuplang=GETPOST('selectlang', 'aZ09', 3)?GETPOST('selectlang', 'aZ09', 3):(empty($argv[1])?'auto':$argv[1]); +$setuplang = GETPOST('selectlang', 'aZ09', 3) ?GETPOST('selectlang', 'aZ09', 3) : (empty($argv[1]) ? 'auto' : $argv[1]); $langs->setDefaultLang($setuplang); $langs->loadLangs(array("admin", "install")); // Now we load forced value from install.forced.php file. -$useforcedwizard=false; -$forcedfile="./install.forced.php"; -if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; +$useforcedwizard = false; +$forcedfile = "./install.forced.php"; +if ($conffile == "/etc/dolibarr/conf.php") $forcedfile = "/etc/dolibarr/install.forced.php"; if (@file_exists($forcedfile)) { $useforcedwizard = true; include_once $forcedfile; @@ -48,7 +48,7 @@ if (@file_exists($forcedfile)) { dolibarr_install_syslog("- step4: entering step4.php page"); -$error=0; +$error = 0; $ok = 0; @@ -60,7 +60,7 @@ $ok = 0; pHeader($langs->trans("AdminAccountCreation"), "step5"); // Test if we can run a first install process -if (! is_writable($conffile)) +if (!is_writable($conffile)) { print $langs->trans("ConfFileIsNotWritable", $conffiletoshow); pFooter(1, $setuplang, 'jscheckparam'); @@ -75,12 +75,12 @@ print $langs->trans("LastStepDesc").'

    '; print ''; -$db=getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); +$db = getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); if ($db->ok) { print ''; + print ''; print ''; print ''; $sql = "SELECT SUM(amount_capital) as total"; - $sql.= " FROM ".MAIN_DB_PREFIX."payment_loan"; - $sql.= " WHERE fk_loan = ".$chid; + $sql .= " FROM ".MAIN_DB_PREFIX."payment_loan"; + $sql .= " WHERE fk_loan = ".$chid; $resql = $db->query($sql); if ($resql) { - $obj=$db->fetch_object($resql); + $obj = $db->fetch_object($resql); $sumpaid = $obj->total; $db->free(); } print ''; - print ''; + print ''; print ''; print '
    '; - print '
    '; print '
    '; @@ -91,7 +91,7 @@ if ($db->ok) { print '
    '; print '
    '.$langs->trans("PasswordsMismatch").'
    '; - $error=0; // We show button + $error = 0; // We show button } if (isset($_GET["error"]) && $_GET["error"] == 2) @@ -100,19 +100,19 @@ if ($db->ok) print '
    '; print $langs->trans("PleaseTypePassword"); print '
    '; - $error=0; // We show button + $error = 0; // We show button } if (isset($_GET["error"]) && $_GET["error"] == 3) { print '
    '; print '
    '.$langs->trans("PleaseTypeALogin").'
    '; - $error=0; // We show button + $error = 0; // We show button } } -$ret=0; -if ($error && isset($argv[1])) $ret=1; +$ret = 0; +if ($error && isset($argv[1])) $ret = 1; dolibarr_install_syslog("Exit ".$ret); dolibarr_install_syslog("- step4: end"); diff --git a/htdocs/install/step5.php b/htdocs/install/step5.php index fcb19b91421..1609035e415 100644 --- a/htdocs/install/step5.php +++ b/htdocs/install/step5.php @@ -28,42 +28,42 @@ include_once 'inc.php'; if (file_exists($conffile)) include_once $conffile; -require_once $dolibarr_main_document_root . '/core/lib/admin.lib.php'; -require_once $dolibarr_main_document_root . '/core/lib/security.lib.php'; // for dol_hash +require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php'; +require_once $dolibarr_main_document_root.'/core/lib/security.lib.php'; // for dol_hash global $langs; -$versionfrom=GETPOST("versionfrom", 'alpha', 3)?GETPOST("versionfrom", 'alpha', 3):(empty($argv[1])?'':$argv[1]); -$versionto=GETPOST("versionto", 'alpha', 3)?GETPOST("versionto", 'alpha', 3):(empty($argv[2])?'':$argv[2]); -$setuplang=GETPOST('selectlang', 'aZ09', 3)?GETPOST('selectlang', 'aZ09', 3):(empty($argv[3])?'auto':$argv[3]); +$versionfrom = GETPOST("versionfrom", 'alpha', 3) ?GETPOST("versionfrom", 'alpha', 3) : (empty($argv[1]) ? '' : $argv[1]); +$versionto = GETPOST("versionto", 'alpha', 3) ?GETPOST("versionto", 'alpha', 3) : (empty($argv[2]) ? '' : $argv[2]); +$setuplang = GETPOST('selectlang', 'aZ09', 3) ?GETPOST('selectlang', 'aZ09', 3) : (empty($argv[3]) ? 'auto' : $argv[3]); $langs->setDefaultLang($setuplang); -$action=GETPOST('action', 'alpha')?GETPOST('action', 'alpha'):(empty($argv[4])?'':$argv[4]); +$action = GETPOST('action', 'alpha') ?GETPOST('action', 'alpha') : (empty($argv[4]) ? '' : $argv[4]); // Define targetversion used to update MAIN_VERSION_LAST_INSTALL for first install // or MAIN_VERSION_LAST_UPGRADE for upgrade. -$targetversion=DOL_VERSION; // If it's latest upgrade -if (! empty($action) && preg_match('/upgrade/i', $action)) // If it's an old upgrade +$targetversion = DOL_VERSION; // If it's latest upgrade +if (!empty($action) && preg_match('/upgrade/i', $action)) // If it's an old upgrade { - $tmp=explode('_', $action, 2); - if ($tmp[0]=='upgrade') + $tmp = explode('_', $action, 2); + if ($tmp[0] == 'upgrade') { - if (! empty($tmp[1])) $targetversion=$tmp[1]; // if $action = 'upgrade_6.0.0-beta', we use '6.0.0-beta' - else $targetversion=DOL_VERSION; // if $action = 'upgrade', we use DOL_VERSION + if (!empty($tmp[1])) $targetversion = $tmp[1]; // if $action = 'upgrade_6.0.0-beta', we use '6.0.0-beta' + else $targetversion = DOL_VERSION; // if $action = 'upgrade', we use DOL_VERSION } } $langs->loadLangs(array("admin", "install")); -$login = GETPOST('login', 'alpha')?GETPOST('login', 'alpha'):(empty($argv[5])?'':$argv[5]); -$pass = GETPOST('pass', 'alpha')?GETPOST('pass', 'alpha'):(empty($argv[6])?'':$argv[6]); -$pass_verif = GETPOST('pass_verif', 'alpha')?GETPOST('pass_verif', 'alpha'):(empty($argv[7])?'':$argv[7]); -$force_install_lockinstall = (int) (! empty($force_install_lockinstall)?$force_install_lockinstall:(GETPOST('installlock', 'aZ09')?GETPOST('installlock', 'aZ09'):(empty($argv[8])?'':$argv[8]))); +$login = GETPOST('login', 'alpha') ?GETPOST('login', 'alpha') : (empty($argv[5]) ? '' : $argv[5]); +$pass = GETPOST('pass', 'alpha') ?GETPOST('pass', 'alpha') : (empty($argv[6]) ? '' : $argv[6]); +$pass_verif = GETPOST('pass_verif', 'alpha') ?GETPOST('pass_verif', 'alpha') : (empty($argv[7]) ? '' : $argv[7]); +$force_install_lockinstall = (int) (!empty($force_install_lockinstall) ? $force_install_lockinstall : (GETPOST('installlock', 'aZ09') ?GETPOST('installlock', 'aZ09') : (empty($argv[8]) ? '' : $argv[8]))); -$success=0; +$success = 0; -$useforcedwizard=false; -$forcedfile="./install.forced.php"; -if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; +$useforcedwizard = false; +$forcedfile = "./install.forced.php"; +if ($conffile == "/etc/dolibarr/conf.php") $forcedfile = "/etc/dolibarr/install.forced.php"; if (@file_exists($forcedfile)) { $useforcedwizard = true; include_once $forcedfile; @@ -77,7 +77,7 @@ if (@file_exists($forcedfile)) { dolibarr_install_syslog("- step5: entering step5.php page"); -$error=0; +$error = 0; /* * Actions @@ -86,17 +86,17 @@ $error=0; // If install, check password and password_verification used to create admin account if ($action == "set") { if ($pass <> $pass_verif) { - header("Location: step4.php?error=1&selectlang=$setuplang" . (isset($login) ? '&login=' . $login : '')); + header("Location: step4.php?error=1&selectlang=$setuplang".(isset($login) ? '&login='.$login : '')); exit; } if (dol_strlen(trim($pass)) == 0) { - header("Location: step4.php?error=2&selectlang=$setuplang" . (isset($login) ? '&login=' . $login : '')); + header("Location: step4.php?error=2&selectlang=$setuplang".(isset($login) ? '&login='.$login : '')); exit; } if (dol_strlen(trim($login)) == 0) { - header("Location: step4.php?error=3&selectlang=$setuplang" . (isset($login) ? '&login=' . $login : '')); + header("Location: step4.php?error=3&selectlang=$setuplang".(isset($login) ? '&login='.$login : '')); exit; } } @@ -110,7 +110,7 @@ pHeader($langs->trans("SetupEnd"), "step5"); print '
    '; // Test if we can run a first install process -if (empty($versionfrom) && empty($versionto) && ! is_writable($conffile)) +if (empty($versionfrom) && empty($versionto) && !is_writable($conffile)) { print $langs->trans("ConfFileIsNotWritable", $conffiletoshow); pFooter(1, $setuplang, 'jscheckparam'); @@ -119,17 +119,17 @@ if (empty($versionfrom) && empty($versionto) && ! is_writable($conffile)) if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { - $error=0; + $error = 0; // If password is encoded, we decode it - if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || ! empty($dolibarr_main_db_encrypted_pass)) + if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) { require_once $dolibarr_main_document_root.'/core/lib/security.lib.php'; if (preg_match('/crypted:/i', $dolibarr_main_db_pass)) { $dolibarr_main_db_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_pass); - $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted + $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted } else $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass); } @@ -140,14 +140,14 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) $conf->db->name = $dolibarr_main_db_name; $conf->db->user = $dolibarr_main_db_user; $conf->db->pass = $dolibarr_main_db_pass; - $conf->db->dolibarr_main_db_encryption = isset($dolibarr_main_db_encryption)?$dolibarr_main_db_encryption:''; - $conf->db->dolibarr_main_db_cryptkey = isset($dolibarr_main_db_cryptkey)?$dolibarr_main_db_cryptkey:''; + $conf->db->dolibarr_main_db_encryption = isset($dolibarr_main_db_encryption) ? $dolibarr_main_db_encryption : ''; + $conf->db->dolibarr_main_db_cryptkey = isset($dolibarr_main_db_cryptkey) ? $dolibarr_main_db_cryptkey : ''; - $db=getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); + $db = getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); // Create the global $hookmanager object include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; - $hookmanager=new HookManager($db); + $hookmanager = new HookManager($db); $ok = 0; @@ -155,64 +155,64 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) if ($action == "set") { // Active module user - $modName='modUser'; - $file = $modName . ".class.php"; - dolibarr_install_syslog('step5: load module user ' . DOL_DOCUMENT_ROOT . "/core/modules/" . $file, LOG_INFO); - include_once DOL_DOCUMENT_ROOT ."/core/modules/".$file; + $modName = 'modUser'; + $file = $modName.".class.php"; + dolibarr_install_syslog('step5: load module user '.DOL_DOCUMENT_ROOT."/core/modules/".$file, LOG_INFO); + include_once DOL_DOCUMENT_ROOT."/core/modules/".$file; $objMod = new $modName($db); - $result=$objMod->init(); - if (! $result) print 'ERROR in activating module file='.$file; + $result = $objMod->init(); + if (!$result) print 'ERROR in activating module file='.$file; if ($db->connected) { $conf->setValues($db); // Reset forced setup after the setValues - if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE=constant('SYSLOG_FILE'); + if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE = constant('SYSLOG_FILE'); $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; // Create admin user - include_once DOL_DOCUMENT_ROOT .'/user/class/user.class.php'; + include_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; // Set default encryption to yes, generate a salt and set default encryption algorythm (but only if there is no user yet into database) $sql = "SELECT u.rowid, u.pass, u.pass_crypted"; - $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; - $resql=$db->query($sql); + $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; + $resql = $db->query($sql); if ($resql) { - $numrows=$db->num_rows($resql); + $numrows = $db->num_rows($resql); if ($numrows == 0) { // Define default setup for password encryption dolibarr_set_const($db, "DATABASE_PWD_ENCRYPTED", "1", 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_SECURITY_SALT", dol_print_date(dol_now(), 'dayhourlog'), 'chaine', 0, '', 0); // All entities + dolibarr_set_const($db, "MAIN_SECURITY_SALT", dol_print_date(dol_now(), 'dayhourlog'), 'chaine', 0, '', 0); // All entities if (function_exists('password_hash')) - dolibarr_set_const($db, "MAIN_SECURITY_HASH_ALGO", 'password_hash', 'chaine', 0, '', 0); // All entities + dolibarr_set_const($db, "MAIN_SECURITY_HASH_ALGO", 'password_hash', 'chaine', 0, '', 0); // All entities else - dolibarr_set_const($db, "MAIN_SECURITY_HASH_ALGO", 'sha1md5', 'chaine', 0, '', 0); // All entities + dolibarr_set_const($db, "MAIN_SECURITY_HASH_ALGO", 'sha1md5', 'chaine', 0, '', 0); // All entities } dolibarr_install_syslog('step5: DATABASE_PWD_ENCRYPTED = '.$conf->global->DATABASE_PWD_ENCRYPTED.' MAIN_SECURITY_HASH_ALGO = '.$conf->global->MAIN_SECURITY_HASH_ALGO, LOG_INFO); } // Create user used to create the admin user - $createuser=new User($db); - $createuser->id=0; - $createuser->admin=1; + $createuser = new User($db); + $createuser->id = 0; + $createuser->admin = 1; // Set admin user $newuser = new User($db); - $newuser->lastname='SuperAdmin'; - $newuser->firstname=''; + $newuser->lastname = 'SuperAdmin'; + $newuser->firstname = ''; $newuser->login = $login; $newuser->pass = $pass; - $newuser->admin=1; - $newuser->entity=0; + $newuser->admin = 1; + $newuser->entity = 0; - $conf->global->USER_MAIL_REQUIRED=0; // Force global option to be sure to create a new user with no email - $result=$newuser->create($createuser, 1); + $conf->global->USER_MAIL_REQUIRED = 0; // Force global option to be sure to create a new user with no email + $result = $newuser->create($createuser, 1); if ($result > 0) { - print $langs->trans("AdminLoginCreatedSuccessfuly", $login) . "
    "; + print $langs->trans("AdminLoginCreatedSuccessfuly", $login)."
    "; $success = 1; } else @@ -220,12 +220,12 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) if ($newuser->error == 'ErrorLoginAlreadyExists') { dolibarr_install_syslog('step5: AdminLoginAlreadyExists', LOG_WARNING); - print '
    ' . $langs->trans("AdminLoginAlreadyExists", $login) . "

    "; + print '
    '.$langs->trans("AdminLoginAlreadyExists", $login)."

    "; $success = 1; } else { - dolibarr_install_syslog('step5: FailedToCreateAdminLogin ' . $newuser->error, LOG_ERR); + dolibarr_install_syslog('step5: FailedToCreateAdminLogin '.$newuser->error, LOG_ERR); print '
    '.$langs->trans("FailedToCreateAdminLogin").' '.$newuser->error.'


    '; } } @@ -234,11 +234,11 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { // Insert MAIN_VERSION_FIRST_INSTALL in a dedicated transaction. So if it fails (when first install was already done), we can do other following requests. $db->begin(); - dolibarr_install_syslog('step5: set MAIN_VERSION_FIRST_INSTALL const to ' . $targetversion, LOG_DEBUG); - $resql=$db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_VERSION_FIRST_INSTALL', 1).",".$db->encrypt($targetversion, 1).",'chaine',0,'Dolibarr version when first install',0)"); + dolibarr_install_syslog('step5: set MAIN_VERSION_FIRST_INSTALL const to '.$targetversion, LOG_DEBUG); + $resql = $db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_VERSION_FIRST_INSTALL', 1).",".$db->encrypt($targetversion, 1).",'chaine',0,'Dolibarr version when first install',0)"); if ($resql) { - $conf->global->MAIN_VERSION_FIRST_INSTALL=$targetversion; + $conf->global->MAIN_VERSION_FIRST_INSTALL = $targetversion; $db->commit(); } else @@ -249,46 +249,46 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) $db->begin(); - dolibarr_install_syslog('step5: set MAIN_VERSION_LAST_INSTALL const to ' . $targetversion, LOG_DEBUG); - $resql=$db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_VERSION_LAST_INSTALL'"); - if (! $resql) dol_print_error($db, 'Error in setup program'); - $resql=$db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_VERSION_LAST_INSTALL', 1).",".$db->encrypt($targetversion, 1).",'chaine',0,'Dolibarr version when last install',0)"); - if (! $resql) dol_print_error($db, 'Error in setup program'); - $conf->global->MAIN_VERSION_LAST_INSTALL=$targetversion; + dolibarr_install_syslog('step5: set MAIN_VERSION_LAST_INSTALL const to '.$targetversion, LOG_DEBUG); + $resql = $db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_VERSION_LAST_INSTALL'"); + if (!$resql) dol_print_error($db, 'Error in setup program'); + $resql = $db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_VERSION_LAST_INSTALL', 1).",".$db->encrypt($targetversion, 1).",'chaine',0,'Dolibarr version when last install',0)"); + if (!$resql) dol_print_error($db, 'Error in setup program'); + $conf->global->MAIN_VERSION_LAST_INSTALL = $targetversion; if ($useforcedwizard) { dolibarr_install_syslog('step5: set MAIN_REMOVE_INSTALL_WARNING const to 1', LOG_DEBUG); - $resql=$db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_REMOVE_INSTALL_WARNING'"); - if (! $resql) dol_print_error($db, 'Error in setup program'); - $resql=$db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_REMOVE_INSTALL_WARNING', 1).",".$db->encrypt(1, 1).",'chaine',1,'Disable install warnings',0)"); - if (! $resql) dol_print_error($db, 'Error in setup program'); - $conf->global->MAIN_REMOVE_INSTALL_WARNING=1; + $resql = $db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_REMOVE_INSTALL_WARNING'"); + if (!$resql) dol_print_error($db, 'Error in setup program'); + $resql = $db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_REMOVE_INSTALL_WARNING', 1).",".$db->encrypt(1, 1).",'chaine',1,'Disable install warnings',0)"); + if (!$resql) dol_print_error($db, 'Error in setup program'); + $conf->global->MAIN_REMOVE_INSTALL_WARNING = 1; } // If we ask to force some modules to be enabled - if (! empty($force_install_module)) + if (!empty($force_install_module)) { - if (! defined('DOL_DOCUMENT_ROOT') && ! empty($dolibarr_main_document_root)) define('DOL_DOCUMENT_ROOT', $dolibarr_main_document_root); + if (!defined('DOL_DOCUMENT_ROOT') && !empty($dolibarr_main_document_root)) define('DOL_DOCUMENT_ROOT', $dolibarr_main_document_root); - $tmparray=explode(',', $force_install_module); + $tmparray = explode(',', $force_install_module); foreach ($tmparray as $modtoactivate) { - $modtoactivatenew=preg_replace('/\.class\.php$/i', '', $modtoactivate); + $modtoactivatenew = preg_replace('/\.class\.php$/i', '', $modtoactivate); print $langs->trans("ActivateModule", $modtoactivatenew).'
    '; - $file=$modtoactivatenew.'.class.php'; - dolibarr_install_syslog('step5: activate module file=' . $file); - $res=dol_include_once("/core/modules/".$file); + $file = $modtoactivatenew.'.class.php'; + dolibarr_install_syslog('step5: activate module file='.$file); + $res = dol_include_once("/core/modules/".$file); - $res=activateModule($modtoactivatenew, 1); - if (! empty($res['errors'])) print 'ERROR in activating module file='.$file; + $res = activateModule($modtoactivatenew, 1); + if (!empty($res['errors'])) print 'ERROR in activating module file='.$file; } } dolibarr_install_syslog('step5: remove MAIN_NOT_INSTALLED const'); - $resql=$db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_NOT_INSTALLED'"); - if (! $resql) dol_print_error($db, 'Error in setup program'); + $resql = $db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_NOT_INSTALLED'"); + if (!$resql) dol_print_error($db, 'Error in setup program'); $db->commit(); } @@ -305,31 +305,31 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) { $conf->setValues($db); // Reset forced setup after the setValues - if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE=constant('SYSLOG_FILE'); + if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE = constant('SYSLOG_FILE'); $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; // Define if we need to update the MAIN_VERSION_LAST_UPGRADE value in database - $tagdatabase=false; - if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE)) $tagdatabase=true; // We don't know what it was before, so now we consider we are version choosed. + $tagdatabase = false; + if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE)) $tagdatabase = true; // We don't know what it was before, so now we consider we are version choosed. else { - $mainversionlastupgradearray=preg_split('/[.-]/', $conf->global->MAIN_VERSION_LAST_UPGRADE); - $targetversionarray=preg_split('/[.-]/', $targetversion); - if (versioncompare($targetversionarray, $mainversionlastupgradearray) > 0) $tagdatabase=true; + $mainversionlastupgradearray = preg_split('/[.-]/', $conf->global->MAIN_VERSION_LAST_UPGRADE); + $targetversionarray = preg_split('/[.-]/', $targetversion); + if (versioncompare($targetversionarray, $mainversionlastupgradearray) > 0) $tagdatabase = true; } if ($tagdatabase) { - dolibarr_install_syslog('step5: set MAIN_VERSION_LAST_UPGRADE const to value ' . $targetversion); - $resql=$db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_VERSION_LAST_UPGRADE'"); - if (! $resql) dol_print_error($db, 'Error in setup program'); - $resql=$db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) VALUES (".$db->encrypt('MAIN_VERSION_LAST_UPGRADE', 1).",".$db->encrypt($targetversion, 1).",'chaine',0,'Dolibarr version for last upgrade',0)"); - if (! $resql) dol_print_error($db, 'Error in setup program'); - $conf->global->MAIN_VERSION_LAST_UPGRADE=$targetversion; + dolibarr_install_syslog('step5: set MAIN_VERSION_LAST_UPGRADE const to value '.$targetversion); + $resql = $db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_VERSION_LAST_UPGRADE'"); + if (!$resql) dol_print_error($db, 'Error in setup program'); + $resql = $db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) VALUES (".$db->encrypt('MAIN_VERSION_LAST_UPGRADE', 1).",".$db->encrypt($targetversion, 1).",'chaine',0,'Dolibarr version for last upgrade',0)"); + if (!$resql) dol_print_error($db, 'Error in setup program'); + $conf->global->MAIN_VERSION_LAST_UPGRADE = $targetversion; } else { - dolibarr_install_syslog('step5: we run an upgrade to version ' . $targetversion . ' but database was already upgraded to ' . $conf->global->MAIN_VERSION_LAST_UPGRADE . '. We keep MAIN_VERSION_LAST_UPGRADE as it is.'); + dolibarr_install_syslog('step5: we run an upgrade to version '.$targetversion.' but database was already upgraded to '.$conf->global->MAIN_VERSION_LAST_UPGRADE.'. We keep MAIN_VERSION_LAST_UPGRADE as it is.'); } } else @@ -343,7 +343,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i', $action)) } // May fail if parameter already defined - $resql=$db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) VALUES (".$db->encrypt('MAIN_LANG_DEFAULT', 1).",".$db->encrypt($setuplang, 1).",'chaine',0,'Default language',1)"); + $resql = $db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) VALUES (".$db->encrypt('MAIN_LANG_DEFAULT', 1).",".$db->encrypt($setuplang, 1).",'chaine',0,'Default language',1)"); //if (! $resql) dol_print_error($db,'Error in setup program'); $db->close(); @@ -361,20 +361,20 @@ if ($action == "set" && $success) // Install is finished print $langs->trans("SystemIsInstalled")."
    "; - $createlock=0; + $createlock = 0; - if (! empty($force_install_lockinstall) || ! empty($conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE)) + if (!empty($force_install_lockinstall) || !empty($conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE)) { // Install is finished, we create the lock file - $lockfile=DOL_DATA_ROOT.'/install.lock'; + $lockfile = DOL_DATA_ROOT.'/install.lock'; $fp = @fopen($lockfile, "w"); if ($fp) { - if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) $force_install_lockinstall=444; // For backward compatibility + if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) $force_install_lockinstall = 444; // For backward compatibility fwrite($fp, "This is a lock file to prevent use of install pages (set with permission ".$force_install_lockinstall.")"); fclose($fp); @chmod($lockfile, octdec($force_install_lockinstall)); - $createlock=1; + $createlock = 1; } } if (empty($createlock)) @@ -386,7 +386,7 @@ if ($action == "set" && $success) print $langs->trans("YouNeedToPersonalizeSetup")."

    "; - print '
    '; + print ''; } @@ -398,7 +398,7 @@ if ($action == "set" && $success) print $langs->trans("MigrationNotFinished").'
    '; print "
    "; - print '
    '; + print ''; } @@ -411,20 +411,20 @@ elseif (empty($action) || preg_match('/upgrade/i', $action)) // Upgrade is finished print $langs->trans("SystemIsUpgraded")."
    "; - $createlock=0; + $createlock = 0; - if (! empty($force_install_lockinstall) || ! empty($conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE)) + if (!empty($force_install_lockinstall) || !empty($conf->global->MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE)) { // Upgrade is finished, we create the lock file - $lockfile=DOL_DATA_ROOT.'/install.lock'; + $lockfile = DOL_DATA_ROOT.'/install.lock'; $fp = @fopen($lockfile, "w"); if ($fp) { - if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) $force_install_lockinstall=444; // For backward compatibility + if (empty($force_install_lockinstall) || $force_install_lockinstall == 1) $force_install_lockinstall = 444; // For backward compatibility fwrite($fp, "This is a lock file to prevent use of install pages (set with permission ".$force_install_lockinstall.")"); fclose($fp); @chmod($lockfile, octdec($force_install_lockinstall)); - $createlock=1; + $createlock = 1; } } if (empty($createlock)) @@ -434,7 +434,7 @@ elseif (empty($action) || preg_match('/upgrade/i', $action)) print "

    "; - print '
    '; + print '
    '; } @@ -459,8 +459,8 @@ else // Clear cache files clearstatcache(); -$ret=0; -if ($error && isset($argv[1])) $ret=1; +$ret = 0; +if ($error && isset($argv[1])) $ret = 1; dolibarr_install_syslog("Exit ".$ret); dolibarr_install_syslog("- step5: Dolibarr setup finished"); diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php index fb052bca77e..b71707bef4b 100644 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -37,7 +37,7 @@ */ include_once 'inc.php'; -if (! file_exists($conffile)) +if (!file_exists($conffile)) { print 'Error: Dolibarr config file was not found. This may means that Dolibarr is not installed yet. Please call the page "/install/index.php" instead of "/install/upgrade.php").'; } @@ -46,49 +46,49 @@ require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php'; global $langs; -$grant_query=''; +$grant_query = ''; $step = 2; $ok = 0; // Cette page peut etre longue. On augmente le delai autorise. // Ne fonctionne que si on est pas en safe_mode. -$err=error_reporting(); +$err = error_reporting(); error_reporting(0); @set_time_limit(300); error_reporting($err); -$setuplang=GETPOST("selectlang", 'aZ09', 3)?GETPOST("selectlang", 'aZ09', 3):'auto'; +$setuplang = GETPOST("selectlang", 'aZ09', 3) ?GETPOST("selectlang", 'aZ09', 3) : 'auto'; $langs->setDefaultLang($setuplang); -$versionfrom=GETPOST("versionfrom", 'alpha', 3)?GETPOST("versionfrom", 'alpha', 3):(empty($argv[1])?'':$argv[1]); -$versionto=GETPOST("versionto", 'alpha', 3)?GETPOST("versionto", '', 3):(empty($argv[2])?'':$argv[2]); -$dirmodule=((GETPOST("dirmodule", 'alpha', 3) && GETPOST("dirmodule", 'alpha', 3) != 'ignoredbversion'))?GETPOST("dirmodule", 'alpha', 3):((empty($argv[3]) || $argv[3] == 'ignoredbversion')?'':$argv[3]); -$ignoredbversion=(GETPOST('ignoredbversion', 'alpha', 3)=='ignoredbversion')?GETPOST('ignoredbversion', 'alpha', 3):((empty($argv[3]) || $argv[3] != 'ignoredbversion')?'':$argv[3]); +$versionfrom = GETPOST("versionfrom", 'alpha', 3) ?GETPOST("versionfrom", 'alpha', 3) : (empty($argv[1]) ? '' : $argv[1]); +$versionto = GETPOST("versionto", 'alpha', 3) ?GETPOST("versionto", '', 3) : (empty($argv[2]) ? '' : $argv[2]); +$dirmodule = ((GETPOST("dirmodule", 'alpha', 3) && GETPOST("dirmodule", 'alpha', 3) != 'ignoredbversion')) ?GETPOST("dirmodule", 'alpha', 3) : ((empty($argv[3]) || $argv[3] == 'ignoredbversion') ? '' : $argv[3]); +$ignoredbversion = (GETPOST('ignoredbversion', 'alpha', 3) == 'ignoredbversion') ?GETPOST('ignoredbversion', 'alpha', 3) : ((empty($argv[3]) || $argv[3] != 'ignoredbversion') ? '' : $argv[3]); $langs->loadLangs(array("admin", "install", "other", "errors")); -if ($dolibarr_main_db_type == "mysqli") $choix=1; -if ($dolibarr_main_db_type == "pgsql") $choix=2; -if ($dolibarr_main_db_type == "mssql") $choix=3; +if ($dolibarr_main_db_type == "mysqli") $choix = 1; +if ($dolibarr_main_db_type == "pgsql") $choix = 2; +if ($dolibarr_main_db_type == "mssql") $choix = 3; dolibarr_install_syslog("--- upgrade: Entering upgrade.php page"); -if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized", LOG_ERR); +if (!is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized", LOG_ERR); /* * View */ -if (! $versionfrom && ! $versionto) +if (!$versionfrom && !$versionto) { print 'Error: Parameter versionfrom or versionto missing.'."\n"; print 'Upgrade must be ran from command line with parameters or called from page install/index.php (like a first install)'."\n"; // Test if batch mode $sapi_type = php_sapi_name(); $script_file = basename(__FILE__); - $path=__DIR__.'/'; + $path = __DIR__.'/'; if (substr($sapi_type, 0, 3) == 'cli') { print 'Syntax from command line: '.$script_file." x.y.z a.b.c\n"; @@ -99,27 +99,27 @@ if (! $versionfrom && ! $versionto) pHeader('', "upgrade2", GETPOST('action', 'aZ09'), 'versionfrom='.$versionfrom.'&versionto='.$versionto); -$actiondone=0; +$actiondone = 0; // Action to launch the migrate script -if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ09'))) +if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ09'))) { - $actiondone=1; + $actiondone = 1; print '

    Database '.$langs->trans("DatabaseMigration").'

    '; print ''; - $error=0; + $error = 0; // If password is encoded, we decode it - if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || ! empty($dolibarr_main_db_encrypted_pass)) + if (preg_match('/crypted:/i', $dolibarr_main_db_pass) || !empty($dolibarr_main_db_encrypted_pass)) { require_once $dolibarr_main_document_root.'/core/lib/security.lib.php'; if (preg_match('/crypted:/i', $dolibarr_main_db_pass)) { $dolibarr_main_db_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_pass); - $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted + $dolibarr_main_db_encrypted_pass = $dolibarr_main_db_pass; // We need to set this as it is used to know the password was initially crypted } else $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass); } @@ -133,104 +133,104 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a $conf->db->pass = $dolibarr_main_db_pass; // Load type and crypt key - if (empty($dolibarr_main_db_encryption)) $dolibarr_main_db_encryption=0; + if (empty($dolibarr_main_db_encryption)) $dolibarr_main_db_encryption = 0; $conf->db->dolibarr_main_db_encryption = $dolibarr_main_db_encryption; - if (empty($dolibarr_main_db_cryptkey)) $dolibarr_main_db_cryptkey=''; + if (empty($dolibarr_main_db_cryptkey)) $dolibarr_main_db_cryptkey = ''; $conf->db->dolibarr_main_db_cryptkey = $dolibarr_main_db_cryptkey; - $db=getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); + $db = getDoliDBInstance($conf->db->type, $conf->db->host, $conf->db->user, $conf->db->pass, $conf->db->name, $conf->db->port); // Create the global $hookmanager object include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; - $hookmanager=new HookManager($db); + $hookmanager = new HookManager($db); if ($db->connected) { print '\n"; - dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ServerConnection") . ": $dolibarr_main_db_host " . $langs->transnoentities("OK")); + dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ServerConnection").": $dolibarr_main_db_host ".$langs->transnoentities("OK")); $ok = 1; } else { print "\n"; - dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); + dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); $ok = 0; } if ($ok) { - if($db->database_selected) + if ($db->database_selected) { print '\n"; - dolibarr_install_syslog("upgrade: Database connection successful: " . $dolibarr_main_db_name); - $ok=1; + dolibarr_install_syslog("upgrade: Database connection successful: ".$dolibarr_main_db_name); + $ok = 1; } else { print "\n"; - dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); - $ok=0; + dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); + $ok = 0; } } // Affiche version if ($ok) { - $version=$db->getVersion(); - $versionarray=$db->getVersionArray(); + $version = $db->getVersion(); + $versionarray = $db->getVersionArray(); print ''; print ''; - dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ServerVersion") . ": " .$version); + dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ServerVersion").": ".$version); if ($db->type == 'mysqli' && function_exists('mysqli_get_charset')) { $tmparray = $db->db->get_charset(); print ''; print ''; - dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ClientCharset") . ": " .$tmparray->charset); + dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ClientCharset").": ".$tmparray->charset); print ''; print ''; - dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ClientCollation") . ": " .$tmparray->collation); + dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ClientCollation").": ".$tmparray->collation); } // Test database version requirement - $versionmindb=explode('.', $db::VERSIONMIN); + $versionmindb = explode('.', $db::VERSIONMIN); //print join('.',$versionarray).' - '.join('.',$versionmindb); if (count($versionmindb) && count($versionarray) && versioncompare($versionarray, $versionmindb) < 0) { // Warning: database version too low. print "\n"; - dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ErrorDatabaseVersionTooLow", join('.', $versionarray), join('.', $versionmindb))); - $ok=0; + dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ErrorDatabaseVersionTooLow", join('.', $versionarray), join('.', $versionmindb))); + $ok = 0; } // Test database version is not forbidden for migration if (empty($ignoredbversion)) { - $dbversion_disallowed=array( - array('type'=>'mysql','version'=>array(5,5,40)), - array('type'=>'mysqli','version'=>array(5,5,40)) //, + $dbversion_disallowed = array( + array('type'=>'mysql', 'version'=>array(5, 5, 40)), + array('type'=>'mysqli', 'version'=>array(5, 5, 40)) //, //array('type'=>'mysql','version'=>array(5,5,41)), //array('type'=>'mysqli','version'=>array(5,5,41)) ); - $listofforbiddenversion=''; + $listofforbiddenversion = ''; foreach ($dbversion_disallowed as $dbversion_totest) { - if ($dbversion_totest['type'] == $db->type) $listofforbiddenversion.=($listofforbiddenversion?', ':'').join('.', $dbversion_totest['version']); + if ($dbversion_totest['type'] == $db->type) $listofforbiddenversion .= ($listofforbiddenversion ? ', ' : '').join('.', $dbversion_totest['version']); } foreach ($dbversion_disallowed as $dbversion_totest) { //print $db->type.' - '.join('.',$versionarray).' - '.versioncompare($dbversion_totest['version'],$versionarray)."
    \n"; if ($dbversion_totest['type'] == $db->type - && (versioncompare($dbversion_totest['version'], $versionarray) == 0 || versioncompare($dbversion_totest['version'], $versionarray)<=-4 || versioncompare($dbversion_totest['version'], $versionarray)>=4) + && (versioncompare($dbversion_totest['version'], $versionarray) == 0 || versioncompare($dbversion_totest['version'], $versionarray) <= -4 || versioncompare($dbversion_totest['version'], $versionarray) >= 4) ) { // Warning: database version too low. print '\n"; - dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ErrorDatabaseVersionForbiddenForMigration", join('.', $versionarray), $listofforbiddenversion)); - $ok=0; + dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ErrorDatabaseVersionForbiddenForMigration", join('.', $versionarray), $listofforbiddenversion)); + $ok = 0; break; } } @@ -250,7 +250,7 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a */ if ($ok && preg_match('/mysql/', $db->type)) { - $versioncommande=array(4,0,0); + $versioncommande = array(4, 0, 0); if (count($versioncommande) && count($versionarray) && versioncompare($versioncommande, $versionarray) <= 0) // Si mysql >= 4.0 { @@ -258,11 +258,11 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a // Suppression vieilles contraintes sans noms et en doubles // Les contraintes indesirables ont un nom qui commence par 0_ ou se termine par ibfk_999 - $listtables=array( + $listtables = array( MAIN_DB_PREFIX.'adherent_options', MAIN_DB_PREFIX.'bank_class', MAIN_DB_PREFIX.'c_ecotaxe', - MAIN_DB_PREFIX.'c_methode_commande_fournisseur', // table renamed + MAIN_DB_PREFIX.'c_methode_commande_fournisseur', // table renamed MAIN_DB_PREFIX.'c_input_method' ); @@ -277,18 +277,18 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a $resql = $db->query($sql); if ($resql) { - $values=$db->fetch_array($resql); - $i=0; - $createsql=$values[1]; + $values = $db->fetch_array($resql); + $i = 0; + $createsql = $values[1]; while (preg_match('/CONSTRAINT `(0_[0-9a-zA-Z]+|[_0-9a-zA-Z]+_ibfk_[0-9]+)`/i', $createsql, $reg) && $i < 100) { - $sqldrop="ALTER TABLE ".$val." DROP FOREIGN KEY ".$reg[1]; + $sqldrop = "ALTER TABLE ".$val." DROP FOREIGN KEY ".$reg[1]; $resqldrop = $db->query($sqldrop); if ($resqldrop) { print '\n"; } - $createsql=preg_replace('/CONSTRAINT `'.$reg[1].'`/i', 'XXX', $createsql); + $createsql = preg_replace('/CONSTRAINT `'.$reg[1].'`/i', 'XXX', $createsql); $i++; } $db->free($resql); @@ -310,28 +310,28 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a */ if ($ok) { - $dir = "mysql/migration/"; // We use mysql migration scripts whatever is database driver - if (! empty($dirmodule)) $dir=dol_buildpath('/'.$dirmodule.'/sql/', 0); + $dir = "mysql/migration/"; // We use mysql migration scripts whatever is database driver + if (!empty($dirmodule)) $dir = dol_buildpath('/'.$dirmodule.'/sql/', 0); dolibarr_install_syslog("Scan sql files for migration files in ".$dir); // Clean last part to exclude minor version x.y.z -> x.y - $newversionfrom=preg_replace('/(\.[0-9]+)$/i', '.0', $versionfrom); - $newversionto=preg_replace('/(\.[0-9]+)$/i', '.0', $versionto); + $newversionfrom = preg_replace('/(\.[0-9]+)$/i', '.0', $versionfrom); + $newversionto = preg_replace('/(\.[0-9]+)$/i', '.0', $versionto); - $filelist=array(); + $filelist = array(); $i = 0; $ok = 0; - $from='^'.$newversionfrom; - $to=$newversionto.'\.sql$'; + $from = '^'.$newversionfrom; + $to = $newversionto.'\.sql$'; // Get files list - $filesindir=array(); - $handle=opendir($dir); + $filesindir = array(); + $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - if (preg_match('/\.sql$/i', $file)) $filesindir[]=$file; + if (preg_match('/\.sql$/i', $file)) $filesindir[] = $file; } sort($filesindir); } @@ -341,15 +341,15 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a } // Define which file to run - foreach($filesindir as $file) + foreach ($filesindir as $file) { if (preg_match('/'.$from.'/i', $file)) { - $filelist[]=$file; + $filelist[] = $file; } elseif (preg_match('/'.$to.'/i', $file)) // First test may be false if we migrate from x.y.* to x.y.* { - $filelist[]=$file; + $filelist[] = $file; } } @@ -359,10 +359,10 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a } else { - $listoffileprocessed=array(); // Protection to avoid to process twice the same file + $listoffileprocessed = array(); // Protection to avoid to process twice the same file // Loop on each migrate files - foreach($filelist as $file) + foreach ($filelist as $file) { if (in_array($dir.$file, $listoffileprocessed)) continue; @@ -370,25 +370,25 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a print ''."\n"; // Run sql script - $ok=run_sql($dir.$file, 0, '', 1); - $listoffileprocessed[$dir.$file]=$dir.$file; + $ok = run_sql($dir.$file, 0, '', 1); + $listoffileprocessed[$dir.$file] = $dir.$file; // Scan if there is migration scripts that depends of Dolibarr version // for modules htdocs/module/sql or htdocs/custom/module/sql (files called "dolibarr_x.y.z-a.b.c.sql") $modulesfile = array(); foreach ($conf->file->dol_document_root as $type => $dirroot) { - $handlemodule=@opendir($dirroot); // $dirroot may be '..' + $handlemodule = @opendir($dirroot); // $dirroot may be '..' if (is_resource($handlemodule)) { - while (($filemodule = readdir($handlemodule))!==false) + while (($filemodule = readdir($handlemodule)) !== false) { - if (! preg_match('/\./', $filemodule) && is_dir($dirroot.'/'.$filemodule.'/sql')) // We exclude filemodule that contains . (are not directories) and are not directories. + if (!preg_match('/\./', $filemodule) && is_dir($dirroot.'/'.$filemodule.'/sql')) // We exclude filemodule that contains . (are not directories) and are not directories. { //print "Scan for ".$dirroot . '/' . $filemodule . '/sql/'.$file; - if (is_file($dirroot . '/' . $filemodule . '/sql/dolibarr_'.$file)) + if (is_file($dirroot.'/'.$filemodule.'/sql/dolibarr_'.$file)) { - $modulesfile[$dirroot . '/' . $filemodule . '/sql/dolibarr_'.$file] = '/' . $filemodule . '/sql/dolibarr_'.$file; + $modulesfile[$dirroot.'/'.$filemodule.'/sql/dolibarr_'.$file] = '/'.$filemodule.'/sql/dolibarr_'.$file; } } } @@ -404,8 +404,8 @@ if (! GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'a print ''."\n"; // Run sql script - $okmodule=run_sql($modulefilelong, 0, '', 1); // Note: Result of migration of external module should not decide if we continue migration of Dolibarr or not. - $listoffileprocessed[$modulefilelong]=$modulefilelong; + $okmodule = run_sql($modulefilelong, 0, '', 1); // Note: Result of migration of external module should not decide if we continue migration of Dolibarr or not. + $listoffileprocessed[$modulefilelong] = $modulefilelong; } } } @@ -421,13 +421,13 @@ if (empty($actiondone)) print '
    '.$langs->trans("ErrorWrongParameters").'
    '; } -$ret=0; -if (! $ok && isset($argv[1])) $ret=1; +$ret = 0; +if (!$ok && isset($argv[1])) $ret = 1; dolibarr_install_syslog("Exit ".$ret); -dolibarr_install_syslog("--- upgrade: end ".((! $ok && empty($_GET["ignoreerrors"])) || $dirmodule)); -$nonext = (! $ok && empty($_GET["ignoreerrors"]))?2:0; -if ($dirmodule) $nonext=1; +dolibarr_install_syslog("--- upgrade: end ".((!$ok && empty($_GET["ignoreerrors"])) || $dirmodule)); +$nonext = (!$ok && empty($_GET["ignoreerrors"])) ? 2 : 0; +if ($dirmodule) $nonext = 1; pFooter($nonext, $setuplang); if ($db->connected) $db->close(); diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index d2f03580391..70f4bb32d19 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -39,52 +39,52 @@ */ include_once 'inc.php'; -if (! file_exists($conffile)) +if (!file_exists($conffile)) { print 'Error: Dolibarr config file was not found. This may means that Dolibarr is not installed yet. Please call the page "/install/index.php" instead of "/install/upgrade.php").'; } require_once $conffile; -require_once $dolibarr_main_document_root . '/compta/facture/class/facture.class.php'; -require_once $dolibarr_main_document_root . '/comm/propal/class/propal.class.php'; -require_once $dolibarr_main_document_root . '/contrat/class/contrat.class.php'; -require_once $dolibarr_main_document_root . '/commande/class/commande.class.php'; -require_once $dolibarr_main_document_root . '/fourn/class/fournisseur.commande.class.php'; -require_once $dolibarr_main_document_root . '/core/lib/price.lib.php'; -require_once $dolibarr_main_document_root . '/core/class/menubase.class.php'; -require_once $dolibarr_main_document_root . '/core/lib/files.lib.php'; +require_once $dolibarr_main_document_root.'/compta/facture/class/facture.class.php'; +require_once $dolibarr_main_document_root.'/comm/propal/class/propal.class.php'; +require_once $dolibarr_main_document_root.'/contrat/class/contrat.class.php'; +require_once $dolibarr_main_document_root.'/commande/class/commande.class.php'; +require_once $dolibarr_main_document_root.'/fourn/class/fournisseur.commande.class.php'; +require_once $dolibarr_main_document_root.'/core/lib/price.lib.php'; +require_once $dolibarr_main_document_root.'/core/class/menubase.class.php'; +require_once $dolibarr_main_document_root.'/core/lib/files.lib.php'; global $langs; -$grant_query=''; +$grant_query = ''; $step = 2; $error = 0; // Cette page peut etre longue. On augmente le delai autorise. // Ne fonctionne que si on est pas en safe_mode. -$err=error_reporting(); +$err = error_reporting(); error_reporting(0); -if (! empty($conf->global->MAIN_OVERRIDE_TIME_LIMIT)) +if (!empty($conf->global->MAIN_OVERRIDE_TIME_LIMIT)) @set_time_limit((int) $conf->global->MAIN_OVERRIDE_TIME_LIMIT); else @set_time_limit(600); error_reporting($err); -$setuplang=GETPOST("selectlang", 'aZ09', 3)?GETPOST("selectlang", 'aZ09', 3):'auto'; +$setuplang = GETPOST("selectlang", 'aZ09', 3) ?GETPOST("selectlang", 'aZ09', 3) : 'auto'; $langs->setDefaultLang($setuplang); -$versionfrom=GETPOST("versionfrom", 'alpha', 3)?GETPOST("versionfrom", 'alpha', 3):(empty($argv[1])?'':$argv[1]); -$versionto=GETPOST("versionto", 'alpha', 3)?GETPOST("versionto", 'alpha', 3):(empty($argv[2])?'':$argv[2]); -$enablemodules=GETPOST("enablemodules", 'alpha', 3)?GETPOST("enablemodules", 'alpha', 3):(empty($argv[3])?'':$argv[3]); +$versionfrom = GETPOST("versionfrom", 'alpha', 3) ?GETPOST("versionfrom", 'alpha', 3) : (empty($argv[1]) ? '' : $argv[1]); +$versionto = GETPOST("versionto", 'alpha', 3) ?GETPOST("versionto", 'alpha', 3) : (empty($argv[2]) ? '' : $argv[2]); +$enablemodules = GETPOST("enablemodules", 'alpha', 3) ?GETPOST("enablemodules", 'alpha', 3) : (empty($argv[3]) ? '' : $argv[3]); $langs->loadLangs(array("admin", "install", "bills", "suppliers")); -if ($dolibarr_main_db_type == 'mysqli') $choix=1; -if ($dolibarr_main_db_type == 'pgsql') $choix=2; -if ($dolibarr_main_db_type == 'mssql') $choix=3; +if ($dolibarr_main_db_type == 'mysqli') $choix = 1; +if ($dolibarr_main_db_type == 'pgsql') $choix = 2; +if ($dolibarr_main_db_type == 'mssql') $choix = 3; dolibarr_install_syslog("--- upgrade2: entering upgrade2.php page ".$versionfrom." ".$versionto." ".$enablemodules); -if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized", LOG_ERR); +if (!is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized", LOG_ERR); @@ -453,8 +453,8 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ } // Scripts for 11.0 - $afterversionarray=explode('.', '10.0.9'); - $beforeversionarray=explode('.', '11.0.9'); + $afterversionarray = explode('.', '10.0.9'); + $beforeversionarray = explode('.', '11.0.9'); if (versioncompare($versiontoarray, $afterversionarray) >= 0 && versioncompare($versiontoarray, $beforeversionarray) <= 0) { migrate_users_socialnetworks(); migrate_members_socialnetworks(); @@ -477,6 +477,7 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ 'MAIN_MODULE_DON'=>'newboxdefonly', 'MAIN_MODULE_ECM'=>'newboxdefonly', 'MAIN_MODULE_EXTERNALSITE'=>'newboxdefonly', + 'MAIN_MODULE_EXPENSEREPORT'=>'newboxdefonly', 'MAIN_MODULE_FACTURE'=>'newboxdefonly', 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', @@ -4697,6 +4698,16 @@ function migrate_reload_modules($db, $langs, $conf, $listofmodule = array(), $fo $mod->init($reloadmode); } } + elseif ($moduletoreload == 'MAIN_MODULE_EXPENSEREPORT') + { + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Expense Report module"); + $res = @include_once DOL_DOCUMENT_ROOT.'/core/modules/modExpenseReport.class.php'; + if ($res) { + $mod = new modExpenseReport($db); + //$mod->remove('noboxes'); + $mod->init($reloadmode); + } + } elseif ($moduletoreload == 'MAIN_MODULE_DON') // Permission has changed into 3.0 { dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Don module"); @@ -5025,19 +5036,19 @@ function migrate_users_socialnetworks() } $socialnetworks = array_merge($arraysocialnetworks, json_decode($obj->socialnetworks, true)); $sqlupd = 'UPDATE '.MAIN_DB_PREFIX."user SET socialnetworks='".$db->escape(json_encode($socialnetworks, true))."'"; - $sqlupd.= ', skype=null'; - $sqlupd.= ', twitter=null'; - $sqlupd.= ', facebook=null'; - $sqlupd.= ', linkedin=null'; - $sqlupd.= ', instagram=null'; - $sqlupd.= ', snapchat=null'; - $sqlupd.= ', googleplus=null'; - $sqlupd.= ', youtube=null'; - $sqlupd.= ', whatsapp=null'; - $sqlupd.= ' WHERE rowid='.$obj->rowid; + $sqlupd .= ', skype=null'; + $sqlupd .= ', twitter=null'; + $sqlupd .= ', facebook=null'; + $sqlupd .= ', linkedin=null'; + $sqlupd .= ', instagram=null'; + $sqlupd .= ', snapchat=null'; + $sqlupd .= ', googleplus=null'; + $sqlupd .= ', youtube=null'; + $sqlupd .= ', whatsapp=null'; + $sqlupd .= ' WHERE rowid='.$obj->rowid; //print $sqlupd."
    "; $resqlupd = $db->query($sqlupd); - if (! $resqlupd) { + if (!$resqlupd) { dol_print_error($db); $error++; } @@ -5045,7 +5056,7 @@ function migrate_users_socialnetworks() } else { $error++; } - if (! $error) { + if (!$error) { $db->commit(); } else { dol_print_error($db); @@ -5116,19 +5127,19 @@ function migrate_members_socialnetworks() } $socialnetworks = array_merge($arraysocialnetworks, json_decode($obj->socialnetworks, true)); $sqlupd = 'UPDATE '.MAIN_DB_PREFIX."adherent SET socialnetworks='".$db->escape(json_encode($socialnetworks, true))."'"; - $sqlupd.= ', skype=null'; - $sqlupd.= ', twitter=null'; - $sqlupd.= ', facebook=null'; - $sqlupd.= ', linkedin=null'; - $sqlupd.= ', instagram=null'; - $sqlupd.= ', snapchat=null'; - $sqlupd.= ', googleplus=null'; - $sqlupd.= ', youtube=null'; - $sqlupd.= ', whatsapp=null'; - $sqlupd.= ' WHERE rowid='.$obj->rowid; + $sqlupd .= ', skype=null'; + $sqlupd .= ', twitter=null'; + $sqlupd .= ', facebook=null'; + $sqlupd .= ', linkedin=null'; + $sqlupd .= ', instagram=null'; + $sqlupd .= ', snapchat=null'; + $sqlupd .= ', googleplus=null'; + $sqlupd .= ', youtube=null'; + $sqlupd .= ', whatsapp=null'; + $sqlupd .= ' WHERE rowid='.$obj->rowid; //print $sqlupd."
    "; $resqlupd = $db->query($sqlupd); - if (! $resqlupd) { + if (!$resqlupd) { dol_print_error($db); $error++; } @@ -5136,7 +5147,7 @@ function migrate_members_socialnetworks() } else { $error++; } - if (! $error) { + if (!$error) { $db->commit(); } else { dol_print_error($db); @@ -5210,20 +5221,20 @@ function migrate_contacts_socialnetworks() } $socialnetworks = array_merge($arraysocialnetworks, json_decode($obj->socialnetworks, true)); $sqlupd = 'UPDATE '.MAIN_DB_PREFIX."socpeople SET socialnetworks='".$db->escape(json_encode($socialnetworks, true))."'"; - $sqlupd.= ', jabberid=null'; - $sqlupd.= ', skype=null'; - $sqlupd.= ', twitter=null'; - $sqlupd.= ', facebook=null'; - $sqlupd.= ', linkedin=null'; - $sqlupd.= ', instagram=null'; - $sqlupd.= ', snapchat=null'; - $sqlupd.= ', googleplus=null'; - $sqlupd.= ', youtube=null'; - $sqlupd.= ', whatsapp=null'; - $sqlupd.= ' WHERE rowid='.$obj->rowid; + $sqlupd .= ', jabberid=null'; + $sqlupd .= ', skype=null'; + $sqlupd .= ', twitter=null'; + $sqlupd .= ', facebook=null'; + $sqlupd .= ', linkedin=null'; + $sqlupd .= ', instagram=null'; + $sqlupd .= ', snapchat=null'; + $sqlupd .= ', googleplus=null'; + $sqlupd .= ', youtube=null'; + $sqlupd .= ', whatsapp=null'; + $sqlupd .= ' WHERE rowid='.$obj->rowid; //print $sqlupd."
    "; $resqlupd = $db->query($sqlupd); - if (! $resqlupd) { + if (!$resqlupd) { dol_print_error($db); $error++; } @@ -5231,7 +5242,7 @@ function migrate_contacts_socialnetworks() } else { $error++; } - if (! $error) { + if (!$error) { $db->commit(); } else { dol_print_error($db); @@ -5301,19 +5312,19 @@ function migrate_thirdparties_socialnetworks() } $socialnetworks = array_merge($arraysocialnetworks, json_decode($obj->socialnetworks, true)); $sqlupd = 'UPDATE '.MAIN_DB_PREFIX."societe SET socialnetworks='".$db->escape(json_encode($socialnetworks, true))."'"; - $sqlupd.= ', skype=null'; - $sqlupd.= ', twitter=null'; - $sqlupd.= ', facebook=null'; - $sqlupd.= ', linkedin=null'; - $sqlupd.= ', instagram=null'; - $sqlupd.= ', snapchat=null'; - $sqlupd.= ', googleplus=null'; - $sqlupd.= ', youtube=null'; - $sqlupd.= ', whatsapp=null'; - $sqlupd.= ' WHERE rowid='.$obj->rowid; + $sqlupd .= ', skype=null'; + $sqlupd .= ', twitter=null'; + $sqlupd .= ', facebook=null'; + $sqlupd .= ', linkedin=null'; + $sqlupd .= ', instagram=null'; + $sqlupd .= ', snapchat=null'; + $sqlupd .= ', googleplus=null'; + $sqlupd .= ', youtube=null'; + $sqlupd .= ', whatsapp=null'; + $sqlupd .= ' WHERE rowid='.$obj->rowid; //print $sqlupd."
    "; $resqlupd = $db->query($sqlupd); - if (! $resqlupd) { + if (!$resqlupd) { dol_print_error($db); $error++; } @@ -5321,7 +5332,7 @@ function migrate_thirdparties_socialnetworks() } else { $error++; } - if (! $error) { + if (!$error) { $db->commit(); } else { dol_print_error($db); diff --git a/htdocs/langs/de_DE/install.lang b/htdocs/langs/de_DE/install.lang index eef58425e45..3638d1a5e3a 100644 --- a/htdocs/langs/de_DE/install.lang +++ b/htdocs/langs/de_DE/install.lang @@ -16,16 +16,18 @@ PHPSupportCurl=Ihre PHP-Konfiguration unterstützt cURL. PHPSupportCalendar=Ihre PHP-Konfiguration unterstützt die Kalender-Erweiterungen. PHPSupportUTF8=Ihre PHP-Konfiguration unterstützt die UTF8-Funktionen. PHPSupportIntl=Ihre PHP-Konfiguration unterstützt die Internationalisierungs-Funktionen. +PHPSupportxDebug=Ihre PHP-Konfiguration unterstützt erweiterte Fehleranalyse-Funktionen. PHPSupport=Dieses PHP unterstützt %s-Funktionen. PHPMemoryOK=Die Sitzungsspeicherbegrenzung ihrer PHP-Konfiguration steht auf %s. Dies sollte ausreichend sein. PHPMemoryTooLow=Der maximale PHP-Sitzungsspeicher ist auf %s Bytes gesetzt. Dieser Wert ist zu niedrig. Ändern sie den Parameter memory_limit in der php.ini auf mindestens %s Bytes! Recheck=Klicken Sie hier für einen detailierteren Test. -ErrorPHPDoesNotSupportSessions=Ihre PHP-Installation unterstützt die Sitzungs-Funktionen nicht. Diese Funktion wird jedoch für Dolibarr benötigt. Bitte prüfen sie das PHP-Setup und die Zugriffsrechte auf das Sitzungs-Verzeichnis. -ErrorPHPDoesNotSupportGD=Ihre PHP-Installation unterstützt die GD Grafik-Funktionen nicht. Grafiken werden nicht verfügbar sein. -ErrorPHPDoesNotSupportCurl=Ihre PHP-Version unterstützt die Erweiterung Curl nicht -ErrorPHPDoesNotSupportCalendar=Ihre PHP-Installation unterstützt die Kalender-Erweiterungen nicht. -ErrorPHPDoesNotSupportUTF8=Ihre PHP-Installation unterstützt die UTF8-Funktionen nicht. Dolibarr wird nicht korrekt funktionieren. Beheben Sie das Problem vor der Installation. +ErrorPHPDoesNotSupportSessions=Ihre PHP-Konfiguration unterstützt die Sitzungs-Funktionen nicht. Diese Funktion wird jedoch für Dolibarr benötigt. Bitte prüfen sie das PHP-Setup und die Zugriffsrechte auf das Sitzungs-Verzeichnis. +ErrorPHPDoesNotSupportGD=Ihre PHP-Konfiguration unterstützt die GD Grafik-Funktionen nicht. Grafiken werden nicht verfügbar sein. +ErrorPHPDoesNotSupportCurl=Ihre PHP-Konfiguration unterstützt die Erweiterung Curl nicht +ErrorPHPDoesNotSupportCalendar=Ihre PHP-Konfiguration unterstützt die Kalender-Erweiterungen nicht. +ErrorPHPDoesNotSupportUTF8=Ihre PHP-Konfiguration unterstützt die UTF8-Funktionen nicht. Dolibarr wird nicht korrekt funktionieren. Beheben Sie das Problem vor der Installation. ErrorPHPDoesNotSupportIntl=Ihre PHP-Konfiguration unterstützt keine Internationalisierungsfunktion (intl-extension). +ErrorPHPDoesNotSupportxDebug=Ihre PHP-Konfiguration unterstützt keine erweiterte Fehleranalyse-Funktionen. ErrorPHPDoesNotSupport=Ihre PHP-Installation unterstützt keine %s-Funktionen. ErrorDirDoesNotExists=Das Verzeichnis %s existiert nicht. ErrorGoBackAndCorrectParameters=Gehen Sie zurück und prüfen/korrigieren Sie die Parameter. @@ -217,3 +219,5 @@ YouTryInstallDisabledByDirLock=Die Anwendung hat versucht, sich selbst zu aktual YouTryInstallDisabledByFileLock=Die Anwendung hat versucht, sich selbst zu aktualisieren, aber die Installations-/Upgrade-Seiten wurden aus Sicherheitsgründen deaktiviert (durch die Existenz einer Sperrdatei install.lock im Dokumenten-Verzeichnis).
    ClickHereToGoToApp=Hier klicken um zu Ihrer Anwendung zu kommen ClickOnLinkOrRemoveManualy=Klicken Sie auf den folgenden Link. Wenn Sie immer die gleiche Seite sehen, müssen Sie die Datei install.lock im Dokumenten-Verzeichnis entfernen/umbenennen. +Loaded=Geladen +FunctionTest=Funktionstest diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index a3c7af845ec..aed761fb08e 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -1022,3 +1022,5 @@ SelectYourGraphOptionsFirst=Wählen Sie Ihre Diagrammoptionen aus, um ein Diagra Measures=Maße XAxis=X-Achse YAxis=Y-Achse +DeleteFileHeader=Dateilöschung bestätigen +DeleteFileText=Möchten sie diese Datei wirklich löschen? diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 51ff5f4e2f7..bc239743e7a 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -98,10 +98,10 @@ MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
    Example for ClamAv: /usr/bin/clamscan +AntiVirusCommand=Full path to antivirus command +AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +AntiVirusParamExample=Example for ClamAv Daemon: --fdpass
    Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=Accounting module setup UserSetup=User management setup MultiCurrencySetup=Multi-currency setup @@ -199,7 +199,7 @@ FeatureDisabledInDemo=Feature disabled in demo FeatureAvailableOnlyOnStable=Feature only available on official stable versions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application. +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button %s of each module to enable or disable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab %s. ModulesMarketPlaces=Find external app/modules @@ -221,6 +221,7 @@ DoliPartnersDesc=List of companies providing custom-developed modules or feature WebSiteDesc=External websites for more add-on (non-core) modules... DevelopYourModuleDesc=Some solutions to develop your own module... URL=URL +RelativeURL=Relative URL BoxesAvailable=Widgets available BoxesActivated=Widgets activated ActivateOn=Activate on @@ -446,7 +447,8 @@ KeepEmptyToUseDefault=Keep empty to use default value DefaultLink=Default link SetAsDefault=Set as default ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s +ExternalModule=External module +InstalledInto=Installed into directory %s BarcodeInitForthird-parties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. @@ -947,7 +949,7 @@ DictionaryCanton=States/Provinces DictionaryRegion=Regions DictionaryCountry=Countries DictionaryCurrency=Currencies -DictionaryCivility=Title of civility +DictionaryCivility=Honorific titles DictionaryActions=Types of agenda events DictionarySocialContributions=Types of social or fiscal taxes DictionaryVAT=VAT Rates or Sales Tax Rates @@ -988,6 +990,7 @@ VATIsNotUsedDesc=By default the proposed Sales tax is 0 which can be used for ca VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. VATIsNotUsedExampleFR=In France, it means associations that are non Sales tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sales tax in franchise) and paid a franchise Sales tax without any Sales tax declaration. This choice will display the reference "Non applicable Sales tax - art-293B of CGI" on invoices. ##### Local Taxes ##### +TypeOfSaleTaxes=Type of sales tax LTRate=Rate LocalTax1IsNotUsed=Do not use second tax LocalTax1IsUsedDesc=Use a second type of tax (other than first one) @@ -1011,6 +1014,9 @@ LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule. LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules. +RevenueStampDesc=The "tax stamp" or "revenue stamp" is a fixed tax you per invoice (It does not depend on amount of invoice). It can also be a percent tax but using the second or third type of tax is better for percent taxes as tax stamps des not provide any reporting. Only few countries uses this type of tax. +UseRevenueStamp=Use a tax stamp +UseRevenueStampExample=The value of tax stamp is defined by default into the setup of dictionaries (%s - %s - %s) CalcLocaltax=Reports on local taxes CalcLocaltax1=Sales - Purchases CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases @@ -1018,6 +1024,7 @@ CalcLocaltax2=Purchases CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases CalcLocaltax3=Sales CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales +NoLocalTaxXForThisCountry=According to the setup of taxes (See %s - %s - %s), your country does not need to use such type of tax LabelUsedByDefault=Label used by default if no translation can be found for code LabelOnDocuments=Label on documents LabelOrTranslationKey=Label or translation key @@ -1984,3 +1991,5 @@ EmailTemplate=Template for email EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF. FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. +RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard +JumpToBoxes=Jump to Setup -> Widgets diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 36747c4625a..ab26114d905 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -58,8 +58,8 @@ SuppliersInvoices=Vendors invoices SupplierBill=Vendor invoice SupplierBills=suppliers invoices Payment=Payment -PaymentBack=Payment back -CustomerInvoicePaymentBack=Payment back +PaymentBack=Refund +CustomerInvoicePaymentBack=Refund Payments=Payments PaymentsBack=Refunds paymentInInvoiceCurrency=in invoices currency @@ -512,7 +512,7 @@ ToMakePayment=Pay ToMakePaymentBack=Pay back ListOfYourUnpaidInvoices=List of unpaid invoices NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative. -RevenueStamp=Revenue stamp +RevenueStamp=Tax stamp YouMustCreateInvoiceFromThird=This option is only available when creating an invoice from tab "Customer" of third party YouMustCreateInvoiceFromSupplierThird=This option is only available when creating an invoice from tab "Vendor" of third party YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice diff --git a/htdocs/langs/en_US/blockedlog.lang b/htdocs/langs/en_US/blockedlog.lang index cff8f7d657b..5afae6e9e53 100644 --- a/htdocs/langs/en_US/blockedlog.lang +++ b/htdocs/langs/en_US/blockedlog.lang @@ -8,7 +8,7 @@ BrowseBlockedLog=Unalterable logs ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long) ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long) DownloadBlockChain=Download fingerprints -KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this re after it was recorded, or has erased the previous archived record (check that line with previous # exists). +KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this record after it was recorded, or has erased the previous archived record (check that line with previous # exists). OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one. OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously. AddedByAuthority=Stored into remote authority diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang index c492417e2a8..d363d7f03b5 100644 --- a/htdocs/langs/en_US/cashdesk.lang +++ b/htdocs/langs/en_US/cashdesk.lang @@ -49,6 +49,7 @@ Footer=Footer AmountAtEndOfPeriod=Amount at end of period (day, month or year) TheoricalAmount=Theorical amount RealAmount=Real amount +CashFence=Cash fence CashFenceDone=Cash fence done for the period NbOfInvoices=Nb of invoices Paymentnumpad=Type of Pad to enter payment @@ -97,4 +98,11 @@ TakeposNumpadUsePaymentIcon=Use payment icon on numpad CashDeskRefNumberingModules=Numbering module for cash desk CashDeskGenericMaskCodes6 =
    {TN} tag is used to add the terminal number TakeposGroupSameProduct=Group same products lines -StartAParallelSale=Start a new parallel sale \ No newline at end of file +StartAParallelSale=Start a new parallel sale +ControlCashOpening=Control cash box at opening pos +CloseCashFence=Close cash fence +CashReport=Cash report +MainPrinterToUse=Main printer to use +OrderPrinterToUse=Order printer to use +MainTemplateToUse=Main template to use +OrderTemplateToUse=Order template to use \ No newline at end of file diff --git a/htdocs/langs/en_US/categories.lang b/htdocs/langs/en_US/categories.lang index 1ec9b5bd409..30bace0574c 100644 --- a/htdocs/langs/en_US/categories.lang +++ b/htdocs/langs/en_US/categories.lang @@ -63,13 +63,7 @@ AccountsCategoriesShort=Accounts tags/categories ProjectsCategoriesShort=Projects tags/categories UsersCategoriesShort=Users tags/categories StockCategoriesShort=Warehouse tags/categories -ThisCategoryHasNoProduct=This category does not contain any product. -ThisCategoryHasNoSupplier=This category does not contain any vendor. -ThisCategoryHasNoCustomer=This category does not contain any customer. -ThisCategoryHasNoMember=This category does not contain any member. -ThisCategoryHasNoContact=This category does not contain any contact. -ThisCategoryHasNoAccount=This category does not contain any account. -ThisCategoryHasNoProject=This category does not contain any project. +ThisCategoryHasNoItems=This category does not contain any items. CategId=Tag/category id CatSupList=List of vendor tags/categories CatCusList=List of customer/prospect tags/categories diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index c569a48c84a..609ea0efdf2 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -325,7 +325,6 @@ CompanyDeleted=Company "%s" deleted from database. ListOfContacts=List of contacts/addresses ListOfContactsAddresses=List of contacts/addresses ListOfThirdParties=List of Third Parties -ShowCompany=Show Third Party ShowContact=Show contact ContactsAllShort=All (No filter) ContactType=Contact type diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 5865826dc73..6cd046c5607 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -157,9 +157,9 @@ SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on act SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger. SeeReportInBookkeepingMode=See %sBookeeping report%s for a calculation on Bookkeeping Ledger table RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included -RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whether they are paid or not. Is also includes paid salaries.
    - It is based on the validation date of invoices and VAT and on the due date for expenses. For salaries defined with Salary module, the value date of payment is used. +RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whether they are paid or not. Is also includes paid salaries.
    - It is based on the billing date of invoices and on the due date for expenses or tax payments. For salaries defined with Salary module, the value date of payment is used. RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
    - It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. -RulesCADue=- It includes the customer's due invoices whether they are paid or not.
    - It is based on the validation date of these invoices.
    +RulesCADue=- It includes the customer's due invoices whether they are paid or not.
    - It is based on the billing date of these invoices.
    RulesCAIn=- It includes all the effective payments of invoices received from customers.
    - It is based on the payment date of these invoices
    RulesCATotalSaleJournal=It includes all credit lines from the Sale journal. RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" @@ -254,4 +254,11 @@ ByVatRate=By sale tax rate TurnoverbyVatrate=Turnover invoiced by sale tax rate TurnoverCollectedbyVatrate=Turnover collected by sale tax rate PurchasebyVatrate=Purchase by sale tax rate -LabelToShow=Short label \ No newline at end of file +LabelToShow=Short label +PurchaseTurnover=Purchase turnover +PurchaseTurnoverCollected=Purchase turnover collected +RulesPurchaseTurnoverDue=- It includes the supplier's due invoices whether they are paid or not.
    - It is based on the invoice date of these invoices.
    +RulesPurchaseTurnoverIn=- It includes all the effective payments of invoices done to suppliers.
    - It is based on the payment date of these invoices
    +RulesPurchaseTurnoverTotalPurchaseJournal=It includes all debit lines from the purchase journal. +ReportPurchaseTurnover=Purchase turnover invoiced +ReportPurchaseTurnoverCollected=Purchase turnover collected diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 88e18c62943..0ea2940911b 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -236,6 +236,7 @@ ErrorBatchNoFoundForProductInWarehouse=No lot/serial found for product "%s" in w ErrorBatchNoFoundEnoughQuantityForProductInWarehouse=No enough quantity for this lot/serial for product "%s" in warehouse "%s". ErrorOnlyOneFieldForGroupByIsPossible=Only 1 field for the 'Group by' is possible (others are discarded) ErrorTooManyDifferentValueForSelectedGroupBy=Found too many different value (more than %s) for the field '%s', so we can't user it as a 'Group by' for graphics. The field 'Group By' has been removed. May be you wanted to use it as an X-Axis ? +ErrorReplaceStringEmpty=Error, the string to replace into is empty # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. 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. diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index bf9c08c4ba7..f67dff57184 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -16,6 +16,7 @@ PHPSupportCurl=This PHP supports Curl. PHPSupportCalendar=This PHP supports calendars extensions. PHPSupportUTF8=This PHP supports UTF8 functions. PHPSupportIntl=This PHP supports Intl functions. +PHPSupportxDebug=This PHP supports extended debug functions. PHPSupport=This PHP supports %s functions. PHPMemoryOK=Your PHP max session memory is set to %s. This should be enough. PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. @@ -26,6 +27,7 @@ ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. ErrorPHPDoesNotSupportCalendar=Your PHP installation does not support php calendar extensions. ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr. ErrorPHPDoesNotSupportIntl=Your PHP installation does not support Intl functions. +ErrorPHPDoesNotSupportxDebug=Your PHP installation does not support extend debug functions. ErrorPHPDoesNotSupport=Your PHP installation does not support %s functions. ErrorDirDoesNotExists=Directory %s does not exist. ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. @@ -217,3 +219,5 @@ YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the in YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file install.lock in the dolibarr documents directory).
    ClickHereToGoToApp=Click here to go to your application ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory. +Loaded=Loaded +FunctionTest=Function test diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang index 8b92cef3103..7b3bfd3852a 100644 --- a/htdocs/langs/en_US/mails.lang +++ b/htdocs/langs/en_US/mails.lang @@ -164,7 +164,7 @@ NoContactWithCategoryFound=No contact/address with a category found NoContactLinkedToThirdpartieWithCategoryFound=No contact/address with a category found OutGoingEmailSetup=Outgoing email setup InGoingEmailSetup=Incoming email setup -OutGoingEmailSetupForEmailing=Outgoing email setup (for mass emailing) +OutGoingEmailSetupForEmailing=Outgoing email setup (for module %s) DefaultOutgoingEmailSetup=Default outgoing email setup Information=Information ContactsWithThirdpartyFilter=Contacts with third-party filter diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index e5233479571..2082506c405 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -174,6 +174,7 @@ SaveAndStay=Save and stay SaveAndNew=Save and new TestConnection=Test connection ToClone=Clone +ConfirmCloneAsk=Are you sure you want to clone the object %s? ConfirmClone=Choose data you want to clone: NoCloneOptionsSpecified=No data to clone defined. Of=of @@ -829,6 +830,8 @@ Gender=Gender Genderman=Man Genderwoman=Woman ViewList=List view +ViewGantt=Gantt view +ViewKanban=Kanban view Mandatory=Mandatory Hello=Hello GoodBye=GoodBye @@ -1023,3 +1026,5 @@ Measures=Measures XAxis=X-Axis YAxis=Y-Axis StatusOfRefMustBe=Status of %s must be %s +DeleteFileHeader=Confirm file delete +DeleteFileText=Do you really want delete this file? diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 602b3b9fb53..f31118ab8d7 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -167,7 +167,7 @@ SuppliersPrices=Vendor prices SuppliersPricesOfProductsOrServices=Vendor prices (of products or services) CustomCode=Customs / Commodity / HS code CountryOrigin=Origin country -Nature=Nature of produt (material/finished) +Nature=Nature of product (material/finished) ShortLabel=Short label Unit=Unit p=u. diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 4a4c70d2bb7..810362cfdaf 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -87,8 +87,6 @@ WhichIamLinkedToProject=which I'm linked to project Time=Time ListOfTasks=List of tasks GoToListOfTimeConsumed=Go to list of time consumed -GoToListOfTasks=Show as list -GoToGanttView=show as Gantt GanttView=Gantt View ListProposalsAssociatedProject=List of the commercial proposals related to the project ListOrdersAssociatedProject=List of sales orders related to the project diff --git a/htdocs/langs/en_US/receiptprinter.lang b/htdocs/langs/en_US/receiptprinter.lang index b0b60c60840..5533de0c320 100644 --- a/htdocs/langs/en_US/receiptprinter.lang +++ b/htdocs/langs/en_US/receiptprinter.lang @@ -63,3 +63,33 @@ DOL_VALUE_MONTH_LETTERS=Invoice month in letters DOL_VALUE_MONTH=Invoice month DOL_VALUE_DAY=Invoice day DOL_VALUE_DAY_LETTERS=Inovice day in letters +DOL_LINE_FEED_REVERSE=Line feed reverse +DOL_VALUE_OBJECT_ID=Invoice ID +DOL_VALUE_OBJECT_REF=Invoice ref +DOL_PRINT_OBJECT_LINES=Invoice lines +DOL_VALUE_CUSTOMER_FIRSTNAME=Customer first name +DOL_VALUE_CUSTOMER_LASTNAME=Customer last name +DOL_VALUE_CUSTOMER_MAIL=Customer mail +DOL_VALUE_CUSTOMER_PHONE=Customer phone +DOL_VALUE_CUSTOMER_MOBILE=Customer mobile +DOL_VALUE_CUSTOMER_SKYPE=Customer Skype +DOL_VALUE_CUSTOMER_TAX_NUMBER=Customer tax number +DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE=Customer account balance +DOL_VALUE_MYSOC_NAME=Your company name +DOL_VALUE_MYSOC_ADDRESS=Your company address +DOL_VALUE_MYSOC_ZIP=Your zip code +DOL_VALUE_MYSOC_TOWN=Your town +DOL_VALUE_MYSOC_COUNTRY=Your country +DOL_VALUE_MYSOC_IDPROF1=Your IDPROF1 +DOL_VALUE_MYSOC_IDPROF2=Your IDPROF2 +DOL_VALUE_MYSOC_IDPROF3=Your IDPROF3 +DOL_VALUE_MYSOC_IDPROF4=Your IDPROF4 +DOL_VALUE_MYSOC_IDPROF5=Your IDPROF5 +DOL_VALUE_MYSOC_IDPROF6=Your IDPROF6 +DOL_VALUE_MYSOC_TVA_INTRA=Intra-Community VAT ID +DOL_VALUE_MYSOC_CAPITAL=Capital +DOL_VALUE_VENDOR_LASTNAME=Vendor last name +DOL_VALUE_VENDOR_FIRSTNAME=Vendor first name +DOL_VALUE_VENDOR_MAIL=Vendor mail +DOL_VALUE_CUSTOMER_POINTS=Customer points +DOL_VALUE_OBJECT_POINTS=Object points \ No newline at end of file diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index 8780e7d2c0d..3b3710fee89 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -70,7 +70,7 @@ ExportDataset_user_1=Users and their properties DomainUser=Domain user %s Reactivate=Reactivate CreateInternalUserDesc=This form allows you to create an internal user in your company/organization. To create an external user (customer, vendor etc. ..), use the button 'Create Dolibarr User' from that third-party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/organization.
    An external user is a customer, vendor or other.

    In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +InternalExternalDesc=An internal user is a user that is part of your company/organization.
    An external user is a customer, vendor or other (Creating an external user for a third-party can be done from the contact record of the third-party).

    In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index eac0d7aaf30..c3e9870266f 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -125,4 +125,6 @@ UseTextBetween5And70Chars=For good SEO practices, use a text between 5 and 70 ch MainLanguage=Main language OtherLanguages=Other languages UseManifest=Provide a manifest.json file -PublicAuthorAlias=Public author alias \ No newline at end of file +PublicAuthorAlias=Public author alias +AvailableLanguagesAreDefinedIntoWebsiteProperties=Available languages are defined into website properties +ReplacementDoneInXPages=Replacement done in %s pages or containers \ No newline at end of file diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang index e7c248d631d..d117a47c1bf 100644 --- a/htdocs/langs/fr_FR/exports.lang +++ b/htdocs/langs/fr_FR/exports.lang @@ -109,7 +109,7 @@ Separator=Séparateur de champs Enclosure=Encadrement des chaînes de textes SpecialCode=Code spécial ExportStringFilter=%% permet de remplacer 1 ou plusieurs caractères dans le texte -ExportDateFilter=AAAA, AAAAMM, AAAAMMJJ: filtre pour une année/mois/jour
    AAAA+AAAA, AAAAMM+AAAAMM, AAAAMMJJ+AAAAMMJJ: filtre pour une plage année/mois/jour
    > AAAA, > AAAAMM, > AAAAMMJJ': filtre pour une date supérieure à une année/mois/jour donné
    < AAAA, < AAAAMM, < AAAAMMJJ: filtre pour une date inférieure à une année/mois/jour donné +ExportDateFilter=AAAA, AAAAMM, AAAAMMJJ: filtre pour une année/mois/jour
    AAAA+AAAA, AAAAMM+AAAAMM, AAAAMMJJ+AAAAMMJJ: filtre pour une plage année/mois/jour
    > AAAA, > AAAAMM, > AAAAMMJJ: filtre pour une date supérieure à une année/mois/jour donné
    < AAAA, < AAAAMM, < AAAAMMJJ: filtre pour une date inférieure à une année/mois/jour donné ExportNumericFilter=NNNNN filtre une seule valeur
    NNNNN+NNNNN filtre une plage de valeurs
    < NNNNN filtre les valeurs inférieures
    > NNNNN filtre les valeurs supérieures ImportFromLine=Début d'import à la ligne numéro EndAtLineNb=Fin à la ligne numéro diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php index 8102db49f28..82c6521e00f 100644 --- a/htdocs/livraison/card.php +++ b/htdocs/livraison/card.php @@ -34,30 +34,30 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) +if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; -if (! empty($conf->expedition_bon->enabled)) +if (!empty($conf->expedition_bon->enabled)) require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; -if (! empty($conf->stock->enabled)) +if (!empty($conf->stock->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; -if (! empty($conf->projet->enabled)) { +if (!empty($conf->projet->enabled)) { require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("sendings","bills",'deliveries','orders')); +$langs->loadLangs(array("sendings", "bills", 'deliveries', 'orders')); if (!empty($conf->incoterm->enabled)) $langs->load('incoterm'); -$action=GETPOST('action', 'alpha'); -$confirm=GETPOST('confirm', 'alpha'); -$backtopage=GETPOST('backtopage', 'alpha'); +$action = GETPOST('action', 'alpha'); +$confirm = GETPOST('confirm', 'alpha'); +$backtopage = GETPOST('backtopage', 'alpha'); // Security check $id = GETPOST('id', 'int'); -if ($user->socid) $socid=$user->socid; -$result=restrictedArea($user, 'expedition', $id, 'livraison', 'livraison'); +if ($user->socid) $socid = $user->socid; +$result = restrictedArea($user, 'expedition', $id, 'livraison', 'livraison'); $object = new Livraison($db); $extrafields = new ExtraFields($db); diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php index 88a7a7372ad..acfe8b29d05 100644 --- a/htdocs/livraison/class/livraison.class.php +++ b/htdocs/livraison/class/livraison.class.php @@ -30,8 +30,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php'; -if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; -if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; +if (!empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; +if (!empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; /** @@ -42,22 +42,22 @@ class Livraison extends CommonObject /** * @var string ID to identify managed object */ - public $element="delivery"; + public $element = "delivery"; /** * @var int Field with ID of parent key if this field has a parent */ - public $fk_element="fk_livraison"; + public $fk_element = "fk_livraison"; /** * @var string Name of table without prefix where object is stored */ - public $table_element="livraison"; + public $table_element = "livraison"; /** * @var int Name of subtable line */ - public $table_element_line="livraisondet"; + public $table_element_line = "livraisondet"; public $brouillon; public $socid; @@ -111,11 +111,11 @@ class Livraison extends CommonObject dol_syslog("Livraison::create"); - if (empty($this->model_pdf)) $this->model_pdf=$conf->global->LIVRAISON_ADDON_PDF; + if (empty($this->model_pdf)) $this->model_pdf = $conf->global->LIVRAISON_ADDON_PDF; $error = 0; - $now=dol_now(); + $now = dol_now(); /* On positionne en mode brouillon le bon de livraison */ $this->brouillon = 1; @@ -125,36 +125,36 @@ class Livraison extends CommonObject $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX."livraison ("; - $sql.= "ref"; - $sql.= ", entity"; - $sql.= ", fk_soc"; - $sql.= ", ref_customer"; - $sql.= ", date_creation"; - $sql.= ", fk_user_author"; - $sql.= ", date_delivery"; - $sql.= ", fk_address"; - $sql.= ", note_private"; - $sql.= ", note_public"; - $sql.= ", model_pdf"; - $sql.= ", fk_incoterms, location_incoterms"; - $sql.= ") VALUES ("; - $sql.= "'(PROV)'"; - $sql.= ", ".$conf->entity; - $sql.= ", ".$this->socid; - $sql.= ", '".$this->db->escape($this->ref_customer)."'"; - $sql.= ", '".$this->db->idate($now)."'"; - $sql.= ", ".$user->id; - $sql.= ", ".($this->date_delivery?"'".$this->db->idate($this->date_delivery)."'":"null"); - $sql.= ", ".($this->fk_delivery_address > 0 ? $this->fk_delivery_address : "null"); - $sql.= ", ".(!empty($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null"); - $sql.= ", ".(!empty($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null"); - $sql.= ", ".(!empty($this->model_pdf)?"'".$this->db->escape($this->model_pdf)."'":"null"); - $sql.= ", ".(int) $this->fk_incoterms; - $sql.= ", '".$this->db->escape($this->location_incoterms)."'"; - $sql.= ")"; + $sql .= "ref"; + $sql .= ", entity"; + $sql .= ", fk_soc"; + $sql .= ", ref_customer"; + $sql .= ", date_creation"; + $sql .= ", fk_user_author"; + $sql .= ", date_delivery"; + $sql .= ", fk_address"; + $sql .= ", note_private"; + $sql .= ", note_public"; + $sql .= ", model_pdf"; + $sql .= ", fk_incoterms, location_incoterms"; + $sql .= ") VALUES ("; + $sql .= "'(PROV)'"; + $sql .= ", ".$conf->entity; + $sql .= ", ".$this->socid; + $sql .= ", '".$this->db->escape($this->ref_customer)."'"; + $sql .= ", '".$this->db->idate($now)."'"; + $sql .= ", ".$user->id; + $sql .= ", ".($this->date_delivery ? "'".$this->db->idate($this->date_delivery)."'" : "null"); + $sql .= ", ".($this->fk_delivery_address > 0 ? $this->fk_delivery_address : "null"); + $sql .= ", ".(!empty($this->note_private) ? "'".$this->db->escape($this->note_private)."'" : "null"); + $sql .= ", ".(!empty($this->note_public) ? "'".$this->db->escape($this->note_public)."'" : "null"); + $sql .= ", ".(!empty($this->model_pdf) ? "'".$this->db->escape($this->model_pdf)."'" : "null"); + $sql .= ", ".(int) $this->fk_incoterms; + $sql .= ", '".$this->db->escape($this->location_incoterms)."'"; + $sql .= ")"; dol_syslog("Livraison::create", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."livraison"); @@ -162,14 +162,14 @@ class Livraison extends CommonObject $numref = "(PROV".$this->id.")"; $sql = "UPDATE ".MAIN_DB_PREFIX."livraison "; - $sql.= "SET ref = '".$this->db->escape($numref)."'"; - $sql.= " WHERE rowid = ".$this->id; + $sql .= "SET ref = '".$this->db->escape($numref)."'"; + $sql .= " WHERE rowid = ".$this->id; dol_syslog("Livraison::create", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { - if (! $conf->expedition_bon->enabled) + if (!$conf->expedition_bon->enabled) { $commande = new Commande($this->db); $commande->id = $this->commande_id; @@ -180,19 +180,19 @@ class Livraison extends CommonObject /* * Inserting products into the database */ - $num=count($this->lines); + $num = count($this->lines); for ($i = 0; $i < $num; $i++) { - $origin_id=$this->lines[$i]->origin_line_id; - if (! $origin_id) $origin_id=$this->lines[$i]->commande_ligne_id; // For backward compatibility + $origin_id = $this->lines[$i]->origin_line_id; + if (!$origin_id) $origin_id = $this->lines[$i]->commande_ligne_id; // For backward compatibility - if (! $this->create_line($origin_id, $this->lines[$i]->qty, $this->lines[$i]->fk_product, $this->lines[$i]->description)) + if (!$this->create_line($origin_id, $this->lines[$i]->qty, $this->lines[$i]->fk_product, $this->lines[$i]->description)) { $error++; } } - if (! $error && $this->id && $this->origin_id) + if (!$error && $this->id && $this->origin_id) { $ret = $this->add_object_linked(); if (!$ret) @@ -200,18 +200,18 @@ class Livraison extends CommonObject $error++; } - if (! $conf->expedition_bon->enabled) + if (!$conf->expedition_bon->enabled) { // TODO uniformiser les statuts $ret = $this->setStatut(2, $this->origin_id, $this->origin); - if (! $ret) + if (!$ret) { $error++; } } } - if (! $error) + if (!$error) { $this->db->commit(); return $this->id; @@ -219,7 +219,7 @@ class Livraison extends CommonObject else { $error++; - $this->error=$this->db->lasterror()." - sql=".$this->db->lastqueryerror; + $this->error = $this->db->lasterror()." - sql=".$this->db->lastqueryerror; $this->db->rollback(); return -3; } @@ -227,7 +227,7 @@ class Livraison extends CommonObject else { $error++; - $this->error=$this->db->lasterror()." - sql=".$this->db->lastqueryerror; + $this->error = $this->db->lasterror()." - sql=".$this->db->lastqueryerror; $this->db->rollback(); return -2; } @@ -235,7 +235,7 @@ class Livraison extends CommonObject else { $error++; - $this->error=$this->db->lasterror()." - sql=".$this->db->lastqueryerror; + $this->error = $this->db->lasterror()." - sql=".$this->db->lastqueryerror; $this->db->rollback(); return -1; } @@ -259,19 +259,19 @@ class Livraison extends CommonObject $j = 0; $sql = "INSERT INTO ".MAIN_DB_PREFIX."livraisondet (fk_livraison, fk_origin_line,"; - $sql.= " fk_product, description, qty)"; - $sql.= " VALUES (".$this->id.",".$origin_id.","; - $sql.= " ".($idprod>0?$idprod:"null").","; - $sql.= " ".($description?"'".$this->db->escape($description)."'":"null").","; - $sql.= $qty.")"; + $sql .= " fk_product, description, qty)"; + $sql .= " VALUES (".$this->id.",".$origin_id.","; + $sql .= " ".($idprod > 0 ? $idprod : "null").","; + $sql .= " ".($description ? "'".$this->db->escape($description)."'" : "null").","; + $sql .= $qty.")"; dol_syslog(get_class($this)."::create_line", LOG_DEBUG); - if (! $this->db->query($sql) ) + if (!$this->db->query($sql)) { $error++; } - if ($error == 0 ) + if ($error == 0) { return 1; } @@ -288,15 +288,15 @@ class Livraison extends CommonObject global $conf; $sql = "SELECT l.rowid, l.fk_soc, l.date_creation, l.date_valid, l.ref, l.ref_customer, l.fk_user_author,"; - $sql.=" l.total_ht, l.fk_statut, l.fk_user_valid, l.note_private, l.note_public"; - $sql.= ", l.date_delivery, l.fk_address, l.model_pdf"; - $sql.= ", el.fk_source as origin_id, el.sourcetype as origin"; - $sql.= ', l.fk_incoterms, l.location_incoterms'; - $sql.= ", i.libelle as label_incoterms"; - $sql.= " FROM ".MAIN_DB_PREFIX."livraison as l"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = l.rowid AND el.targettype = '".$this->db->escape($this->element)."'"; - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON l.fk_incoterms = i.rowid'; - $sql.= " WHERE l.rowid = ".$id; + $sql .= " l.total_ht, l.fk_statut, l.fk_user_valid, l.note_private, l.note_public"; + $sql .= ", l.date_delivery, l.fk_address, l.model_pdf"; + $sql .= ", el.fk_source as origin_id, el.sourcetype as origin"; + $sql .= ', l.fk_incoterms, l.location_incoterms'; + $sql .= ", i.libelle as label_incoterms"; + $sql .= " FROM ".MAIN_DB_PREFIX."livraison as l"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = l.rowid AND el.targettype = '".$this->db->escape($this->element)."'"; + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON l.fk_incoterms = i.rowid'; + $sql .= " WHERE l.rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $result = $this->db->query($sql); @@ -321,8 +321,8 @@ class Livraison extends CommonObject $this->note_private = $obj->note_private; $this->note_public = $obj->note_public; $this->modelpdf = $obj->model_pdf; - $this->origin = $obj->origin; // May be 'shipping' - $this->origin_id = $obj->origin_id; // May be id of shipping + $this->origin = $obj->origin; // May be 'shipping' + $this->origin_id = $obj->origin_id; // May be id of shipping //Incoterms $this->fk_incoterms = $obj->fk_incoterms; @@ -337,7 +337,7 @@ class Livraison extends CommonObject $this->fetch_optionals(); // Load lines - $result=$this->fetch_lines(); + $result = $this->fetch_lines(); if ($result < 0) { return -3; @@ -347,14 +347,14 @@ class Livraison extends CommonObject } else { - $this->error='Delivery with id '.$id.' not found sql='.$sql; + $this->error = 'Delivery with id '.$id.' not found sql='.$sql; dol_syslog(get_class($this).'::fetch Error '.$this->error, LOG_ERR); return -2; } } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); return -1; } } @@ -377,19 +377,19 @@ class Livraison extends CommonObject $error = 0; - if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->expedition->livraison->creer)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->expedition->livraison_advance->validate))) + if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->expedition->livraison->creer)) + || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && !empty($user->rights->expedition->livraison_advance->validate))) { - if (! empty($conf->global->LIVRAISON_ADDON_NUMBER)) + if (!empty($conf->global->LIVRAISON_ADDON_NUMBER)) { // Setting the command numbering module name $modName = $conf->global->LIVRAISON_ADDON_NUMBER; - if (is_readable(DOL_DOCUMENT_ROOT .'/core/modules/livraison/'.$modName.'.php')) + if (is_readable(DOL_DOCUMENT_ROOT.'/core/modules/livraison/'.$modName.'.php')) { - require_once DOL_DOCUMENT_ROOT .'/core/modules/livraison/'.$modName.'.php'; + require_once DOL_DOCUMENT_ROOT.'/core/modules/livraison/'.$modName.'.php'; - $now=dol_now(); + $now = dol_now(); // Retrieving the new reference $objMod = new $modName($this->db); @@ -408,12 +408,12 @@ class Livraison extends CommonObject // Test if is not already in valid status. If so, we stop to avoid decrementing the stock twice. $sql = "SELECT ref"; - $sql.= " FROM ".MAIN_DB_PREFIX."livraison"; - $sql.= " WHERE ref = '".$this->db->escape($numref)."'"; - $sql.= " AND fk_statut <> 0"; - $sql.= " AND entity = ".$conf->entity; + $sql .= " FROM ".MAIN_DB_PREFIX."livraison"; + $sql .= " WHERE ref = '".$this->db->escape($numref)."'"; + $sql .= " AND fk_statut <> 0"; + $sql .= " AND entity = ".$conf->entity; - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); @@ -424,30 +424,30 @@ class Livraison extends CommonObject } $sql = "UPDATE ".MAIN_DB_PREFIX."livraison SET"; - $sql.= " ref='".$this->db->escape($numref)."'"; - $sql.= ", fk_statut = 1"; - $sql.= ", date_valid = '".$this->db->idate($now)."'"; - $sql.= ", fk_user_valid = ".$user->id; - $sql.= " WHERE rowid = ".$this->id; - $sql.= " AND fk_statut = 0"; + $sql .= " ref='".$this->db->escape($numref)."'"; + $sql .= ", fk_statut = 1"; + $sql .= ", date_valid = '".$this->db->idate($now)."'"; + $sql .= ", fk_user_valid = ".$user->id; + $sql .= " WHERE rowid = ".$this->id; + $sql .= " AND fk_statut = 0"; - $resql=$this->db->query($sql); - if (! $resql) + $resql = $this->db->query($sql); + if (!$resql) { dol_print_error($this->db); - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); $error++; } - if (! $error && ! $notrigger) + if (!$error && !$notrigger) { // Call trigger - $result=$this->call_trigger('DELIVERY_VALIDATE', $user); + $result = $this->call_trigger('DELIVERY_VALIDATE', $user); if ($result < 0) $error++; // End call triggers } - if (! $error) + if (!$error) { $this->oldref = $this->ref; @@ -455,17 +455,17 @@ class Livraison extends CommonObject if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/receipt/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'expedition/receipt/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref) + 1).")), filepath = 'expedition/receipt/".$this->db->escape($this->newref)."'"; + $sql .= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'expedition/receipt/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); - if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + if (!$resql) { $error++; $this->error = $this->db->lasterror(); } // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($numref); $dirsource = $conf->expedition->dir_output.'/receipt/'.$oldref; $dirdest = $conf->expedition->dir_output.'/receipt/'.$newref; - if (! $error && file_exists($dirsource)) + if (!$error && file_exists($dirsource)) { dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest); @@ -473,13 +473,13 @@ class Livraison extends CommonObject { dol_syslog("Rename ok"); // Rename docs starting with $oldref with $newref - $listoffiles=dol_dir_list($conf->expedition->dir_output.'/receipt/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/')); - foreach($listoffiles as $fileentry) + $listoffiles = dol_dir_list($conf->expedition->dir_output.'/receipt/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/')); + foreach ($listoffiles as $fileentry) { - $dirsource=$fileentry['name']; - $dirdest=preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource); - $dirsource=$fileentry['path'].'/'.$dirsource; - $dirdest=$fileentry['path'].'/'.$dirdest; + $dirsource = $fileentry['name']; + $dirdest = preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource); + $dirsource = $fileentry['path'].'/'.$dirsource; + $dirdest = $fileentry['path'].'/'.$dirdest; @rename($dirsource, $dirdest); } } @@ -487,7 +487,7 @@ class Livraison extends CommonObject } // Set new ref and current status - if (! $error) + if (!$error) { $this->ref = $numref; $this->statut = 1; @@ -496,7 +496,7 @@ class Livraison extends CommonObject dol_syslog(get_class($this)."::valid ok"); } - if (! $error) + if (!$error) { $this->db->commit(); return 1; @@ -511,7 +511,7 @@ class Livraison extends CommonObject } else { - $this->error="Non autorise"; + $this->error = "Non autorise"; dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR); return -1; } @@ -529,11 +529,11 @@ class Livraison extends CommonObject { // phpcs:enable $expedition = new Expedition($this->db); - $result=$expedition->fetch($sending_id); + $result = $expedition->fetch($sending_id); $this->lines = array(); - $num=count($expedition->lines); + $num = count($expedition->lines); for ($i = 0; $i < $num; $i++) { $line = new LivraisonLigne($this->db); @@ -555,10 +555,10 @@ class Livraison extends CommonObject $this->date_delivery = $expedition->date_delivery; $this->fk_delivery_address = $expedition->fk_delivery_address; $this->socid = $expedition->socid; - $this->ref_customer = $expedition->ref_customer; + $this->ref_customer = $expedition->ref_customer; //Incoterms - $this->fk_incoterms = $expedition->fk_incoterms; + $this->fk_incoterms = $expedition->fk_incoterms; $this->location_incoterms = $expedition->location_incoterms; return $this->create($user); @@ -578,21 +578,21 @@ class Livraison extends CommonObject global $conf; $error = 0; - if ($id > 0 && ! $error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used + if ($id > 0 && !$error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options) > 0) // For avoid conflicts if trigger used { $livraisonline = new LivraisonLigne($this->db); - $livraisonline->array_options=$array_options; - $livraisonline->id=$id; - $result=$livraisonline->insertExtraFields(); + $livraisonline->array_options = $array_options; + $livraisonline->id = $id; + $result = $livraisonline->insertExtraFields(); if ($result < 0) { - $this->error[]=$livraisonline->error; + $this->error[] = $livraisonline->error; $error++; } } - if (! $error) return 1; + if (!$error) return 1; else return -1; } @@ -626,9 +626,9 @@ class Livraison extends CommonObject if ($this->statut == 0) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."commandedet"; - $sql.= " WHERE rowid = ".$lineid; + $sql .= " WHERE rowid = ".$lineid; - if ($this->db->query($sql) ) + if ($this->db->query($sql)) { $this->update_price(); @@ -653,30 +653,30 @@ class Livraison extends CommonObject require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $this->db->begin(); - $error=0; + $error = 0; $sql = "DELETE FROM ".MAIN_DB_PREFIX."livraisondet"; - $sql.= " WHERE fk_livraison = ".$this->id; + $sql .= " WHERE fk_livraison = ".$this->id; if ($this->db->query($sql)) { // Delete linked object $res = $this->deleteObjectLinked(); if ($res < 0) $error++; - if (! $error) + if (!$error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."livraison"; - $sql.= " WHERE rowid = ".$this->id; + $sql .= " WHERE rowid = ".$this->id; if ($this->db->query($sql)) { $this->db->commit(); // On efface le repertoire de pdf provisoire $ref = dol_sanitizeFileName($this->ref); - if (! empty($conf->expedition->dir_output)) + if (!empty($conf->expedition->dir_output)) { - $dir = $conf->expedition->dir_output . '/receipt/' . $ref ; - $file = $dir . '/' . $ref . '.pdf'; + $dir = $conf->expedition->dir_output.'/receipt/'.$ref; + $file = $dir.'/'.$ref.'.pdf'; if (file_exists($file)) { if (!dol_delete_file($file)) @@ -688,14 +688,14 @@ class Livraison extends CommonObject { if (!dol_delete_dir($dir)) { - $this->error=$langs->trans("ErrorCanNotDeleteDir", $dir); + $this->error = $langs->trans("ErrorCanNotDeleteDir", $dir); return 0; } } } // Call trigger - $result=$this->call_trigger('DELIVERY_DELETE', $user); + $result = $this->call_trigger('DELIVERY_DELETE', $user); if ($result < 0) { $this->db->rollback(); @@ -707,21 +707,21 @@ class Livraison extends CommonObject } else { - $this->error=$this->db->lasterror()." - sql=$sql"; + $this->error = $this->db->lasterror()." - sql=$sql"; $this->db->rollback(); return -3; } } else { - $this->error=$this->db->lasterror()." - sql=$sql"; + $this->error = $this->db->lasterror()." - sql=$sql"; $this->db->rollback(); return -2; } } else { - $this->error=$this->db->lasterror()." - sql=$sql"; + $this->error = $this->db->lasterror()." - sql=$sql"; $this->db->rollback(); return -1; } @@ -738,28 +738,28 @@ class Livraison extends CommonObject { global $langs; - $result=''; - $picto='sending'; + $result = ''; + $picto = 'sending'; - $label=$langs->trans("ShowReceiving").': '.$this->ref; + $label = $langs->trans("ShowReceiving").': '.$this->ref; - $url=DOL_URL_ROOT.'/livraison/card.php?id='.$this->id; + $url = DOL_URL_ROOT.'/livraison/card.php?id='.$this->id; //if ($option !== 'nolink') //{ // Add param to save lastsearch_values or not - $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0); - if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1; - if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1; + if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1'; //} $linkstart = ''; - $linkend=''; + $linkend = ''; - if ($withpicto) $result.=($linkstart.img_object($label, $picto, 'class="classfortooltip"').$linkend); - if ($withpicto && $withpicto != 2) $result.=' '; - $result.=$linkstart.$this->ref.$linkend; + if ($withpicto) $result .= ($linkstart.img_object($label, $picto, 'class="classfortooltip"').$linkend); + if ($withpicto && $withpicto != 2) $result .= ' '; + $result .= $linkstart.$this->ref.$linkend; return $result; } @@ -775,12 +775,13 @@ class Livraison extends CommonObject $this->lines = array(); $sql = "SELECT ld.rowid, ld.fk_product, ld.description, ld.subprice, ld.total_ht, ld.qty as qty_shipped, ld.fk_origin_line, "; - $sql.= " cd.qty as qty_asked, cd.label as custom_label,"; - $sql.= " p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as product_label, p.description as product_desc"; - $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."livraisondet as ld"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on p.rowid = ld.fk_product"; - $sql.= " WHERE ld.fk_origin_line = cd.rowid"; - $sql.= " AND ld.fk_livraison = ".$this->id; + $sql .= " cd.qty as qty_asked, cd.label as custom_label, cd.fk_unit,"; + $sql .= " p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as product_label, p.description as product_desc,"; + $sql .= " p.weight, p.weight_units, p.width, p.width_units, p.length, p.length_units, p.height, p.height_units, p.surface, p.surface_units, p.volume, p.volume_units, p.tobatch as product_tobatch"; + $sql .= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."livraisondet as ld"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on p.rowid = ld.fk_product"; + $sql .= " WHERE ld.fk_origin_line = cd.rowid"; + $sql .= " AND ld.fk_livraison = ".$this->id; dol_syslog(get_class($this)."::fetch_lines", LOG_DEBUG); $resql = $this->db->query($sql); @@ -794,23 +795,39 @@ class Livraison extends CommonObject $obj = $this->db->fetch_object($resql); - $line->id = $obj->rowid; - $line->label = $obj->custom_label; + $line->id = $obj->rowid; + $line->label = $obj->custom_label; $line->description = $obj->description; - $line->fk_product = $obj->fk_product; - $line->qty_asked = $obj->qty_asked; + $line->fk_product = $obj->fk_product; + $line->qty_asked = $obj->qty_asked; $line->qty_shipped = $obj->qty_shipped; - $line->ref = $obj->product_ref; // deprecated - $line->libelle = $obj->product_label; // deprecated - $line->product_label = $obj->product_label; // Product label - $line->product_ref = $obj->product_ref; // Product ref - $line->product_desc = $obj->product_desc; // Product description + $line->ref = $obj->product_ref; // deprecated + $line->libelle = $obj->product_label; // deprecated + $line->product_label = $obj->product_label; // Product label + $line->product_ref = $obj->product_ref; // Product ref + $line->product_desc = $obj->product_desc; // Product description $line->product_type = $obj->fk_product_type; - $line->fk_origin_line = $obj->fk_origin_line; + $line->fk_origin_line = $obj->fk_origin_line; - $line->price = $obj->price; - $line->total_ht = $obj->total_ht; + $line->price = $obj->price; + $line->total_ht = $obj->total_ht; + + // units + $line->weight = $obj->weight; + $line->weight_units = $obj->weight_units; + $line->width = $obj->width; + $line->width_units = $obj->width_units; + $line->height = $obj->height; + $line->height_units = $obj->height_units; + $line->length = $obj->length; + $line->length_units = $obj->length_units; + $line->surface = $obj->surface; + $line->surface_units = $obj->surface_units; + $line->volume = $obj->volume; + $line->volume_units = $obj->volume_units; + + $line->fk_unit = $obj->fk_unit; $this->lines[$i] = $line; @@ -876,17 +893,17 @@ class Livraison extends CommonObject */ public function initAsSpecimen() { - global $user,$langs,$conf; + global $user, $langs, $conf; - $now=dol_now(); + $now = dol_now(); // Load array of products prodids $num_prods = 0; $prodids = array(); $sql = "SELECT rowid"; - $sql.= " FROM ".MAIN_DB_PREFIX."product"; - $sql.= " WHERE entity IN (".getEntity('product').")"; - $sql.= " AND tosell = 1"; + $sql .= " FROM ".MAIN_DB_PREFIX."product"; + $sql .= " WHERE entity IN (".getEntity('product').")"; + $sql .= " AND tosell = 1"; $resql = $this->db->query($sql); if ($resql) { @@ -901,16 +918,16 @@ class Livraison extends CommonObject } // Initialise parametres - $this->id=0; + $this->id = 0; $this->ref = 'SPECIMEN'; - $this->specimen=1; + $this->specimen = 1; $this->socid = 1; $this->date_delivery = $now; - $this->note_public='Public note'; - $this->note_private='Private note'; + $this->note_public = 'Public note'; + $this->note_private = 'Private note'; - $i=0; - $line=new LivraisonLigne($this->db); + $i = 0; + $line = new LivraisonLigne($this->db); $line->fk_product = $prodids[0]; $line->qty_asked = 10; $line->qty_shipped = 9; @@ -938,10 +955,10 @@ class Livraison extends CommonObject //var_dump($this->linkedObjectIds); // Get the product ref and qty in source $sqlSourceLine = "SELECT st.rowid, st.description, st.qty"; - $sqlSourceLine.= ", p.ref, p.label"; - $sqlSourceLine.= " FROM ".MAIN_DB_PREFIX.$this->linkedObjectIds[0]['type']."det as st"; - $sqlSourceLine.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON st.fk_product = p.rowid"; - $sqlSourceLine.= " WHERE fk_".$this->linked_object[0]['type']." = ".$this->linked_object[0]['linkid']; + $sqlSourceLine .= ", p.ref, p.label"; + $sqlSourceLine .= " FROM ".MAIN_DB_PREFIX.$this->linkedObjectIds[0]['type']."det as st"; + $sqlSourceLine .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON st.fk_product = p.rowid"; + $sqlSourceLine .= " WHERE fk_".$this->linked_object[0]['type']." = ".$this->linked_object[0]['linkid']; $resultSourceLine = $this->db->query($sqlSourceLine); if ($resultSourceLine) @@ -955,15 +972,15 @@ class Livraison extends CommonObject // Get lines of sources alread delivered $sql = "SELECT ld.fk_origin_line, sum(ld.qty) as qty"; - $sql.= " FROM ".MAIN_DB_PREFIX."livraisondet as ld, ".MAIN_DB_PREFIX."livraison as l,"; - $sql.= " ".MAIN_DB_PREFIX.$this->linked_object[0]['type']." as c"; - $sql.= ", ".MAIN_DB_PREFIX.$this->linked_object[0]['type']."det as cd"; - $sql.= " WHERE ld.fk_livraison = l.rowid"; - $sql.= " AND ld.fk_origin_line = cd.rowid"; - $sql.= " AND cd.fk_".$this->linked_object[0]['type']." = c.rowid"; - $sql.= " AND cd.fk_".$this->linked_object[0]['type']." = ".$this->linked_object[0]['linkid']; - $sql.= " AND ld.fk_origin_line = ".$objSourceLine->rowid; - $sql.= " GROUP BY ld.fk_origin_line"; + $sql .= " FROM ".MAIN_DB_PREFIX."livraisondet as ld, ".MAIN_DB_PREFIX."livraison as l,"; + $sql .= " ".MAIN_DB_PREFIX.$this->linked_object[0]['type']." as c"; + $sql .= ", ".MAIN_DB_PREFIX.$this->linked_object[0]['type']."det as cd"; + $sql .= " WHERE ld.fk_livraison = l.rowid"; + $sql .= " AND ld.fk_origin_line = cd.rowid"; + $sql .= " AND cd.fk_".$this->linked_object[0]['type']." = c.rowid"; + $sql .= " AND cd.fk_".$this->linked_object[0]['type']." = ".$this->linked_object[0]['linkid']; + $sql .= " AND ld.fk_origin_line = ".$objSourceLine->rowid; + $sql .= " GROUP BY ld.fk_origin_line"; $result = $this->db->query($sql); $row = $this->db->fetch_row($result); @@ -980,13 +997,13 @@ class Livraison extends CommonObject } $array[$i]['ref'] = $objSourceLine->ref; - $array[$i]['label'] = $objSourceLine->label?$objSourceLine->label:$objSourceLine->description; + $array[$i]['label'] = $objSourceLine->label ? $objSourceLine->label : $objSourceLine->description; } - elseif($objSourceLine->qty - $row[1] < 0) + elseif ($objSourceLine->qty - $row[1] < 0) { - $array[$i]['qty'] = $objSourceLine->qty - $row[1]. " Erreur livraison !"; + $array[$i]['qty'] = $objSourceLine->qty - $row[1]." Erreur livraison !"; $array[$i]['ref'] = $objSourceLine->ref; - $array[$i]['label'] = $objSourceLine->label?$objSourceLine->label:$objSourceLine->description; + $array[$i]['label'] = $objSourceLine->label ? $objSourceLine->label : $objSourceLine->description; } $i++; @@ -995,7 +1012,7 @@ class Livraison extends CommonObject } else { - $this->error=$this->db->error()." - sql=$sqlSourceLine"; + $this->error = $this->db->error()." - sql=$sqlSourceLine"; return -1; } } @@ -1014,11 +1031,11 @@ class Livraison extends CommonObject if ($user->rights->expedition->creer) { $sql = "UPDATE ".MAIN_DB_PREFIX."livraison"; - $sql.= " SET date_delivery = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null'); - $sql.= " WHERE rowid = ".$this->id; + $sql .= " SET date_delivery = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null'); + $sql .= " WHERE rowid = ".$this->id; dol_syslog(get_class($this)."::set_date_livraison", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { $this->date_delivery = $date_livraison; @@ -1026,7 +1043,7 @@ class Livraison extends CommonObject } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); return -1; } } @@ -1048,16 +1065,16 @@ class Livraison extends CommonObject */ public function generateDocument($modele, $outputlangs = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0) { - global $conf,$user,$langs; + global $conf, $user, $langs; $langs->load("deliveries"); - if (! dol_strlen($modele)) { + if (!dol_strlen($modele)) { $modele = 'typhon'; if ($this->modelpdf) { $modele = $this->modelpdf; - } elseif (! empty($conf->global->LIVRAISON_ADDON_PDF)) { + } elseif (!empty($conf->global->LIVRAISON_ADDON_PDF)) { $modele = $conf->global->LIVRAISON_ADDON_PDF; } } @@ -1132,12 +1149,12 @@ class LivraisonLigne extends CommonObjectLine /** * @var string ID to identify managed object */ - public $element='livraisondet'; + public $element = 'livraisondet'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='livraisondet'; + public $table_element = 'livraisondet'; /** * Constructor @@ -1146,6 +1163,6 @@ class LivraisonLigne extends CommonObjectLine */ public function __construct($db) { - $this->db=$db; + $this->db = $db; } } diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php index 9e7b8f2565a..47ddfd2b109 100644 --- a/htdocs/loan/card.php +++ b/htdocs/loan/card.php @@ -27,29 +27,29 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; -if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; +if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; +if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; // Load translation files required by the page -$langs->loadLangs(array("compta","bills","loan")); +$langs->loadLangs(array("compta", "bills", "loan")); -$id=GETPOST('id', 'int'); -$action=GETPOST('action', 'aZ09'); -$confirm=GETPOST('confirm'); -$cancel=GETPOST('cancel', 'alpha'); +$id = GETPOST('id', 'int'); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm'); +$cancel = GETPOST('cancel', 'alpha'); $projectid = GETPOST('projectid', 'int'); // Security check $socid = GETPOST('socid', 'int'); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'loan', $id, '', ''); $object = new Loan($db); -$hookmanager->initHooks(array('loancard','globalcard')); +$hookmanager->initHooks(array('loancard', 'globalcard')); /* diff --git a/htdocs/loan/class/loanschedule.class.php b/htdocs/loan/class/loanschedule.class.php index 2d4ae196bb6..3299e810991 100644 --- a/htdocs/loan/class/loanschedule.class.php +++ b/htdocs/loan/class/loanschedule.class.php @@ -56,8 +56,8 @@ class LoanSchedule extends CommonObject */ public $datep; - public $amounts=array(); // Array of amounts - public $amount_capital; // Total amount of payment + public $amounts = array(); // Array of amounts + public $amount_capital; // Total amount of payment public $amount_insurance; public $amount_interest; @@ -202,30 +202,30 @@ class LoanSchedule extends CommonObject { global $langs; $sql = "SELECT"; - $sql.= " t.rowid,"; - $sql.= " t.fk_loan,"; - $sql.= " t.datec,"; - $sql.= " t.tms,"; - $sql.= " t.datep,"; - $sql.= " t.amount_capital,"; - $sql.= " t.amount_insurance,"; - $sql.= " t.amount_interest,"; - $sql.= " t.fk_typepayment,"; - $sql.= " t.num_payment,"; - $sql.= " t.note_private,"; - $sql.= " t.note_public,"; - $sql.= " t.fk_bank,"; - $sql.= " t.fk_user_creat,"; - $sql.= " t.fk_user_modif,"; - $sql.= " pt.code as type_code, pt.libelle as type_label,"; - $sql.= ' b.fk_account'; - $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pt ON t.fk_typepayment = pt.id"; - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON t.fk_bank = b.rowid'; - $sql.= " WHERE t.rowid = ".$id; + $sql .= " t.rowid,"; + $sql .= " t.fk_loan,"; + $sql .= " t.datec,"; + $sql .= " t.tms,"; + $sql .= " t.datep,"; + $sql .= " t.amount_capital,"; + $sql .= " t.amount_insurance,"; + $sql .= " t.amount_interest,"; + $sql .= " t.fk_typepayment,"; + $sql .= " t.num_payment,"; + $sql .= " t.note_private,"; + $sql .= " t.note_public,"; + $sql .= " t.fk_bank,"; + $sql .= " t.fk_user_creat,"; + $sql .= " t.fk_user_modif,"; + $sql .= " pt.code as type_code, pt.libelle as type_label,"; + $sql .= ' b.fk_account'; + $sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pt ON t.fk_typepayment = pt.id"; + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON t.fk_bank = b.rowid'; + $sql .= " WHERE t.rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { if ($this->db->num_rows($resql)) { $obj = $this->db->fetch_object($resql); @@ -276,16 +276,16 @@ class LoanSchedule extends CommonObject public function update($user = 0, $notrigger = 0) { global $conf, $langs; - $error=0; + $error = 0; // Clean parameters - if (isset($this->amount_capital)) $this->amount_capital=trim($this->amount_capital); - if (isset($this->amount_insurance)) $this->amount_insurance=trim($this->amount_insurance); - if (isset($this->amount_interest)) $this->amount_interest=trim($this->amount_interest); - if (isset($this->num_payment)) $this->num_payment=trim($this->num_payment); - if (isset($this->note_private)) $this->note_private=trim($this->note_private); - if (isset($this->note_public)) $this->note_public=trim($this->note_public); - if (isset($this->fk_bank)) $this->fk_bank=trim($this->fk_bank); + if (isset($this->amount_capital)) $this->amount_capital = trim($this->amount_capital); + if (isset($this->amount_insurance)) $this->amount_insurance = trim($this->amount_insurance); + if (isset($this->amount_interest)) $this->amount_interest = trim($this->amount_interest); + if (isset($this->num_payment)) $this->num_payment = trim($this->num_payment); + if (isset($this->note_private)) $this->note_private = trim($this->note_private); + if (isset($this->note_public)) $this->note_public = trim($this->note_public); + if (isset($this->fk_bank)) $this->fk_bank = trim($this->fk_bank); // Check parameters // Put here code to add control on parameters values @@ -316,22 +316,6 @@ class LoanSchedule extends CommonObject $resql = $this->db->query($sql); if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); } - if (!$error) - { - if (!$notrigger) - { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - - //// Call triggers - //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - //$interface=new Interfaces($this->db); - //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); - //if ($result < 0) { $error++; $this->errors=$interface->errors; } - //// End call triggers - } - } - // Commit or rollback if ($error) { @@ -369,22 +353,6 @@ class LoanSchedule extends CommonObject if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); } } - if (!$error) - { - if (!$notrigger) - { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - - //// Call triggers - //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - //$interface=new Interfaces($this->db); - //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); - //if ($result < 0) { $error++; $this->errors=$interface->errors; } - //// End call triggers - } - } - // Commit or rollback if ($error) { @@ -565,7 +533,7 @@ class LoanSchedule extends CommonObject public function paimenttorecord($loanid, $datemax) { - $result=array(); + $result = array(); $sql = "SELECT p.rowid"; $sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element." as p "; diff --git a/htdocs/loan/class/paymentloan.class.php b/htdocs/loan/class/paymentloan.class.php index 9dd4a9ac284..485d48dc443 100644 --- a/htdocs/loan/class/paymentloan.class.php +++ b/htdocs/loan/class/paymentloan.class.php @@ -197,30 +197,30 @@ class PaymentLoan extends CommonObject { global $langs; $sql = "SELECT"; - $sql.= " t.rowid,"; - $sql.= " t.fk_loan,"; - $sql.= " t.datec,"; - $sql.= " t.tms,"; - $sql.= " t.datep,"; - $sql.= " t.amount_capital,"; - $sql.= " t.amount_insurance,"; - $sql.= " t.amount_interest,"; - $sql.= " t.fk_typepayment,"; - $sql.= " t.num_payment,"; - $sql.= " t.note_private,"; - $sql.= " t.note_public,"; - $sql.= " t.fk_bank,"; - $sql.= " t.fk_user_creat,"; - $sql.= " t.fk_user_modif,"; - $sql.= " pt.code as type_code, pt.libelle as type_label,"; - $sql.= ' b.fk_account'; - $sql.= " FROM ".MAIN_DB_PREFIX."payment_loan as t"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pt ON t.fk_typepayment = pt.id"; - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON t.fk_bank = b.rowid'; - $sql.= " WHERE t.rowid = ".$id; + $sql .= " t.rowid,"; + $sql .= " t.fk_loan,"; + $sql .= " t.datec,"; + $sql .= " t.tms,"; + $sql .= " t.datep,"; + $sql .= " t.amount_capital,"; + $sql .= " t.amount_insurance,"; + $sql .= " t.amount_interest,"; + $sql .= " t.fk_typepayment,"; + $sql .= " t.num_payment,"; + $sql .= " t.note_private,"; + $sql .= " t.note_public,"; + $sql .= " t.fk_bank,"; + $sql .= " t.fk_user_creat,"; + $sql .= " t.fk_user_modif,"; + $sql .= " pt.code as type_code, pt.libelle as type_label,"; + $sql .= ' b.fk_account'; + $sql .= " FROM ".MAIN_DB_PREFIX."payment_loan as t"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pt ON t.fk_typepayment = pt.id"; + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON t.fk_bank = b.rowid'; + $sql .= " WHERE t.rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { if ($this->db->num_rows($resql)) @@ -316,22 +316,6 @@ class PaymentLoan extends CommonObject $resql = $this->db->query($sql); if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); } - if (!$error) - { - if (!$notrigger) - { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - - //// Call triggers - //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - //$interface=new Interfaces($this->db); - //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); - //if ($result < 0) { $error++; $this->errors=$interface->errors; } - //// End call triggers - } - } - // Commit or rollback if ($error) { @@ -385,22 +369,6 @@ class PaymentLoan extends CommonObject if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); } } - //if (! $error) - //{ - // if (! $notrigger) - // { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. - - //// Call triggers - //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - //$interface=new Interfaces($this->db); - //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); - //if ($result < 0) { $error++; $this->errors=$interface->errors; } - //// End call triggers - // } - //} - // Commit or rollback if ($error) { @@ -547,16 +515,16 @@ class PaymentLoan extends CommonObject { global $langs; - $result=''; + $result = ''; if (!empty($this->id)) { $link = ''; - $linkend=''; + $linkend = ''; - if ($withpicto) $result.=($link.img_object($langs->trans("ShowPayment").': '.$this->ref, 'payment').$linkend.' '); - if ($withpicto && $withpicto != 2) $result.=' '; - if ($withpicto != 2) $result.=$link.($maxlen?dol_trunc($this->ref, $maxlen):$this->ref).$linkend; + if ($withpicto) $result .= ($link.img_object($langs->trans("ShowPayment").': '.$this->ref, 'payment').$linkend.' '); + if ($withpicto && $withpicto != 2) $result .= ' '; + if ($withpicto != 2) $result .= $link.($maxlen ?dol_trunc($this->ref, $maxlen) : $this->ref).$linkend; } return $result; diff --git a/htdocs/loan/document.php b/htdocs/loan/document.php index 28b4d55ce17..a68ec64f7b1 100644 --- a/htdocs/loan/document.php +++ b/htdocs/loan/document.php @@ -28,19 +28,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -if (! empty($conf->projet->enabled)) { - require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; +if (!empty($conf->projet->enabled)) { + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("other","companies","compta","bills","loan")); +$langs->loadLangs(array("other", "companies", "compta", "bills", "loan")); $id = GETPOST('id', 'int'); $action = GETPOST('action', 'aZ09'); $confirm = GETPOST('confirm', 'alpha'); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'loan', $id, '', ''); // Get parameters diff --git a/htdocs/loan/info.php b/htdocs/loan/info.php index 575c8d74586..21661d787f5 100644 --- a/htdocs/loan/info.php +++ b/htdocs/loan/info.php @@ -26,19 +26,19 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -if (! empty($conf->projet->enabled)) { - require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; +if (!empty($conf->projet->enabled)) { + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("compta","bills","loan")); +$langs->loadLangs(array("compta", "bills", "loan")); -$id=GETPOST('id', 'int'); -$action=GETPOST('action', 'aZ09'); +$id = GETPOST('id', 'int'); +$action = GETPOST('action', 'aZ09'); // Security check $socid = GETPOST('socid', 'int'); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'loan', $id, '', ''); diff --git a/htdocs/loan/list.php b/htdocs/loan/list.php index 1cde7792981..380d475398e 100644 --- a/htdocs/loan/list.php +++ b/htdocs/loan/list.php @@ -165,11 +165,9 @@ if ($resql) print ''; print ''; print ''; - print ''; print ''; - print ''; - print_barre_liste($langs->trans("Loans"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy.png', 0, $newcardbutton, '', $limit); + print_barre_liste($langs->trans("Loans"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy.png', 0, $newcardbutton, '', $limit, 0, 0, 1); $moreforfilter = ''; diff --git a/htdocs/loan/payment/card.php b/htdocs/loan/payment/card.php index f2a3aa3a877..4798366d087 100644 --- a/htdocs/loan/payment/card.php +++ b/htdocs/loan/payment/card.php @@ -24,24 +24,24 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/paymentloan.class.php'; -if (! empty($conf->banque->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; +if (!empty($conf->banque->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Load translation files required by the page -$langs->loadLangs(array("bills","banks","companies","loan")); +$langs->loadLangs(array("bills", "banks", "companies", "loan")); // Security check -$id=GETPOST("id", 'int'); -$action=GETPOST('action', 'aZ09'); -$confirm=GETPOST('confirm'); -if ($user->socid) $socid=$user->socid; +$id = GETPOST("id", 'int'); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm'); +if ($user->socid) $socid = $user->socid; // TODO ajouter regle pour restreindre acces paiement //$result = restrictedArea($user, 'facture', $id,''); $payment = new PaymentLoan($db); if ($id > 0) { - $result=$payment->fetch($id); - if (! $result) dol_print_error($db, 'Failed to get payment id '.$id); + $result = $payment->fetch($id); + if (!$result) dol_print_error($db, 'Failed to get payment id '.$id); } @@ -76,20 +76,20 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->loan->wri { $db->begin(); - $result=$payment->valide(); + $result = $payment->valide(); if ($result > 0) { $db->commit(); - $factures=array(); // TODO Get all id of invoices linked to this payment - foreach($factures as $id) + $factures = array(); // TODO Get all id of invoices linked to this payment + foreach ($factures as $id) { $fac = new Facture($db); $fac->fetch($id); $outputlangs = $langs; - if (! empty($_REQUEST['lang_id'])) + if (!empty($_REQUEST['lang_id'])) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($_REQUEST['lang_id']); @@ -119,7 +119,7 @@ llxHeader(); $loan = new Loan($db); $form = new Form($db); -$h=0; +$h = 0; $head[$h][0] = DOL_URL_ROOT.'/loan/payment/card.php?id='.$id; $head[$h][1] = $langs->trans("Card"); @@ -172,11 +172,11 @@ print ''; // Bank account -if (! empty($conf->banque->enabled)) +if (!empty($conf->banque->enabled)) { if ($payment->bank_account) { - $bankline=new AccountLine($db); + $bankline = new AccountLine($db); $bankline->fetch($payment->bank_line); print ''; @@ -197,13 +197,13 @@ print '
    '; print $langs->trans("ServerConnection")." : $dolibarr_main_db_host".$langs->trans("OK")."
    ".$langs->trans("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)."".$langs->transnoentities("Error")."
    '; print $langs->trans("DatabaseConnection")." : ".$dolibarr_main_db_name."".$langs->trans("OK")."
    ".$langs->trans("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)."".$langs->trans("Error")."
    '.$langs->trans("ServerVersion").''.$version.'
    '.$langs->trans("ClientCharset").''.$tmparray->charset.'
    '.$langs->trans("ClientSortingCharset").''.$tmparray->collation.'
    ".$langs->trans("ErrorDatabaseVersionTooLow", join('.', $versionarray), join('.', $versionmindb))."".$langs->trans("Error")."
    '.$langs->trans("ErrorDatabaseVersionForbiddenForMigration", join('.', $versionarray), $listofforbiddenversion)."
    ".$langs->trans("Error")."
    '.$sqldrop.";
    '.$langs->trans("ChoosedMigrateScript").''.$file.'
    '.$langs->trans("ChoosedMigrateScript").' (external modules)'.$modulefileshort.'
    '.$langs->trans('NotePrivate').''.nl2br($payment->note_p print '
    '.$langs->trans('NotePublic').''.nl2br($payment->note_public).'
    '; $disable_delete = 0; $sql = 'SELECT l.rowid as id, l.label, l.paid, l.capital as capital, pl.amount_capital, pl.amount_insurance, pl.amount_interest'; -$sql.= ' FROM '.MAIN_DB_PREFIX.'payment_loan as pl,'.MAIN_DB_PREFIX.'loan as l'; -$sql.= ' WHERE pl.fk_loan = l.rowid'; -$sql.= ' AND l.entity = '.$conf->entity; -$sql.= ' AND pl.rowid = '.$payment->id; +$sql .= ' FROM '.MAIN_DB_PREFIX.'payment_loan as pl,'.MAIN_DB_PREFIX.'loan as l'; +$sql .= ' WHERE pl.fk_loan = l.rowid'; +$sql .= ' AND l.entity = '.$conf->entity; +$sql .= ' AND pl.rowid = '.$payment->id; dol_syslog("loan/payment/card.php", LOG_DEBUG); -$resql=$db->query($sql); +$resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -281,9 +281,9 @@ if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) } */ -if (empty($action) && ! empty($user->rights->loan->delete)) +if (empty($action) && !empty($user->rights->loan->delete)) { - if (! $disable_delete) + if (!$disable_delete) { print ''.$langs->trans('Delete').''; } diff --git a/htdocs/loan/payment/payment.php b/htdocs/loan/payment/payment.php index a6ca3c768d6..ea37a298d49 100644 --- a/htdocs/loan/payment/payment.php +++ b/htdocs/loan/payment/payment.php @@ -28,16 +28,16 @@ require_once DOL_DOCUMENT_ROOT.'/loan/class/loanschedule.class.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/paymentloan.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; -$langs->loadLangs(array("bills","loan")); +$langs->loadLangs(array("bills", "loan")); -$chid=GETPOST('id', 'int'); -$action=GETPOST('action', 'aZ09'); -$cancel=GETPOST('cancel', 'alpha'); +$chid = GETPOST('id', 'int'); +$action = GETPOST('action', 'aZ09'); +$cancel = GETPOST('cancel', 'alpha'); $line_id = GETPOST('line_id', 'int'); -$last=GETPOST('last'); +$last = GETPOST('last'); // Security check -$socid=0; +$socid = 0; if ($user->socid > 0) { $socid = $user->socid; @@ -46,7 +46,7 @@ if ($user->socid > 0) $loan = new Loan($db); $loan->fetch($chid); -if($last) +if ($last) { $ls = new LoanSchedule($db); // grab all loanschedule @@ -69,7 +69,7 @@ if (!empty($line_id)) { $line = new LoanSchedule($db); $res = $line->fetch($line_id); - if ($res > 0){ + if ($res > 0) { $amount_capital = price($line->amount_capital); $amount_insurance = price($line->amount_insurance); $amount_interest = price($line->amount_interest); @@ -83,7 +83,7 @@ if (!empty($line_id)) if ($action == 'add_payment') { - $error=0; + $error = 0; if ($cancel) { @@ -94,7 +94,7 @@ if ($action == 'add_payment') $datepaid = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int')); - if (! GETPOST('paymenttype', 'int') > 0) + if (!GETPOST('paymenttype', 'int') > 0) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("PaymentMode")), null, 'errors'); $error++; @@ -104,13 +104,13 @@ if ($action == 'add_payment') setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Date")), null, 'errors'); $error++; } - if (! empty($conf->banque->enabled) && ! GETPOST('accountid', 'int') > 0) + if (!empty($conf->banque->enabled) && !GETPOST('accountid', 'int') > 0) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountToCredit")), null, 'errors'); $error++; } - if (! $error) + if (!$error) { $paymentid = 0; @@ -121,24 +121,24 @@ if ($action == 'add_payment') $error++; } - if (! $error) + if (!$error) { $db->begin(); // Create a line of payments $payment = new PaymentLoan($db); - $payment->chid = $chid; + $payment->chid = $chid; $payment->datep = $datepaid; - $payment->label = $loan->label; - $payment->amount_capital = GETPOST('amount_capital'); - $payment->amount_insurance = GETPOST('amount_insurance'); - $payment->amount_interest = GETPOST('amount_interest'); + $payment->label = $loan->label; + $payment->amount_capital = GETPOST('amount_capital'); + $payment->amount_insurance = GETPOST('amount_insurance'); + $payment->amount_interest = GETPOST('amount_interest'); $payment->paymenttype = GETPOST('paymenttype', 'int'); - $payment->num_payment = GETPOST('num_payment'); + $payment->num_payment = GETPOST('num_payment'); $payment->note_private = GETPOST('note_private', 'none'); $payment->note_public = GETPOST('note_public', 'none'); - if (! $error) + if (!$error) { $paymentid = $payment->create($user); if ($paymentid < 0) @@ -148,22 +148,22 @@ if ($action == 'add_payment') } } - if (! $error) + if (!$error) { $result = $payment->addPaymentToBank($user, $chid, 'payment_loan', '(LoanPayment)', GETPOST('accountid', 'int'), '', ''); - if (! $result > 0) + if (!$result > 0) { setEventMessages($payment->error, $payment->errors, 'errors'); $error++; } - elseif(isset($line)) + elseif (isset($line)) { $line->fk_bank = $payment->fk_bank; $line->update($user); } } - if (! $error) + if (!$error) { $db->commit(); $loc = DOL_URL_ROOT.'/loan/card.php?id='.$chid; @@ -187,7 +187,7 @@ if ($action == 'add_payment') llxHeader(); -$form=new Form($db); +$form = new Form($db); // Form to create loan's payment @@ -216,17 +216,17 @@ if ($action == 'create') print '
    '.$langs->trans("Amount").''.price($loan->capital, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("AlreadyPaid").''.price($sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("RemainderToPay").''.price($total-$sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '.$langs->trans("RemainderToPay").''.price($total - $sumpaid, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '; @@ -240,20 +240,20 @@ if ($action == 'create') print '
    '.$langs->trans("Date").''; $datepaid = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int')); - $datepayment = empty($conf->global->MAIN_AUTOFILL_DATE)?(empty($_POST["remonth"])?-1:$datepaye):0; + $datepayment = empty($conf->global->MAIN_AUTOFILL_DATE) ? (empty($_POST["remonth"]) ?-1 : $datepaye) : 0; print $form->selectDate($datepayment, '', '', '', '', "add_payment", 1, 1); print "
    '.$langs->trans("PaymentMode").''; - $form->select_types_paiements(isset($_POST["paymenttype"])?$_POST["paymenttype"]:$loan->paymenttype, "paymenttype"); + $form->select_types_paiements(isset($_POST["paymenttype"]) ? $_POST["paymenttype"] : $loan->paymenttype, "paymenttype"); print "
    '.$langs->trans('AccountToDebit').''; - $form->select_comptes(isset($_POST["accountid"])?$_POST["accountid"]:$loan->accountid, "accountid", 0, '', 1); // Show opend bank account list + $form->select_comptes(isset($_POST["accountid"]) ? $_POST["accountid"] : $loan->accountid, "accountid", 0, '', 1); // Show opend bank account list print '
    '; if ($sumpaid < $loan->capital) { - print $langs->trans("LoanCapital") .': '; + print $langs->trans("LoanCapital").': '; } else { @@ -314,7 +314,7 @@ if ($action == 'create') print '
    '; if ($sumpaid < $loan->capital) { - print $langs->trans("Insurance") .': '; + print $langs->trans("Insurance").': '; } else { @@ -323,7 +323,7 @@ if ($action == 'create') print '
    '; if ($sumpaid < $loan->capital) { - print $langs->trans("Interest") .': '; + print $langs->trans("Interest").': '; } else { diff --git a/htdocs/mailmanspip/class/mailmanspip.class.php b/htdocs/mailmanspip/class/mailmanspip.class.php index d8b5c7ed36e..41a221a7e72 100644 --- a/htdocs/mailmanspip/class/mailmanspip.class.php +++ b/htdocs/mailmanspip/class/mailmanspip.class.php @@ -47,7 +47,7 @@ class MailmanSpip /** * @var string Error code (or message) */ - public $error=''; + public $error = ''; /** * @var string[] Array of error strings @@ -156,8 +156,8 @@ class MailmanSpip curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FAILONERROR, true); @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, empty($conf->global->MAIN_USE_CONNECT_TIMEOUT)?5:$conf->global->MAIN_USE_CONNECT_TIMEOUT); - curl_setopt($ch, CURLOPT_TIMEOUT, empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT)?30:$conf->global->MAIN_USE_RESPONSE_TIMEOUT); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, empty($conf->global->MAIN_USE_CONNECT_TIMEOUT) ? 5 : $conf->global->MAIN_USE_CONNECT_TIMEOUT); + curl_setopt($ch, CURLOPT_TIMEOUT, empty($conf->global->MAIN_USE_RESPONSE_TIMEOUT) ? 30 : $conf->global->MAIN_USE_RESPONSE_TIMEOUT); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); @@ -197,8 +197,8 @@ class MailmanSpip if ($mydb) { require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; - $mdpass=dol_hash($object->pass); - $htpass=crypt($object->pass, makesalt()); + $mdpass = dol_hash($object->pass); + $htpass = crypt($object->pass, makesalt()); $query = "INSERT INTO spip_auteurs (nom, email, login, pass, htpass, alea_futur, statut) VALUES(\"".dolGetFirstLastname($object->firstname, $object->lastname)."\",\"".$object->email."\",\"".$object->login."\",\"$mdpass\",\"$htpass\",FLOOR(32000*RAND()),\"1comite\")"; $result = $mydb->query($query); @@ -324,42 +324,42 @@ class MailmanSpip public function add_to_mailman($object, $listes = '') { // phpcs:enable - global $conf,$langs,$user; + global $conf, $langs, $user; dol_syslog(get_class($this)."::add_to_mailman"); - $this->mladded_ok=array(); - $this->mladded_ko=array(); + $this->mladded_ok = array(); + $this->mladded_ko = array(); - if (! function_exists("curl_init")) + if (!function_exists("curl_init")) { $langs->load("errors"); - $this->error=$langs->trans("ErrorFunctionNotAvailableInPHP", "curl_init"); + $this->error = $langs->trans("ErrorFunctionNotAvailableInPHP", "curl_init"); return -1; } if ($conf->adherent->enabled) // Synchro for members { - if (! empty($conf->global->ADHERENT_MAILMAN_URL)) + if (!empty($conf->global->ADHERENT_MAILMAN_URL)) { - if ($listes == '' && ! empty($conf->global->ADHERENT_MAILMAN_LISTS)) $lists=explode(',', $conf->global->ADHERENT_MAILMAN_LISTS); - else $lists=explode(',', $listes); + if ($listes == '' && !empty($conf->global->ADHERENT_MAILMAN_LISTS)) $lists = explode(',', $conf->global->ADHERENT_MAILMAN_LISTS); + else $lists = explode(',', $listes); - $categstatic=new Categorie($this->db); + $categstatic = new Categorie($this->db); foreach ($lists as $list) { // Filter on type something (ADHERENT_MAILMAN_LISTS = "mailinglist0,TYPE:typevalue:mailinglist1,CATEG:categvalue:mailinglist2") - $tmp=explode(':', $list); - if (! empty($tmp[2])) + $tmp = explode(':', $list); + if (!empty($tmp[2])) { - $list=$tmp[2]; + $list = $tmp[2]; if ($object->element == 'member' && $tmp[0] == 'TYPE' && $object->type != $tmp[1]) // Filter on member type label { dol_syslog("We ignore list ".$list." because object member type ".$object->type." does not match ".$tmp[1], LOG_DEBUG); continue; } - if ($object->element == 'member' && $tmp[0] == 'CATEG' && ! in_array($tmp[1], $categstatic->containing($object->id, 'member', 'label'))) // Filter on member category + if ($object->element == 'member' && $tmp[0] == 'CATEG' && !in_array($tmp[1], $categstatic->containing($object->id, 'member', 'label'))) // Filter on member category { dol_syslog("We ignore list ".$list." because object member is not into category ".$tmp[1], LOG_DEBUG); continue; @@ -371,16 +371,16 @@ class MailmanSpip if ($result === false) { - $this->mladded_ko[$list]=$object->email; + $this->mladded_ko[$list] = $object->email; return -2; } - else $this->mladded_ok[$list]=$object->email; + else $this->mladded_ok[$list] = $object->email; } return count($lists); } else { - $this->error="ADHERENT_MAILMAN_URL not defined"; + $this->error = "ADHERENT_MAILMAN_URL not defined"; return -1; } } @@ -398,42 +398,42 @@ class MailmanSpip public function del_to_mailman($object, $listes = '') { // phpcs:enable - global $conf,$langs,$user; + global $conf, $langs, $user; dol_syslog(get_class($this)."::del_to_mailman"); - $this->mlremoved_ok=array(); - $this->mlremoved_ko=array(); + $this->mlremoved_ok = array(); + $this->mlremoved_ko = array(); - if (! function_exists("curl_init")) + if (!function_exists("curl_init")) { $langs->load("errors"); - $this->error=$langs->trans("ErrorFunctionNotAvailableInPHP", "curl_init"); + $this->error = $langs->trans("ErrorFunctionNotAvailableInPHP", "curl_init"); return -1; } if ($conf->adherent->enabled) // Synchro for members { - if (! empty($conf->global->ADHERENT_MAILMAN_UNSUB_URL)) + if (!empty($conf->global->ADHERENT_MAILMAN_UNSUB_URL)) { - if ($listes=='' && ! empty($conf->global->ADHERENT_MAILMAN_LISTS)) $lists=explode(',', $conf->global->ADHERENT_MAILMAN_LISTS); - else $lists=explode(',', $listes); + if ($listes == '' && !empty($conf->global->ADHERENT_MAILMAN_LISTS)) $lists = explode(',', $conf->global->ADHERENT_MAILMAN_LISTS); + else $lists = explode(',', $listes); - $categstatic=new Categorie($this->db); + $categstatic = new Categorie($this->db); foreach ($lists as $list) { // Filter on type something (ADHERENT_MAILMAN_LISTS = "mailinglist0,TYPE:typevalue:mailinglist1,CATEG:categvalue:mailinglist2") - $tmp=explode(':', $list); - if (! empty($tmp[2])) + $tmp = explode(':', $list); + if (!empty($tmp[2])) { - $list=$tmp[2]; + $list = $tmp[2]; if ($object->element == 'member' && $tmp[0] == 'TYPE' && $object->type != $tmp[1]) // Filter on member type label { dol_syslog("We ignore list ".$list." because object member type ".$object->type." does not match ".$tmp[1], LOG_DEBUG); continue; } - if ($object->element == 'member' && $tmp[0] == 'CATEG' && ! in_array($tmp[1], $categstatic->containing($object->id, 'member', 'label'))) // Filter on member category + if ($object->element == 'member' && $tmp[0] == 'CATEG' && !in_array($tmp[1], $categstatic->containing($object->id, 'member', 'label'))) // Filter on member category { dol_syslog("We ignore list ".$list." because object member is not into category ".$tmp[1], LOG_DEBUG); continue; @@ -445,16 +445,16 @@ class MailmanSpip if ($result === false) { - $this->mlremoved_ko[$list]=$object->email; + $this->mlremoved_ko[$list] = $object->email; return -2; } - else $this->mlremoved_ok[$list]=$object->email; + else $this->mlremoved_ok[$list] = $object->email; } return count($lists); } else { - $this->error="ADHERENT_MAILMAN_UNSUB_URL not defined"; + $this->error = "ADHERENT_MAILMAN_UNSUB_URL not defined"; return -1; } } diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 400ad73fad2..965d49de2f7 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -209,8 +209,8 @@ $prefix = dol_getprefix(''); $sessionname = 'DOLSESSID_'.$prefix; $sessiontimeout = 'DOLSESSTIMEOUT_'.$prefix; if (!empty($_COOKIE[$sessiontimeout])) ini_set('session.gc_maxlifetime', $_COOKIE[$sessiontimeout]); -session_name($sessionname); session_set_cookie_params(0, '/', null, (empty($dolibarr_main_force_https) ? false : true), true); // Add tag secure and httponly on session cookie (same as setting session.cookie_httponly into php.ini). Must be called before the session_start. +session_name($sessionname); // This create lock, released when session_write_close() or end of page. // We need this lock as long as we read/write $_SESSION ['vars']. We can remove lock when finished. if (!defined('NOSESSION')) @@ -232,7 +232,7 @@ require_once 'master.inc.php'; register_shutdown_function('dol_shutdown'); // Load debugbar -if (!empty($conf->debugbar->enabled) && ! GETPOST('dol_use_jmobile') && empty($_SESSION['dol_use_jmobile'])) +if (!empty($conf->debugbar->enabled) && !GETPOST('dol_use_jmobile') && empty($_SESSION['dol_use_jmobile'])) { global $debugbar; include_once DOL_DOCUMENT_ROOT.'/debugbar/class/DebugBar.php'; @@ -256,7 +256,6 @@ if (isset($_SERVER["HTTP_USER_AGENT"])) if ($conf->browser->layout == 'phone') $conf->dol_no_mouse_hover = 1; } - // Force HTTPS if required ($conf->file->main_force_https is 0/1 or 'https dolibarr root url') // $_SERVER["HTTPS"] is 'on' when link is https, otherwise $_SERVER["HTTPS"] is empty or 'off' if (!empty($conf->file->main_force_https) && (empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on')) @@ -284,7 +283,7 @@ if (!empty($conf->file->main_force_https) && (empty($_SERVER["HTTPS"]) || $_SERV // Start redirect if ($newurl) { - header_remove(); // Clean header already set to be sure to remove any header like "Set-Cookie: DOLSESSID_..." from non HTTPS answers + header_remove(); // Clean header already set to be sure to remove any header like "Set-Cookie: DOLSESSID_..." from non HTTPS answers dol_syslog("main.inc: dolibarr_main_force_https is on, we make a redirect to ".$newurl); header("Location: ".$newurl); exit; @@ -343,7 +342,6 @@ if ((!empty($conf->global->MAIN_VERSION_LAST_UPGRADE) && ($conf->global->MAIN_VE } } -//var_dump(GETPOST('token').' '.$_SESSION['token'].' - '.newToken().' '.$_SERVER['SCRIPT_FILENAME']); // Creation of a token against CSRF vulnerabilities if (!defined('NOTOKENRENEWAL')) @@ -510,14 +508,11 @@ if (!defined('NOLOGIN')) // Call trigger for the "security events" log $user->trigger_mesg = 'ErrorBadValueForCode - login='.GETPOST("username", "alpha", 2); - // Call of triggers - include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; - $interface = new Interfaces($db); - $result = $interface->run_triggers('USER_LOGIN_FAILED', $user, $user, $langs, $conf); - if ($result < 0) { - $error++; - } - // End Call of triggers + + // Call trigger + $result = $user->call_trigger('USER_LOGIN_FAILED', $user); + if ($result < 0) $error++; + // End call triggers // Hooks on failed login $action = ''; @@ -590,14 +585,11 @@ if (!defined('NOLOGIN')) // Call trigger for the "security events" log $user->trigger_mesg = $langs->trans("ErrorBadLoginPassword").' - login='.GETPOST("username", "alpha", 2); - // Call of triggers - include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; - $interface = new Interfaces($db); - $result = $interface->run_triggers('USER_LOGIN_FAILED', $user, $user, $langs, $conf, GETPOST("username", "alpha", 2)); - if ($result < 0) { - $error++; - } - // End Call of triggers + + // Call trigger + $result = $user->call_trigger('USER_LOGIN_FAILED', $user); + if ($result < 0) $error++; + // End call triggers // Hooks on failed login $action = ''; @@ -625,8 +617,8 @@ if (!defined('NOLOGIN')) { dol_syslog('User not found, connexion refused'); session_destroy(); - session_name($sessionname); session_set_cookie_params(0, '/', null, (empty($dolibarr_main_force_https) ? false : true), true); // Add tag secure and httponly on session cookie + session_name($sessionname); session_start(); if ($resultFetchUser == 0) @@ -645,15 +637,12 @@ if (!defined('NOLOGIN')) $user->trigger_mesg = $user->error; } - // Call triggers for the "security events" log - include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; - $interface = new Interfaces($db); - $result = $interface->run_triggers('USER_LOGIN_FAILED', $user, $user, $langs, $conf); - if ($result < 0) { - $error++; - } + // Call trigger + $result = $user->call_trigger('USER_LOGIN_FAILED', $user); + if ($result < 0) $error++; // End call triggers + // Hooks on failed login $action = ''; $hookmanager->initHooks(array('login')); @@ -682,8 +671,8 @@ if (!defined('NOLOGIN')) // Account has been removed after login dol_syslog("Can't load user even if session logged. _SESSION['dol_login']=".$login, LOG_WARNING); session_destroy(); - session_name($sessionname); session_set_cookie_params(0, '/', null, (empty($dolibarr_main_force_https) ? false : true), true); // Add tag secure and httponly on session cookie + session_name($sessionname); session_start(); if ($resultFetchUser == 0) @@ -702,13 +691,9 @@ if (!defined('NOLOGIN')) $user->trigger_mesg = $user->error; } - // Call triggers for the "security events" log - include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; - $interface = new Interfaces($db); - $result = $interface->run_triggers('USER_LOGIN_FAILED', $user, $user, $langs, $conf); - if ($result < 0) { - $error++; - } + // Call trigger + $result = $user->call_trigger('USER_LOGIN_FAILED', $user); + if ($result < 0) $error++; // End call triggers // Hooks on failed login @@ -809,13 +794,10 @@ if (!defined('NOLOGIN')) // Call triggers for the "security events" log $user->trigger_mesg = $loginfo; - // Call triggers - include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; - $interface = new Interfaces($db); - $result = $interface->run_triggers('USER_LOGIN', $user, $user, $langs, $conf); - if ($result < 0) { - $error++; - } + + // Call trigger + $result = $user->call_trigger('USER_LOGIN', $user); + if ($result < 0) $error++; // End call triggers // Hooks on successfull login @@ -1724,7 +1706,7 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead // Logout link $toprightmenu .= @Form::textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem logout-btn', 2); - $toprightmenu .= ''; // end div class="login_block_other" + $toprightmenu .= ''; // end div class="login_block_other" // Add login user link @@ -1880,9 +1862,11 @@ function top_menu_user($hideloginname = 0, $urllogout = '')
    '.$userDropDownImage.'

    - '.$profilName.'
    - '.dol_print_date($user->datepreviouslogin, "dayhour", 'tzuser').'
    - '.$langs->trans("Version").' '.$appli.' + '.$profilName.'
    '; + if ($user->datepreviouslogin) { + $btnUser .= ' '.dol_print_date($user->datepreviouslogin, "dayhour", 'tzuser').'
    '; + } + $btnUser .= ' '.$langs->trans("Version").' '.$appli.'

    @@ -2607,14 +2591,14 @@ if (!function_exists("llxFooter")) || $forceping) { // No ping done if we are into an alpha version - if (strpos('alpha', DOL_VERSION) > 0 && ! $forceping) { + if (strpos('alpha', DOL_VERSION) > 0 && !$forceping) { print "\n\n"; } elseif (empty($_COOKIE['DOLINSTALLNOPING_'.$hash_unique_id]) || $forceping) // Cookie is set when we uncheck the checkbox in the installation wizard. { // MAIN_LAST_PING_KO_DATE // Disable ping if MAIN_LAST_PING_KO_DATE is set and is recent - if (! empty($conf->global->MAIN_LAST_PING_KO_DATE) && substr($conf->global->MAIN_LAST_PING_KO_DATE, 0, 6) == dol_print_date(dol_now(), '%Y%m') && ! $forceping) { + if (!empty($conf->global->MAIN_LAST_PING_KO_DATE) && substr($conf->global->MAIN_LAST_PING_KO_DATE, 0, 6) == dol_print_date(dol_now(), '%Y%m') && !$forceping) { print "\n\n"; } else { include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -2625,7 +2609,7 @@ if (!function_exists("llxFooter")) // Try to guess the distrib used $distrib = 'standard'; if ($_SERVER["SERVER_ADMIN"] == 'doliwamp@localhost') $distrib = 'doliwamp'; - if (! empty($dolibarr_distrib)) $distrib = $dolibarr_distrib; + if (!empty($dolibarr_distrib)) $distrib = $dolibarr_distrib; ?> @@ -48,8 +48,8 @@ if (empty($usedolheader)) } else { - $arraycss=array(); - $arrayjs=array(); + $arraycss = array(); + $arrayjs = array(); /* $arraycss=array('/includes/jquery/plugins/datatables/media/css/jquery.dataTables.css', '/includes/jquery/plugins/datatables/extensions/Buttons/css/buttons.dataTables.min.css', @@ -153,71 +153,71 @@ $(document).ready(function() { initAsSpecimen(); -$sortfield='aaa'; -$sortorder='ASC'; -$tasksarray=array(1,2,3); // To force having several lines -$tagidfortablednd='tablelines3'; -if (! empty($conf->use_javascript_ajax)) include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; +$sortfield = 'aaa'; +$sortorder = 'ASC'; +$tasksarray = array(1, 2, 3); // To force having several lines +$tagidfortablednd = 'tablelines3'; +if (!empty($conf->use_javascript_ajax)) include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; -$nav=''; -$nav.=''; -if ($actioncode || isset($_GET['actioncode']) || isset($_POST['actioncode'])) $nav.=''; -if ($status || isset($_GET['status']) || isset($_POST['status'])) $nav.=''; -if ($filter) $nav.=''; -if ($filtert) $nav.=''; -if ($socid) $nav.=''; -if ($showbirthday) $nav.=''; -if ($pid) $nav.=''; -if ($type) $nav.=''; -if ($usergroup) $nav.=''; -$nav.= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0); -$nav.= ' '; -$nav.= ''; +$nav = ''; +$nav .= '
    '; +if ($actioncode || isset($_GET['actioncode']) || isset($_POST['actioncode'])) $nav .= ''; +if ($status || isset($_GET['status']) || isset($_POST['status'])) $nav .= ''; +if ($filter) $nav .= ''; +if ($filtert) $nav .= ''; +if ($socid) $nav .= ''; +if ($showbirthday) $nav .= ''; +if ($pid) $nav .= ''; +if ($type) $nav .= ''; +if ($usergroup) $nav .= ''; +$nav .= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0); +$nav .= ' '; +$nav .= '
    '; -$limit=10; +$limit = 10; print_barre_liste('Title of my list', 12, $_SERVER["PHP_SELF"], '', '', '', 'Text in middle', 20, 500, '', 0, $nav, '', $limit); -$moreforfilter.='
    '; -$moreforfilter.=$langs->trans('This is a select list for a filter A'). ': '; -$cate_arbo = array('field1'=>'value1a into the select list A','field2'=>'value2a'); -$moreforfilter.=$form->selectarray('search_aaa', $cate_arbo, '', 1); // List without js combo -$moreforfilter.='
    '; +$moreforfilter .= '
    '; +$moreforfilter .= $langs->trans('This is a select list for a filter A').': '; +$cate_arbo = array('field1'=>'value1a into the select list A', 'field2'=>'value2a'); +$moreforfilter .= $form->selectarray('search_aaa', $cate_arbo, '', 1); // List without js combo +$moreforfilter .= '
    '; -$moreforfilter.='
    '; -$moreforfilter.=$langs->trans('This is a select list for a filter B'). ': '; -$cate_arbo = array('field1'=>'value1b into the select list B','field2'=>'value2b'); -$moreforfilter.=$form->selectarray('search_bbb', $cate_arbo, '', 1, 0, 0, '', 0, 0, 0, 0, '', 1); // List with js combo -$moreforfilter.='
    '; +$moreforfilter .= '
    '; +$moreforfilter .= $langs->trans('This is a select list for a filter B').': '; +$cate_arbo = array('field1'=>'value1b into the select list B', 'field2'=>'value2b'); +$moreforfilter .= $form->selectarray('search_bbb', $cate_arbo, '', 1, 0, 0, '', 0, 0, 0, 0, '', 1); // List with js combo +$moreforfilter .= '
    '; -$moreforfilter.='
    '; -$moreforfilter.=$langs->trans('This is a select list for a filter C'). ': '; -$cate_arbo = array('field1'=>'value1c into the select list C','field2'=>'value2c'); -$moreforfilter.=$form->selectarray('search_ccc', $cate_arbo, '', 1, 0, 0, '', 0, 0, 0, 0, '', 1); // List with js combo -$moreforfilter.='
    '; +$moreforfilter .= '
    '; +$moreforfilter .= $langs->trans('This is a select list for a filter C').': '; +$cate_arbo = array('field1'=>'value1c into the select list C', 'field2'=>'value2c'); +$moreforfilter .= $form->selectarray('search_ccc', $cate_arbo, '', 1, 0, 0, '', 0, 0, 0, 0, '', 1); // List with js combo +$moreforfilter .= '
    '; -$moreforfilter.='
    '; -$moreforfilter.=$langs->trans('This is a select list for a filter D'). ': '; -$cate_arbo = array('field1'=>'value1d into the select list D','field2'=>'value2d'); -$moreforfilter.=$form->selectarray('search_ddd', $cate_arbo, '', 1, 0, 0, '', 0, 0, 0, 0, '', 1); // List with js combo -$moreforfilter.='
    '; +$moreforfilter .= '
    '; +$moreforfilter .= $langs->trans('This is a select list for a filter D').': '; +$cate_arbo = array('field1'=>'value1d into the select list D', 'field2'=>'value2d'); +$moreforfilter .= $form->selectarray('search_ddd', $cate_arbo, '', 1, 0, 0, '', 0, 0, 0, 0, '', 1); // List with js combo +$moreforfilter .= '
    '; -if (! empty($moreforfilter)) +if (!empty($moreforfilter)) { print '
    '; print $moreforfilter; - $parameters=array(); - $reshook=$hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook + $parameters = array(); + $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; print '
    '; } ?> -" id="tablelines3"> +
    " id="tablelines3"> trans('title1'), 0, $_SERVER["PHP_SELF"], 'aaa', '', '', 'align="left"', $sortfield, $sortorder); ?> @@ -245,7 +245,7 @@ if (! empty($moreforfilter)) $(document).ready(function(){ $('#idtableexample2').dataTable( { use_javascript_ajax)) include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; + $tasksarray = array(1, 2, 3); // To force having several lines + $tagidfortablednd = 'tablelines'; + if (!empty($conf->use_javascript_ajax)) include DOL_DOCUMENT_ROOT.'/core/tpl/ajaxrow.tpl.php'; ?>
    @@ -340,7 +340,7 @@ $(document).ready(function(){ diff --git a/htdocs/public/test/test_forms.php b/htdocs/public/test/test_forms.php index b2f55e1b748..0a43cfda708 100644 --- a/htdocs/public/test/test_forms.php +++ b/htdocs/public/test/test_forms.php @@ -1,6 +1,6 @@ '; // You can use div-table-responsive-no-min if you dont need reserved height for your table +print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table // Test1: form->selectDate using tzuser date print "Test 1a: We must have here current date and hour for user (must match hour on browser). Note: Check your are logged so user TZ and DST are known."; -$offsettz=(empty($_SESSION['dol_tz'])?0:$_SESSION['dol_tz'])*60*60; -$offsetdst=(empty($_SESSION['dol_dst'])?0:$_SESSION['dol_dst'])*60*60; +$offsettz = (empty($_SESSION['dol_tz']) ? 0 : $_SESSION['dol_tz']) * 60 * 60; +$offsetdst = (empty($_SESSION['dol_dst']) ? 0 : $_SESSION['dol_dst']) * 60 * 60; print " (dol_tz=".$offsettz." dol_dst=".$dol_dst.")
    \n"; print $form->selectDate(dol_now(), 'test1a', 1, 1, 0); @@ -56,23 +56,23 @@ print '

    '."\n"; // Test4a: a select print "Test 4a: a select
    \n"; -$array=array(1=>'Value 1',2=>'Value 2',3=>'Value 3 ith a very long text. aze eazeae e ae aeae a e a ea ea ea e a e aea e ae aeaeaeaze.'); -$selected=3; +$array = array(1=>'Value 1', 2=>'Value 2', 3=>'Value 3 ith a very long text. aze eazeae e ae aeae a e a ea ea ea e a e aea e ae aeaeaeaze.'); +$selected = 3; print $form->selectarray('testselecta', $array, $selected, 1, 0, 0, '', 0, 0, 0, '', 'minwidth100', 1); print '

    '; print "Test 4b: a select
    \n"; -$array=array(1=>'Value 1',2=>'Value 2',3=>'Value 3'); -$selected=3; +$array = array(1=>'Value 1', 2=>'Value 2', 3=>'Value 3'); +$selected = 3; print $form->selectarray('testselectb', $array, $selected, 1, 0, 0, '', 0, 0, 0, '', 'minwidth100', 1); print '

    '."\n"; print "Test 4c: Select array with addjscombo not forced
    \n"; -$array=array(1=>'Value 1',2=>'Value 2',3=>'Value 3'); +$array = array(1=>'Value 1', 2=>'Value 2', 3=>'Value 3'); print $form->selectarray('selectarray', $array, $selected, 1, 0, 0, '', 0, 0, 0, '', 'minwidth100', 0); print '

    '."\n"; print "Test 4d: a select with ajax refresh and with onchange call of url
    \n"; -$selected=-1; +$selected = -1; print $form->selectArrayAjax('testselectc', DOL_URL_ROOT.'/core/ajax/selectsearchbox.php', $selected, '', '', 0, 1, 'minwidth100', 1); print '

    '."\n"; @@ -91,8 +91,8 @@ print '

    '."\n"; // Test5c: a multiselect print "Test 5c: a multiselect
    \n"; -$array=array(1=>'Value 1',2=>'Value 2',3=>'Value 3'); -$arrayselected=array(1,3); +$array = array(1=>'Value 1', 2=>'Value 2', 3=>'Value 3'); +$arrayselected = array(1, 3); print $form->multiselectarray('testmulti', $array, $arrayselected, '', 0, 'minwidth100'); print '
    '; diff --git a/htdocs/public/test/test_sessionlock.php b/htdocs/public/test/test_sessionlock.php index ef886d0e789..b10d1e892ec 100644 --- a/htdocs/public/test/test_sessionlock.php +++ b/htdocs/public/test/test_sessionlock.php @@ -1,22 +1,22 @@ trans('YourTicketSuccessfullySaved'), null, 'mesgs'); // Make a redirect to avoid to have ticket submitted twice if we make back - setEventMessages($langs->trans('MesgInfosPublicTicketCreatedWithTrackId', ''.$object->track_id.'', '' . $object->ref . ''), null, 'warnings'); + setEventMessages($langs->trans('MesgInfosPublicTicketCreatedWithTrackId', ''.$object->track_id.'', ''.$object->ref.''), null, 'warnings'); setEventMessages($langs->trans('PleaseRememberThisId'), null, 'warnings'); header("Location: index.php"); exit; diff --git a/htdocs/public/ticket/img/bg_ticket.png b/htdocs/public/ticket/img/bg_ticket.png index 344950d68f3..c5fd05c662a 100644 Binary files a/htdocs/public/ticket/img/bg_ticket.png and b/htdocs/public/ticket/img/bg_ticket.png differ diff --git a/htdocs/public/ticket/index.php b/htdocs/public/ticket/index.php index bbe831c1a84..37fdf9be219 100644 --- a/htdocs/public/ticket/index.php +++ b/htdocs/public/ticket/index.php @@ -24,13 +24,13 @@ if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (!defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) +if (!defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) if (!defined('NOIPCHECK')) define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip // For MultiCompany module. // Do not use GETPOST here, function is not defined and define must be done before including main.inc.php // TODO This should be useless. Because entity must be retreive from object ref and not from url. -$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1)); +$entity = (!empty($_GET['entity']) ? (int) $_GET['entity'] : (!empty($_POST['entity']) ? (int) $_POST['entity'] : 1)); if (is_numeric($entity)) define("DOLENTITY", $entity); require '../../main.inc.php'; @@ -68,11 +68,11 @@ $arrayofcss = array('/ticket/css/styles.css.php'); llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); print '
    '; -print '

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

    '; +print '

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

    '; print ''; print '
    '; diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index 4b3d181517d..8c022457f88 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -215,7 +215,7 @@ if ($action == "view_ticketlist") 't.date_close' => array('label' => $langs->trans("TicketCloseOn"), 'checked' => 0), 't.ref' => array('label' => $langs->trans("Ref"), 'checked' => 1), //'t.track_id' => array('label' => $langs->trans("IDTracking"), 'checked' => 0), - 't.fk_statut' => array('label' => $langs->trans("Statut"), 'checked' => 1), + 't.fk_statut' => array('label' => $langs->trans("Status"), 'checked' => 1), 't.subject' => array('label' => $langs->trans("Subject"), 'checked' => 1), 'type.code' => array('label' => $langs->trans("Type"), 'checked' => 1), 'category.code' => array('label' => $langs->trans("Category"), 'checked' => 1), diff --git a/htdocs/public/website/index.php b/htdocs/public/website/index.php index 3b37a164fc8..95f2efa492a 100644 --- a/htdocs/public/website/index.php +++ b/htdocs/public/website/index.php @@ -30,12 +30,12 @@ * \brief Wrapper to output pages when website is powered by Dolibarr instead of a native web server */ -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal -if (! defined('NOLOGIN')) define("NOLOGIN", 1); -if (! defined('NOCSRFCHECK')) define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); +if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal +if (!defined('NOLOGIN')) define("NOLOGIN", 1); +if (!defined('NOCSRFCHECK')) define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. +if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); +if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); /** * Header empty @@ -58,13 +58,13 @@ require '../../master.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -$error=0; -$websitekey=GETPOST('website', 'alpha'); -$pageid=GETPOST('page', 'alpha')?GETPOST('page', 'alpha'):GETPOST('pageid', 'alpha'); -$pageref=GETPOST('pageref', 'alphanohtml')?GETPOST('pageref', 'alphanohtml'):''; +$error = 0; +$websitekey = GETPOST('website', 'alpha'); +$pageid = GETPOST('page', 'alpha') ?GETPOST('page', 'alpha') : GETPOST('pageid', 'alpha'); +$pageref = GETPOST('pageref', 'alphanohtml') ?GETPOST('pageref', 'alphanohtml') : ''; $accessallowed = 1; -$type=''; +$type = ''; if (empty($pageid)) @@ -72,7 +72,7 @@ if (empty($pageid)) require_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; require_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; - $object=new Website($db); + $object = new Website($db); $object->fetch(0, $websitekey); if (empty($object->id)) @@ -87,19 +87,19 @@ if (empty($pageid)) } } - $objectpage=new WebsitePage($db); + $objectpage = new WebsitePage($db); if ($pageref) { - $result=$objectpage->fetch(0, $object->id, $pageref); + $result = $objectpage->fetch(0, $object->id, $pageref); if ($result > 0) { $pageid = $objectpage->id; } - elseif($result == 0) + elseif ($result == 0) { // Page not found from ref=pageurl, we try using alternative alias - $result=$objectpage->fetch(0, $object->id, null, $pageref); + $result = $objectpage->fetch(0, $object->id, null, $pageref); if ($result > 0) { $pageid = $objectpage->id; @@ -110,7 +110,7 @@ if (empty($pageid)) { if ($object->fk_default_home > 0) { - $result=$objectpage->fetch($object->fk_default_home); + $result = $objectpage->fetch($object->fk_default_home); if ($result > 0) { $pageid = $objectpage->id; @@ -119,11 +119,11 @@ if (empty($pageid)) if (empty($pageid)) { - $array=$objectpage->fetchAll($object->id); // TODO Can filter on container of type pages only ? + $array = $objectpage->fetchAll($object->id); // TODO Can filter on container of type pages only ? if (is_array($array) && count($array) > 0) { - $firstrep=reset($array); - $pageid=$firstrep->id; + $firstrep = reset($array); + $pageid = $firstrep->id; } } } @@ -135,14 +135,14 @@ if (empty($pageid)) $langs->load("website"); - if (! GETPOSTISSET('pageref')) print $langs->trans("PreviewOfSiteNotYetAvailable", $websitekey); + if (!GETPOSTISSET('pageref')) print $langs->trans("PreviewOfSiteNotYetAvailable", $websitekey); include DOL_DOCUMENT_ROOT.'/public/error-404.php'; exit; } -$appli=constant('DOL_APPLICATION_TITLE'); -if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; +$appli = constant('DOL_APPLICATION_TITLE'); +if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli = $conf->global->MAIN_APPLICATION_TITLE; @@ -163,19 +163,19 @@ if ($pageid == 'css') // No more used ? //if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate'); //else header('Cache-Control: no-cache'); - $original_file=$dolibarr_main_data_root.'/website/'.$websitekey.'/styles.css.php'; + $original_file = $dolibarr_main_data_root.'/website/'.$websitekey.'/styles.css.php'; } else { - $original_file=$dolibarr_main_data_root.'/website/'.$websitekey.'/page'.$pageid.'.tpl.php'; + $original_file = $dolibarr_main_data_root.'/website/'.$websitekey.'/page'.$pageid.'.tpl.php'; } // Find the subdirectory name as the reference -$refname=basename(dirname($original_file)."/"); +$refname = basename(dirname($original_file)."/"); // Security: // Limite acces si droits non corrects -if (! $accessallowed) +if (!$accessallowed) { accessforbidden(); } @@ -186,7 +186,7 @@ if (! $accessallowed) if (preg_match('/\.\./', $original_file) || preg_match('/[<>|]/', $original_file)) { dol_syslog("Refused to deliver file ".$original_file); - $file=basename($original_file); // Do no show plain path of original_file in shown error message + $file = basename($original_file); // Do no show plain path of original_file in shown error message dol_print_error(0, $langs->trans("ErrorFileNameInvalid", $file)); exit; } @@ -197,10 +197,10 @@ $filename = basename($original_file); // Output file on browser dol_syslog("index.php include $original_file $filename content-type=$type"); -$original_file_osencoded=dol_osencode($original_file); // New file name encoded in OS encoding charset +$original_file_osencoded = dol_osencode($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($original_file_osencoded)) +if (!file_exists($original_file_osencoded)) { // Return header 404 header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404); @@ -216,6 +216,6 @@ if (! file_exists($original_file_osencoded)) // Output page content define('USEDOLIBARRSERVER', 1); print ''."\n"; -include_once $original_file_osencoded; // Note: The pageXXX.tpl.php showed here contains a formatage with dolWebsiteOutput() at end of page. +include_once $original_file_osencoded; // Note: The pageXXX.tpl.php showed here contains a formatage with dolWebsiteOutput() at end of page. if (is_object($db)) $db->close(); diff --git a/htdocs/public/website/styles.css.php b/htdocs/public/website/styles.css.php index e8e4e9a8378..ce416bdd7b6 100644 --- a/htdocs/public/website/styles.css.php +++ b/htdocs/public/website/styles.css.php @@ -21,12 +21,12 @@ * \brief Page to output style page. Called with */ -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal -if (! defined('NOLOGIN')) define("NOLOGIN", 1); -if (! defined('NOCSRFCHECK')) define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); +if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal +if (!defined('NOLOGIN')) define("NOLOGIN", 1); +if (!defined('NOCSRFCHECK')) define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. +if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); +if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); /** * Header empty @@ -49,21 +49,21 @@ require '../../master.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -$error=0; -$website=GETPOST('website', 'alpha'); -$websiteid=GETPOST('websiteid', 'int'); -$pageid=GETPOST('page', 'alpha')?GETPOST('page', 'alpha'):GETPOST('pageid', 'alpha'); +$error = 0; +$website = GETPOST('website', 'alpha'); +$websiteid = GETPOST('websiteid', 'int'); +$pageid = GETPOST('page', 'alpha') ?GETPOST('page', 'alpha') : GETPOST('pageid', 'alpha'); $accessallowed = 1; -$type=''; +$type = ''; /* * View */ -$appli=constant('DOL_APPLICATION_TITLE'); -if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; +$appli = constant('DOL_APPLICATION_TITLE'); +if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli = $conf->global->MAIN_APPLICATION_TITLE; //print 'Directory with '.$appli.' websites.
    '; @@ -72,18 +72,18 @@ if (empty($pageid)) require_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; require_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; - $object=new Website($db); + $object = new Website($db); if ($websiteid) { $object->fetch($websiteid); - $website=$object->ref; + $website = $object->ref; } else { $object->fetch(0, $website); } - $objectpage=new WebsitePage($db); + $objectpage = new WebsitePage($db); /* Not required for CSS file $array=$objectpage->fetchAll($object->id); @@ -106,14 +106,14 @@ if (empty($pageid)) // Security: Delete string ../ into $original_file global $dolibarr_main_data_root; -$original_file=$dolibarr_main_data_root.'/website/'.$website.'/styles.css.php'; +$original_file = $dolibarr_main_data_root.'/website/'.$website.'/styles.css.php'; // Find the subdirectory name as the reference -$refname=basename(dirname($original_file)."/"); +$refname = basename(dirname($original_file)."/"); // Security: // Limite acces si droits non corrects -if (! $accessallowed) +if (!$accessallowed) { accessforbidden(); } @@ -124,7 +124,7 @@ if (! $accessallowed) if (preg_match('/\.\./', $original_file) || preg_match('/[<>|]/', $original_file)) { dol_syslog("Refused to deliver file ".$original_file); - $file=basename($original_file); // Do no show plain path of original_file in shown error message + $file = basename($original_file); // Do no show plain path of original_file in shown error message dol_print_error(0, $langs->trans("ErrorFileNameInvalid", $file)); exit; } @@ -135,10 +135,10 @@ $filename = basename($original_file); // Output file on browser dol_syslog("styles.css.php include $original_file $filename content-type=$type"); -$original_file_osencoded=dol_osencode($original_file); // New file name encoded in OS encoding charset +$original_file_osencoded = dol_osencode($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($original_file_osencoded)) +if (!file_exists($original_file_osencoded)) { $langs->load("website"); print $langs->trans("RequestedPageHasNoContentYet", $pageid); diff --git a/htdocs/reception/card.php b/htdocs/reception/card.php index 03dc37db114..85ff3715b73 100644 --- a/htdocs/reception/card.php +++ b/htdocs/reception/card.php @@ -1962,14 +1962,14 @@ elseif ($id || $ref) print '
    '; print '
    '; } - elseif ($object->statut == 0) + elseif ($object->statut == Reception::STATUS_DRAFT) { // edit-delete buttons print '
    '; print ''; // Display lines extrafields @@ -2058,13 +2058,15 @@ elseif ($id || $ref) } // Send - if ($object->statut > 0) - { - if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->reception->reception_advance->send) + if (empty($user->socid)) { + if ($object->statut > 0) { - print ''.$langs->trans('SendByMail').''; + if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->reception->reception_advance->send) + { + print ''.$langs->trans('SendByMail').''; + } + else print ''.$langs->trans('SendByMail').''; } - else print ''.$langs->trans('SendByMail').''; } // Create bill diff --git a/htdocs/reception/class/receptionstats.class.php b/htdocs/reception/class/receptionstats.class.php index 476e32898d9..d55bfeee8eb 100644 --- a/htdocs/reception/class/receptionstats.class.php +++ b/htdocs/reception/class/receptionstats.class.php @@ -24,9 +24,9 @@ * \brief File of class fo tmanage reception statistics */ -include_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php'; -include_once DOL_DOCUMENT_ROOT . '/reception/class/reception.class.php'; -include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; +include_once DOL_DOCUMENT_ROOT.'/core/class/stats.class.php'; +include_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; +include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; /** @@ -62,20 +62,20 @@ class ReceptionStats extends Stats $this->userid = $userid; $this->cachefilesuffix = $mode; - $object=new Reception($this->db); + $object = new Reception($this->db); $this->from = MAIN_DB_PREFIX.$object->table_element." as c"; //$this->from.= ", ".MAIN_DB_PREFIX."societe as s"; - $this->field='weight'; // Warning, unit of weight is NOT USED AND MUST BE - $this->where.= " c.fk_statut > 0"; // Not draft and not cancelled + $this->field = 'weight'; // Warning, unit of weight is NOT USED AND MUST BE + $this->where .= " c.fk_statut > 0"; // Not draft and not cancelled //$this->where.= " AND c.fk_soc = s.rowid AND c.entity = ".$conf->entity; - $this->where.= " AND c.entity = ".$conf->entity; - if (!$user->rights->societe->client->voir && !$this->socid) $this->where .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; + $this->where .= " AND c.entity = ".$conf->entity; + if (!$user->rights->societe->client->voir && !$this->socid) $this->where .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = ".$user->id; if ($this->socid) { - $this->where.=" AND c.fk_soc = ".$this->socid; + $this->where .= " AND c.fk_soc = ".$this->socid; } - if ($this->userid > 0) $this->where.=' AND c.fk_user_author = '.$this->userid; + if ($this->userid > 0) $this->where .= ' AND c.fk_user_author = '.$this->userid; } /** @@ -89,16 +89,16 @@ class ReceptionStats extends Stats global $user; $sql = "SELECT date_format(c.date_valid,'%m') as dm, COUNT(*) as nb"; - $sql.= " FROM ".$this->from; + $sql .= " FROM ".$this->from; if (!$user->rights->societe->client->voir && !$this->socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } - $sql.= " WHERE c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " WHERE c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); - $res=$this->_getNbByMonth($year, $sql); + $res = $this->_getNbByMonth($year, $sql); return $res; } @@ -113,11 +113,11 @@ class ReceptionStats extends Stats global $user; $sql = "SELECT date_format(c.date_valid,'%Y') as dm, COUNT(*) as nb, SUM(c.".$this->field.")"; - $sql.= " FROM ".$this->from; + $sql .= " FROM ".$this->from; if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); return $this->_getNbByYear($sql); } @@ -132,11 +132,11 @@ class ReceptionStats extends Stats global $user; $sql = "SELECT date_format(c.date_valid,'%Y') as year, COUNT(*) as nb, SUM(c.".$this->field.") as total, AVG(".$this->field.") as avg"; - $sql.= " FROM ".$this->from; + $sql .= " FROM ".$this->from; if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql.= " WHERE ".$this->where; - $sql.= " GROUP BY year"; - $sql.= $this->db->order('year', 'DESC'); + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY year"; + $sql .= $this->db->order('year', 'DESC'); return $this->_getAllByYear($sql); } diff --git a/htdocs/reception/contact.php b/htdocs/reception/contact.php index c4e4710fde7..7dd0bec2b38 100644 --- a/htdocs/reception/contact.php +++ b/htdocs/reception/contact.php @@ -39,16 +39,16 @@ $langs->load("orders"); $langs->load("receptions"); $langs->load("companies"); -$id=GETPOST('id', 'int'); -$ref=GETPOST('ref', 'alpha'); -$action=GETPOST('action', 'alpha'); +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'reception', $id, ''); $object = new Reception($db); -if ($id > 0 || ! empty($ref)) +if ($id > 0 || !empty($ref)) { $object->fetch($id, $ref); $object->fetch_thirdparty(); diff --git a/htdocs/reception/index.php b/htdocs/reception/index.php index b10c2ffe295..c615017ad37 100644 --- a/htdocs/reception/index.php +++ b/htdocs/reception/index.php @@ -40,11 +40,11 @@ $langs->loadLangs(array("orders", "receptions")); * View */ -$orderstatic=new CommandeFournisseur($db); -$companystatic=new Societe($db); -$reception=new Reception($db); +$orderstatic = new CommandeFournisseur($db); +$companystatic = new Societe($db); +$reception = new Reception($db); -$helpurl='EN:Module_Receptions|FR:Module_Receptions|ES:Módulo_Receptiones'; +$helpurl = 'EN:Module_Receptions|FR:Module_Receptions|ES:Módulo_Receptiones'; llxHeader('', $langs->trans("Reception"), $helpurl); print load_fiche_titre($langs->trans("ReceptionsArea")); @@ -53,7 +53,7 @@ print load_fiche_titre($langs->trans("ReceptionsArea")); print '
    '; -if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is useless due to the global search combo +if (!empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is useless due to the global search combo { print '
    '; print ''; @@ -73,23 +73,23 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele $clause = " WHERE "; $sql = "SELECT e.rowid, e.ref, e.ref_supplier,"; -$sql.= " s.nom as name, s.rowid as socid,"; -$sql.= " c.ref as commande_fournisseur_ref, c.rowid as commande_fournisseur_id"; -$sql.= " FROM ".MAIN_DB_PREFIX."reception as e"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON e.rowid = el.fk_target AND el.targettype = 'reception'"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."commande_fournisseur as c ON el.fk_source = c.rowid"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc"; +$sql .= " s.nom as name, s.rowid as socid,"; +$sql .= " c.ref as commande_fournisseur_ref, c.rowid as commande_fournisseur_id"; +$sql .= " FROM ".MAIN_DB_PREFIX."reception as e"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON e.rowid = el.fk_target AND el.targettype = 'reception'"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."commande_fournisseur as c ON el.fk_source = c.rowid"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc"; if (!$user->rights->societe->client->voir && !$socid) { - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON e.fk_soc = sc.fk_soc"; - $sql.= $clause." sc.fk_user = " .$user->id; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON e.fk_soc = sc.fk_soc"; + $sql .= $clause." sc.fk_user = ".$user->id; $clause = " AND "; } -$sql.= $clause." e.fk_statut = 0"; -$sql.= " AND e.entity IN (".getEntity('reception').")"; -if ($socid) $sql.= " AND c.fk_soc = ".$socid; +$sql .= $clause." e.fk_statut = 0"; +$sql .= " AND e.entity IN (".getEntity('reception').")"; +if ($socid) $sql .= " AND c.fk_soc = ".$socid; -$resql=$db->query($sql); +$resql = $db->query($sql); if ($resql) { print '
    '; @@ -105,9 +105,9 @@ if ($resql) { $obj = $db->fetch_object($resql); - $reception->id=$obj->rowid; - $reception->ref=$obj->ref; - $reception->ref_supplier=$obj->ref_supplier; + $reception->id = $obj->rowid; + $reception->ref = $obj->ref; + $reception->ref_supplier = $obj->ref_supplier; print '
    '; print ''; // Year print ''; @@ -252,11 +252,11 @@ print ''; print '';*/ print ''; -$oldyear=0; +$oldyear = 0; foreach ($data as $val) { $year = $val['year']; - while (! empty($year) && $oldyear > $year+1) + while (!empty($year) && $oldyear > $year + 1) { // If we have empty year $oldyear--; @@ -279,7 +279,7 @@ foreach ($data as $val) /*print ''; print '';*/ print ''; - $oldyear=$year; + $oldyear = $year; } print '
    '; - print 'id.'">'.img_edit().''; + print 'id.'">'.img_edit().''; print ''; - print 'id.'">'.img_delete().''; + print 'id.'">'.img_delete().''; print '
    '; print $reception->getNomUrl(1); @@ -139,19 +139,19 @@ $max = 5; */ $sql = "SELECT e.rowid, e.ref, e.ref_supplier,"; -$sql.= " s.nom as name, s.rowid as socid,"; -$sql.= " c.ref as commande_fournisseur_ref, c.rowid as commande_fournisseur_id"; -$sql.= " FROM ".MAIN_DB_PREFIX."reception as e"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON e.rowid = el.fk_target AND el.targettype = 'reception' AND el.sourcetype IN ('order_supplier')"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."commande_fournisseur as c ON el.fk_source = c.rowid AND el.sourcetype IN ('order_supplier') AND el.targettype = 'reception'"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc"; -if (! $user->rights->societe->client->voir && ! $socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON e.fk_soc = sc.fk_soc"; -$sql.= " WHERE e.entity IN (".getEntity('reception').")"; -if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND sc.fk_user = " .$user->id; -$sql.= " AND e.fk_statut = 1"; -if ($socid) $sql.= " AND c.fk_soc = ".$socid; -$sql.= " ORDER BY e.date_delivery DESC"; -$sql.= $db->plimit($max, 0); +$sql .= " s.nom as name, s.rowid as socid,"; +$sql .= " c.ref as commande_fournisseur_ref, c.rowid as commande_fournisseur_id"; +$sql .= " FROM ".MAIN_DB_PREFIX."reception as e"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON e.rowid = el.fk_target AND el.targettype = 'reception' AND el.sourcetype IN ('order_supplier')"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."commande_fournisseur as c ON el.fk_source = c.rowid AND el.sourcetype IN ('order_supplier') AND el.targettype = 'reception'"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc"; +if (!$user->rights->societe->client->voir && !$socid) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON e.fk_soc = sc.fk_soc"; +$sql .= " WHERE e.entity IN (".getEntity('reception').")"; +if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND sc.fk_user = ".$user->id; +$sql .= " AND e.fk_statut = 1"; +if ($socid) $sql .= " AND c.fk_soc = ".$socid; +$sql .= " ORDER BY e.date_delivery DESC"; +$sql .= $db->plimit($max, 0); $resql = $db->query($sql); if ($resql) @@ -168,9 +168,9 @@ if ($resql) { $obj = $db->fetch_object($resql); - $reception->id=$obj->rowid; - $reception->ref=$obj->ref; - $reception->ref_supplier=$obj->ref_supplier; + $reception->id = $obj->rowid; + $reception->ref = $obj->ref; + $reception->ref_supplier = $obj->ref_supplier; print '
    '; print $reception->getNomUrl(1); @@ -179,8 +179,8 @@ if ($resql) print ''; if ($obj->commande_fournisseur_id > 0) { - $orderstatic->id=$obj->commande_fournisseur_id; - $orderstatic->ref=$obj->commande_fournisseur_ref; + $orderstatic->id = $obj->commande_fournisseur_id; + $orderstatic->ref = $obj->commande_fournisseur_ref; print $orderstatic->getNomUrl(1); } else print ' '; @@ -200,16 +200,16 @@ else dol_print_error($db); */ $sql = "SELECT c.rowid, c.ref, c.ref_supplier as ref_supplier, c.fk_statut as status, c.billed as billed, s.nom as name, s.rowid as socid"; -$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c,"; -$sql.= " ".MAIN_DB_PREFIX."societe as s"; -if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; -$sql.= " WHERE c.fk_soc = s.rowid"; -$sql.= " AND c.entity IN (".getEntity('supplier_order').")"; -$sql.= " AND c.fk_statut IN (".CommandeFournisseur::STATUS_ORDERSENT.", ".CommandeFournisseur::STATUS_RECEIVED_PARTIALLY.")"; -if ($socid > 0) $sql.= " AND c.fk_soc = ".$socid; -if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; -$sql.= " ORDER BY c.rowid ASC"; -$resql=$db->query($sql); +$sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c,"; +$sql .= " ".MAIN_DB_PREFIX."societe as s"; +if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +$sql .= " WHERE c.fk_soc = s.rowid"; +$sql .= " AND c.entity IN (".getEntity('supplier_order').")"; +$sql .= " AND c.fk_statut IN (".CommandeFournisseur::STATUS_ORDERSENT.", ".CommandeFournisseur::STATUS_RECEIVED_PARTIALLY.")"; +if ($socid > 0) $sql .= " AND c.fk_soc = ".$socid; +if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; +$sql .= " ORDER BY c.rowid ASC"; +$resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -226,14 +226,14 @@ if ($resql) { $obj = $db->fetch_object($resql); - $orderstatic->id=$obj->rowid; - $orderstatic->ref=$obj->ref; - $orderstatic->ref_supplier=$obj->ref_supplier; - $orderstatic->statut=$obj->status; - $orderstatic->facturee=$obj->billed; + $orderstatic->id = $obj->rowid; + $orderstatic->ref = $obj->ref; + $orderstatic->ref_supplier = $obj->ref_supplier; + $orderstatic->statut = $obj->status; + $orderstatic->facturee = $obj->billed; - $companystatic->name=$obj->name; - $companystatic->id=$obj->socid; + $companystatic->name = $obj->name; + $companystatic->id = $obj->socid; print '
    '; diff --git a/htdocs/reception/stats/index.php b/htdocs/reception/stats/index.php index 251247a252b..a93003b0ef9 100644 --- a/htdocs/reception/stats/index.php +++ b/htdocs/reception/stats/index.php @@ -29,11 +29,11 @@ require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; require_once DOL_DOCUMENT_ROOT.'/reception/class/receptionstats.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; -$WIDTH=DolGraph::getDefaultGraphSizeForStats('width'); -$HEIGHT=DolGraph::getDefaultGraphSizeForStats('height'); +$WIDTH = DolGraph::getDefaultGraphSizeForStats('width'); +$HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); -$userid=GETPOST('userid', 'int'); -$socid=GETPOST('socid', 'int'); +$userid = GETPOST('userid', 'int'); +$socid = GETPOST('socid', 'int'); // Security check if ($user->socid > 0) { @@ -41,11 +41,11 @@ if ($user->socid > 0) $socid = $user->socid; } -$nowyear=strftime("%Y", dol_now()); -$year = GETPOST('year')>0?GETPOST('year'):$nowyear; +$nowyear = strftime("%Y", dol_now()); +$year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; //$startyear=$year-2; -$startyear=$year-1; -$endyear=$year; +$startyear = $year - 1; +$endyear = $year; $langs->load("reception"); $langs->load("other"); @@ -57,7 +57,7 @@ $langs->load("companies"); * View */ -$form=new Form($db); +$form = new Form($db); llxHeader(); @@ -66,7 +66,7 @@ print load_fiche_titre($langs->trans("StatisticsOfReceptions"), $mesg); dol_mkdir($dir); -$stats = new ReceptionStats($db, $socid, '', ($userid>0?$userid:0)); +$stats = new ReceptionStats($db, $socid, '', ($userid > 0 ? $userid : 0)); // Build graphic number of object $data = $stats->getNbByMonthWithPrevYear($endyear, $startyear); @@ -85,13 +85,13 @@ else $px1 = new DolGraph(); $mesg = $px1->isGraphKo(); -if (! $mesg) +if (!$mesg) { $px1->SetData($data); - $i=$startyear;$legend=array(); + $i = $startyear; $legend = array(); while ($i <= $endyear) { - $legend[]=$i; + $legend[] = $i; $i++; } $px1->SetLegend($legend); @@ -102,7 +102,7 @@ if (! $mesg) $px1->SetYLabel($langs->trans("NbOfReceptions")); $px1->SetShading(3); $px1->SetHorizTickIncrement(1); - $px1->mode='depth'; + $px1->mode = 'depth'; $px1->SetTitle($langs->trans("NumberOfReceptionsByMonth")); $px1->draw($filenamenb, $fileurlnb); @@ -190,22 +190,22 @@ if (! $mesg) // Show array $data = $stats->getAllByYear(); -$arrayyears=array(); -foreach($data as $val) { - if (! empty($val['year'])) { - $arrayyears[$val['year']]=$val['year']; +$arrayyears = array(); +foreach ($data as $val) { + if (!empty($val['year'])) { + $arrayyears[$val['year']] = $val['year']; } } -if (! count($arrayyears)) $arrayyears[$nowyear]=$nowyear; +if (!count($arrayyears)) $arrayyears[$nowyear] = $nowyear; -$h=0; +$h = 0; $head = array(); -$head[$h][0] = DOL_URL_ROOT . '/commande/stats/index.php'; +$head[$h][0] = DOL_URL_ROOT.'/commande/stats/index.php'; $head[$h][1] = $langs->trans("ByMonthYear"); $head[$h][2] = 'byyear'; $h++; -$type='reception_stats'; +$type = 'reception_stats'; complete_head_from_modules($conf, $langs, null, $head, $h, $type); @@ -233,8 +233,8 @@ print '
    '; print '
    '.$langs->trans("Year").''; - if (! in_array($year, $arrayyears)) $arrayyears[$year]=$year; - if (! in_array($nowyear, $arrayyears)) $arrayyears[$nowyear]=$nowyear; + if (!in_array($year, $arrayyears)) $arrayyears[$year] = $year; + if (!in_array($nowyear, $arrayyears)) $arrayyears[$nowyear] = $nowyear; arsort($arrayyears); print $form->selectarray('year', $arrayyears, $year, 0); print '
    '.$langs->trans("NbOfReceptions").''.$langs->trans("AmountAverage").'
    '.price(price2num($val['total'],'MT'),1).''.price(price2num($val['avg'],'MT'),1).'
    '; diff --git a/htdocs/reception/stats/month.php b/htdocs/reception/stats/month.php index 3dd2dd39300..d2cf628e605 100644 --- a/htdocs/reception/stats/month.php +++ b/htdocs/reception/stats/month.php @@ -34,8 +34,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; llxHeader(); -$WIDTH=DolGraph::getDefaultGraphSizeForStats('width'); -$HEIGHT=DolGraph::getDefaultGraphSizeForStats('height'); +$WIDTH = DolGraph::getDefaultGraphSizeForStats('width'); +$HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); $mesg = ''; @@ -51,7 +51,7 @@ $fileurl = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstats&file=reception $px = new DolGraph(); $mesg = $px->isGraphKo(); -if (! $mesg) +if (!$mesg) { $px->SetData($data); $px->SetMaxValue($px->GetCeilMaxValue()); diff --git a/htdocs/reception/tpl/linkedobjectblock.tpl.php b/htdocs/reception/tpl/linkedobjectblock.tpl.php index 0de915f8c0a..7d902888cd0 100644 --- a/htdocs/reception/tpl/linkedobjectblock.tpl.php +++ b/htdocs/reception/tpl/linkedobjectblock.tpl.php @@ -18,7 +18,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -41,17 +41,17 @@ $langs->load("receptions"); $linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc', 0, 0, 1); -$total=0; $ilink=0; +$total = 0; $ilink = 0; foreach ($linkedObjectBlock as $key => $objectlink) { $ilink++; - $trclass='oddeven'; - if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total'; + $trclass = 'oddeven'; + if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass .= ' liste_sub_total'; ?>
    trans("Reception"); ?> - global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) print ' + global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) print ' getNomUrl(1); ?>
    trans("Total"); ?>
    ' . $langs->trans("ResourceType") . ''.$langs->trans("ResourceType").''; print $object->type_label; print '
    ' . $langs->trans("ResourceType") . ''.$langs->trans("ResourceType").''; print $object->type_label; print ''; - print ''; + print ''; print img_edit(); print ''; print ' '; print ''; - print img_delete(); + print img_delete('', 'class="marginleftonly"'); print ''; print '
    ' . $langs->trans("ResourceType") . ''.$langs->trans("ResourceType").''; print $object->type_label; print ''; - if (! empty($conf->accounting->enabled)) + if (!empty($conf->accounting->enabled)) { print $formaccounting->select_account($conf->global->$key, $key, 1, '', 1, 1); } diff --git a/htdocs/salaries/admin/salaries_extrafields.php b/htdocs/salaries/admin/salaries_extrafields.php index 2ea9ba62919..48f574557ec 100644 --- a/htdocs/salaries/admin/salaries_extrafields.php +++ b/htdocs/salaries/admin/salaries_extrafields.php @@ -28,19 +28,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; // Load translation files required by the page -$langs->loadLangs(array("admin","salaries")); +$langs->loadLangs(array("admin", "salaries")); $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='payment_salary'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'payment_salary'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -59,11 +59,11 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; $textobject = $langs->transnoentitiesnoconv("Salaries"); -$help_url=''; +$help_url = ''; llxHeader('', $langs->trans("SalariesSetup"), $help_url); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SalariesSetup"), $linkback, 'title_setup'); @@ -104,7 +104,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print '

    '; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/salaries/card.php b/htdocs/salaries/card.php index 39f7fee3397..ac1c08f2948 100644 --- a/htdocs/salaries/card.php +++ b/htdocs/salaries/card.php @@ -26,20 +26,20 @@ */ require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/salaries/class/paymentsalary.class.php'; -require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/salaries.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; -if (! empty($conf->projet->enabled)) +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/salaries/class/paymentsalary.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +if (!empty($conf->projet->enabled)) { - require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; - require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php'; + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } // Load translation files required by the page -$langs->loadLangs(array("compta","banks","bills","users","salaries","hrm")); -if (! empty($conf->projet->enabled)) $langs->load("projects"); +$langs->loadLangs(array("compta", "banks", "bills", "users", "salaries", "hrm")); +if (!empty($conf->projet->enabled)) $langs->load("projects"); $id = GETPOST("id", 'int'); $action = GETPOST('action', 'aZ09'); @@ -54,7 +54,7 @@ $dateep = dol_mktime(12, 0, 0, GETPOST("dateepmonth", 'int'), GETPOST("dateepday // Security check $socid = GETPOST("socid", "int"); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'salaries', '', '', ''); $object = new PaymentSalary($db); @@ -381,52 +381,52 @@ if ($action == 'create') if ($id) { - $head=salaries_prepare_head($object); + $head = salaries_prepare_head($object); dol_fiche_head($head, 'card', $langs->trans("SalaryPayment"), -1, 'payment'); - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; + $morehtmlref = '
    '; // Employee - $userstatic=new User($db); + $userstatic = new User($db); $userstatic->fetch($object->fk_user); - $morehtmlref.=$langs->trans('Employee') . ' : ' . $userstatic->getNomUrl(1); + $morehtmlref .= $langs->trans('Employee').' : '.$userstatic->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->projet->enabled)) { - $morehtmlref.='
    '.$langs->trans('Project') . ' '; + $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->salaries->write) { if ($action != 'classify') { - $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= '
    '; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } - $morehtmlref.='
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', ''); diff --git a/htdocs/salaries/class/paymentsalary.class.php b/htdocs/salaries/class/paymentsalary.class.php index 5aee0a83a29..44c25b09a13 100644 --- a/htdocs/salaries/class/paymentsalary.class.php +++ b/htdocs/salaries/class/paymentsalary.class.php @@ -23,7 +23,7 @@ */ // Put here all includes required by your class file -require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; /** @@ -34,17 +34,17 @@ class PaymentSalary extends CommonObject /** * @var string ID to identify managed object */ - public $element='payment_salary'; + public $element = 'payment_salary'; /** * @var string Name of table without prefix where object is stored */ - public $table_element='payment_salary'; + public $table_element = 'payment_salary'; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png */ - public $picto='payment'; + public $picto = 'payment'; public $tms; @@ -112,17 +112,17 @@ class PaymentSalary extends CommonObject { global $conf, $langs; - $error=0; + $error = 0; // Clean parameters - $this->amount=trim($this->amount); - $this->label=trim($this->label); - $this->note=trim($this->note); + $this->amount = trim($this->amount); + $this->label = trim($this->label); + $this->note = trim($this->note); // Check parameters if (empty($this->fk_user) || $this->fk_user < 0) { - $this->error='ErrorBadParameter'; + $this->error = 'ErrorBadParameter'; return -1; } @@ -131,38 +131,38 @@ class PaymentSalary extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."payment_salary SET"; - $sql.= " tms='".$this->db->idate($this->tms)."',"; - $sql.= " fk_user=".$this->fk_user.","; - $sql.= " datep='".$this->db->idate($this->datep)."',"; - $sql.= " datev='".$this->db->idate($this->datev)."',"; - $sql.= " amount=".price2num($this->amount).","; - $sql.= " fk_projet=".((int) $this->fk_project).","; - $sql.= " fk_typepayment=".$this->fk_typepayment."',"; - $sql.= " num_payment='".$this->db->escape($this->num_payment)."',"; - $sql.= " label='".$this->db->escape($this->label)."',"; - $sql.= " datesp='".$this->db->idate($this->datesp)."',"; - $sql.= " dateep='".$this->db->idate($this->dateep)."',"; - $sql.= " note='".$this->db->escape($this->note)."',"; - $sql.= " fk_bank=".($this->fk_bank > 0 ? (int) $this->fk_bank : "null").","; - $sql.= " fk_user_author=".((int) $this->fk_user_author).","; - $sql.= " fk_user_modif=".($this->fk_user_modif > 0 ? (int) $this->fk_user_modif : 'null'); + $sql .= " tms='".$this->db->idate($this->tms)."',"; + $sql .= " fk_user=".$this->fk_user.","; + $sql .= " datep='".$this->db->idate($this->datep)."',"; + $sql .= " datev='".$this->db->idate($this->datev)."',"; + $sql .= " amount=".price2num($this->amount).","; + $sql .= " fk_projet=".((int) $this->fk_project).","; + $sql .= " fk_typepayment=".$this->fk_typepayment."',"; + $sql .= " num_payment='".$this->db->escape($this->num_payment)."',"; + $sql .= " label='".$this->db->escape($this->label)."',"; + $sql .= " datesp='".$this->db->idate($this->datesp)."',"; + $sql .= " dateep='".$this->db->idate($this->dateep)."',"; + $sql .= " note='".$this->db->escape($this->note)."',"; + $sql .= " fk_bank=".($this->fk_bank > 0 ? (int) $this->fk_bank : "null").","; + $sql .= " fk_user_author=".((int) $this->fk_user_author).","; + $sql .= " fk_user_modif=".($this->fk_user_modif > 0 ? (int) $this->fk_user_modif : 'null'); - $sql.= " WHERE rowid=".$this->id; + $sql .= " WHERE rowid=".$this->id; dol_syslog(get_class($this)."::update", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) + if (!$resql) { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } // Update extrafield - if (! $error) + if (!$error) { if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used { - $result=$this->insertExtraFields(); + $result = $this->insertExtraFields(); if ($result < 0) { $error++; @@ -170,15 +170,15 @@ class PaymentSalary extends CommonObject } } - if (! $notrigger) + if (!$notrigger) { // Call trigger - $result=$this->call_trigger('PAYMENT_SALARY_MODIFY', $user); + $result = $this->call_trigger('PAYMENT_SALARY_MODIFY', $user); if ($result < 0) $error++; // End call triggers } - if (! $error) + if (!$error) { $this->db->commit(); return 1; @@ -202,59 +202,59 @@ class PaymentSalary extends CommonObject { global $langs; $sql = "SELECT"; - $sql.= " s.rowid,"; + $sql .= " s.rowid,"; - $sql.= " s.tms,"; - $sql.= " s.fk_user,"; - $sql.= " s.datep,"; - $sql.= " s.datev,"; - $sql.= " s.amount,"; - $sql.= " s.fk_projet as fk_project,"; - $sql.= " s.fk_typepayment,"; - $sql.= " s.num_payment,"; - $sql.= " s.label,"; - $sql.= " s.datesp,"; - $sql.= " s.dateep,"; - $sql.= " s.note,"; - $sql.= " s.fk_bank,"; - $sql.= " s.fk_user_author,"; - $sql.= " s.fk_user_modif,"; - $sql.= " b.fk_account,"; - $sql.= " b.fk_type,"; - $sql.= " b.rappro"; + $sql .= " s.tms,"; + $sql .= " s.fk_user,"; + $sql .= " s.datep,"; + $sql .= " s.datev,"; + $sql .= " s.amount,"; + $sql .= " s.fk_projet as fk_project,"; + $sql .= " s.fk_typepayment,"; + $sql .= " s.num_payment,"; + $sql .= " s.label,"; + $sql .= " s.datesp,"; + $sql .= " s.dateep,"; + $sql .= " s.note,"; + $sql .= " s.fk_bank,"; + $sql .= " s.fk_user_author,"; + $sql .= " s.fk_user_modif,"; + $sql .= " b.fk_account,"; + $sql .= " b.fk_type,"; + $sql .= " b.rappro"; - $sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON s.fk_bank = b.rowid"; - $sql.= " WHERE s.rowid = ".$id; + $sql .= " FROM ".MAIN_DB_PREFIX."payment_salary as s"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank as b ON s.fk_bank = b.rowid"; + $sql .= " WHERE s.rowid = ".$id; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { if ($this->db->num_rows($resql)) { $obj = $this->db->fetch_object($resql); - $this->id = $obj->rowid; + $this->id = $obj->rowid; $this->ref = $obj->rowid; $this->tms = $this->db->jdate($obj->tms); - $this->fk_user = $obj->fk_user; + $this->fk_user = $obj->fk_user; $this->datep = $this->db->jdate($obj->datep); $this->datev = $this->db->jdate($obj->datev); - $this->amount = $obj->amount; - $this->fk_project = $obj->fk_project; - $this->type_payement = $obj->fk_typepayment; - $this->num_payment = $obj->num_payment; + $this->amount = $obj->amount; + $this->fk_project = $obj->fk_project; + $this->type_payement = $obj->fk_typepayment; + $this->num_payment = $obj->num_payment; $this->label = $obj->label; $this->datesp = $this->db->jdate($obj->datesp); $this->dateep = $this->db->jdate($obj->dateep); $this->note = $obj->note; - $this->fk_bank = $obj->fk_bank; - $this->fk_user_author = $obj->fk_user_author; - $this->fk_user_modif = $obj->fk_user_modif; - $this->fk_account = $obj->fk_account; - $this->fk_type = $obj->fk_type; - $this->rappro = $obj->rappro; + $this->fk_bank = $obj->fk_bank; + $this->fk_user_author = $obj->fk_user_author; + $this->fk_user_modif = $obj->fk_user_modif; + $this->fk_account = $obj->fk_account; + $this->fk_type = $obj->fk_type; + $this->rappro = $obj->rappro; // Retreive all extrafield // fetch optionals attributes and labels @@ -266,7 +266,7 @@ class PaymentSalary extends CommonObject } else { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } } @@ -282,21 +282,21 @@ class PaymentSalary extends CommonObject { global $conf, $langs; - $error=0; + $error = 0; // Call trigger - $result=$this->call_trigger('PAYMENT_SALARY_DELETE', $user); + $result = $this->call_trigger('PAYMENT_SALARY_DELETE', $user); if ($result < 0) return -1; // End call triggers // Delete donation - if (! $error) + if (!$error) { - $sql = "DELETE FROM " . MAIN_DB_PREFIX . "payment_salary_extrafields"; - $sql.= " WHERE fk_object=" . $this->id; + $sql = "DELETE FROM ".MAIN_DB_PREFIX."payment_salary_extrafields"; + $sql .= " WHERE fk_object=".$this->id; $resql = $this->db->query($sql); - if (! $resql) + if (!$resql) { $this->errors[] = $this->db->lasterror(); $error++; @@ -304,13 +304,13 @@ class PaymentSalary extends CommonObject } $sql = "DELETE FROM ".MAIN_DB_PREFIX."payment_salary"; - $sql.= " WHERE rowid=".$this->id; + $sql .= " WHERE rowid=".$this->id; dol_syslog(get_class($this)."::delete", LOG_DEBUG); $resql = $this->db->query($sql); - if (! $resql) + if (!$resql) { - $this->error="Error ".$this->db->lasterror(); + $this->error = "Error ".$this->db->lasterror(); return -1; } @@ -327,20 +327,20 @@ class PaymentSalary extends CommonObject */ public function initAsSpecimen() { - $this->id=0; + $this->id = 0; - $this->tms=''; - $this->fk_user=''; - $this->datep=''; - $this->datev=''; - $this->amount=''; - $this->label=''; - $this->datesp=''; - $this->dateep=''; - $this->note=''; - $this->fk_bank=''; - $this->fk_user_author=''; - $this->fk_user_modif=''; + $this->tms = ''; + $this->fk_user = ''; + $this->datep = ''; + $this->datev = ''; + $this->amount = ''; + $this->label = ''; + $this->datesp = ''; + $this->dateep = ''; + $this->note = ''; + $this->fk_bank = ''; + $this->fk_user_author = ''; + $this->fk_user_modif = ''; } /** @@ -351,43 +351,43 @@ class PaymentSalary extends CommonObject */ public function create($user) { - global $conf,$langs; + global $conf, $langs; - $error=0; - $now=dol_now(); + $error = 0; + $now = dol_now(); // Clean parameters - $this->amount=price2num(trim($this->amount)); - $this->label=trim($this->label); - $this->note=trim($this->note); - $this->fk_bank=trim($this->fk_bank); - $this->fk_user_author=trim($this->fk_user_author); - $this->fk_user_modif=trim($this->fk_user_modif); + $this->amount = price2num(trim($this->amount)); + $this->label = trim($this->label); + $this->note = trim($this->note); + $this->fk_bank = trim($this->fk_bank); + $this->fk_user_author = trim($this->fk_user_author); + $this->fk_user_modif = trim($this->fk_user_modif); // Check parameters - if (! $this->label) + if (!$this->label) { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")); return -3; } if ($this->fk_user < 0 || $this->fk_user == '') { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("Employee")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Employee")); return -4; } if ($this->amount < 0 || $this->amount == '') { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount")); return -5; } - if (! empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0)) + if (!empty($conf->banque->enabled) && (empty($this->accountid) || $this->accountid <= 0)) { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("Account")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Account")); return -6; } - if (! empty($conf->banque->enabled) && (empty($this->type_payment) || $this->type_payment <= 0)) + if (!empty($conf->banque->enabled) && (empty($this->type_payment) || $this->type_payment <= 0)) { - $this->error=$langs->trans("ErrorFieldRequired", $langs->transnoentities("PaymentMode")); + $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("PaymentMode")); return -7; } @@ -395,40 +395,40 @@ class PaymentSalary extends CommonObject // Insert into llx_payment_salary $sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_salary (fk_user"; - $sql.= ", datep"; - $sql.= ", datev"; - $sql.= ", amount"; - $sql.= ", fk_projet"; - $sql.= ", salary"; - $sql.= ", fk_typepayment"; - $sql.= ", num_payment"; - if ($this->note) $sql.= ", note"; - $sql.= ", label"; - $sql.= ", datesp"; - $sql.= ", dateep"; - $sql.= ", fk_user_author"; - $sql.= ", datec"; - $sql.= ", fk_bank"; - $sql.= ", entity"; - $sql.= ") "; - $sql.= " VALUES ("; - $sql.= "'".$this->db->escape($this->fk_user)."'"; - $sql.= ", '".$this->db->idate($this->datep)."'"; - $sql.= ", '".$this->db->idate($this->datev)."'"; - $sql.= ", ".$this->amount; - $sql.= ", ".($this->fk_project > 0? $this->fk_project : 0); - $sql.= ", ".($this->salary > 0 ? $this->salary : "null"); - $sql.= ", ".$this->db->escape($this->type_payment); - $sql.= ", '".$this->db->escape($this->num_payment)."'"; - if ($this->note) $sql.= ", '".$this->db->escape($this->note)."'"; - $sql.= ", '".$this->db->escape($this->label)."'"; - $sql.= ", '".$this->db->idate($this->datesp)."'"; - $sql.= ", '".$this->db->idate($this->dateep)."'"; - $sql.= ", '".$this->db->escape($user->id)."'"; - $sql.= ", '".$this->db->idate($now)."'"; - $sql.= ", NULL"; - $sql.= ", ".$conf->entity; - $sql.= ")"; + $sql .= ", datep"; + $sql .= ", datev"; + $sql .= ", amount"; + $sql .= ", fk_projet"; + $sql .= ", salary"; + $sql .= ", fk_typepayment"; + $sql .= ", num_payment"; + if ($this->note) $sql .= ", note"; + $sql .= ", label"; + $sql .= ", datesp"; + $sql .= ", dateep"; + $sql .= ", fk_user_author"; + $sql .= ", datec"; + $sql .= ", fk_bank"; + $sql .= ", entity"; + $sql .= ") "; + $sql .= " VALUES ("; + $sql .= "'".$this->db->escape($this->fk_user)."'"; + $sql .= ", '".$this->db->idate($this->datep)."'"; + $sql .= ", '".$this->db->idate($this->datev)."'"; + $sql .= ", ".$this->amount; + $sql .= ", ".($this->fk_project > 0 ? $this->fk_project : 0); + $sql .= ", ".($this->salary > 0 ? $this->salary : "null"); + $sql .= ", ".$this->db->escape($this->type_payment); + $sql .= ", '".$this->db->escape($this->num_payment)."'"; + if ($this->note) $sql .= ", '".$this->db->escape($this->note)."'"; + $sql .= ", '".$this->db->escape($this->label)."'"; + $sql .= ", '".$this->db->idate($this->datesp)."'"; + $sql .= ", '".$this->db->idate($this->dateep)."'"; + $sql .= ", '".$this->db->escape($user->id)."'"; + $sql .= ", '".$this->db->idate($now)."'"; + $sql .= ", NULL"; + $sql .= ", ".$conf->entity; + $sql .= ")"; dol_syslog(get_class($this)."::create", LOG_DEBUG); $result = $this->db->query($sql); @@ -438,20 +438,20 @@ class PaymentSalary extends CommonObject if ($this->id > 0) { - if (! empty($conf->banque->enabled) && ! empty($this->amount)) + if (!empty($conf->banque->enabled) && !empty($this->amount)) { // Insert into llx_bank require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $acc = new Account($this->db); - $result=$acc->fetch($this->accountid); + $result = $acc->fetch($this->accountid); if ($result <= 0) dol_print_error($this->db); // Update extrafield - if (! $error) { + if (!$error) { if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used { - $result=$this->insertExtraFields(); + $result = $this->insertExtraFields(); if ($result < 0) { $error++; @@ -483,28 +483,28 @@ class PaymentSalary extends CommonObject } else { - $this->error=$acc->error; + $this->error = $acc->error; $error++; } - if (! $error) + if (!$error) { // Add link 'payment_salary' in bank_url between payment and bank transaction - $url=DOL_URL_ROOT.'/salaries/card.php?id='; + $url = DOL_URL_ROOT.'/salaries/card.php?id='; - $result=$acc->add_url_line($bank_line_id, $this->id, $url, "(SalaryPayment)", "payment_salary"); + $result = $acc->add_url_line($bank_line_id, $this->id, $url, "(SalaryPayment)", "payment_salary"); if ($result <= 0) { - $this->error=$acc->error; + $this->error = $acc->error; $error++; } } - $fuser=new User($this->db); + $fuser = new User($this->db); $fuser->fetch($this->fk_user); // Add link 'user' in bank_url between operation and bank transaction - $result=$acc->add_url_line( + $result = $acc->add_url_line( $bank_line_id, $this->fk_user, DOL_URL_ROOT.'/user/card.php?id=', @@ -515,19 +515,19 @@ class PaymentSalary extends CommonObject if ($result <= 0) { - $this->error=$acc->error; + $this->error = $acc->error; $error++; } } // Call trigger - $result=$this->call_trigger('PAYMENT_SALARY_CREATE', $user); + $result = $this->call_trigger('PAYMENT_SALARY_CREATE', $user); if ($result < 0) $error++; // End call triggers } else $error++; - if (! $error) + if (!$error) { $this->db->commit(); return $this->id; @@ -540,7 +540,7 @@ class PaymentSalary extends CommonObject } else { - $this->error=$this->db->error(); + $this->error = $this->db->error(); $this->db->rollback(); return -1; } @@ -557,7 +557,7 @@ class PaymentSalary extends CommonObject { // phpcs:enable $sql = 'UPDATE '.MAIN_DB_PREFIX.'payment_salary SET fk_bank = '.$id_bank; - $sql.= ' WHERE rowid = '.$this->id; + $sql .= ' WHERE rowid = '.$this->id; $result = $this->db->query($sql); if ($result) { @@ -587,34 +587,34 @@ class PaymentSalary extends CommonObject global $dolibarr_main_authentication, $dolibarr_main_demo; global $menumanager; - if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips + if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips $result = ''; - $label = '' . $langs->trans("ShowSalaryPayment") . ''; - $label.= '
    '; - $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; + $label = ''.$langs->trans("ShowSalaryPayment").''; + $label .= '
    '; + $label .= ''.$langs->trans('Ref').': '.$this->ref; $url = DOL_URL_ROOT.'/salaries/card.php?id='.$this->id; if ($option != 'nolink') { // Add param to save lastsearch_values or not - $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0); - if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1; - if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1; + if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1'; } - $linkclose=''; + $linkclose = ''; if (empty($notooltip)) { - if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $label=$langs->trans("ShowMyObject"); - $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; + $label = $langs->trans("ShowMyObject"); + $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; } - $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; - $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"'; + $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; /* $hookmanager->initHooks(array('myobjectdao')); @@ -623,22 +623,22 @@ class PaymentSalary extends CommonObject if ($reshook > 0) $linkclose = $hookmanager->resPrint; */ } - else $linkclose = ($morecss?' class="'.$morecss.'"':''); + else $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); $linkstart = ''; - $linkend=''; + $linkstart .= $linkclose.'>'; + $linkend = ''; $result .= $linkstart; - if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); - if ($withpicto != 2) $result.= $this->ref; + if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + if ($withpicto != 2) $result .= $this->ref; $result .= $linkend; //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); - global $action,$hookmanager; + global $action, $hookmanager; $hookmanager->initHooks(array('salarypayment')); - $parameters=array('id'=>$this->id, 'getnomurl'=>$result); - $reshook=$hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + $parameters = array('id'=>$this->id, 'getnomurl'=>$result); + $reshook = $hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if ($reshook > 0) $result = $hookmanager->resPrint; else $result .= $hookmanager->resPrint; @@ -654,8 +654,8 @@ class PaymentSalary extends CommonObject public function info($id) { $sql = 'SELECT ps.rowid, ps.datec, ps.fk_user_author'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'payment_salary as ps'; - $sql.= ' WHERE ps.rowid = '.$id; + $sql .= ' FROM '.MAIN_DB_PREFIX.'payment_salary as ps'; + $sql .= ' WHERE ps.rowid = '.$id; dol_syslog(get_class($this).'::info', LOG_DEBUG); $result = $this->db->query($sql); @@ -705,7 +705,7 @@ class PaymentSalary extends CommonObject public function LibStatut($status, $mode = 0) { // phpcs:enable - global $langs; // TODO Renvoyer le libelle anglais et faire traduction a affichage + global $langs; // TODO Renvoyer le libelle anglais et faire traduction a affichage $langs->load('compta'); /*if ($mode == 0) diff --git a/htdocs/salaries/class/salariesstats.class.php b/htdocs/salaries/class/salariesstats.class.php index 37e950b1bbe..3601e14bcdc 100644 --- a/htdocs/salaries/class/salariesstats.class.php +++ b/htdocs/salaries/class/salariesstats.class.php @@ -21,8 +21,8 @@ * \ingroup salaries * \brief Fichier de la classe de gestion des stats des salaires */ -include_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php'; -include_once DOL_DOCUMENT_ROOT . '/salaries/class/paymentsalary.class.php'; +include_once DOL_DOCUMENT_ROOT.'/core/class/stats.class.php'; +include_once DOL_DOCUMENT_ROOT.'/salaries/class/paymentsalary.class.php'; /** * Classe permettant la gestion des stats des salaires @@ -57,16 +57,16 @@ class SalariesStats extends Stats $this->socid = $socid; $this->userid = $userid; - $object=new PaymentSalary($this->db); + $object = new PaymentSalary($this->db); $this->from = MAIN_DB_PREFIX.$object->table_element; - $this->field='amount'; + $this->field = 'amount'; - $this->where.= " entity = ".$conf->entity; + $this->where .= " entity = ".$conf->entity; if ($this->socid) { - $this->where.=" AND fk_soc = ".$this->socid; + $this->where .= " AND fk_soc = ".$this->socid; } - if (is_array($this->userid) && count($this->userid) > 0) $this->where.=' AND fk_user IN ('.join(',', $this->userid).')'; - elseif ($this->userid > 0) $this->where.=' AND fk_user = '.$this->userid; + if (is_array($this->userid) && count($this->userid) > 0) $this->where .= ' AND fk_user IN ('.join(',', $this->userid).')'; + elseif ($this->userid > 0) $this->where .= ' AND fk_user = '.$this->userid; } @@ -78,9 +78,9 @@ class SalariesStats extends Stats public function getNbByYear() { $sql = "SELECT YEAR(datep) as dm, count(*)"; - $sql.= " FROM ".$this->from; - $sql.= " GROUP BY dm DESC"; - $sql.= " WHERE ".$this->where; + $sql .= " FROM ".$this->from; + $sql .= " GROUP BY dm DESC"; + $sql .= " WHERE ".$this->where; return $this->_getNbByYear($sql); } @@ -96,13 +96,13 @@ class SalariesStats extends Stats public function getNbByMonth($year, $format = 0) { $sql = "SELECT MONTH(datep) as dm, count(*)"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE YEAR(datep) = ".$year; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE YEAR(datep) = ".$year; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); - $res=$this->_getNbByMonth($year, $sql, $format); + $res = $this->_getNbByMonth($year, $sql, $format); //var_dump($res);print '
    '; return $res; } @@ -118,13 +118,13 @@ class SalariesStats extends Stats public function getAmountByMonth($year, $format = 0) { $sql = "SELECT date_format(datep,'%m') as dm, sum(".$this->field.")"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE date_format(datep,'%Y') = '".$year."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE date_format(datep,'%Y') = '".$year."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); - $res=$this->_getAmountByMonth($year, $sql, $format); + $res = $this->_getAmountByMonth($year, $sql, $format); //var_dump($res);print '
    '; return $res; @@ -139,11 +139,11 @@ class SalariesStats extends Stats public function getAverageByMonth($year) { $sql = "SELECT date_format(datep,'%m') as dm, avg(".$this->field.")"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE date_format(datep,'%Y') = '".$year."'"; - $sql.= " AND ".$this->where; - $sql.= " GROUP BY dm"; - $sql.= $this->db->order('dm', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE date_format(datep,'%Y') = '".$year."'"; + $sql .= " AND ".$this->where; + $sql .= " GROUP BY dm"; + $sql .= $this->db->order('dm', 'DESC'); return $this->_getAverageByMonth($year, $sql); } @@ -156,10 +156,10 @@ class SalariesStats extends Stats public function getAllByYear() { $sql = "SELECT date_format(datep,'%Y') as year, count(*) as nb, sum(".$this->field.") as total, avg(".$this->field.") as avg"; - $sql.= " FROM ".$this->from; - $sql.= " WHERE ".$this->where; - $sql.= " GROUP BY year"; - $sql.= $this->db->order('year', 'DESC'); + $sql .= " FROM ".$this->from; + $sql .= " WHERE ".$this->where; + $sql .= " GROUP BY year"; + $sql .= $this->db->order('year', 'DESC'); return $this->_getAllByYear($sql); } diff --git a/htdocs/salaries/document.php b/htdocs/salaries/document.php index 57cc3c7b8a1..c8de93c0786 100644 --- a/htdocs/salaries/document.php +++ b/htdocs/salaries/document.php @@ -36,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/paymentsalary.class.php'; // Load translation files required by the page -$langs->loadLangs(array("compta","bills","users","salaries","hrm")); +$langs->loadLangs(array("compta", "bills", "users", "salaries", "hrm")); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); @@ -45,7 +45,7 @@ $confirm = GETPOST('confirm', 'alpha'); // Security check $socid = GETPOST("socid", "int"); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'salaries', '', '', ''); @@ -57,22 +57,22 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="name"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "name"; $object = new PaymentSalary($db); $object->fetch($id, $ref); $upload_dir = $conf->salaries->dir_output.'/'.dol_sanitizeFileName($object->id); -$modulepart='salaries'; +$modulepart = 'salaries'; /* * Actions */ -include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php'; +include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; /* @@ -87,27 +87,27 @@ if ($object->id) { $object->fetch_thirdparty(); - $head=salaries_prepare_head($object); + $head = salaries_prepare_head($object); dol_fiche_head($head, 'documents', $langs->trans("SalaryPayment"), -1, 'payment'); // Build file list - $filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); - $totalsize=0; - foreach($filearray as $key => $file) + $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); + $totalsize = 0; + foreach ($filearray as $key => $file) { - $totalsize+=$file['size']; + $totalsize += $file['size']; } - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; + $morehtmlref = '
    '; - $userstatic=new User($db); + $userstatic = new User($db); $userstatic->fetch($object->fk_user); - $morehtmlref.=$langs->trans('Employee') . ' : ' . $userstatic->getNomUrl(1); - $morehtmlref.='
    '; + $morehtmlref .= $langs->trans('Employee').' : '.$userstatic->getNomUrl(1); + $morehtmlref .= '
    '; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', ''); @@ -125,8 +125,8 @@ if ($object->id) $modulepart = 'salaries'; $permission = $user->rights->salaries->write; - $param = '&id=' . $object->id; - include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; + $param = '&id='.$object->id; + include_once DOL_DOCUMENT_ROOT.'/core/tpl/document_actions_post_headers.tpl.php'; } else { diff --git a/htdocs/salaries/info.php b/htdocs/salaries/info.php index a96db0cbd5f..a0572522aeb 100644 --- a/htdocs/salaries/info.php +++ b/htdocs/salaries/info.php @@ -29,14 +29,14 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("compta","bills","users","salaries","hrm")); +$langs->loadLangs(array("compta", "bills", "users", "salaries", "hrm")); -$id=GETPOST('id', 'int'); -$action=GETPOST('action', 'aZ09'); +$id = GETPOST('id', 'int'); +$action = GETPOST('action', 'aZ09'); // Security check $socid = GETPOST('socid', 'int'); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'salaries', '', '', ''); @@ -54,15 +54,15 @@ $head = salaries_prepare_head($object); dol_fiche_head($head, 'info', $langs->trans("SalaryPayment"), -1, 'payment'); -$linkback = ''.$langs->trans("BackToList").''; +$linkback = ''.$langs->trans("BackToList").''; -$morehtmlref='
    '; +$morehtmlref = '
    '; -$userstatic=new User($db); +$userstatic = new User($db); $userstatic->fetch($object->fk_user); -$morehtmlref.=$langs->trans('Employee') . ' : ' . $userstatic->getNomUrl(1); -$morehtmlref.='
    '; +$morehtmlref .= $langs->trans('Employee').' : '.$userstatic->getNomUrl(1); +$morehtmlref .= '
    '; dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', ''); diff --git a/htdocs/salaries/stats/index.php b/htdocs/salaries/stats/index.php index 25c5be2c79d..33082a4ad91 100644 --- a/htdocs/salaries/stats/index.php +++ b/htdocs/salaries/stats/index.php @@ -27,44 +27,44 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; require_once DOL_DOCUMENT_ROOT.'/salaries/class/salariesstats.class.php'; // Load translation files required by the page -$langs->loadLangs(array("salaries","companies")); +$langs->loadLangs(array("salaries", "companies")); -$WIDTH=DolGraph::getDefaultGraphSizeForStats('width'); -$HEIGHT=DolGraph::getDefaultGraphSizeForStats('height'); +$WIDTH = DolGraph::getDefaultGraphSizeForStats('width'); +$HEIGHT = DolGraph::getDefaultGraphSizeForStats('height'); -$userid=GETPOST('userid', 'int'); if ($userid < 0) $userid=0; -$socid=GETPOST('socid', 'int'); if ($socid < 0) $socid=0; +$userid = GETPOST('userid', 'int'); if ($userid < 0) $userid = 0; +$socid = GETPOST('socid', 'int'); if ($socid < 0) $socid = 0; $id = GETPOST('id', 'int'); // Security check $socid = GETPOST("socid", "int"); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'salaries', '', '', ''); -$nowyear=strftime("%Y", dol_now()); -$year = GETPOST('year')>0?GETPOST('year'):$nowyear; +$nowyear = strftime("%Y", dol_now()); +$year = GETPOST('year') > 0 ?GETPOST('year') : $nowyear; //$startyear=$year-2; -$startyear=$year-1; -$endyear=$year; +$startyear = $year - 1; +$endyear = $year; /* * View */ -$form=new Form($db); +$form = new Form($db); llxHeader(); -$title=$langs->trans("SalariesStatistics"); -$dir=$conf->salaries->dir_temp; +$title = $langs->trans("SalariesStatistics"); +$dir = $conf->salaries->dir_temp; print load_fiche_titre($title, $mesg); dol_mkdir($dir); -$useridtofilter=$userid; // Filter from parameters +$useridtofilter = $userid; // Filter from parameters $stats = new SalariesStats($db, $socid, $useridtofilter); @@ -80,13 +80,13 @@ $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=salariesstats&file=sala $px1 = new DolGraph(); $mesg = $px1->isGraphKo(); -if (! $mesg) +if (!$mesg) { $px1->SetData($data); - $i=$startyear;$legend=array(); + $i = $startyear; $legend = array(); while ($i <= $endyear) { - $legend[]=$i; + $legend[] = $i; $i++; } $px1->SetLegend($legend); @@ -96,7 +96,7 @@ if (! $mesg) $px1->SetYLabel($langs->trans("Number")); $px1->SetShading(3); $px1->SetHorizTickIncrement(1); - $px1->mode='depth'; + $px1->mode = 'depth'; $px1->SetTitle($langs->trans("NumberByMonth")); $px1->draw($filenamenb, $fileurlnb); @@ -112,13 +112,13 @@ $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=salariesstats&file= $px2 = new DolGraph(); $mesg = $px2->isGraphKo(); -if (! $mesg) +if (!$mesg) { $px2->SetData($data); - $i=$startyear;$legend=array(); + $i = $startyear; $legend = array(); while ($i <= $endyear) { - $legend[]=$i; + $legend[] = $i; $i++; } $px2->SetLegend($legend); @@ -129,7 +129,7 @@ if (! $mesg) $px2->SetYLabel($langs->trans("Amount")); $px2->SetShading(3); $px2->SetHorizTickIncrement(1); - $px2->mode='depth'; + $px2->mode = 'depth'; $px2->SetTitle($langs->trans("AmountTotal")); $px2->draw($filenameamount, $fileurlamount); @@ -143,13 +143,13 @@ $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=salariesstats&file=salari $px3 = new DolGraph(); $mesg = $px3->isGraphKo(); -if (! $mesg) +if (!$mesg) { $px3->SetData($data); - $i = $startyear;$legend=array(); + $i = $startyear; $legend = array(); while ($i <= $endyear) { - $legend[]=$i; + $legend[] = $i; $i++; } $px3->SetLegend($legend); @@ -160,7 +160,7 @@ if (! $mesg) $px3->SetHeight($HEIGHT); $px3->SetShading(3); $px3->SetHorizTickIncrement(1); - $px3->mode='depth'; + $px3->mode = 'depth'; $px3->SetTitle($langs->trans("AmountAverage")); $px3->draw($filename_avg, $fileurl_avg); @@ -169,16 +169,16 @@ if (! $mesg) // Show array $data = $stats->getAllByYear(); -$arrayyears=array(); -foreach($data as $val) { - $arrayyears[$val['year']]=$val['year']; +$arrayyears = array(); +foreach ($data as $val) { + $arrayyears[$val['year']] = $val['year']; } -if (! count($arrayyears)) $arrayyears[$nowyear]=$nowyear; +if (!count($arrayyears)) $arrayyears[$nowyear] = $nowyear; -$h=0; +$h = 0; $head = array(); -$head[$h][0] = DOL_URL_ROOT . '/salaries/stats/index.php'; +$head[$h][0] = DOL_URL_ROOT.'/salaries/stats/index.php'; $head[$h][1] = $langs->trans("ByMonthYear"); $head[$h][2] = 'byyear'; $h++; @@ -203,7 +203,7 @@ print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0 print '
    '.$langs->trans("Year").''; -if (! in_array($year, $arrayyears)) $arrayyears[$year]=$year; +if (!in_array($year, $arrayyears)) $arrayyears[$year] = $year; arsort($arrayyears); print $form->selectarray('year', $arrayyears, $year, 0); print '
    '.$langs->trans("AmountTotal").''.$langs->trans("AmountAverage").'
    '.price(price2num($val['total'], 'MT'), 1).''.price(price2num($val['avg'], 'MT'), 1).'
    '; diff --git a/htdocs/societe/admin/contact_extrafields.php b/htdocs/societe/admin/contact_extrafields.php index 86f40ee7a6c..2e657805b96 100644 --- a/htdocs/societe/admin/contact_extrafields.php +++ b/htdocs/societe/admin/contact_extrafields.php @@ -34,13 +34,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='socpeople'; //Must be the $element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'socpeople'; //Must be the $element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -57,13 +57,13 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("ContactsAddresses"); +$textobject = $langs->transnoentitiesnoconv("ContactsAddresses"); -$help_url='EN:Module Third Parties setup|FR:Paramétrage_du_module_Tiers'; +$help_url = 'EN:Module Third Parties setup|FR:Paramétrage_du_module_Tiers'; llxHeader('', $langs->trans("CompanySetup"), $help_url); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("CompanySetup"), $linkback, 'title_setup'); @@ -104,7 +104,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
    "; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/societe/admin/societe_extrafields.php b/htdocs/societe/admin/societe_extrafields.php index 11a56314b02..f0812485211 100644 --- a/htdocs/societe/admin/societe_extrafields.php +++ b/htdocs/societe/admin/societe_extrafields.php @@ -34,13 +34,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='societe'; //Must be the $element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'societe'; //Must be the $element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -57,13 +57,13 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("ThirdParty"); +$textobject = $langs->transnoentitiesnoconv("ThirdParty"); -$help_url='EN:Module Third Parties setup|FR:Paramétrage_du_module_Tiers'; +$help_url = 'EN:Module Third Parties setup|FR:Paramétrage_du_module_Tiers'; llxHeader('', $langs->trans("CompanySetup"), $help_url); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("CompanySetup"), $linkback, 'title_setup'); @@ -104,7 +104,7 @@ if ($action == 'create') /* Edition d'un champ optionnel */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print '
    '; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/societe/agenda.php b/htdocs/societe/agenda.php index 1ba29e5e190..dba483c52eb 100644 --- a/htdocs/societe/agenda.php +++ b/htdocs/societe/agenda.php @@ -36,21 +36,21 @@ $langs->loadLangs(array("companies", "bills", "propal", "orders")); if (GETPOST('actioncode', 'array')) { - $actioncode=GETPOST('actioncode', 'array', 3); - if (! count($actioncode)) $actioncode='0'; + $actioncode = GETPOST('actioncode', 'array', 3); + if (!count($actioncode)) $actioncode = '0'; } else { - $actioncode=GETPOST("actioncode", "alpha", 3)?GETPOST("actioncode", "alpha", 3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); + $actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); } -$search_agenda_label=GETPOST('search_agenda_label'); +$search_agenda_label = GETPOST('search_agenda_label'); // Security check $socid = GETPOST('socid', 'int'); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'societe', $socid, '&societe'); -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); @@ -106,18 +106,18 @@ if ($socid > 0) $object = new Societe($db); $result = $object->fetch($socid); - $title=$langs->trans("Agenda"); - if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + $title = $langs->trans("Agenda"); + if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title = $object->name." - ".$title; llxHeader('', $title); - if (! empty($conf->notification->enabled)) $langs->load("mails"); + if (!empty($conf->notification->enabled)) $langs->load("mails"); $head = societe_prepare_head($object); dol_fiche_head($head, 'agenda', $langs->trans("ThirdParty"), -1, 'company'); $linkback = ''.$langs->trans("BackToList").''; - dol_banner_tab($object, 'socid', $linkback, ($user->socid?0:1), 'rowid', 'nom'); + dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); print '
    '; @@ -154,29 +154,29 @@ if ($socid > 0) //print '
    '; - $newcardbutton=''; - if (! empty($conf->agenda->enabled)) + $newcardbutton = ''; + if (!empty($conf->agenda->enabled)) { - if (! empty($user->rights->agenda->myactions->create) || ! empty($user->rights->agenda->allactions->create)) + if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) { - $newcardbutton.= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out); + $newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out); } } - if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) { print '
    '; - $param='&socid='.$socid; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; + $param = '&socid='.$socid; + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage; + if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit; print load_fiche_titre($langs->trans("ActionsOnCompany"), $newcardbutton, ''); //print_barre_liste($langs->trans("ActionsOnCompany"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $newcardbutton, '', 0, 1, 1); // List of all actions - $filters=array(); - $filters['search_agenda_label']=$search_agenda_label; + $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); diff --git a/htdocs/societe/ajax/company.php b/htdocs/societe/ajax/company.php index 44e05813314..4fe737ca31c 100644 --- a/htdocs/societe/ajax/company.php +++ b/htdocs/societe/ajax/company.php @@ -22,21 +22,21 @@ * \brief File to return Ajax response on thirdparty list request */ -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); -if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); -if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); +if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal +if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); +if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); +if (!defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); +if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); require '../../main.inc.php'; -$htmlname=GETPOST('htmlname', 'alpha'); -$filter=GETPOST('filter', 'alpha'); -$outjson=(GETPOST('outjson', 'int') ? GETPOST('outjson', 'int') : 0); -$action=GETPOST('action', 'alpha'); -$id=GETPOST('id', 'int'); -$showtype=GETPOST('showtype', 'int'); +$htmlname = GETPOST('htmlname', 'alpha'); +$filter = GETPOST('filter', 'alpha'); +$outjson = (GETPOST('outjson', 'int') ? GETPOST('outjson', 'int') : 0); +$action = GETPOST('action', 'alpha'); +$id = GETPOST('id', 'int'); +$showtype = GETPOST('showtype', 'int'); /* @@ -48,14 +48,14 @@ $showtype=GETPOST('showtype', 'int'); dol_syslog(join(',', $_GET)); //print_r($_GET); -if (! empty($action) && $action == 'fetch' && ! empty($id)) +if (!empty($action) && $action == 'fetch' && !empty($id)) { - require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; + require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; - $outjson=array(); + $outjson = array(); $object = new Societe($db); - $ret=$object->fetch($id); + $ret = $object->fetch($id); if ($ret > 0) { $outref = $object->ref; @@ -80,15 +80,15 @@ else $match = preg_grep('/('.$htmlname.'[0-9]+)/', array_keys($_GET)); sort($match); - $id = (! empty($match[0]) ? $match[0] : ''); + $id = (!empty($match[0]) ? $match[0] : ''); // When used from jQuery, the search term is added as GET param "term". - $searchkey=(($id && GETPOST($id, 'alpha'))?GETPOST($id, 'alpha'):(($htmlname && GETPOST($htmlname, 'alpha'))?GETPOST($htmlname, 'alpha'):'')); + $searchkey = (($id && GETPOST($id, 'alpha')) ?GETPOST($id, 'alpha') : (($htmlname && GETPOST($htmlname, 'alpha')) ?GETPOST($htmlname, 'alpha') : '')); - if (! $searchkey) return; + if (!$searchkey) return; - if (! is_object($form)) $form = new Form($db); - $arrayresult=$form->select_thirdparty_list(0, $htmlname, $filter, 1, $showtype, 0, null, $searchkey, $outjson); + if (!is_object($form)) $form = new Form($db); + $arrayresult = $form->select_thirdparty_list(0, $htmlname, $filter, 1, $showtype, 0, null, $searchkey, $outjson); $db->close(); diff --git a/htdocs/societe/ajaxcompanies.php b/htdocs/societe/ajaxcompanies.php index f7bc9d4e40c..dcf0b1a4483 100644 --- a/htdocs/societe/ajaxcompanies.php +++ b/htdocs/societe/ajaxcompanies.php @@ -23,12 +23,12 @@ * \brief File to return Ajax response on third parties request */ -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); -if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); -if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); +if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal +if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); +if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); +if (!defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); +if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); require '../main.inc.php'; @@ -55,43 +55,43 @@ if (GETPOST('newcompany') || GETPOST('socid', 'int') || GETPOST('id_fourn')) $return_arr = array(); // Define filter on text typed - $socid = $_GET['newcompany']?$_GET['newcompany']:''; - if (! $socid) $socid = $_GET['socid']?$_GET['socid']:''; - if (! $socid) $socid = $_GET['id_fourn']?$_GET['id_fourn']:''; + $socid = $_GET['newcompany'] ? $_GET['newcompany'] : ''; + if (!$socid) $socid = $_GET['socid'] ? $_GET['socid'] : ''; + if (!$socid) $socid = $_GET['id_fourn'] ? $_GET['id_fourn'] : ''; $sql = "SELECT rowid, nom"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; - $sql.= " WHERE s.entity IN (".getEntity('societe').")"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; + $sql .= " WHERE s.entity IN (".getEntity('societe').")"; if ($socid) { - $sql.=" AND ("; + $sql .= " AND ("; // Add criteria on name/code - if (! empty($conf->global->COMPANY_DONOTSEARCH_ANYWHERE)) // Can use index + if (!empty($conf->global->COMPANY_DONOTSEARCH_ANYWHERE)) // Can use index { - $sql.="nom LIKE '" . $db->escape($socid) . "%'"; - $sql.=" OR code_client LIKE '" . $db->escape($socid) . "%'"; - $sql.=" OR code_fournisseur LIKE '" . $db->escape($socid) . "%'"; + $sql .= "nom LIKE '".$db->escape($socid)."%'"; + $sql .= " OR code_client LIKE '".$db->escape($socid)."%'"; + $sql .= " OR code_fournisseur LIKE '".$db->escape($socid)."%'"; } else { - $sql.="nom LIKE '%" . $db->escape($socid) . "%'"; - $sql.=" OR code_client LIKE '%" . $db->escape($socid) . "%'"; - $sql.=" OR code_fournisseur LIKE '%" . $db->escape($socid) . "%'"; + $sql .= "nom LIKE '%".$db->escape($socid)."%'"; + $sql .= " OR code_client LIKE '%".$db->escape($socid)."%'"; + $sql .= " OR code_fournisseur LIKE '%".$db->escape($socid)."%'"; } - if (! empty($conf->global->SOCIETE_ALLOW_SEARCH_ON_ROWID)) $sql.=" OR rowid = '" . $db->escape($socid) . "'"; - $sql.=")"; + if (!empty($conf->global->SOCIETE_ALLOW_SEARCH_ON_ROWID)) $sql .= " OR rowid = '".$db->escape($socid)."'"; + $sql .= ")"; } //if (GETPOST("filter")) $sql.= " AND (".GETPOST("filter", "alpha").")"; // Add other filters - $sql.= " ORDER BY nom ASC"; + $sql .= " ORDER BY nom ASC"; //dol_syslog("ajaxcompanies", LOG_DEBUG); - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { while ($row = $db->fetch_array($resql)) { - $label=$row['nom']; - if ($socid) $label=preg_replace('/('.preg_quote($socid, '/').')/i', '$1', $label, 1); + $label = $row['nom']; + if ($socid) $label = preg_replace('/('.preg_quote($socid, '/').')/i', '$1', $label, 1); $row_array['label'] = $label; $row_array['value'] = $row['nom']; $row_array['key'] = $row['rowid']; @@ -103,10 +103,10 @@ if (GETPOST('newcompany') || GETPOST('socid', 'int') || GETPOST('id_fourn')) } else { - echo json_encode(array('nom'=>'Error','label'=>'Error','key'=>'Error','value'=>'Error')); + echo json_encode(array('nom'=>'Error', 'label'=>'Error', 'key'=>'Error', 'value'=>'Error')); } } else { - echo json_encode(array('nom'=>'ErrorBadParameter','label'=>'ErrorBadParameter','key'=>'ErrorBadParameter','value'=>'ErrorBadParameter')); + echo json_encode(array('nom'=>'ErrorBadParameter', 'label'=>'ErrorBadParameter', 'key'=>'ErrorBadParameter', 'value'=>'ErrorBadParameter')); } diff --git a/htdocs/societe/ajaxcountries.php b/htdocs/societe/ajaxcountries.php index 21ee895629f..dfc4ffd9015 100644 --- a/htdocs/societe/ajaxcountries.php +++ b/htdocs/societe/ajaxcountries.php @@ -22,16 +22,16 @@ * \brief File to return Ajax response on country request */ -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); -if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); -if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); +if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); // Disables token renewal +if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); +if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); +if (!defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); +if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); require '../main.inc.php'; -$country=GETPOST('country', 'alpha'); +$country = GETPOST('country', 'alpha'); /* @@ -50,25 +50,25 @@ print ' diff --git a/htdocs/societe/canvas/individual/actions_card_individual.class.php b/htdocs/societe/canvas/individual/actions_card_individual.class.php index ebd90fe7c46..9f236c8015e 100644 --- a/htdocs/societe/canvas/individual/actions_card_individual.class.php +++ b/htdocs/societe/canvas/individual/actions_card_individual.class.php @@ -41,11 +41,11 @@ class ActionsCardIndividual extends ActionsCardCommon */ public function __construct($db, $dirmodule, $targetmodule, $canvas, $card) { - $this->db = $db; - $this->dirmodule = $dirmodule; - $this->targetmodule = $targetmodule; - $this->canvas = $canvas; - $this->card = $card; + $this->db = $db; + $this->dirmodule = $dirmodule; + $this->targetmodule = $targetmodule; + $this->canvas = $canvas; + $this->card = $card; } @@ -59,11 +59,11 @@ class ActionsCardIndividual extends ActionsCardCommon { global $langs; - $out=''; + $out = ''; - if ($action == 'view') $out.= $langs->trans("Individual"); - if ($action == 'edit') $out.= $langs->trans("EditCompany"); - if ($action == 'create') $out.= $langs->trans("NewCompany"); + if ($action == 'view') $out .= $langs->trans("Individual"); + if ($action == 'edit') $out .= $langs->trans("EditCompany"); + if ($action == 'create') $out .= $langs->trans("NewCompany"); return $out; } diff --git a/htdocs/societe/canvas/individual/tpl/card_create.tpl.php b/htdocs/societe/canvas/individual/tpl/card_create.tpl.php index f77233816e0..649d1bf8aca 100644 --- a/htdocs/societe/canvas/individual/tpl/card_create.tpl.php +++ b/htdocs/societe/canvas/individual/tpl/card_create.tpl.php @@ -17,7 +17,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -58,7 +58,7 @@ if (empty($conf) || ! is_object($conf)) trans('LastName'); ?> - global->SOCIETE_USEPREFIX)) { ?> + global->SOCIETE_USEPREFIX)) { ?> trans('Prefix'); ?> @@ -114,7 +114,7 @@ if (empty($conf) || ! is_object($conf)) barcode->enabled)) { ?> +if (!empty($conf->barcode->enabled)) { ?> trans('Gencod'); ?> @@ -151,13 +151,13 @@ if (! empty($conf->barcode->enabled)) { ?> - trans('EMail').($conf->global->SOCIETE_EMAIL_MANDATORY?'*':''); ?> + trans('EMail').($conf->global->SOCIETE_EMAIL_MANDATORY ? '*' : ''); ?> trans('Web'); ?> -global->MAIN_MULTILANGS)) { ?> +global->MAIN_MULTILANGS)) { ?> trans("DefaultLang"); ?> control->tpl['select_lang']; ?> @@ -169,7 +169,7 @@ if (! empty($conf->barcode->enabled)) { ?> control->tpl['yn_assujtva']; ?> -control->tpl['localtax'])) echo $this->control->tpl['localtax']; ?> +control->tpl['localtax'])) echo $this->control->tpl['localtax']; ?> rights->societe->client->voir) { ?> diff --git a/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php b/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php index 60a6e18c07b..1571709868e 100644 --- a/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php +++ b/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php @@ -17,7 +17,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -50,7 +50,7 @@ if (empty($conf) || ! is_object($conf)) -global->SOCIETE_USEPREFIX)) { ?> +global->SOCIETE_USEPREFIX)) { ?> trans("Prefix"); ?> @@ -118,7 +118,7 @@ if ($this->control->tpl['fournisseur']) { } ?> -barcode->enabled)) { ?> +barcode->enabled)) { ?> trans('Gencod'); ?> @@ -155,13 +155,13 @@ if ($this->control->tpl['fournisseur']) { - trans('EMail').($conf->global->SOCIETE_EMAIL_MANDATORY?'*':''); ?> + trans('EMail').($conf->global->SOCIETE_EMAIL_MANDATORY ? '*' : ''); ?> trans('Web'); ?> -global->MAIN_MULTILANGS)) { ?> +global->MAIN_MULTILANGS)) { ?> trans("DefaultLang"); ?> control->tpl['select_lang']; ?> @@ -173,7 +173,7 @@ if ($this->control->tpl['fournisseur']) { control->tpl['yn_assujtva']; ?> -control->tpl['localtax'])) echo $this->control->tpl['localtax']; ?> +control->tpl['localtax'])) echo $this->control->tpl['localtax']; ?>
    diff --git a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php index b1e5d052adc..14c8822dc9e 100644 --- a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php +++ b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php @@ -16,7 +16,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -42,7 +42,7 @@ if ($this->control->tpl['action_delete']) echo $this->control->tpl['action_delet control->tpl['showrefnav']; ?> -global->SOCIETE_USEPREFIX)) { ?> +global->SOCIETE_USEPREFIX)) { ?> trans('Prefix'); ?> control->tpl['prefix_comm']; ?> @@ -71,7 +71,7 @@ if ($this->control->tpl['action_delete']) echo $this->control->tpl['action_delet -barcode->enabled)) { ?> +barcode->enabled)) { ?> trans('Gencod'); ?> control->tpl['barcode']; ?> @@ -119,14 +119,14 @@ if ($this->control->tpl['action_delete']) echo $this->control->tpl['action_delet control->tpl['tva_assuj']; ?> -control->tpl['localtax'])) echo $this->control->tpl['localtax']; ?> +control->tpl['localtax'])) echo $this->control->tpl['localtax']; ?> trans("Type"); ?> control->tpl['typent']; ?> -global->MAIN_MULTILANGS)) { ?> +global->MAIN_MULTILANGS)) { ?> trans("DefaultLang"); ?> control->tpl['default_lang']; ?> @@ -166,10 +166,10 @@ if ($this->control->tpl['action_delete']) echo $this->control->tpl['action_delet - control->tpl['sales_representatives']; ?> + control->tpl['sales_representatives']; ?> -adherent->enabled)) { ?> +adherent->enabled)) { ?> trans("LinkedToDolibarrMember"); ?> control->tpl['linked_member']; ?> @@ -188,7 +188,7 @@ if ($this->control->tpl['action_delete']) echo $this->control->tpl['action_delet rights->societe->supprimer) { ?> use_javascript_ajax) { ?> trans('Delete'); ?> - + ">trans('Delete'); ?> @@ -202,10 +202,10 @@ if ($this->control->tpl['action_delete']) echo $this->control->tpl['action_delet /* * Documents generes */ -$filedir=$conf->societe->multidir_output[$this->control->tpl['entity']].'/'.$socid; -$urlsource=$_SERVER["PHP_SELF"]."?socid=".$socid; -$genallowed=$user->rights->societe->lire; -$delallowed=$user->rights->societe->creer; +$filedir = $conf->societe->multidir_output[$this->control->tpl['entity']].'/'.$socid; +$urlsource = $_SERVER["PHP_SELF"]."?socid=".$socid; +$genallowed = $user->rights->societe->lire; +$delallowed = $user->rights->societe->creer; print $formfile->showdocuments('company', $socid, $filedir, $urlsource, $genallowed, $delallowed, '', 0, 0, 0, 28, 0, '', 0, '', $objcanvas->control->object->default_lang); ?> @@ -219,12 +219,12 @@ print $formfile->showdocuments('company', $socid, $filedir, $urlsource, $genallo \n"; diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 4ca5d29df7b..20ada9bfbaf 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -491,7 +491,7 @@ if (empty($reshook)) } // Fill array 'array_languages' with data from add form - $ret = $object->setValuesForAlternateLanguages(); + $ret = $object->setValuesForExtraLanguages(); if ($ret < 0) { $error++; @@ -931,7 +931,7 @@ else * Creation */ $private = GETPOST("private", "int"); - if (!empty($conf->global->THIRDPARTY_DEFAULT_CREATE_CONTACT) && !isset($_GET['private']) && !isset($_POST['private'])) $private = 1; + if (!empty($conf->global->THIRDPARTY_DEFAULT_CREATE_CONTACT) && !GETPOSTISSET('private')) $private = 1; if (empty($private)) $private = 0; // Load object modCodeTiers @@ -1852,7 +1852,9 @@ else // Name print ''.$form->editfieldkey('ThirdPartyName', 'name', '', $object, 0, 'string', '', 1).''; - print ''; + print ''; + print $form->widgetForTranslation("name", $object, $permissiontoadd, 'string', 'alpahnohtml', 'minwidth300'); + print ''; // Alias names (commercial, trademark or alias names) print ''; @@ -1961,18 +1963,21 @@ else print ''.$form->editfieldkey('Address', 'address', '', $object, 0).''; print ''; + print ''; + print $form->widgetForTranslation("address", $object, $permissiontoadd, 'textarea', 'alphanohtml', 'quatrevingtpercent'); + print ''; // Zip / Town print ''.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).''; print $formcompany->select_ziptown($object->zip, 'zipcode', array('town', 'selectcountry_id', 'state_id'), 0, 0, '', 'maxwidth50onsmartphone'); print ''.$form->editfieldkey('Town', 'town', '', $object, 0).''; print $formcompany->select_ziptown($object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id')); + print $form->widgetForTranslation("town", $object, $permissiontoadd, 'string', 'alphanohtml', 'maxwidth100 quatrevingtpercent'); print ''; // Country print ''.$form->editfieldkey('Country', 'selectcounty_id', '', $object, 0).''; - print $form->select_country((GETPOST('country_id') != '' ?GETPOST('country_id') : $object->country_id), 'country_id'); + print $form->select_country((GETPOSTISSET('country_id') ? GETPOST('country_id') : $object->country_id), 'country_id'); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); print ''; @@ -1993,16 +1998,16 @@ else } // Phone / Fax - print ''.img_picto('', 'object_phoning').' '.$form->editfieldkey('Phone', 'phone', GETPOST('phone', 'alpha'), $object, 0).''; - print ''; - print ''.img_picto('', 'object_phoning_fax').' '.$form->editfieldkey('Fax', 'fax', GETPOST('fax', 'alpha'), $object, 0).''; - print ''; + print ''.$form->editfieldkey('Phone', 'phone', GETPOST('phone', 'alpha'), $object, 0).''; + print ''.img_picto('', 'object_phoning').' '; + print ''.$form->editfieldkey('Fax', 'fax', GETPOST('fax', 'alpha'), $object, 0).''; + print ''.img_picto('', 'object_phoning_fax').' '; // EMail / Web - print ''.img_picto('', 'object_email').' '.$form->editfieldkey('EMail', 'email', GETPOST('email', 'alpha'), $object, 0, 'string', '', (!empty($conf->global->SOCIETE_EMAIL_MANDATORY))).''; - print ''; - print ''.img_picto('', 'globe').' '.$form->editfieldkey('Web', 'url', GETPOST('url', 'alpha'), $object, 0).''; - print ''; + print ''.$form->editfieldkey('EMail', 'email', GETPOST('email', 'alpha'), $object, 0, 'string', '', (!empty($conf->global->SOCIETE_EMAIL_MANDATORY))).''; + print ''.img_picto('', 'object_email').' '; + print ''.$form->editfieldkey('Web', 'url', GETPOST('url', 'alpha'), $object, 0).''; + print ''.img_picto('', 'globe').' '; if (!empty($conf->socialnetworks->enabled)) { foreach ($socialnetworks as $key => $value) { @@ -2736,16 +2741,18 @@ else } } - if (!empty($object->email) || $at_least_one_email_contact) - { - $langs->load("mails"); - print ''.$langs->trans('SendMail').''; - } - else - { - $langs->load("mails"); - print ''.$langs->trans('SendMail').''; - } + if (empty($user->socid)) { + if (!empty($object->email) || $at_least_one_email_contact) + { + $langs->load("mails"); + print ''.$langs->trans('SendMail').''; + } + else + { + $langs->load("mails"); + print ''.$langs->trans('SendMail').''; + } + } if ($user->rights->societe->creer) { diff --git a/htdocs/societe/checkvat/checkVatPopup.php b/htdocs/societe/checkvat/checkVatPopup.php index 1d5fa1a1f2a..8d004fa4c79 100644 --- a/htdocs/societe/checkvat/checkVatPopup.php +++ b/htdocs/societe/checkvat/checkVatPopup.php @@ -28,15 +28,15 @@ require_once NUSOAP_PATH.'/nusoap.php'; $langs->load("companies"); //http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl -$WS_DOL_URL='http://ec.europa.eu/taxation_customs/vies/services/checkVatService'; +$WS_DOL_URL = 'http://ec.europa.eu/taxation_customs/vies/services/checkVatService'; //$WS_DOL_URL_WSDL=$WS_DOL_URL.'?wsdl'; -$WS_DOL_URL_WSDL='http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl'; -$WS_METHOD ='checkVat'; +$WS_DOL_URL_WSDL = 'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl'; +$WS_METHOD = 'checkVat'; -$conf->dol_hide_topmenu=1; -$conf->dol_hide_leftmenu=1; +$conf->dol_hide_topmenu = 1; +$conf->dol_hide_leftmenu = 1; llxHeader('', $langs->trans("VATIntraCheckableOnEUSite")); @@ -46,7 +46,7 @@ print load_fiche_titre($langs->trans("VATIntraCheckableOnEUSite"), '', 'title_se $vatNumber = GETPOST("vatNumber", 'alpha'); -if (! $vatNumber) +if (!$vatNumber) { print '
    '; print ''.$langs->transnoentities("ErrorFieldRequired", $langs->trans("VATIntraShort")).'
    '; @@ -55,8 +55,8 @@ else { $vatNumber = preg_replace('/\^\w/', '', $vatNumber); $vatNumber = str_replace(array(' ', '.'), '', $vatNumber); - $countryCode=substr($vatNumber, 0, 2); - $vatNumber=substr($vatNumber, 2); + $countryCode = substr($vatNumber, 0, 2); + $vatNumber = substr($vatNumber, 2); print ''.$langs->trans("Country").': '.$countryCode.'
    '; print ''.$langs->trans("VATIntraShort").': '.$vatNumber.'
    '; @@ -69,7 +69,7 @@ else // Set the WebService URL dol_syslog("Create nusoap_client for URL=".$WS_DOL_URL." WSDL=".$WS_DOL_URL_WSDL); require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $params=getSoapParams(); + $params = getSoapParams(); //ini_set('default_socket_timeout', $params['response_timeout']); //$soapclient = new SoapClient($WS_DOL_URL_WSDL,$params); $soapclient = new nusoap_client($WS_DOL_URL_WSDL, true, $params['proxy_host'], $params['proxy_port'], $params['proxy_login'], $params['proxy_password'], $params['connection_timeout'], $params['response_timeout']); @@ -95,33 +95,33 @@ else //print $soapclient->request.'
    '; //print $soapclient->response.'
    '; - $messagetoshow=''; + $messagetoshow = ''; print ''.$langs->trans("Response").':
    '; // Service indisponible - if (! is_array($result) || preg_match('/SERVICE_UNAVAILABLE/i', $result['faultstring'])) + if (!is_array($result) || preg_match('/SERVICE_UNAVAILABLE/i', $result['faultstring'])) { print ''.$langs->trans("ErrorServiceUnavailableTryLater").'
    '; - $messagetoshow=$soapclient->response; + $messagetoshow = $soapclient->response; } elseif (preg_match('/TIMEOUT/i', $result['faultstring'])) { print ''.$langs->trans("ErrorServiceUnavailableTryLater").'
    '; - $messagetoshow=$soapclient->response; + $messagetoshow = $soapclient->response; } elseif (preg_match('/SERVER_BUSY/i', $result['faultstring'])) { print ''.$langs->trans("ErrorServiceUnavailableTryLater").'
    '; - $messagetoshow=$soapclient->response; + $messagetoshow = $soapclient->response; } elseif ($result['faultstring']) { print ''.$langs->trans("Error").'
    '; - $messagetoshow=$result['faultstring']; + $messagetoshow = $result['faultstring']; } // Syntaxe ko elseif (preg_match('/INVALID_INPUT/i', $result['faultstring']) - || ($result['requestDate'] && ! $result['valid'])) + || ($result['requestDate'] && !$result['valid'])) { if ($result['requestDate']) print $langs->trans("Date").': '.$result['requestDate'].'
    '; print $langs->trans("VATIntraSyntaxIsValid").': '.$langs->trans("No").' (Might be a non europeen VAT)
    '; @@ -140,7 +140,7 @@ else } else { - if (! empty($result['valid']) && ($result['valid']==1 || $result['valid']=='true')) + if (!empty($result['valid']) && ($result['valid'] == 1 || $result['valid'] == 'true')) { print ''.$langs->trans("Yes").''; print '
    '; diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php index 5f031137c1f..5206e345193 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -1120,7 +1120,7 @@ class Thirdparties extends DolibarrApi * @param int $id ID of thirdparty * @param array $request_data Request data * - * @return object ID of thirdparty + * @return object BankAccount of thirdparty * * @url POST {id}/bankaccounts */ @@ -1129,7 +1129,9 @@ class Thirdparties extends DolibarrApi if (!DolibarrApiAccess::$user->rights->societe->creer) { throw new RestException(401); } - + if ($this->company->fetch($id) <= 0) { + throw new RestException(404, 'Error creating Company Bank account, Company doesn\'t exists'); + } $account = new CompanyBankAccount($this->db); $account->socid = $id; @@ -1141,11 +1143,17 @@ class Thirdparties extends DolibarrApi if ($account->create(DolibarrApiAccess::$user) < 0) throw new RestException(500, 'Error creating Company Bank account'); + if (empty($account->rum)) { + require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; + $prelevement = new BonPrelevement($this->db); + $account->rum = $prelevement->buildRumNumber($this->company->code_client, $account->datec, $account->id); + $account->date_rum = dol_now(); + } if ($account->update(DolibarrApiAccess::$user) < 0) throw new RestException(500, 'Error updating values'); - return $account; + return $this->_cleanObjectDatas($account); } /** @@ -1155,7 +1163,7 @@ class Thirdparties extends DolibarrApi * @param int $bankaccount_id ID of CompanyBankAccount * @param array $request_data Request data * - * @return object ID of thirdparty + * @return object BankAccount of thirdparty * * @url PUT {id}/bankaccounts/{bankaccount_id} */ @@ -1164,7 +1172,9 @@ class Thirdparties extends DolibarrApi if (!DolibarrApiAccess::$user->rights->societe->creer) { throw new RestException(401); } - + if ($this->company->fetch($id) <= 0) { + throw new RestException(404, 'Error creating Company Bank account, Company doesn\'t exists'); + } $account = new CompanyBankAccount($this->db); $account->fetch($bankaccount_id, $id, -1, ''); @@ -1178,10 +1188,17 @@ class Thirdparties extends DolibarrApi $account->$field = $value; } + if (empty($account->rum)) { + require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; + $prelevement = new BonPrelevement($this->db); + $account->rum = $prelevement->buildRumNumber($this->company->code_client, $account->datec, $account->id); + $account->date_rum = dol_now(); + } + if ($account->update(DolibarrApiAccess::$user) < 0) throw new RestException(500, 'Error updating values'); - return $account; + return $this->_cleanObjectDatas($account); } /** @@ -1687,7 +1704,7 @@ class Thirdparties extends DolibarrApi unset($object->particulier); unset($object->prefix_comm); - unset($object->commercial_id); // This property is used in create/update only. It does not exists in read mode because there is several sales representatives. + unset($object->commercial_id); // This property is used in create/update only. It does not exists in read mode because there is several sales representatives. unset($object->total_ht); unset($object->total_tva); diff --git a/htdocs/societe/class/client.class.php b/htdocs/societe/class/client.class.php index c345d195935..06c56b027cd 100644 --- a/htdocs/societe/class/client.class.php +++ b/htdocs/societe/class/client.class.php @@ -29,9 +29,9 @@ include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; */ class Client extends Societe { - public $next_prev_filter="te.client in (1,2,3)"; // Used to add a filter in Form::showrefnav method + public $next_prev_filter = "te.client in (1,2,3)"; // Used to add a filter in Form::showrefnav method - public $cacheprospectstatus=array(); + public $cacheprospectstatus = array(); /** @@ -58,28 +58,28 @@ class Client extends Societe // phpcs:enable global $user; - $this->nb=array("customers" => 0,"prospects" => 0); + $this->nb = array("customers" => 0, "prospects" => 0); $clause = "WHERE"; $sql = "SELECT count(s.rowid) as nb, s.client"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$user->socid) { - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc"; - $sql.= " WHERE sc.fk_user = " .$user->id; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc"; + $sql .= " WHERE sc.fk_user = ".$user->id; $clause = "AND"; } - $sql.= " ".$clause." s.client IN (1,2,3)"; - $sql.= ' AND s.entity IN ('.getEntity($this->element).')'; - $sql.= " GROUP BY s.client"; + $sql .= " ".$clause." s.client IN (1,2,3)"; + $sql .= ' AND s.entity IN ('.getEntity($this->element).')'; + $sql .= " GROUP BY s.client"; - $resql=$this->db->query($sql); + $resql = $this->db->query($sql); if ($resql) { - while ($obj=$this->db->fetch_object($resql)) + while ($obj = $this->db->fetch_object($resql)) { - if ($obj->client == 1 || $obj->client == 3) $this->nb["customers"]+=$obj->nb; - if ($obj->client == 2 || $obj->client == 3) $this->nb["prospects"]+=$obj->nb; + if ($obj->client == 1 || $obj->client == 3) $this->nb["customers"] += $obj->nb; + if ($obj->client == 2 || $obj->client == 3) $this->nb["prospects"] += $obj->nb; } $this->db->free($resql); return 1; @@ -87,7 +87,7 @@ class Client extends Societe else { dol_print_error($this->db); - $this->error=$this->db->lasterror(); + $this->error = $this->db->lasterror(); return -1; } } @@ -102,14 +102,14 @@ class Client extends Societe { global $langs; - $sql="SELECT id, code, libelle as label FROM ".MAIN_DB_PREFIX."c_stcomm"; - if ($active >= 0) $sql.=" WHERE active = ".$active; - $resql=$this->db->query($sql); - $num=$this->db->num_rows($resql); - $i=0; + $sql = "SELECT id, code, libelle as label FROM ".MAIN_DB_PREFIX."c_stcomm"; + if ($active >= 0) $sql .= " WHERE active = ".$active; + $resql = $this->db->query($sql); + $num = $this->db->num_rows($resql); + $i = 0; while ($i < $num) { - $obj=$this->db->fetch_object($resql); - $this->cacheprospectstatus[$obj->id]=array('id'=>$obj->id, 'code'=>$obj->code, 'label'=> ($langs->trans("ST_".strtoupper($obj->code))=="ST_".strtoupper($obj->code))?$obj->label:$langs->trans("ST_".strtoupper($obj->code))); + $obj = $this->db->fetch_object($resql); + $this->cacheprospectstatus[$obj->id] = array('id'=>$obj->id, 'code'=>$obj->code, 'label'=> ($langs->trans("ST_".strtoupper($obj->code)) == "ST_".strtoupper($obj->code)) ? $obj->label : $langs->trans("ST_".strtoupper($obj->code))); $i++; } return 1; diff --git a/htdocs/societe/class/companybankaccount.class.php b/htdocs/societe/class/companybankaccount.class.php index 5cfe6fa3709..7211802721e 100644 --- a/htdocs/societe/class/companybankaccount.class.php +++ b/htdocs/societe/class/companybankaccount.class.php @@ -142,45 +142,45 @@ class CompanyBankAccount extends Account global $conf; $error = 0; - if (! $this->id) return -1; + if (!$this->id) return -1; if (dol_strlen($this->domiciliation) > 255) $this->domiciliation = dol_trunc($this->domiciliation, 254, 'right', 'UTF-8', 1); if (dol_strlen($this->owner_address) > 255) $this->owner_address = dol_trunc($this->owner_address, 254, 'right', 'UTF-8', 1); $sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET"; - $sql.= " bank = '" .$this->db->escape($this->bank)."'"; - $sql.= ",code_banque='".$this->db->escape($this->code_banque)."'"; - $sql.= ",code_guichet='".$this->db->escape($this->code_guichet)."'"; - $sql.= ",number='".$this->db->escape($this->number)."'"; - $sql.= ",cle_rib='".$this->db->escape($this->cle_rib)."'"; - $sql.= ",bic='".$this->db->escape($this->bic)."'"; - $sql.= ",iban_prefix = '".$this->db->escape($this->iban)."'"; - $sql.= ",domiciliation='".$this->db->escape($this->domiciliation)."'"; - $sql.= ",proprio = '".$this->db->escape($this->proprio)."'"; - $sql.= ",owner_address = '".$this->db->escape($this->owner_address)."'"; - $sql.= ",default_rib = ".$this->default_rib; + $sql .= " bank = '".$this->db->escape($this->bank)."'"; + $sql .= ",code_banque='".$this->db->escape($this->code_banque)."'"; + $sql .= ",code_guichet='".$this->db->escape($this->code_guichet)."'"; + $sql .= ",number='".$this->db->escape($this->number)."'"; + $sql .= ",cle_rib='".$this->db->escape($this->cle_rib)."'"; + $sql .= ",bic='".$this->db->escape($this->bic)."'"; + $sql .= ",iban_prefix = '".$this->db->escape($this->iban)."'"; + $sql .= ",domiciliation='".$this->db->escape($this->domiciliation)."'"; + $sql .= ",proprio = '".$this->db->escape($this->proprio)."'"; + $sql .= ",owner_address = '".$this->db->escape($this->owner_address)."'"; + $sql .= ",default_rib = ".$this->default_rib; if ($conf->prelevement->enabled) { - $sql.= ",frstrecur = '".$this->db->escape($this->frstrecur)."'"; - $sql.= ",rum = '".$this->db->escape($this->rum)."'"; - $sql.= ",date_rum = ".($this->date_rum ? "'".$this->db->idate($this->date_rum)."'" : "null"); + $sql .= ",frstrecur = '".$this->db->escape($this->frstrecur)."'"; + $sql .= ",rum = '".$this->db->escape($this->rum)."'"; + $sql .= ",date_rum = ".($this->date_rum ? "'".$this->db->idate($this->date_rum)."'" : "null"); } if (trim($this->label) != '') - $sql.= ",label = '".$this->db->escape($this->label)."'"; + $sql .= ",label = '".$this->db->escape($this->label)."'"; else - $sql.= ",label = NULL"; - $sql.= " WHERE rowid = ".$this->id; + $sql .= ",label = NULL"; + $sql .= " WHERE rowid = ".$this->id; $result = $this->db->query($sql); if ($result) { - if (! $notrigger) + if (!$notrigger) { // Call trigger - $result=$this->call_trigger('COMPANY_RIB_MODIFY', $user); + $result = $this->call_trigger('COMPANY_RIB_MODIFY', $user); if ($result < 0) $error++; // End call triggers - if(! $error ) + if (!$error) { return 1; } diff --git a/htdocs/societe/class/companypaymentmode.class.php b/htdocs/societe/class/companypaymentmode.class.php index 6cd09ce49c4..5ba268f6687 100644 --- a/htdocs/societe/class/companypaymentmode.class.php +++ b/htdocs/societe/class/companypaymentmode.class.php @@ -23,7 +23,7 @@ */ // Put here all includes required by your class file -require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; //require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; //require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; @@ -84,7 +84,7 @@ class CompanyPaymentMode extends CommonObject /** * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. */ - public $fields=array( + public $fields = array( 'rowid' =>array('type'=>'integer', 'label'=>'Rowid', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>10), 'fk_soc' =>array('type'=>'integer', 'label'=>'Fk soc', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>15), 'label' =>array('type'=>'varchar(30)', 'label'=>'Label', 'enabled'=>1, 'visible'=>-2, 'position'=>30), @@ -232,8 +232,8 @@ class CompanyPaymentMode extends CommonObject $this->db = $db; - if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) $this->fields['rowid']['visible']=0; - if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled']=0; + if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) $this->fields['rowid']['visible'] = 0; + if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled'] = 0; } /** @@ -245,7 +245,7 @@ class CompanyPaymentMode extends CommonObject */ public function create(User $user, $notrigger = false) { - $idpayment = $this->createCommon($user, $notrigger); + $idpayment = $this->createCommon($user, $notrigger); return $idpayment; } @@ -313,8 +313,8 @@ class CompanyPaymentMode extends CommonObject */ public function fetch($id, $ref = null, $socid = 0, $type = '', $morewhere = '') { - if ($socid) $morewhere.= " AND fk_soc = ".$this->db->escape($socid)." AND default_rib = 1"; - if ($type) $morewhere.= " AND type = '".$this->db->escape($type)."'"; + if ($socid) $morewhere .= " AND fk_soc = ".$this->db->escape($socid)." AND default_rib = 1"; + if ($type) $morewhere .= " AND type = '".$this->db->escape($type)."'"; $result = $this->fetchCommon($id, $ref, $morewhere); //if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines(); @@ -375,45 +375,45 @@ class CompanyPaymentMode extends CommonObject global $dolibarr_main_authentication, $dolibarr_main_demo; global $menumanager; - if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips + if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips $result = ''; $companylink = ''; - $label = '' . $langs->trans("CompanyPaymentMode") . ''; - $label.= '
    '; - $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; + $label = ''.$langs->trans("CompanyPaymentMode").''; + $label .= '
    '; + $label .= ''.$langs->trans('Ref').': '.$this->ref; $url = dol_buildpath('/monmodule/companypaymentmode_card.php', 1).'?id='.$this->id; if ($option != 'nolink') { // Add param to save lastsearch_values or not - $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0); - if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1; - if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; + $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1; + if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1'; } - $linkclose=''; + $linkclose = ''; if (empty($notooltip)) { - if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $label=$langs->trans("ShowCompanyPaymentMode"); - $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; + $label = $langs->trans("ShowCompanyPaymentMode"); + $linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"'; } - $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; - $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"'; + $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"'; } - else $linkclose = ($morecss?' class="'.$morecss.'"':''); + else $linkclose = ($morecss ? ' class="'.$morecss.'"' : ''); $linkstart = ''; - $linkend=''; + $linkstart .= $linkclose.'>'; + $linkend = ''; $result .= $linkstart; - if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); - if ($withpicto != 2) $result.= $this->ref; + if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); + if ($withpicto != 2) $result .= $this->ref; $result .= $linkend; //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); @@ -430,7 +430,7 @@ class CompanyPaymentMode extends CommonObject public function setAsDefault($id = 0, $alltypes = 0) { $sql1 = "SELECT rowid as id, fk_soc, type FROM ".MAIN_DB_PREFIX."societe_rib"; - $sql1.= " WHERE rowid = ".($id?$id:$this->id); + $sql1 .= " WHERE rowid = ".($id ? $id : $this->id); dol_syslog(get_class($this).'::setAsDefault', LOG_DEBUG); $result1 = $this->db->query($sql1); @@ -450,14 +450,14 @@ class CompanyPaymentMode extends CommonObject $this->db->begin(); $sql2 = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET default_rib = 0, tms = tms"; - $sql2.= " WHERE default_rib <> 0 AND fk_soc = ".$obj->fk_soc; - if ($type) $sql2.= " AND type = '".$this->db->escape($type)."'"; + $sql2 .= " WHERE default_rib <> 0 AND fk_soc = ".$obj->fk_soc; + if ($type) $sql2 .= " AND type = '".$this->db->escape($type)."'"; dol_syslog(get_class($this).'::setAsDefault', LOG_DEBUG); $result2 = $this->db->query($sql2); $sql3 = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET default_rib = 1"; - $sql3.= " WHERE rowid = ".$obj->id; - if ($type) $sql3.= " AND type = '".$this->db->escape($type)."'"; + $sql3 .= " WHERE rowid = ".$obj->id; + if ($type) $sql3 .= " AND type = '".$this->db->escape($type)."'"; dol_syslog(get_class($this).'::setAsDefault', LOG_DEBUG); $result3 = $this->db->query($sql3); @@ -528,10 +528,10 @@ class CompanyPaymentMode extends CommonObject public function info($id) { $sql = 'SELECT rowid, date_creation as datec, tms as datem,'; - $sql.= ' fk_user_creat, fk_user_modif'; - $sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; - $sql.= ' WHERE t.rowid = '.$id; - $result=$this->db->query($sql); + $sql .= ' fk_user_creat, fk_user_modif'; + $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; + $sql .= ' WHERE t.rowid = '.$id; + $result = $this->db->query($sql); if ($result) { if ($this->db->num_rows($result)) @@ -542,7 +542,7 @@ class CompanyPaymentMode extends CommonObject { $cuser = new User($this->db); $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; + $this->user_creation = $cuser; } if ($obj->fk_user_valid) @@ -556,7 +556,7 @@ class CompanyPaymentMode extends CommonObject { $cluser = new User($this->db); $cluser->fetch($obj->fk_user_cloture); - $this->user_cloture = $cluser; + $this->user_cloture = $cluser; } $this->date_creation = $this->db->jdate($obj->datec); diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index e6e9e42aa75..39ec8fee2e1 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -87,7 +87,6 @@ class Societe extends CommonObject */ protected $childtablesoncascade = array( "societe_prices", - "societe_log", "societe_address", "product_fournisseur_price", "product_customer_price_log", @@ -133,17 +132,16 @@ class Societe extends CommonObject 'nom' =>array('type'=>'varchar(128)', 'label'=>'Nom', 'enabled'=>1, 'visible'=>-1, 'position'=>35, 'showoncombobox'=>1), 'name_alias' =>array('type'=>'varchar(128)', 'label'=>'Name alias', 'enabled'=>1, 'visible'=>-1, 'position'=>36, 'showoncombobox'=>1), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'default'=>1, 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>40, 'index'=>1), - 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'Ref ext', 'enabled'=>1, 'visible'=>0, 'position'=>45), - 'ref_int' =>array('type'=>'varchar(60)', 'label'=>'Ref int', 'enabled'=>1, 'visible'=>0, 'position'=>50), // deprecated - 'code_client' =>array('type'=>'varchar(24)', 'label'=>'Code client', 'enabled'=>1, 'visible'=>-1, 'position'=>55), - 'code_fournisseur' =>array('type'=>'varchar(24)', 'label'=>'Code fournisseur', 'enabled'=>1, 'visible'=>-1, 'position'=>60), - 'code_compta' =>array('type'=>'varchar(24)', 'label'=>'Code compta', 'enabled'=>1, 'visible'=>-1, 'position'=>65), - 'code_compta_fournisseur' =>array('type'=>'varchar(24)', 'label'=>'Code compta fournisseur', 'enabled'=>1, 'visible'=>-1, 'position'=>70), + 'ref_ext' =>array('type'=>'varchar(255)', 'label'=>'RefExt', 'enabled'=>1, 'visible'=>0, 'position'=>45), + 'code_client' =>array('type'=>'varchar(24)', 'label'=>'CustomerCode', 'enabled'=>1, 'visible'=>-1, 'position'=>55), + 'code_fournisseur' =>array('type'=>'varchar(24)', 'label'=>'SupplierCode', 'enabled'=>1, 'visible'=>-1, 'position'=>60), + 'code_compta' =>array('type'=>'varchar(24)', 'label'=>'CodeCompta', 'enabled'=>1, 'visible'=>-1, 'position'=>65), + 'code_compta_fournisseur' =>array('type'=>'varchar(24)', 'label'=>'CodeComptaSupplier', 'enabled'=>1, 'visible'=>-1, 'position'=>70), 'address' =>array('type'=>'varchar(255)', 'label'=>'Address', 'enabled'=>1, 'visible'=>-1, 'position'=>75), 'zip' =>array('type'=>'varchar(25)', 'label'=>'Zip', 'enabled'=>1, 'visible'=>-1, 'position'=>80), 'town' =>array('type'=>'varchar(50)', 'label'=>'Town', 'enabled'=>1, 'visible'=>-1, 'position'=>85), - 'fk_departement' =>array('type'=>'integer', 'label'=>'Fk departement', 'enabled'=>1, 'visible'=>-1, 'position'=>90), - 'fk_pays' =>array('type'=>'integer', 'label'=>'Fk pays', 'enabled'=>1, 'visible'=>-1, 'position'=>95), + 'fk_departement' =>array('type'=>'integer', 'label'=>'State', 'enabled'=>1, 'visible'=>-1, 'position'=>90), + 'fk_pays' =>array('type'=>'integer:Ccountry:core/class/ccountry.class.php', 'label'=>'Country', 'enabled'=>1, 'visible'=>-1, 'position'=>95), 'phone' =>array('type'=>'varchar(20)', 'label'=>'Phone', 'enabled'=>1, 'visible'=>-1, 'position'=>100), 'fax' =>array('type'=>'varchar(20)', 'label'=>'Fax', 'enabled'=>1, 'visible'=>-1, 'position'=>105), 'url' =>array('type'=>'varchar(255)', 'label'=>'Url', 'enabled'=>1, 'visible'=>-1, 'position'=>110), @@ -160,8 +158,8 @@ class Societe extends CommonObject 'twitter' =>array('type'=>'varchar(255)', 'label'=>'Twitter', 'enabled'=>1, 'visible'=>-1, 'position'=>165),*/ 'fk_effectif' =>array('type'=>'integer', 'label'=>'Fk effectif', 'enabled'=>1, 'visible'=>-1, 'position'=>170), 'fk_typent' =>array('type'=>'integer', 'label'=>'Fk typent', 'enabled'=>1, 'visible'=>-1, 'position'=>175), - 'fk_forme_juridique' =>array('type'=>'integer', 'label'=>'Fk forme juridique', 'enabled'=>1, 'visible'=>-1, 'position'=>180), - 'fk_currency' =>array('type'=>'varchar(3)', 'label'=>'Fk currency', 'enabled'=>1, 'visible'=>-1, 'position'=>185), + 'fk_forme_juridique' =>array('type'=>'integer', 'label'=>'JuridicalStatus', 'enabled'=>1, 'visible'=>-1, 'position'=>180), + 'fk_currency' =>array('type'=>'varchar(3)', 'label'=>'Currency', 'enabled'=>1, 'visible'=>-1, 'position'=>185), 'siren' =>array('type'=>'varchar(128)', 'label'=>'Idprof1', 'enabled'=>1, 'visible'=>-1, 'position'=>190), 'siret' =>array('type'=>'varchar(128)', 'label'=>'Idprof2', 'enabled'=>1, 'visible'=>-1, 'position'=>195), 'ape' =>array('type'=>'varchar(128)', 'label'=>'Idprof3', 'enabled'=>1, 'visible'=>-1, 'position'=>200), @@ -1403,6 +1401,15 @@ class Societe extends CommonObject $error++; } } + // Actions on extra languages + if (!$error && empty($conf->global->MAIN_EXTRALANGUAGES_DISABLED)) // For avoid conflicts if trigger used + { + $result = $this->insertExtraLanguages(); + if ($result < 0) + { + $error++; + } + } if (!$error && $call_trigger) { @@ -2398,7 +2405,7 @@ class Societe extends CommonObject // By default if (empty($linkstart)) { - $label .= ''.$langs->trans("ShowCompany").''; + $label .= ''.$langs->trans("ThirdParty").''; $linkstart = 'picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1); if ($withpicto != 2) $result .= ($maxlen ?dol_trunc($name, $maxlen) : $name); $result .= $linkend; @@ -3616,6 +3623,7 @@ class Societe extends CommonObject $this->phone = $member->phone; // Prof phone $this->email = $member->email; $this->socialnetworks = $member->socialnetworks; + $this->entity=$member->entity; $this->client = 1; // A member is a customer by default $this->code_client = ($customercode ? $customercode : -1); @@ -4414,7 +4422,6 @@ class Societe extends CommonObject $tables = array( 'societe_address', 'societe_commerciaux', - 'societe_log', 'societe_prices', 'societe_remise', 'societe_remise_except', diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php index 3664d8fd848..ad7383d81af 100644 --- a/htdocs/societe/consumption.php +++ b/htdocs/societe/consumption.php @@ -33,13 +33,13 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; // Security check $socid = GETPOST('socid', 'int'); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'societe', $socid, '&societe'); $object = new Societe($db); if ($socid > 0) $object->fetch($socid); // Sort & Order fields -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); @@ -47,26 +47,26 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortorder) $sortorder='DESC'; -if (! $sortfield) $sortfield='dateprint'; +if (!$sortorder) $sortorder = 'DESC'; +if (!$sortfield) $sortfield = 'dateprint'; // Search fields -$sref=GETPOST("sref"); -$sprod_fulldescr=GETPOST("sprod_fulldescr"); -$month = GETPOST('month', 'int'); -$year = GETPOST('year', 'int'); +$sref = GETPOST("sref"); +$sprod_fulldescr = GETPOST("sprod_fulldescr"); +$month = GETPOST('month', 'int'); +$year = GETPOST('year', 'int'); // Clean up on purge search criteria ? if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // Both test are required to be compatible with all browsers { - $sref=''; - $sprod_fulldescr=''; - $year=''; - $month=''; + $sref = ''; + $sprod_fulldescr = ''; + $year = ''; + $month = ''; } // Customer or supplier selected in drop box $thirdTypeSelect = GETPOST("third_select_id"); -$type_element = GETPOST('type_element')?GETPOST('type_element'):''; +$type_element = GETPOST('type_element') ?GETPOST('type_element') : ''; // Load translation files required by the page $langs->loadLangs(array("companies", "bills", "orders", "suppliers", "propal", "interventions", "contracts", "products")); @@ -79,8 +79,8 @@ $hookmanager->initHooks(array('consumptionthirdparty')); * Actions */ -$parameters=array('id'=>$socid); -$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +$parameters = array('id'=>$socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); @@ -91,11 +91,11 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e $form = new Form($db); $formother = new FormOther($db); -$productstatic=new Product($db); +$productstatic = new Product($db); $title = $langs->trans("Referers", $object->name); -if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; -$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title = $object->name." - ".$title; +$help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); if (empty($socid)) @@ -109,14 +109,14 @@ dol_fiche_head($head, 'consumption', $langs->trans("ThirdParty"), -1, 'company') $linkback = ''.$langs->trans("BackToList").''; -dol_banner_tab($object, 'socid', $linkback, ($user->socid?0:1), 'rowid', 'nom'); +dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); print '
    '; print '
    '; print ''; -if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field +if (!empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field { print ''; } @@ -131,19 +131,19 @@ if ($object->client) if ($object->check_codeclient() <> 0) print ' ('.$langs->trans("WrongCustomerCode").')'; print ''; $sql = "SELECT count(*) as nb from ".MAIN_DB_PREFIX."facture where fk_soc = ".$socid; - $resql=$db->query($sql); + $resql = $db->query($sql); if (!$resql) dol_print_error($db); $obj = $db->fetch_object($resql); $nbFactsClient = $obj->nb; - $thirdTypeArray['customer']=$langs->trans("customer"); - if ($conf->propal->enabled && $user->rights->propal->lire) $elementTypeArray['propal']=$langs->transnoentitiesnoconv('Proposals'); - if ($conf->commande->enabled && $user->rights->commande->lire) $elementTypeArray['order']=$langs->transnoentitiesnoconv('Orders'); - if ($conf->facture->enabled && $user->rights->facture->lire) $elementTypeArray['invoice']=$langs->transnoentitiesnoconv('Invoices'); - if ($conf->contrat->enabled && $user->rights->contrat->lire) $elementTypeArray['contract']=$langs->transnoentitiesnoconv('Contracts'); + $thirdTypeArray['customer'] = $langs->trans("customer"); + if ($conf->propal->enabled && $user->rights->propal->lire) $elementTypeArray['propal'] = $langs->transnoentitiesnoconv('Proposals'); + if ($conf->commande->enabled && $user->rights->commande->lire) $elementTypeArray['order'] = $langs->transnoentitiesnoconv('Orders'); + if ($conf->facture->enabled && $user->rights->facture->lire) $elementTypeArray['invoice'] = $langs->transnoentitiesnoconv('Invoices'); + if ($conf->contrat->enabled && $user->rights->contrat->lire) $elementTypeArray['contract'] = $langs->transnoentitiesnoconv('Contracts'); } -if ($conf->ficheinter->enabled && $user->rights->ficheinter->lire) $elementTypeArray['fichinter']=$langs->transnoentitiesnoconv('Interventions'); +if ($conf->ficheinter->enabled && $user->rights->ficheinter->lire) $elementTypeArray['fichinter'] = $langs->transnoentitiesnoconv('Interventions'); if ($object->fournisseur) { @@ -153,15 +153,15 @@ if ($object->fournisseur) if ($object->check_codefournisseur() <> 0) print ' ('.$langs->trans("WrongSupplierCode").')'; print ''; $sql = "SELECT count(*) as nb from ".MAIN_DB_PREFIX."commande_fournisseur where fk_soc = ".$socid; - $resql=$db->query($sql); + $resql = $db->query($sql); if (!$resql) dol_print_error($db); $obj = $db->fetch_object($resql); $nbCmdsFourn = $obj->nb; - $thirdTypeArray['supplier']=$langs->trans("supplier"); - if ($conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire) $elementTypeArray['supplier_invoice']=$langs->transnoentitiesnoconv('SuppliersInvoices'); - if ($conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire) $elementTypeArray['supplier_order']=$langs->transnoentitiesnoconv('SuppliersOrders'); - if ($conf->fournisseur->enabled && $user->rights->supplier_proposal->lire) $elementTypeArray['supplier_proposal']=$langs->transnoentitiesnoconv('SupplierProposals'); + $thirdTypeArray['supplier'] = $langs->trans("supplier"); + if ($conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire) $elementTypeArray['supplier_invoice'] = $langs->transnoentitiesnoconv('SuppliersInvoices'); + if ($conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire) $elementTypeArray['supplier_order'] = $langs->transnoentitiesnoconv('SuppliersOrders'); + if ($conf->fournisseur->enabled && $user->rights->supplier_proposal->lire) $elementTypeArray['supplier_proposal'] = $langs->transnoentitiesnoconv('SupplierProposals'); } print '
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    '; @@ -174,7 +174,7 @@ print '
    '; print '
    '; print ''; -$sql_select=''; +$sql_select = ''; /*if ($type_element == 'action') { // Customer : show products from invoices require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; @@ -188,178 +188,178 @@ $sql_select=''; if ($type_element == 'fichinter') { // Customer : show products from invoices require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; - $documentstatic=new Fichinter($db); + $documentstatic = new Fichinter($db); $sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datec as dateprint, f.fk_statut as status, '; - $tables_from = MAIN_DB_PREFIX."fichinter as f LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as d ON d.fk_fichinter = f.rowid"; // Must use left join to work also with option that disable usage of lines. + $tables_from = MAIN_DB_PREFIX."fichinter as f LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as d ON d.fk_fichinter = f.rowid"; // Must use left join to work also with option that disable usage of lines. $where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid; - $where.= " AND f.entity = ".$conf->entity; + $where .= " AND f.entity = ".$conf->entity; $dateprint = 'f.datec'; - $doc_number='f.ref'; + $doc_number = 'f.ref'; } if ($type_element == 'invoice') { // Customer : show products from invoices require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; - $documentstatic=new Facture($db); + $documentstatic = new Facture($db); $sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, f.type as doc_type, f.datef as dateprint, f.fk_statut as status, f.paye as paid, '; $tables_from = MAIN_DB_PREFIX."facture as f,".MAIN_DB_PREFIX."facturedet as d"; $where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid; - $where.= " AND d.fk_facture = f.rowid"; - $where.= " AND f.entity IN (".getEntity('invoice').")"; + $where .= " AND d.fk_facture = f.rowid"; + $where .= " AND f.entity IN (".getEntity('invoice').")"; $dateprint = 'f.datef'; - $doc_number='f.ref'; - $thirdTypeSelect='customer'; + $doc_number = 'f.ref'; + $thirdTypeSelect = 'customer'; } if ($type_element == 'propal') { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; - $documentstatic=new Propal($db); + $documentstatic = new Propal($db); $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.datep as dateprint, c.fk_statut as status, '; $tables_from = MAIN_DB_PREFIX."propal as c,".MAIN_DB_PREFIX."propaldet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; - $where.= " AND d.fk_propal = c.rowid"; - $where.= " AND c.entity = ".$conf->entity; + $where .= " AND d.fk_propal = c.rowid"; + $where .= " AND c.entity = ".$conf->entity; $datePrint = 'c.datep'; - $doc_number='c.ref'; - $thirdTypeSelect='customer'; + $doc_number = 'c.ref'; + $thirdTypeSelect = 'customer'; } if ($type_element == 'order') { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; - $documentstatic=new Commande($db); + $documentstatic = new Commande($db); $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, c.fk_statut as status, '; $tables_from = MAIN_DB_PREFIX."commande as c,".MAIN_DB_PREFIX."commandedet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; - $where.= " AND d.fk_commande = c.rowid"; - $where.= " AND c.entity = ".$conf->entity; + $where .= " AND d.fk_commande = c.rowid"; + $where .= " AND c.entity = ".$conf->entity; $dateprint = 'c.date_commande'; - $doc_number='c.ref'; - $thirdTypeSelect='customer'; + $doc_number = 'c.ref'; + $thirdTypeSelect = 'customer'; } if ($type_element == 'supplier_invoice') { // Supplier : Show products from invoices. require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; - $documentstatic=new FactureFournisseur($db); + $documentstatic = new FactureFournisseur($db); $sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datef as dateprint, f.fk_statut as status, f.paye as paid, '; $tables_from = MAIN_DB_PREFIX."facture_fourn as f,".MAIN_DB_PREFIX."facture_fourn_det as d"; $where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid; - $where.= " AND d.fk_facture_fourn = f.rowid"; - $where.= " AND f.entity = ".$conf->entity; + $where .= " AND d.fk_facture_fourn = f.rowid"; + $where .= " AND f.entity = ".$conf->entity; $dateprint = 'f.datef'; - $doc_number='f.ref'; - $thirdTypeSelect='supplier'; + $doc_number = 'f.ref'; + $thirdTypeSelect = 'supplier'; } if ($type_element == 'supplier_proposal') { require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; - $documentstatic=new SupplierProposal($db); + $documentstatic = new SupplierProposal($db); $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, '; $tables_from = MAIN_DB_PREFIX."supplier_proposal as c,".MAIN_DB_PREFIX."supplier_proposaldet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; - $where.= " AND d.fk_supplier_proposal = c.rowid"; - $where.= " AND c.entity = ".$conf->entity; + $where .= " AND d.fk_supplier_proposal = c.rowid"; + $where .= " AND c.entity = ".$conf->entity; $dateprint = 'c.date_valid'; - $doc_number='c.ref'; - $thirdTypeSelect='supplier'; + $doc_number = 'c.ref'; + $thirdTypeSelect = 'supplier'; } if ($type_element == 'supplier_order') { // Supplier : Show products from orders. require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; - $documentstatic=new CommandeFournisseur($db); + $documentstatic = new CommandeFournisseur($db); $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, '; $tables_from = MAIN_DB_PREFIX."commande_fournisseur as c,".MAIN_DB_PREFIX."commande_fournisseurdet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; - $where.= " AND d.fk_commande = c.rowid"; - $where.= " AND c.entity = ".$conf->entity; + $where .= " AND d.fk_commande = c.rowid"; + $where .= " AND c.entity = ".$conf->entity; $dateprint = 'c.date_valid'; - $doc_number='c.ref'; - $thirdTypeSelect='supplier'; + $doc_number = 'c.ref'; + $thirdTypeSelect = 'supplier'; } if ($type_element == 'contract') { // Order require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; - $documentstatic=new Contrat($db); - $documentstaticline=new ContratLigne($db); + $documentstatic = new Contrat($db); + $documentstaticline = new ContratLigne($db); $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_contrat as dateprint, d.statut as status, '; $tables_from = MAIN_DB_PREFIX."contrat as c,".MAIN_DB_PREFIX."contratdet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; - $where.= " AND d.fk_contrat = c.rowid"; - $where.= " AND c.entity = ".$conf->entity; + $where .= " AND d.fk_contrat = c.rowid"; + $where .= " AND c.entity = ".$conf->entity; $dateprint = 'c.date_valid'; - $doc_number='c.ref'; - $thirdTypeSelect='customer'; + $doc_number = 'c.ref'; + $thirdTypeSelect = 'customer'; } -$parameters=array(); -$reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook +$parameters = array(); +$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook if (!empty($sql_select)) { $sql = $sql_select; - $sql.= ' d.description as description,'; - if ($type_element != 'fichinter' && $type_element != 'contract' && $type_element != 'supplier_proposal') $sql.= ' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.date_start, d.date_end, d.qty, d.qty as prod_qty, d.total_ht as total_ht, '; - if ($type_element == 'supplier_proposal') $sql.= ' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.qty, d.qty as prod_qty, d.total_ht as total_ht, '; - if ($type_element == 'contract') $sql.= ' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.date_ouverture as date_start, d.date_cloture as date_end, d.qty, d.qty as prod_qty, d.total_ht as total_ht, '; - if ($type_element != 'fichinter') $sql.= ' p.ref as ref, p.rowid as prod_id, p.rowid as fk_product, p.fk_product_type as prod_type, p.fk_product_type as fk_product_type, p.entity as pentity,'; - $sql.= " s.rowid as socid "; - if ($type_element != 'fichinter') $sql.= ", p.ref as prod_ref, p.label as product_label"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".$tables_from; - if ($type_element != 'fichinter') $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON d.fk_product = p.rowid '; - $sql.= $where; - $sql.= dolSqlDateFilter($dateprint, 0, $month, $year); - if ($sref) $sql.= " AND ".$doc_number." LIKE '%".$db->escape($sref)."%'"; + $sql .= ' d.description as description,'; + if ($type_element != 'fichinter' && $type_element != 'contract' && $type_element != 'supplier_proposal') $sql .= ' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.date_start, d.date_end, d.qty, d.qty as prod_qty, d.total_ht as total_ht, '; + if ($type_element == 'supplier_proposal') $sql .= ' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.qty, d.qty as prod_qty, d.total_ht as total_ht, '; + if ($type_element == 'contract') $sql .= ' d.label, d.fk_product as product_id, d.fk_product as fk_product, d.info_bits, d.date_ouverture as date_start, d.date_cloture as date_end, d.qty, d.qty as prod_qty, d.total_ht as total_ht, '; + if ($type_element != 'fichinter') $sql .= ' p.ref as ref, p.rowid as prod_id, p.rowid as fk_product, p.fk_product_type as prod_type, p.fk_product_type as fk_product_type, p.entity as pentity,'; + $sql .= " s.rowid as socid "; + if ($type_element != 'fichinter') $sql .= ", p.ref as prod_ref, p.label as product_label"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".$tables_from; + if ($type_element != 'fichinter') $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON d.fk_product = p.rowid '; + $sql .= $where; + $sql .= dolSqlDateFilter($dateprint, 0, $month, $year); + if ($sref) $sql .= " AND ".$doc_number." LIKE '%".$db->escape($sref)."%'"; if ($sprod_fulldescr) { - $sql.= " AND (d.description LIKE '%".$db->escape($sprod_fulldescr)."%'"; - if (GETPOST('type_element') != 'fichinter') $sql.= " OR p.ref LIKE '%".$db->escape($sprod_fulldescr)."%'"; - if (GETPOST('type_element') != 'fichinter') $sql.= " OR p.label LIKE '%".$db->escape($sprod_fulldescr)."%'"; - $sql.=")"; + $sql .= " AND (d.description LIKE '%".$db->escape($sprod_fulldescr)."%'"; + if (GETPOST('type_element') != 'fichinter') $sql .= " OR p.ref LIKE '%".$db->escape($sprod_fulldescr)."%'"; + if (GETPOST('type_element') != 'fichinter') $sql .= " OR p.label LIKE '%".$db->escape($sprod_fulldescr)."%'"; + $sql .= ")"; } - $sql.= $db->order($sortfield, $sortorder); + $sql .= $db->order($sortfield, $sortorder); - $resql=$db->query($sql); + $resql = $db->query($sql); $totalnboflines = $db->num_rows($resql); - $sql.= $db->plimit($limit + 1, $offset); + $sql .= $db->plimit($limit + 1, $offset); //print $sql; } -$disabled=0; -$showempty=2; -if (empty($elementTypeArray) && ! $object->client && ! $object->fournisseur) +$disabled = 0; +$showempty = 2; +if (empty($elementTypeArray) && !$object->client && !$object->fournisseur) { - $showempty=$langs->trans("ThirdpartyNotCustomerNotSupplierSoNoRef"); - $disabled=1; + $showempty = $langs->trans("ThirdpartyNotCustomerNotSupplierSoNoRef"); + $disabled = 1; } // Define type of elements $typeElementString = $form->selectarray("type_element", $elementTypeArray, GETPOST('type_element'), $showempty, 0, 0, '', 0, 0, $disabled, '', 'maxwidth150onsmartphone'); $button = ''; -$param=''; -$param.="&sref=".urlencode($sref); -$param.="&month=".urlencode($month); -$param.="&year=".urlencode($year); -$param.="&sprod_fulldescr=".urlencode($sprod_fulldescr); -$param.="&socid=".urlencode($socid); -$param.="&type_element=".urlencode($type_element); +$param = ''; +$param .= "&sref=".urlencode($sref); +$param .= "&month=".urlencode($month); +$param .= "&year=".urlencode($year); +$param .= "&sprod_fulldescr=".urlencode($sprod_fulldescr); +$param .= "&socid=".urlencode($socid); +$param .= "&type_element=".urlencode($type_element); -$total_qty=0; +$total_qty = 0; if ($sql_select) { - $resql=$db->query($sql); + $resql = $db->query($sql); if (!$resql) dol_print_error($db); $num = $db->num_rows($resql); - $param="&socid=".$socid."&type_element=".$type_element; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; - if ($sprod_fulldescr) $param.= "&sprod_fulldescr=".urlencode($sprod_fulldescr); - if ($sref) $param.= "&sref=".urlencode($sref); - if ($month) $param.= "&month=".$month; - if ($year) $param.= "&year=".$year; - if ($optioncss != '') $param.='&optioncss='.$optioncss; + $param = "&socid=".$socid."&type_element=".$type_element; + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage; + if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit; + if ($sprod_fulldescr) $param .= "&sprod_fulldescr=".urlencode($sprod_fulldescr); + if ($sref) $param .= "&sref=".urlencode($sref); + if ($month) $param .= "&month=".$month; + if ($year) $param .= "&year=".$year; + if ($optioncss != '') $param .= '&optioncss='.$optioncss; print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, '', 0, '', '', $limit); @@ -372,8 +372,8 @@ if ($sql_select) print ''; print ''; print ''; // date - print $formother->select_month($month?$month:-1, 'month', 1, 0, 'valignmiddle'); - $formother->select_year($year?$year:-1, 'year', 1, 20, 1); + print $formother->select_month($month ? $month : -1, 'month', 1, 0, 'valignmiddle'); + $formother->select_year($year ? $year : -1, 'year', 1, 20, 1); print ''; print ''; print ''; @@ -385,7 +385,7 @@ if ($sql_select) print ''; print ''; print ''; - $searchpicto=$form->showFilterAndCheckAddButtons(0); + $searchpicto = $form->showFilterAndCheckAddButtons(0); print $searchpicto; print ''; print ''; @@ -405,16 +405,16 @@ if ($sql_select) $i = 0; while (($objp = $db->fetch_object($resql)) && $i < min($num, $limit)) { - $documentstatic->id=$objp->doc_id; - $documentstatic->ref=$objp->doc_number; - $documentstatic->type=$objp->doc_type; - $documentstatic->fk_statut=$objp->status; - $documentstatic->fk_status=$objp->status; - $documentstatic->statut=$objp->status; - $documentstatic->status=$objp->status; - $documentstatic->paye=$objp->paid; + $documentstatic->id = $objp->doc_id; + $documentstatic->ref = $objp->doc_number; + $documentstatic->type = $objp->doc_type; + $documentstatic->fk_statut = $objp->status; + $documentstatic->fk_status = $objp->status; + $documentstatic->statut = $objp->status; + $documentstatic->status = $objp->status; + $documentstatic->paye = $objp->paid; - if (is_object($documentstaticline)) $documentstaticline->statut=$objp->status; + if (is_object($documentstaticline)) $documentstaticline->statut = $objp->status; print ''; print ''; @@ -437,58 +437,58 @@ if ($sql_select) print ''; // Define text, description and type - $text=''; $description=''; $type=0; + $text = ''; $description = ''; $type = 0; // Code to show product duplicated from commonobject->printObjectLine if ($objp->fk_product > 0) { $product_static = new Product($db); - $product_static->type=$objp->fk_product_type; - $product_static->id=$objp->fk_product; - $product_static->ref=$objp->ref; - $product_static->entity=$objp->pentity; - $text=$product_static->getNomUrl(1); + $product_static->type = $objp->fk_product_type; + $product_static->id = $objp->fk_product; + $product_static->ref = $objp->ref; + $product_static->entity = $objp->pentity; + $text = $product_static->getNomUrl(1); } // Product if ($objp->fk_product > 0) { // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) + if (!empty($conf->global->MAIN_MULTILANGS) && !empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { $prod = new Product($db); $prod->fetch($objp->fk_product); $outputlangs = $langs; - $newlang=''; - if (empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang=GETPOST('lang_id', 'aZ09'); - if (empty($newlang)) $newlang=$object->default_lang; - if (! empty($newlang)) + $newlang = ''; + if (empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if (empty($newlang)) $newlang = $object->default_lang; + if (!empty($newlang)) { $outputlangs = new Translate("", $conf); $outputlangs->setDefaultLang($newlang); } - $label = (! empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $objp->product_label; + $label = (!empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $objp->product_label; } else { $label = $objp->product_label; } - $text.= ' - '.(! empty($objp->label)?$objp->label:$label); - $description=(! empty($conf->global->PRODUIT_DESC_IN_FORM)?'':dol_htmlentitiesbr($objp->description)); + $text .= ' - '.(!empty($objp->label) ? $objp->label : $label); + $description = (!empty($conf->global->PRODUIT_DESC_IN_FORM) ? '' : dol_htmlentitiesbr($objp->description)); } if (($objp->info_bits & 2) == 2) { ?> trans("ShowReduc"), 'reduc').' '; - if ($objp->description == '(DEPOSIT)') $txt=$langs->trans("Deposit"); - elseif ($objp->description == '(EXCESS RECEIVED)') $txt=$langs->trans("ExcessReceived"); - elseif ($objp->description == '(EXCESS PAID)') $txt=$langs->trans("ExcessPaid"); + if ($objp->description == '(DEPOSIT)') $txt = $langs->trans("Deposit"); + elseif ($objp->description == '(EXCESS RECEIVED)') $txt = $langs->trans("ExcessReceived"); + elseif ($objp->description == '(EXCESS PAID)') $txt = $langs->trans("ExcessPaid"); //else $txt=$langs->trans("Discount"); print $txt; ?> @@ -498,33 +498,33 @@ if ($sql_select) { if ($objp->description == '(CREDIT_NOTE)' && $objp->fk_remise_except > 0) { - $discount=new DiscountAbsolute($db); + $discount = new DiscountAbsolute($db); $discount->fetch($objp->fk_remise_except); - echo ($txt?' - ':'').$langs->transnoentities("DiscountFromCreditNote", $discount->getNomUrl(0)); + echo ($txt ? ' - ' : '').$langs->transnoentities("DiscountFromCreditNote", $discount->getNomUrl(0)); } if ($objp->description == '(EXCESS RECEIVED)' && $objp->fk_remise_except > 0) { - $discount=new DiscountAbsolute($db); + $discount = new DiscountAbsolute($db); $discount->fetch($objp->fk_remise_except); - echo ($txt?' - ':'').$langs->transnoentities("DiscountFromExcessReceived", $discount->getNomUrl(0)); + echo ($txt ? ' - ' : '').$langs->transnoentities("DiscountFromExcessReceived", $discount->getNomUrl(0)); } elseif ($objp->description == '(EXCESS PAID)' && $objp->fk_remise_except > 0) { - $discount=new DiscountAbsolute($db); + $discount = new DiscountAbsolute($db); $discount->fetch($objp->fk_remise_except); - echo ($txt?' - ':'').$langs->transnoentities("DiscountFromExcessPaid", $discount->getNomUrl(0)); + echo ($txt ? ' - ' : '').$langs->transnoentities("DiscountFromExcessPaid", $discount->getNomUrl(0)); } elseif ($objp->description == '(DEPOSIT)' && $objp->fk_remise_except > 0) { - $discount=new DiscountAbsolute($db); + $discount = new DiscountAbsolute($db); $discount->fetch($objp->fk_remise_except); - echo ($txt?' - ':'').$langs->transnoentities("DiscountFromDeposit", $discount->getNomUrl(0)); + echo ($txt ? ' - ' : '').$langs->transnoentities("DiscountFromDeposit", $discount->getNomUrl(0)); // Add date of deposit - if (! empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) echo ' ('.dol_print_date($discount->datec).')'; + if (!empty($conf->global->INVOICE_ADD_DEPOSIT_DATE)) echo ' ('.dol_print_date($discount->datec).')'; } else { - echo ($txt?' - ':'').dol_htmlentitiesbr($objp->description); + echo ($txt ? ' - ' : '').dol_htmlentitiesbr($objp->description); } } } @@ -537,18 +537,18 @@ if ($sql_select) echo get_date_range($objp->date_start, $objp->date_end); // Add description in form - if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) + if (!empty($conf->global->PRODUIT_DESC_IN_FORM)) { - print (! empty($objp->description) && $objp->description!=$objp->product_label)?'
    '.dol_htmlentitiesbr($objp->description):''; + print (!empty($objp->description) && $objp->description != $objp->product_label) ? '
    '.dol_htmlentitiesbr($objp->description) : ''; } } else { - if (! empty($objp->label) || ! empty($objp->description)) + if (!empty($objp->label) || !empty($objp->description)) { - if ($type==1) $text = img_object($langs->trans('Service'), 'service'); + if ($type == 1) $text = img_object($langs->trans('Service'), 'service'); else $text = img_object($langs->trans('Product'), 'product'); - if (! empty($objp->label)) { - $text.= ' '.$objp->label.''; + if (!empty($objp->label)) { + $text .= ' '.$objp->label.''; echo $form->textwithtooltip($text, dol_htmlentitiesbr($objp->description), 3, '', '', $i, 0, ''); } else { echo $text.' '.dol_htmlentitiesbr($objp->description); @@ -581,25 +581,25 @@ if ($sql_select) print ''; //print ''.$prodreftxt.''; - if ($type_element == 'invoice' && $objp->doc_type == Facture::TYPE_CREDIT_NOTE) $objp->prod_qty=-($objp->prod_qty); + if ($type_element == 'invoice' && $objp->doc_type == Facture::TYPE_CREDIT_NOTE) $objp->prod_qty = -($objp->prod_qty); print ''.$objp->prod_qty.''; - $total_qty+=$objp->prod_qty; + $total_qty += $objp->prod_qty; print ''.price($objp->total_ht).''; - $total_ht+=$objp->total_ht; + $total_ht += $objp->total_ht; - print ''.price($objp->total_ht/(empty($objp->prod_qty)?1:$objp->prod_qty)).''; + print ''.price($objp->total_ht / (empty($objp->prod_qty) ? 1 : $objp->prod_qty)).''; print "\n"; $i++; } print ''; - print '' . $langs->trans('Total') . ''; + print ''.$langs->trans('Total').''; print ''; - print '' . $total_qty . ''; - print '' . price($total_ht) . ''; - print '' . price($total_ht/(empty($total_qty)?1:$total_qty)) . ''; + print ''.$total_qty.''; + print ''.price($total_ht).''; + print ''.price($total_ht / (empty($total_qty) ? 1 : $total_qty)).''; print ""; print '
    '; diff --git a/htdocs/societe/document.php b/htdocs/societe/document.php index 992892e96db..f22fb1ec5b6 100644 --- a/htdocs/societe/document.php +++ b/htdocs/societe/document.php @@ -56,23 +56,23 @@ $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield=$conf->global->MAIN_DOC_SORT_FIELD; } -if (! empty($conf->global->MAIN_DOC_SORT_ORDER)) { $sortorder=$conf->global->MAIN_DOC_SORT_ORDER; } +if (!empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield = $conf->global->MAIN_DOC_SORT_FIELD; } +if (!empty($conf->global->MAIN_DOC_SORT_ORDER)) { $sortorder = $conf->global->MAIN_DOC_SORT_ORDER; } -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="position_name"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "position_name"; $object = new Societe($db); -if ($id > 0 || ! empty($ref)) +if ($id > 0 || !empty($ref)) { $result = $object->fetch($id, $ref); - $upload_dir = $conf->societe->multidir_output[$object->entity] . "/" . $object->id ; - $courrier_dir = $conf->societe->multidir_output[$object->entity] . "/courrier/" . get_exdir($object->id, 0, 0, 0, $object, 'thirdparty'); + $upload_dir = $conf->societe->multidir_output[$object->entity]."/".$object->id; + $courrier_dir = $conf->societe->multidir_output[$object->entity]."/courrier/".get_exdir($object->id, 0, 0, 0, $object, 'thirdparty'); } // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('thirdpartydocument','globalcard')); +$hookmanager->initHooks(array('thirdpartydocument', 'globalcard')); @@ -99,25 +99,25 @@ if ($object->id) /* * Show tabs */ - if (! empty($conf->notification->enabled)) $langs->load("mails"); + if (!empty($conf->notification->enabled)) $langs->load("mails"); $head = societe_prepare_head($object); - $form=new Form($db); + $form = new Form($db); dol_fiche_head($head, 'document', $langs->trans("ThirdParty"), -1, 'company'); // Build file list - $filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); - $totalsize=0; - foreach($filearray as $key => $file) + $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); + $totalsize = 0; + foreach ($filearray as $key => $file) { - $totalsize+=$file['size']; + $totalsize += $file['size']; } $linkback = ''.$langs->trans("BackToList").''; - dol_banner_tab($object, 'socid', $linkback, ($user->socid?0:1), 'rowid', 'nom'); + dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); print '
    '; diff --git a/htdocs/societe/index.php b/htdocs/societe/index.php index 5b89c086c1f..fdd7c24f280 100644 --- a/htdocs/societe/index.php +++ b/htdocs/societe/index.php @@ -38,7 +38,7 @@ $hookmanager->initHooks(array('thirdpartiesindex')); $langs->load("companies"); $socid = GETPOST('socid', 'int'); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; // Security check $result = restrictedArea($user, 'societe', 0, '', '', '', ''); diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index fa8ac3d9469..3d72fb1cdd3 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -102,7 +102,7 @@ $search_parent_name = GETPOST('search_parent_name', 'alpha'); $type = GETPOST('type', 'alpha'); $optioncss = GETPOST('optioncss', 'alpha'); $mode = GETPOST("mode", 'alpha'); -$place = GETPOST('place', 'aZ09') ? GETPOST('place', 'aZ09') : '0'; // $place is string id of table for Bar or Restaurant +$place = GETPOST('place', 'aZ09') ? GETPOST('place', 'aZ09') : '0'; // $place is string id of table for Bar or Restaurant $diroutputmassaction = $conf->societe->dir_output.'/temp/massgeneration/'.$user->id; @@ -1148,7 +1148,7 @@ while ($i < min($num, $limit)) } if (!empty($arrayfields['s.email']['checked'])) { - print "".$obj->email."\n"; + print ''.dol_print_email($obj->email, $obj->rowid, $obj->socid, 'AC_EMAIL', 0, 0, 1)."\n"; if (!$i) $totalarray['nbfield']++; } if (!empty($arrayfields['s.phone']['checked'])) diff --git a/htdocs/societe/note.php b/htdocs/societe/note.php index 0f2bc4d8002..2e3e3ec4532 100644 --- a/htdocs/societe/note.php +++ b/htdocs/societe/note.php @@ -34,24 +34,24 @@ $action = GETPOST('action', 'aZ09'); $langs->load("companies"); // Security check -$id = GETPOST('id')?GETPOST('id', 'int'):GETPOST('socid', 'int'); -if ($user->socid) $id=$user->socid; +$id = GETPOST('id') ?GETPOST('id', 'int') : GETPOST('socid', 'int'); +if ($user->socid) $id = $user->socid; $result = restrictedArea($user, 'societe', $id, '&societe'); $object = new Societe($db); if ($id > 0) $object->fetch($id); -$permissionnote=$user->rights->societe->creer; // Used by the include of actions_setnotes.inc.php +$permissionnote = $user->rights->societe->creer; // Used by the include of actions_setnotes.inc.php // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('thirdpartynote','globalcard')); +$hookmanager->initHooks(array('thirdpartynote', 'globalcard')); /* * Actions */ -include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once +include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not includ_once /* @@ -60,9 +60,9 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, $form = new Form($db); -$title=$langs->trans("ThirdParty").' - '.$langs->trans("Notes"); -if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name.' - '.$langs->trans("Notes"); -$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +$title = $langs->trans("ThirdParty").' - '.$langs->trans("Notes"); +if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title = $object->name.' - '.$langs->trans("Notes"); +$help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); if ($object->id > 0) @@ -70,7 +70,7 @@ if ($object->id > 0) /* * Affichage onglets */ - if (! empty($conf->notification->enabled)) $langs->load("mails"); + if (!empty($conf->notification->enabled)) $langs->load("mails"); $head = societe_prepare_head($object); @@ -78,9 +78,9 @@ if ($object->id > 0) $linkback = ''.$langs->trans("BackToList").''; - dol_banner_tab($object, 'socid', $linkback, ($user->socid?0:1), 'rowid', 'nom'); + dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); - $cssclass='titlefield'; + $cssclass = 'titlefield'; //if ($action == 'editnote_public') $cssclass='titlefieldcreate'; //if ($action == 'editnote_private') $cssclass='titlefieldcreate'; @@ -89,7 +89,7 @@ if ($object->id > 0) print '
    '; print ''; - if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field + if (!empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field { print ''; } diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php index f04459335d5..191f9c4bb2c 100644 --- a/htdocs/societe/notify/card.php +++ b/htdocs/societe/notify/card.php @@ -34,31 +34,31 @@ $langs->loadLangs(array("companies", "mails", "admin", "other")); $socid = GETPOST("socid", 'int'); $action = GETPOST('action', 'aZ09'); -$contactid = GETPOST('contactid'); // May be an int or 'thirdparty' +$contactid = GETPOST('contactid'); // May be an int or 'thirdparty' $actionid = GETPOST('actionid'); -$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'societe', '', ''); -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; -$sortfield=GETPOST("sortfield", 'alpha'); -$sortorder=GETPOST("sortorder", 'alpha'); +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST("sortfield", 'alpha'); +$sortorder = GETPOST("sortorder", 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); -if (! $sortorder) $sortorder="DESC"; -if (! $sortfield) $sortfield="n.daten"; +if (!$sortorder) $sortorder = "DESC"; +if (!$sortfield) $sortfield = "n.daten"; if (empty($page) || $page == -1) { $page = 0; } $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -$now=dol_now(); +$now = dol_now(); $object = new Societe($db); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('thirdpartynotification','globalcard')); +$hookmanager->initHooks(array('thirdpartynotification', 'globalcard')); @@ -66,13 +66,13 @@ $hookmanager->initHooks(array('thirdpartynotification','globalcard')); * Actions */ -$parameters=array('id'=>$socid); -$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +$parameters = array('id'=>$socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) { - $error=0; + $error = 0; // Add a notification if ($action == 'add') @@ -88,7 +88,7 @@ if (empty($reshook)) $error++; } - if (! $error) + if (!$error) { $db->begin(); @@ -99,7 +99,7 @@ if (empty($reshook)) $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify_def (datec,fk_soc, fk_contact, fk_action)"; $sql .= " VALUES ('".$db->idate($now)."',".$socid.",".$contactid.",".$actionid.")"; - if (! $db->query($sql)) + if (!$db->query($sql)) { $error++; dol_print_error($db); @@ -110,7 +110,7 @@ if (empty($reshook)) dol_print_error($db); } - if (! $error) + if (!$error) { $db->commit(); } @@ -138,11 +138,11 @@ if (empty($reshook)) $form = new Form($db); $object = new Societe($db); -$result=$object->fetch($socid); +$result = $object->fetch($socid); -$title=$langs->trans("ThirdParty").' - '.$langs->trans("Notification"); -if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name.' - '.$langs->trans("Notification"); -$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +$title = $langs->trans("ThirdParty").' - '.$langs->trans("Notification"); +if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title = $object->name.' - '.$langs->trans("Notification"); +$help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $title, $help_url); @@ -156,7 +156,7 @@ if ($result > 0) $linkback = ''.$langs->trans("BackToList").''; - dol_banner_tab($object, 'socid', $linkback, ($user->socid?0:1), 'rowid', 'nom'); + dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); print '
    '; @@ -164,7 +164,7 @@ if ($result > 0) print '
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    '; // Prefix - if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field + if (!empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field { print ''; } @@ -178,7 +178,7 @@ if ($result > 0) print ''; } - if (! empty($conf->fournisseur->enabled) && $object->fournisseur && ! empty($user->rights->fournisseur->lire)) + if (!empty($conf->fournisseur->enabled) && $object->fournisseur && !empty($user->rights->fournisseur->lire)) { print '';*/ - if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field + if (!empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field { print ''; } @@ -213,31 +213,31 @@ if ($id > 0 || ! empty($ref)) print '
    '; // Contacts lines (modules that overwrite templates must declare this into descriptor) - $dirtpls=array_merge($conf->modules_parts['tpl'], array('/core/tpl')); - foreach($dirtpls as $reldir) + $dirtpls = array_merge($conf->modules_parts['tpl'], array('/core/tpl')); + foreach ($dirtpls as $reldir) { - $res=@include dol_buildpath($reldir.'/contacts.tpl.php'); + $res = @include dol_buildpath($reldir.'/contacts.tpl.php'); if ($res) break; } // additionnal list with adherents of company - if (! empty($conf->adherent->enabled) && $user->rights->adherent->lire) + if (!empty($conf->adherent->enabled) && $user->rights->adherent->lire) { require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; - $membertypestatic=new AdherentType($db); - $memberstatic=new Adherent($db); + $membertypestatic = new AdherentType($db); + $memberstatic = new Adherent($db); $langs->load("members"); $sql = "SELECT d.rowid, d.login, d.lastname, d.firstname, d.societe as company, d.fk_soc,"; - $sql.= " d.datefin,"; - $sql.= " d.email, d.fk_adherent_type as type_id, d.morphy, d.statut,"; - $sql.= " t.libelle as type, t.subscription"; - $sql.= " FROM ".MAIN_DB_PREFIX."adherent as d"; - $sql.= ", ".MAIN_DB_PREFIX."adherent_type as t"; - $sql.= " WHERE d.fk_soc = ".$id; - $sql.= " AND d.fk_adherent_type = t.rowid"; + $sql .= " d.datefin,"; + $sql .= " d.email, d.fk_adherent_type as type_id, d.morphy, d.statut,"; + $sql .= " t.libelle as type, t.subscription"; + $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d"; + $sql .= ", ".MAIN_DB_PREFIX."adherent_type as t"; + $sql .= " WHERE d.fk_soc = ".$id; + $sql .= " AND d.fk_adherent_type = t.rowid"; dol_syslog("get list sql=".$sql); $resql = $db->query($sql); @@ -245,11 +245,11 @@ if ($id > 0 || ! empty($ref)) { $num = $db->num_rows($resql); - if ($num > 0) + if ($num > 0) { $param = ''; - $titre=$langs->trans("MembersListOfTiers"); + $titre = $langs->trans("MembersListOfTiers"); print '
    '; print_barre_liste($titre, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, 0, ''); @@ -266,20 +266,20 @@ if ($id > 0 || ! empty($ref)) print_liste_field_titre("EndSubscription", $_SERVER["PHP_SELF"], "d.datefin", $param, "", '', $sortfield, $sortorder, 'center '); print "\n"; - $i=0; + $i = 0; while ($i < $num && $i < $conf->liste_limit) { $objp = $db->fetch_object($resql); - $datefin=$db->jdate($objp->datefin); - $memberstatic->id=$objp->rowid; - $memberstatic->ref=$objp->rowid; - $memberstatic->lastname=$objp->lastname; - $memberstatic->firstname=$objp->firstname; - $memberstatic->statut=$objp->statut; - $memberstatic->datefin=$db->jdate($objp->datefin); + $datefin = $db->jdate($objp->datefin); + $memberstatic->id = $objp->rowid; + $memberstatic->ref = $objp->rowid; + $memberstatic->lastname = $objp->lastname; + $memberstatic->firstname = $objp->firstname; + $memberstatic->statut = $objp->statut; + $memberstatic->datefin = $db->jdate($objp->datefin); - $companyname=$objp->company; + $companyname = $objp->company; print ''; @@ -290,18 +290,18 @@ if ($id > 0 || ! empty($ref)) // Lastname print "\n"; // Login print "\n"; // Type - $membertypestatic->id=$objp->type_id; - $membertypestatic->libelle=$objp->type; - $membertypestatic->label=$objp->type; + $membertypestatic->id = $objp->type_id; + $membertypestatic->libelle = $objp->type; + $membertypestatic->label = $objp->type; print ''; print ''; } // Extra fields diff --git a/htdocs/supplier_proposal/note.php b/htdocs/supplier_proposal/note.php index a3e58312e11..aaf40288e15 100644 --- a/htdocs/supplier_proposal/note.php +++ b/htdocs/supplier_proposal/note.php @@ -29,18 +29,18 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; -if (! empty($conf->projet->enabled)) { - require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; +if (!empty($conf->projet->enabled)) { + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page $langs->loadLangs(array('supplier_proposal', 'compta', 'bills')); $id = GETPOST('id', 'int'); -$ref=GETPOST('ref', 'alpha'); -$action=GETPOST('action', 'alpha'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'supplier_proposal', $id, 'supplier_proposal'); $object = new SupplierProposal($db); @@ -64,68 +64,68 @@ llxHeader('', $langs->trans('CommRequest'), 'EN:Ask_Price_Supplier|FR:Demande_de $form = new Form($db); -if ($id > 0 || ! empty($ref)) +if ($id > 0 || !empty($ref)) { if ($mesg) print $mesg; - $now=dol_now(); + $now = dol_now(); if ($object->fetch($id, $ref)) { $object->fetch_thirdparty(); $societe = new Societe($db); - if ( $societe->fetch($object->socid) ) + if ($societe->fetch($object->socid)) { $head = supplier_proposal_prepare_head($object); dol_fiche_head($head, 'note', $langs->trans('CommRequest'), -1, 'supplier_proposal'); // Supplier proposal card - $linkback = '' . $langs->trans("BackToList") . ''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; + $morehtmlref = '
    '; // Ref supplier //$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1); //$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref.=$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); + $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.='
    '.$langs->trans('Project') . ' '; + $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->supplier_proposal->creer) { if ($action != 'classify') { //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref.=' : '; + $morehtmlref .= ' : '; } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } - $morehtmlref.='
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); diff --git a/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php b/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php index 6c4bea3ba8b..c4891f52f81 100644 --- a/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php +++ b/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php @@ -18,7 +18,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -33,14 +33,14 @@ global $user; $langs = $GLOBALS['langs']; $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; -$total=0; -$ilink=0; -foreach($linkedObjectBlock as $key => $objectlink) +$total = 0; +$ilink = 0; +foreach ($linkedObjectBlock as $key => $objectlink) { $ilink++; - $trclass='oddeven'; - if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total'; + $trclass = 'oddeven'; + if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass .= ' liste_sub_total'; ?> @@ -60,7 +60,7 @@ foreach($linkedObjectBlock as $key => $objectlink) if (count($linkedObjectBlock) > 1) { ?> - + diff --git a/htdocs/support/background.png b/htdocs/support/background.png index b264649fcbc..4d20deebd7b 100644 Binary files a/htdocs/support/background.png and b/htdocs/support/background.png differ diff --git a/htdocs/support/helpcenter.png b/htdocs/support/helpcenter.png index a285ccf18ca..7233060aafd 100644 Binary files a/htdocs/support/helpcenter.png and b/htdocs/support/helpcenter.png differ diff --git a/htdocs/support/inc.php b/htdocs/support/inc.php index 941bf6bb0d3..c12526bbe85 100644 --- a/htdocs/support/inc.php +++ b/htdocs/support/inc.php @@ -25,7 +25,7 @@ */ // Define DOL_DOCUMENT_ROOT -if (! defined('DOL_DOCUMENT_ROOT')) define('DOL_DOCUMENT_ROOT', '..'); +if (!defined('DOL_DOCUMENT_ROOT')) define('DOL_DOCUMENT_ROOT', '..'); require_once DOL_DOCUMENT_ROOT.'/core/class/translate.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; @@ -35,22 +35,22 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; // Avoid warnings with strict mode E_STRICT $conf = new stdClass(); // instantiate $conf explicitely $conf->global = new stdClass(); -$conf->file = new stdClass(); -$conf->db = new stdClass(); +$conf->file = new stdClass(); +$conf->db = new stdClass(); $conf->syslog = new stdClass(); // Force $_REQUEST["logtohtml"] -$_REQUEST["logtohtml"]=1; +$_REQUEST["logtohtml"] = 1; // Correction PHP_SELF (ex pour apache via caudium) car PHP_SELF doit valoir URL relative // et non path absolu. if (isset($_SERVER["DOCUMENT_URI"]) && $_SERVER["DOCUMENT_URI"]) { - $_SERVER["PHP_SELF"]=$_SERVER["DOCUMENT_URI"]; + $_SERVER["PHP_SELF"] = $_SERVER["DOCUMENT_URI"]; } -$includeconferror=''; +$includeconferror = ''; // Define vars $conffiletoshowshort = "conf.php"; @@ -58,7 +58,7 @@ $conffiletoshowshort = "conf.php"; $conffile = "../conf/conf.php"; $conffiletoshow = "htdocs/conf/conf.php"; // For debian/redhat like systems -if (! file_exists($conffile)) +if (!file_exists($conffile)) { $conffile = "/etc/dolibarr/conf.php"; $conffiletoshow = "/etc/dolibarr/conf.php"; @@ -154,8 +154,8 @@ $langs = new Translate('..', $conf); if (GETPOST('lang', 'aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09')); else $langs->setDefaultLang('auto'); -$bc[false]=' class="bg1"'; -$bc[true]=' class="bg2"'; +$bc[false] = ' class="bg1"'; +$bc[true] = ' class="bg2"'; /** @@ -175,10 +175,10 @@ function conf($dolibarr_main_document_root) global $dolibarr_main_db_pass; global $character_set_client; - $return=include_once $dolibarr_main_document_root.'/core/class/conf.class.php'; - if (! $return) return -1; + $return = include_once $dolibarr_main_document_root.'/core/class/conf.class.php'; + if (!$return) return -1; - $conf=new Conf(); + $conf = new Conf(); $conf->db->type = trim($dolibarr_main_db_type); $conf->db->host = trim($dolibarr_main_db_host); $conf->db->port = trim($dolibarr_main_db_port); @@ -186,7 +186,7 @@ function conf($dolibarr_main_document_root) $conf->db->user = trim($dolibarr_main_db_user); $conf->db->pass = trim($dolibarr_main_db_pass); - if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='utf8_unicode_ci'; + if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation = 'utf8_unicode_ci'; return 1; } diff --git a/htdocs/support/index.php b/htdocs/support/index.php index e4bbfdfa6a2..e6632d2b0e0 100644 --- a/htdocs/support/index.php +++ b/htdocs/support/index.php @@ -28,11 +28,11 @@ // This is a standalone feature with no information from Dolibarr to show // and no database access to do. include_once 'inc.php'; -$uri=preg_replace('/^http(s?):\/\//i', '', $dolibarr_main_url_root); -$pos = strstr($uri, '/'); // $pos contient alors url sans nom domaine -if ($pos == '/') $pos = ''; // si $pos vaut /, on le met a '' -if (! defined('DOL_URL_ROOT')) - define('DOL_URL_ROOT', $pos); // URL racine relative +$uri = preg_replace('/^http(s?):\/\//i', '', $dolibarr_main_url_root); +$pos = strstr($uri, '/'); // $pos contient alors url sans nom domaine +if ($pos == '/') $pos = ''; // si $pos vaut /, on le met a '' +if (!defined('DOL_URL_ROOT')) + define('DOL_URL_ROOT', $pos); // URL racine relative $langs->loadLangs(array("other", $langs->load("help"))); @@ -47,17 +47,17 @@ print $langs->trans("HelpCenterDesc2")."
    \n"; print '
    '; -$homeurl=DOL_URL_ROOT.'/'; -if (GETPOST('dol_hide_toptmenu')) $homeurl.=(strpos($homeurl, '?')===false?'?':'&').'dol_hide_toptmenu=1'; -if (GETPOST('dol_hide_leftmenu')) $homeurl.=(strpos($homeurl, '?')===false?'?':'&').'dol_hide_leftmenu=1'; -if (GETPOST('dol_no_mouse_hover')) $homeurl.=(strpos($homeurl, '?')===false?'?':'&').'dol_no_mouse_hover=1'; -if (GETPOST('dol_use_jmobile')) $homeurl.=(strpos($homeurl, '?')===false?'?':'&').'dol_use_jmobile=1'; +$homeurl = DOL_URL_ROOT.'/'; +if (GETPOST('dol_hide_toptmenu')) $homeurl .= (strpos($homeurl, '?') === false ? '?' : '&').'dol_hide_toptmenu=1'; +if (GETPOST('dol_hide_leftmenu')) $homeurl .= (strpos($homeurl, '?') === false ? '?' : '&').'dol_hide_leftmenu=1'; +if (GETPOST('dol_no_mouse_hover')) $homeurl .= (strpos($homeurl, '?') === false ? '?' : '&').'dol_no_mouse_hover=1'; +if (GETPOST('dol_use_jmobile')) $homeurl .= (strpos($homeurl, '?') === false ? '?' : '&').'dol_use_jmobile=1'; print $langs->trans("ToGoBackToDolibarr", $homeurl); print '

    '; -$style1='color: #333344; font-size: 16px; font-weight: bold'; -$style2='color: #5D4455; font-weight: bold;'; +$style1 = 'color: #333344; font-size: 16px; font-weight: bold'; +$style2 = 'color: #5D4455; font-weight: bold;'; print "\n"; print '
    '; @@ -84,17 +84,17 @@ print '
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    '; print $langs->trans('SupplierCode').''; @@ -225,7 +225,7 @@ if ($result > 0) print ''; print ''; - $param="&socid=".$socid; + $param = "&socid=".$socid; // Line with titles print ''; @@ -236,29 +236,29 @@ if ($result > 0) print_liste_field_titre(''); print "\n"; - $var=false; - $listofemails=$object->thirdparty_and_contact_email_array(); + $var = false; + $listofemails = $object->thirdparty_and_contact_email_array(); if (count($listofemails) > 0) { - $actions=array(); + $actions = array(); // Load array of available notifications - $notificationtrigger=new InterfaceNotification($db); - $listofmanagedeventfornotification=$notificationtrigger->getListOfManagedEvents(); + $notificationtrigger = new InterfaceNotification($db); + $listofmanagedeventfornotification = $notificationtrigger->getListOfManagedEvents(); - foreach($listofmanagedeventfornotification as $managedeventfornotification) + foreach ($listofmanagedeventfornotification as $managedeventfornotification) { - $label=($langs->trans("Notify_".$managedeventfornotification['code'])!="Notify_".$managedeventfornotification['code']?$langs->trans("Notify_".$managedeventfornotification['code']):$managedeventfornotification['label']); - $actions[$managedeventfornotification['rowid']]=$label; + $label = ($langs->trans("Notify_".$managedeventfornotification['code']) != "Notify_".$managedeventfornotification['code'] ? $langs->trans("Notify_".$managedeventfornotification['code']) : $managedeventfornotification['label']); + $actions[$managedeventfornotification['rowid']] = $label; } - print ''; print ''; print ''; print ''; @@ -280,16 +280,16 @@ if ($result > 0) // List of notifications enabled for contacts $sql = "SELECT n.rowid, n.type,"; - $sql.= " a.code, a.label,"; - $sql.= " c.rowid as contactid, c.lastname, c.firstname, c.email"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; - $sql.= " ".MAIN_DB_PREFIX."notify_def as n,"; - $sql.= " ".MAIN_DB_PREFIX."socpeople c"; - $sql.= " WHERE a.rowid = n.fk_action"; - $sql.= " AND c.rowid = n.fk_contact"; - $sql.= " AND c.fk_soc = ".$object->id; + $sql .= " a.code, a.label,"; + $sql .= " c.rowid as contactid, c.lastname, c.firstname, c.email"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; + $sql .= " ".MAIN_DB_PREFIX."notify_def as n,"; + $sql .= " ".MAIN_DB_PREFIX."socpeople c"; + $sql .= " WHERE a.rowid = n.fk_action"; + $sql .= " AND c.rowid = n.fk_contact"; + $sql .= " AND c.fk_soc = ".$object->id; - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -318,15 +318,15 @@ if ($result > 0) { $i = 0; - $contactstatic=new Contact($db); + $contactstatic = new Contact($db); while ($i < $num) { $obj = $db->fetch_object($resql); - $contactstatic->id=$obj->contactid; - $contactstatic->lastname=$obj->lastname; - $contactstatic->firstname=$obj->firstname; + $contactstatic->id = $obj->contactid; + $contactstatic->lastname = $obj->lastname; + $contactstatic->firstname = $obj->firstname; print ''; print ''; print ''; print ''; print ''; } print '
    '; - print $form->selectarray("contactid", $listofemails, '', 0, 0, 0, '', 0, 0, 0, '', 'maxwidthonsmartphone'); + print '
    '; + print img_picto('', 'contact', '', false, 0, 0, '', 'paddingright').$form->selectarray("contactid", $listofemails, '', 0, 0, 0, '', 0, 0, 0, '', 'maxwidthonsmartphone'); print ''; - print $form->selectarray("actionid", $actions, '', 1, 0, 0, '', 0, 0, 0, '', 'maxwidthonsmartphone'); + print img_picto('', 'object_action', '', false, 0, 0, '', 'paddingright').$form->selectarray("actionid", $actions, '', 1, 0, 0, '', 0, 0, 0, '', 'maxwidthonsmartphone'); print ''; - $type=array('email'=>$langs->trans("EMail")); + $type = array('email'=>$langs->trans("EMail")); print $form->selectarray("typeid", $type); print '
    '.$contactstatic->getNomUrl(1); if ($obj->type == 'email') { @@ -342,8 +342,8 @@ if ($result > 0) } print ''; - $label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); - print $label; + $label = ($langs->trans("Notify_".$obj->code) != "Notify_".$obj->code ? $langs->trans("Notify_".$obj->code) : $obj->label); + print img_picto('', 'object_action', '', false, 0, 0, '', 'paddingright').$label; print ''; if ($obj->type == 'email') print $langs->trans("Email"); @@ -415,14 +415,14 @@ if ($result > 0) // List $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type as object_type, n.objet_id as object_id, n.type,"; - $sql.= " c.rowid as id, c.lastname, c.firstname, c.email as contactemail,"; - $sql.= " a.code, a.label"; - $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; - $sql.= " ".MAIN_DB_PREFIX."notify as n "; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as c ON n.fk_contact = c.rowid"; - $sql.= " WHERE a.rowid = n.fk_action"; - $sql.= " AND n.fk_soc = ".$object->id; - $sql.= $db->order($sortfield, $sortorder); + $sql .= " c.rowid as id, c.lastname, c.firstname, c.email as contactemail,"; + $sql .= " a.code, a.label"; + $sql .= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; + $sql .= " ".MAIN_DB_PREFIX."notify as n "; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as c ON n.fk_contact = c.rowid"; + $sql .= " WHERE a.rowid = n.fk_action"; + $sql .= " AND n.fk_soc = ".$object->id; + $sql .= $db->order($sortfield, $sortorder); // Count total nb of records $nbtotalofrecords = ''; @@ -437,9 +437,9 @@ if ($result > 0) } } - $sql.= $db->plimit($limit+1, $offset); + $sql .= $db->plimit($limit + 1, $offset); - $resql=$db->query($sql); + $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -449,9 +449,9 @@ if ($result > 0) dol_print_error($db); } - $param='&socid='.$object->id; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; + $param = '&socid='.$object->id; + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage; + if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit; print ''; if ($optioncss != '') print ''; @@ -479,7 +479,7 @@ if ($result > 0) { $i = 0; - $contactstatic=new Contact($db); + $contactstatic = new Contact($db); while ($i < $num) { @@ -488,11 +488,11 @@ if ($result > 0) print '
    '; if ($obj->id > 0) { - $contactstatic->id=$obj->id; - $contactstatic->lastname=$obj->lastname; - $contactstatic->firstname=$obj->firstname; + $contactstatic->id = $obj->id; + $contactstatic->lastname = $obj->lastname; + $contactstatic->firstname = $obj->firstname; print $contactstatic->getNomUrl(1); - print $obj->email?' <'.$obj->email.'>':$langs->trans("NoMail"); + print $obj->email ? ' <'.$obj->email.'>' : $langs->trans("NoMail"); } else { @@ -500,7 +500,7 @@ if ($result > 0) } print ''; - $label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); + $label = ($langs->trans("Notify_".$obj->code) != "Notify_".$obj->code ? $langs->trans("Notify_".$obj->code) : $obj->label); print $label; print ''; @@ -522,6 +522,8 @@ if ($result > 0) $i++; } $db->free($resql); + } else { + print '
    '.$langs->trans("None").'
    '; diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index c9fe7c41001..d440930bbf5 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -1385,7 +1385,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' $morehtmlright = dolGetButtonTitle($langs->trans('Add'), '', 'fa fa-plus-circle', $_SERVER["PHP_SELF"].'?socid='.$object->id.'&action=create'); - print load_fiche_titre($langs->trans("BankAccounts"), $morehtmlright, ''); + print load_fiche_titre($langs->trans("BankAccounts"), $morehtmlright, 'bank'); $rib_list = $object->get_all_rib(); if (is_array($rib_list)) diff --git a/htdocs/societe/societecontact.php b/htdocs/societe/societecontact.php index 198252c3f3a..5ff86ff0064 100644 --- a/htdocs/societe/societecontact.php +++ b/htdocs/societe/societecontact.php @@ -34,30 +34,30 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; $langs->loadLangs(array("orders", "companies")); -$id=GETPOST('id', 'int')?GETPOST('id', 'int'):GETPOST('socid', 'int'); -$ref=GETPOST('ref', 'alpha'); -$action=GETPOST('action', 'alpha'); -$massaction=GETPOST('massaction', 'alpha'); +$id = GETPOST('id', 'int') ?GETPOST('id', 'int') : GETPOST('socid', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); +$massaction = GETPOST('massaction', 'alpha'); -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; -$sortfield=GETPOST("sortfield", 'alpha'); -$sortorder=GETPOST("sortorder", 'alpha'); +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; +$sortfield = GETPOST("sortfield", 'alpha'); +$sortorder = GETPOST("sortorder", 'alpha'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); -if (! $sortorder) $sortorder="ASC"; -if (! $sortfield) $sortfield="s.nom"; +if (!$sortorder) $sortorder = "ASC"; +if (!$sortfield) $sortfield = "s.nom"; if (empty($page) || $page == -1 || !empty($search_btn) || !empty($search_remove_btn) || (empty($toselect) && $massaction === '0')) { $page = 0; } $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'societe', $id, ''); $object = new Societe($db); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('contactthirdparty','globalcard')); +$hookmanager->initHooks(array('contactthirdparty', 'globalcard')); /* @@ -98,7 +98,7 @@ elseif ($action == 'swapstatut' && $user->rights->societe->creer) { if ($object->fetch($id)) { - $result=$object->swapContactStatus(GETPOST('ligne')); + $result = $object->swapContactStatus(GETPOST('ligne')); } else { @@ -134,15 +134,15 @@ elseif ($action == 'setaddress' && $user->rights->societe->creer) * View */ -$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +$help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('', $langs->trans("ThirdParty"), $help_url); $form = new Form($db); $formcompany = new FormCompany($db); $formother = new FormOther($db); -$contactstatic=new Contact($db); -$userstatic=new User($db); +$contactstatic = new Contact($db); +$userstatic = new User($db); /* *************************************************************************** */ @@ -151,7 +151,7 @@ $userstatic=new User($db); /* */ /* *************************************************************************** */ -if ($id > 0 || ! empty($ref)) +if ($id > 0 || !empty($ref)) { if ($object->fetch($id, $ref) > 0) { @@ -166,7 +166,7 @@ if ($id > 0 || ! empty($ref)) $linkback = ''.$langs->trans("BackToList").''; - dol_banner_tab($object, 'socid', $linkback, ($user->socid?0:1), 'rowid', 'nom'); + dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); print '
    '; @@ -183,7 +183,7 @@ if ($id > 0 || ! empty($ref)) print yn($object->fournisseur); print '
    '.$langs->trans('Prefix').''.$object->prefix_comm.'
    rowid\">"; - print ((! empty($objp->lastname) || ! empty($objp->firstname)) ? dol_trunc($memberstatic->getFullName($langs)) : ''); - print (((! empty($objp->lastname) || ! empty($objp->firstname)) && ! empty($companyname)) ? ' / ' : ''); - print (! empty($companyname) ? dol_trunc($companyname, 32) : ''); + print ((!empty($objp->lastname) || !empty($objp->firstname)) ? dol_trunc($memberstatic->getFullName($langs)) : ''); + print (((!empty($objp->lastname) || !empty($objp->firstname)) && !empty($companyname)) ? ' / ' : ''); + print (!empty($companyname) ? dol_trunc($companyname, 32) : ''); print "".$objp->login."'; print $membertypestatic->getNomUrl(1, 32); diff --git a/htdocs/societe/tpl/linesalesrepresentative.tpl.php b/htdocs/societe/tpl/linesalesrepresentative.tpl.php index 9a17ac1e202..11b2d033b69 100644 --- a/htdocs/societe/tpl/linesalesrepresentative.tpl.php +++ b/htdocs/societe/tpl/linesalesrepresentative.tpl.php @@ -16,7 +16,7 @@ */ // Protection to avoid direct call of template -if (empty($conf) || ! is_object($conf)) +if (empty($conf) || !is_object($conf)) { print "Error, template page can't be called as URL"; exit; @@ -28,23 +28,23 @@ print $langs->trans('SalesRepresentatives'); print ''; -$listsalesrepresentatives=$object->getSalesRepresentatives($user); -$nbofsalesrepresentative=count($listsalesrepresentatives); +$listsalesrepresentatives = $object->getSalesRepresentatives($user); +$nbofsalesrepresentative = count($listsalesrepresentatives); if ($nbofsalesrepresentative > 0) { - $userstatic=new User($db); - foreach($listsalesrepresentatives as $val) + $userstatic = new User($db); + foreach ($listsalesrepresentatives as $val) { - $userstatic->id=$val['id']; - $userstatic->login=$val['login']; - $userstatic->lastname=$val['lastname']; - $userstatic->firstname=$val['firstname']; - $userstatic->statut=$val['statut']; - $userstatic->photo=$val['photo']; - $userstatic->email=$val['email']; - $userstatic->phone=$val['phone']; - $userstatic->job=$val['job']; - $userstatic->entity=$val['entity']; + $userstatic->id = $val['id']; + $userstatic->login = $val['login']; + $userstatic->lastname = $val['lastname']; + $userstatic->firstname = $val['firstname']; + $userstatic->statut = $val['statut']; + $userstatic->photo = $val['photo']; + $userstatic->email = $val['email']; + $userstatic->phone = $val['phone']; + $userstatic->job = $val['job']; + $userstatic->entity = $val['entity']; print $userstatic->getNomUrl(-1); print ' '; } diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index 9d698c7c5f8..a8bca51dda3 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -165,7 +165,7 @@ print ''; dol_fiche_head($head, 'stripeaccount', '', -1); -$stripearrayofwebhookevents=array('account.updated', 'payout.created', 'payout.paid', 'charge.pending', 'charge.refunded', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed', 'payment_method.attached', 'payment_method.updated', 'payment_method.card_automatically_updated', 'payment_method.detached', 'source.chargeable', 'customer.deleted'); +$stripearrayofwebhookevents = array('account.updated', 'payout.created', 'payout.paid', 'charge.pending', 'charge.refunded', 'charge.succeeded', 'charge.failed', 'payment_intent.succeeded', 'payment_intent.payment_failed', 'payment_method.attached', 'payment_method.updated', 'payment_method.card_automatically_updated', 'payment_method.detached', 'source.chargeable', 'customer.deleted'); print ''.$langs->trans("StripeDesc")."
    \n"; diff --git a/htdocs/stripe/charge.php b/htdocs/stripe/charge.php index 8f753e3b7b5..f765a2a3ec1 100644 --- a/htdocs/stripe/charge.php +++ b/htdocs/stripe/charge.php @@ -97,7 +97,7 @@ if (!$rowid) $param = ''; //if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); - $param.='&starting_after_'.($page+1).'='.$list->data[($limit-1)]->id; + $param .= '&starting_after_'.($page + 1).'='.$list->data[($limit - 1)]->id; //$param.='&ending_before_'.($page+1).'='.$list->data[($limit-1)]->id; $moreforfilter = ''; @@ -138,26 +138,26 @@ if (!$rowid) break; } - if ($charge->refunded=='1') { + if ($charge->refunded == '1') { $status = img_picto($langs->trans("refunded"), 'statut6'); - } elseif ($charge->paid=='1') { + } elseif ($charge->paid == '1') { $status = img_picto($langs->trans((string) $charge->status), 'statut4'); } else { $label = $langs->trans("Message").": ".$charge->failure_message."
    "; - $label.= $langs->trans("Network").": ".$charge->outcome->network_status."
    "; - $label.= $langs->trans("Status").": ".$langs->trans((string) $charge->outcome->seller_message); + $label .= $langs->trans("Network").": ".$charge->outcome->network_status."
    "; + $label .= $langs->trans("Status").": ".$langs->trans((string) $charge->outcome->seller_message); $status = $form->textwithpicto(img_picto($langs->trans((string) $charge->status), 'statut8'), $label, -1); } - if ($charge->payment_method_details->type=='card') { + if ($charge->payment_method_details->type == 'card') { $type = $langs->trans("card"); - } elseif ($charge->source->type=='card'){ + } elseif ($charge->source->type == 'card') { $type = $langs->trans("card"); - } elseif ($charge->payment_method_details->type=='three_d_secure'){ + } elseif ($charge->payment_method_details->type == 'three_d_secure') { $type = $langs->trans("card3DS"); - } elseif ($charge->payment_method_details->type=='sepa_debit'){ + } elseif ($charge->payment_method_details->type == 'sepa_debit') { $type = $langs->trans("sepadebit"); - } elseif ($charge->payment_method_details->type=='ideal'){ + } elseif ($charge->payment_method_details->type == 'ideal') { $type = $langs->trans("iDEAL"); } @@ -240,7 +240,7 @@ if (!$rowid) // Origin print "
    "; - if ($charge->metadata->dol_type=="order" || $charge->metadata->dol_type=="commande") { + if ($charge->metadata->dol_type == "order" || $charge->metadata->dol_type == "commande") { $object = new Commande($db); $object->fetch($charge->metadata->dol_id); if ($object->id > 0) { @@ -248,7 +248,7 @@ if (!$rowid) } else { print $FULLTAG; } - } elseif ($charge->metadata->dol_type=="invoice" || $charge->metadata->dol_type=="facture") { + } elseif ($charge->metadata->dol_type == "invoice" || $charge->metadata->dol_type == "facture") { print $charge->metadata->dol_type.' '.$charge->metadata->dol_id.' - '; $object = new Facture($db); $object->fetch($charge->metadata->dol_id); diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 28bcf9f3347..a72e5291f58 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -417,7 +417,7 @@ class Stripe extends CommonObject "currency" => $currency_code, "payment_method_types" => array("card"), "description" => $description, - "statement_descriptor_suffix" => dol_trunc($tag, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) + "statement_descriptor_suffix" => dol_trunc($tag, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) //"save_payment_method" => true, "setup_future_usage" => "on_session", "metadata" => $metadata @@ -764,7 +764,7 @@ class Stripe extends CommonObject { dol_syslog("Try to create card with dataforcard = ".json_encode($dataforcard)); $card = $cu->sources->create($dataforcard); - if (! $card) + if (!$card) { $this->error = 'Creation of card on Stripe has failed'; } @@ -788,7 +788,7 @@ class Stripe extends CommonObject { dol_syslog("Try to create card with dataforcard = ".json_encode($dataforcard)); $card = $cu->sources->create($dataforcard, array("stripe_account" => $stripeacc)); - if (! $card) + if (!$card) { $this->error = 'Creation of card on Stripe has failed'; } @@ -960,7 +960,7 @@ class Stripe extends CommonObject $charge = \Stripe\Charge::create(array( "amount" => "$stripeamount", "currency" => "$currency", - "statement_descriptor_suffix" => dol_trunc($description, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) + "statement_descriptor_suffix" => dol_trunc($description, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) "description" => "Stripe payment: ".$description, "capture" => $capture, "metadata" => $metadata, @@ -970,7 +970,7 @@ class Stripe extends CommonObject $paymentarray = array( "amount" => "$stripeamount", "currency" => "$currency", - "statement_descriptor_suffix" => dol_trunc($description, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) + "statement_descriptor_suffix" => dol_trunc($description, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) "description" => "Stripe payment: ".$description, "capture" => $capture, "metadata" => $metadata, @@ -1000,7 +1000,7 @@ class Stripe extends CommonObject $paymentarray = array( "amount" => "$stripeamount", "currency" => "$currency", - "statement_descriptor_suffix" => dol_trunc($description, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) + "statement_descriptor_suffix" => dol_trunc($description, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) "description" => "Stripe payment: ".$description, "capture" => $capture, "metadata" => $metadata, diff --git a/htdocs/stripe/img/index.html b/htdocs/stripe/img/index.html deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/htdocs/stripe/img/object_stripe.png b/htdocs/stripe/img/object_stripe.png deleted file mode 100644 index 287bd24910c..00000000000 Binary files a/htdocs/stripe/img/object_stripe.png and /dev/null differ diff --git a/htdocs/stripe/payout.php b/htdocs/stripe/payout.php index 90533464b7f..10316ec2ece 100644 --- a/htdocs/stripe/payout.php +++ b/htdocs/stripe/payout.php @@ -26,17 +26,17 @@ require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php'; +if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; // Load translation files required by the page $langs->loadLangs(array('compta', 'salaries', 'bills', 'hrm', 'stripe')); // Security check $socid = GETPOST("socid", "int"); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; //$result = restrictedArea($user, 'salaries', '', '', ''); -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $rowid = GETPOST("rowid", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); diff --git a/htdocs/stripe/transaction.php b/htdocs/stripe/transaction.php index 978b8ed3d62..59858a69262 100644 --- a/htdocs/stripe/transaction.php +++ b/htdocs/stripe/transaction.php @@ -26,17 +26,17 @@ require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php'; +if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; // Load translation files required by the page $langs->loadLangs(array('compta', 'salaries', 'bills', 'hrm', 'stripe')); // Security check $socid = GETPOST("socid", "int"); -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; //$result = restrictedArea($user, 'salaries', '', '', ''); -$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $rowid = GETPOST("rowid", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha'); $sortorder = GETPOST("sortorder", 'alpha'); diff --git a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php index 85d01930a7d..132820e8e09 100644 --- a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php +++ b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php @@ -29,13 +29,13 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); -$elementtype='supplier_proposal'; //Must be the $table_element of the class that manage extrafield +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); +$elementtype = 'supplier_proposal'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -52,13 +52,13 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("CommRequests"); +$textobject = $langs->transnoentitiesnoconv("CommRequests"); llxHeader('', $langs->trans("SupplierProposalSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SupplierProposalSetup"), $linkback, 'title_setup'); @@ -99,7 +99,7 @@ if ($action == 'create') /* Edition of an optional field */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
    "; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php index 683025ffe86..73ba689f47a 100644 --- a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php +++ b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php @@ -36,14 +36,14 @@ $extrafields = new ExtraFields($db); $form = new Form($db); // List of supported format -$tmptype2label=ExtraFields::$type2label; -$type2label=array(''); -foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->transnoentitiesnoconv($val); +$tmptype2label = ExtraFields::$type2label; +$type2label = array(''); +foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val); -$action=GETPOST('action', 'alpha'); -$attrname=GETPOST('attrname', 'alpha'); +$action = GETPOST('action', 'alpha'); +$attrname = GETPOST('attrname', 'alpha'); -$elementtype='supplier_proposaldet'; //Must be the $table_element of the class that manage extrafield +$elementtype = 'supplier_proposaldet'; //Must be the $table_element of the class that manage extrafield if (!$user->admin) accessforbidden(); @@ -60,11 +60,11 @@ require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php'; * View */ -$textobject=$langs->transnoentitiesnoconv("CommRequests"); +$textobject = $langs->transnoentitiesnoconv("CommRequests"); llxHeader('', $langs->trans("SupplierProposalSetup")); -$linkback=''.$langs->trans("BackToModuleList").''; +$linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("SupplierProposalSetup"), $linkback, 'title_setup'); $head = supplier_proposal_admin_prepare_head(); @@ -104,7 +104,7 @@ if ($action == 'create') /* Edition d'un champ optionnel */ /* */ /* ************************************************************************** */ -if ($action == 'edit' && ! empty($attrname)) +if ($action == 'edit' && !empty($attrname)) { print "
    "; print load_fiche_titre($langs->trans("FieldEdition", $attrname)); diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index 4b9284b06a2..5910f77a819 100644 --- a/htdocs/supplier_proposal/card.php +++ b/htdocs/supplier_proposal/card.php @@ -759,8 +759,8 @@ if (empty($reshook)) $pu_ttc, $info_bits, $type, - -1, // rang - 0, // special_code + -1, // rang + 0, // special_code GETPOST('fk_parent_line'), $fournprice, $buyingprice, @@ -768,8 +768,8 @@ if (empty($reshook)) $array_options, $ref_supplier, $fk_unit, - '', // origin - 0, // origin_id + '', // origin + 0, // origin_id $pu_ht_devise); } @@ -1830,25 +1830,25 @@ if ($action == 'create') if ($action == 'statut') { // Form to set proposal accepted/refused - $form_close = ''; - $form_close .= ''; + $form_close = ''; + $form_close .= ''; $form_close .= ''; - if (! empty($conf->global->SUPPLIER_PROPOSAL_UPDATE_PRICE_ON_SUPPlIER_PROPOSAL)) $form_close .= '

    '.$langs->trans('SupplierProposalRefFournNotice').'

    '; // TODO Suggest a permanent checkbox instead of option + if (!empty($conf->global->SUPPLIER_PROPOSAL_UPDATE_PRICE_ON_SUPPlIER_PROPOSAL)) $form_close .= '

    '.$langs->trans('SupplierProposalRefFournNotice').'

    '; // TODO Suggest a permanent checkbox instead of option $form_close .= ''; - $form_close .= ''; - $form_close .= ''; $form_close .= ''; $form_close .= '
    ' . $langs->trans("CloseAs") . ''; + $form_close .= '
    '.$langs->trans("CloseAs").''; $form_close .= ''; $form_close .= '
    ' . $langs->trans('Note') . '
    '; - $form_close .= ''; - $form_close .= '   '; + $form_close .= ''; + $form_close .= '   '; $form_close .= ' '; $form_close .= '
    '; @@ -1891,11 +1891,13 @@ if ($action == 'create') } // Send - if ($object->statut == SupplierProposal::STATUS_VALIDATED || $object->statut == SupplierProposal::STATUS_SIGNED) { - if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->supplier_proposal->send_advance) { - print ''; - } else - print ''; + if (empty($user->socid)) { + if ($object->statut == SupplierProposal::STATUS_VALIDATED || $object->statut == SupplierProposal::STATUS_SIGNED) { + if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->supplier_proposal->send_advance) { + print ''; + } else + print ''; + } } // Create an order diff --git a/htdocs/supplier_proposal/class/api_supplier_proposals.class.php b/htdocs/supplier_proposal/class/api_supplier_proposals.class.php index 5f49ebbc427..3fbe3afa021 100644 --- a/htdocs/supplier_proposal/class/api_supplier_proposals.class.php +++ b/htdocs/supplier_proposal/class/api_supplier_proposals.class.php @@ -64,16 +64,16 @@ class Supplierproposals extends DolibarrApi */ public function get($id) { - if(! DolibarrApiAccess::$user->rights->supplier_proposal->lire) { + if (!DolibarrApiAccess::$user->rights->supplier_proposal->lire) { throw new RestException(401); } $result = $this->supplier_proposal->fetch($id); - if( ! $result ) { + if (!$result) { throw new RestException(404, 'Supplier Proposal not found'); } - if( ! DolibarrApi::_checkAccessToResource('supplier_proposal', $this->propal->id)) { + if (!DolibarrApi::_checkAccessToResource('supplier_proposal', $this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -105,18 +105,18 @@ class Supplierproposals extends DolibarrApi // If the internal user must only see his customers, force searching by him $search_sale = 0; - if (! DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) $search_sale = DolibarrApiAccess::$user->id; + if (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) $search_sale = DolibarrApiAccess::$user->id; $sql = "SELECT t.rowid"; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) - $sql.= " FROM ".MAIN_DB_PREFIX."supplier_proposal as t"; + $sql .= " FROM ".MAIN_DB_PREFIX."supplier_proposal as t"; - if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale - $sql.= ' WHERE t.entity IN ('.getEntity('propal').')'; - if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= " AND t.fk_soc = sc.fk_soc"; - if ($socids) $sql.= " AND t.fk_soc IN (".$socids.")"; - if ($search_sale > 0) $sql.= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale + $sql .= ' WHERE t.entity IN ('.getEntity('propal').')'; + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql .= " AND t.fk_soc = sc.fk_soc"; + if ($socids) $sql .= " AND t.fk_soc IN (".$socids.")"; + if ($search_sale > 0) $sql .= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale // Insert sale filter if ($search_sale > 0) { @@ -125,23 +125,23 @@ class Supplierproposals extends DolibarrApi // Add sql filters if ($sqlfilters) { - if (! DolibarrApi::_checkFilters($sqlfilters)) + if (!DolibarrApi::_checkFilters($sqlfilters)) { throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); } - $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; - $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + $regexstring = '\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql .= " AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - $sql.= $db->order($sortfield, $sortorder); - if ($limit) { + $sql .= $db->order($sortfield, $sortorder); + if ($limit) { if ($page < 0) { $page = 0; } $offset = $limit * $page; - $sql.= $db->plimit($limit + 1, $offset); + $sql .= $db->plimit($limit + 1, $offset); } $result = $db->query($sql); @@ -150,12 +150,12 @@ class Supplierproposals extends DolibarrApi { $num = $db->num_rows($result); $min = min($num, ($limit <= 0 ? $num : $limit)); - $i=0; + $i = 0; while ($i < $min) { $obj = $db->fetch_object($result); $propal_static = new SupplierProposal($db); - if($propal_static->fetch($obj->rowid)) { + if ($propal_static->fetch($obj->rowid)) { $obj_ret[] = $this->_cleanObjectDatas($propal_static); } $i++; @@ -164,7 +164,7 @@ class Supplierproposals extends DolibarrApi else { throw new RestException(503, 'Error when retrieving supplier proposal list : '.$db->lasterror()); } - if( ! count($obj_ret)) { + if (!count($obj_ret)) { throw new RestException(404, 'No supplier proposal found'); } return $obj_ret; diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index ab451b02177..21c7ea4c6dc 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -596,8 +596,8 @@ class SupplierProposal extends CommonObject //var_dump($this->line->fk_fournprice);exit; // Multicurrency - $this->line->fk_multicurrency = $this->fk_multicurrency; - $this->line->multicurrency_code = $this->multicurrency_code; + $this->line->fk_multicurrency = $this->fk_multicurrency; + $this->line->multicurrency_code = $this->multicurrency_code; $this->line->multicurrency_subprice = $pu_ht_devise; $this->line->multicurrency_total_ht = $multicurrency_total_ht; $this->line->multicurrency_total_tva = $multicurrency_total_tva; @@ -724,7 +724,7 @@ class SupplierProposal extends CommonObject $multicurrency_total_ht = $tabprice[16]; $multicurrency_total_tva = $tabprice[17]; $multicurrency_total_ttc = $tabprice[18]; - $pu_ht_devise = $tabprice[19]; + $pu_ht_devise = $tabprice[19]; //Fetch current line from the database and then clone the object and set it in $oldline property $line = new SupplierProposalLine($this->db); @@ -1806,25 +1806,25 @@ class SupplierProposal extends CommonObject */ public function updateOrCreatePriceFournisseur($user) { - $productsupplier = new ProductFournisseur($this->db); + global $conf; dol_syslog(get_class($this)."::updateOrCreatePriceFournisseur", LOG_DEBUG); foreach ($this->lines as $product) { if ($product->subprice <= 0) continue; + $productsupplier = new ProductFournisseur($this->db); - $idProductFourn = $productsupplier->find_min_price_product_fournisseur($product->fk_product, $product->qty); - $res = $productsupplier->fetch($idProductFourn); + $multicurrency_tx = 1; + $fk_multicurrency = 0; - if ($productsupplier->id) { - if ($productsupplier->fourn_qty == $product->qty) { - $this->updatePriceFournisseur($productsupplier->product_fourn_price_id, $product, $user); - } else { - $this->createPriceFournisseur($product, $user); - } - } else { - $this->createPriceFournisseur($product, $user); - } + if (empty($this->thirdparty)) $this->fetch_thirdparty(); + + $ref_fourn = $product->ref_fourn; + if (empty($ref_fourn)) $ref_fourn = $product->ref_supplier; + if (!empty($conf->multicurrency->enabled) && !empty($product->multicurrency_code)) list($fk_multicurrency, $multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $product->multicurrency_code); + $productsupplier->id = $product->fk_product; + + $productsupplier->update_buyprice($product->qty, $product->subprice, $user, 'HT', $this->thirdparty, '', $ref_fourn, $product->tva_tx, 0, 0, 0, $product->info_bits, '', '', array(), '', $product->multicurrency_subprice, 'HT', $multicurrency_tx, $product->multicurrency_code, '', '', ''); } return 1; @@ -1862,9 +1862,12 @@ class SupplierProposal extends CommonObject */ public function createPriceFournisseur($product, $user) { + global $conf; + $price = price2num($product->subprice * $product->qty, 'MU'); $qty = price2num($product->qty); $unitPrice = price2num($product->subprice, 'MU'); + $now = dol_now(); $values = array( @@ -1878,9 +1881,28 @@ class SupplierProposal extends CommonObject $product->tva_tx, $user->id ); + if (!empty($conf->multicurrency->enabled)) { + if (!empty($product->multicurrency_code)) { + include_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php'; + $multicurrency = new MultiCurrency($this->db); //need to fetch because empty fk_multicurrency and rate + $multicurrency->fetch(0, $product->multicurrency_code); + if (!empty($multicurrency->id)) { + $values[] = $multicurrency->id; + $values[] = "'".$product->multicurrency_code."'"; + $values[] = $product->multicurrency_subprice; + $values[] = $product->multicurrency_total_ht; + $values[] = $multicurrency->rate->rate; + } + else { + for ($i = 0; $i < 5; $i++) $values[] = 'NULL'; + } + } + } $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'product_fournisseur_price '; - $sql .= '(datec, fk_product, fk_soc, ref_fourn, price, quantity, unitprice, tva_tx, fk_user) VALUES ('.implode(',', $values).')'; + $sql .= '(datec, fk_product, fk_soc, ref_fourn, price, quantity, unitprice, tva_tx, fk_user'; + if (!empty($conf->multicurrency->enabled) && !empty($product->multicurrency_code)) $sql .= ',fk_multicurrency, multicurrency_code, multicurrency_unitprice, multicurrency_price, multicurrency_tx'; + $sql .= ') VALUES ('.implode(',', $values).')'; $resql = $this->db->query($sql); if (!$resql) { @@ -2414,7 +2436,7 @@ class SupplierProposal extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Charge indicateurs this->nb de tableau de bord + * Load indicator this->nb of global stats widget * * @return int <0 if ko, >0 if ok */ diff --git a/htdocs/supplier_proposal/contact.php b/htdocs/supplier_proposal/contact.php index 13a277542b4..43c9b91f563 100644 --- a/htdocs/supplier_proposal/contact.php +++ b/htdocs/supplier_proposal/contact.php @@ -32,14 +32,14 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; // Load translation files required by the page -$langs->loadLangs(array("propal","facture","orders","sendings","companies")); +$langs->loadLangs(array("propal", "facture", "orders", "sendings", "companies")); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); -$action = GETPOST('action', 'alpha'); +$action = GETPOST('action', 'alpha'); // Security check -if ($user->socid) $socid=$user->socid; +if ($user->socid) $socid = $user->socid; $result = restrictedArea($user, 'supplier_proposal', $id, 'supplier_proposal', ''); $object = new SupplierProposal($db); @@ -143,49 +143,49 @@ if ($id > 0 || !empty($ref)) // Supplier order card - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; + $morehtmlref = '
    '; // Ref supplier - $morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); - $morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); + $morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1); + $morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); + $morehtmlref .= '
    '.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.='
    '.$langs->trans('Project') . ' '; + $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($permissiontoedit) { if ($action != 'classify') { //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref.=' : '; + $morehtmlref .= ' : '; } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.='
    '; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= '
    '; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } - $morehtmlref.='
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1); diff --git a/htdocs/supplier_proposal/document.php b/htdocs/supplier_proposal/document.php index 6caa21c7db7..8a6ec8f1bab 100644 --- a/htdocs/supplier_proposal/document.php +++ b/htdocs/supplier_proposal/document.php @@ -44,8 +44,8 @@ $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); // Security check -$socid=''; -if (! empty($user->socid)) +$socid = ''; +if (!empty($user->socid)) { $socid = $user->socid; } @@ -88,59 +88,59 @@ if ($object->id > 0) dol_fiche_head($head, 'document', $langs->trans('CommRequest'), -1, 'supplier_proposal'); // Build file list - $filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); - $totalsize=0; - foreach($filearray as $key => $file) + $filearray = dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder) == 'desc' ?SORT_DESC:SORT_ASC), 1); + $totalsize = 0; + foreach ($filearray as $key => $file) { - $totalsize+=$file['size']; + $totalsize += $file['size']; } // Supplier proposal card - $linkback = '' . $langs->trans("BackToList") . ''; + $linkback = ''.$langs->trans("BackToList").''; - $morehtmlref='
    '; + $morehtmlref = '
    '; // Ref supplier //$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1); //$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1); // Thirdparty - $morehtmlref.=$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); + $morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project - if (! empty($conf->projet->enabled)) + if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.='
    '.$langs->trans('Project') . ' '; + $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->supplier_proposal->creer) { if ($action != 'classify') { //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref.=' : '; + $morehtmlref .= ' : '; } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.='
    '; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= '
    '; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } - $morehtmlref.='
    '; + $morehtmlref .= '
    '; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); diff --git a/htdocs/supplier_proposal/info.php b/htdocs/supplier_proposal/info.php index 094258ff348..8c1d007e39a 100644 --- a/htdocs/supplier_proposal/info.php +++ b/htdocs/supplier_proposal/info.php @@ -28,18 +28,18 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php'; -if (! empty($conf->projet->enabled)) { - require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; +if (!empty($conf->projet->enabled)) { + require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; } // Load translation files required by the page $langs->loadLangs(array('supplier_proposal', 'compta')); -$id=GETPOST('id', 'int'); -$socid=GETPOST('socid', 'int'); +$id = GETPOST('id', 'int'); +$socid = GETPOST('socid', 'int'); // Security check -if (! empty($user->socid)) $socid=$user->socid; +if (!empty($user->socid)) $socid = $user->socid; $result = restrictedArea($user, 'supplier_proposal', $id); @@ -62,50 +62,50 @@ $head = supplier_proposal_prepare_head($object); dol_fiche_head($head, 'info', $langs->trans('CommRequest'), -1, 'supplier_proposal'); // Supplier proposal card -$linkback = '' . $langs->trans("BackToList") . ''; +$linkback = ''.$langs->trans("BackToList").''; -$morehtmlref='
    '; +$morehtmlref = '
    '; // Ref supplier //$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1); //$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1); // Thirdparty -$morehtmlref.=$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); +$morehtmlref .= $langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1); // Project -if (! empty($conf->projet->enabled)) +if (!empty($conf->projet->enabled)) { $langs->load("projects"); - $morehtmlref.='
    '.$langs->trans('Project') . ' '; + $morehtmlref .= '
    '.$langs->trans('Project').' '; if ($user->rights->supplier_proposal->creer) { if ($action != 'classify') { //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - $morehtmlref.=' : '; + $morehtmlref .= ' : '; } if ($action == 'classify') { //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.='
    '; + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= '
    '; } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); } } else { - if (! empty($object->fk_project)) { + if (!empty($object->fk_project)) { $proj = new Project($db); $proj->fetch($object->fk_project); - $morehtmlref.=''; - $morehtmlref.=$proj->ref; - $morehtmlref.=''; + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; } else { - $morehtmlref.=''; + $morehtmlref .= ''; } } } -$morehtmlref.='
    '; +$morehtmlref .= '
    '; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php index e73a29be1dc..eaae3be5e84 100644 --- a/htdocs/supplier_proposal/list.php +++ b/htdocs/supplier_proposal/list.php @@ -59,7 +59,7 @@ $search_user = GETPOST('search_user', 'int'); $search_sale = GETPOST('search_sale', 'int'); $search_ref = GETPOST('sf_ref') ?GETPOST('sf_ref', 'alpha') : GETPOST('search_ref', 'alpha'); $search_societe = GETPOST('search_societe', 'alpha'); -$search_author = GETPOST('search_author', 'alpha'); +$search_login = GETPOST('search_login', 'alpha'); $search_town = GETPOST('search_town', 'alpha'); $search_zip = GETPOST('search_zip', 'alpha'); $search_state = trim(GETPOST("search_state")); @@ -214,7 +214,6 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_type = ''; $search_country = ''; $search_type_thirdparty = ''; - $search_author = ''; $yearvalid = ''; $monthvalid = ''; $dayvalid = ''; @@ -303,7 +302,7 @@ if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')'; if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')'; if ($search_ref) $sql .= natural_search('sp.ref', $search_ref); if ($search_societe) $sql .= natural_search('s.nom', $search_societe); -if ($search_author) $sql .= natural_search('u.login', $search_author); +if ($search_login) $sql .= natural_search('u.login', $search_login); if ($search_montant_ht) $sql .= natural_search('sp.total_ht=', $search_montant_ht, 1); if ($search_montant_vat != '') $sql .= natural_search("sp.tva", $search_montant_vat, 1); if ($search_montant_ttc != '') $sql .= natural_search("sp.total", $search_montant_ttc, 1); @@ -382,27 +381,27 @@ if ($resql) llxHeader('', $langs->trans('CommRequest'), $help_url); $param = ''; - if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit; - if ($sall) $param .= '&sall='.$sall; - if ($month) $param .= '&month='.$month; - if ($year) $param .= '&year='.$year; - if ($search_ref) $param .= '&search_ref='.$search_ref; - if ($search_societe) $param .= '&search_societe='.$search_societe; - if ($search_user > 0) $param .= '&search_user='.$search_user; - if ($search_sale > 0) $param .= '&search_sale='.$search_sale; - if ($search_montant_ht) $param .= '&search_montant_ht='.$search_montant_ht; + if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); + if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); + if ($sall) $param .= '&sall='.urlencode($sall); + if ($month) $param .= '&month='.urlencode($month); + if ($year) $param .= '&year='.urlencode($year); + if ($search_ref) $param .= '&search_ref='.urlencode($search_ref); + if ($search_societe) $param .= '&search_societe='.urlencode($search_societe); + if ($search_user > 0) $param .= '&search_user='.urlencode($search_user); + if ($search_sale > 0) $param .= '&search_sale='.urlencode($search_sale); + if ($search_montant_ht) $param .= '&search_montant_ht='.urlencode($search_montant_ht); if ($search_multicurrency_code != '') $param .= '&search_multicurrency_code='.urlencode($search_multicurrency_code); if ($search_multicurrency_tx != '') $param .= '&search_multicurrency_tx='.urlencode($search_multicurrency_tx); if ($search_multicurrency_montant_ht != '') $param .= '&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht); if ($search_multicurrency_montant_vat != '') $param .= '&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat); if ($search_multicurrency_montant_ttc != '') $param .= '&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc); - if ($search_author) $param .= '&search_author='.$search_author; - if ($search_town) $param .= '&search_town='.$search_town; - if ($search_zip) $param .= '&search_zip='.$search_zip; - if ($socid > 0) $param .= '&socid='.$socid; - if ($search_status != '') $param .= '&search_status='.$search_status; - if ($optioncss != '') $param .= '&optioncss='.$optioncss; + if ($search_login) $param .= '&search_login='.urlencode($search_login); + if ($search_town) $param .= '&search_town='.urlencode($search_town); + if ($search_zip) $param .= '&search_zip='.urlencode($search_zip); + if ($socid > 0) $param .= '&socid='.urlencode($socid); + if ($search_status != '') $param .= '&search_status='.urlencode($search_status); + if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); // Add $param from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; @@ -430,9 +429,8 @@ if ($resql) print ''; print ''; print ''; - print ''; - print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'commercial', 0, $newcardbutton, '', $limit); + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'commercial', 0, $newcardbutton, '', $limit, 0, 0, 1); $topicmail = "SendSupplierProposalRef"; $modelmail = "supplier_proposal_send"; @@ -615,7 +613,7 @@ if ($resql) { // Author print '
    '; - print ''; + print ''; print '
    trans("SupplierProposal"); ?>
    trans("Total"); ?> '; print ''; print '
    '; -$urlwiki='https://wiki.dolibarr.org'; -if (preg_match('/fr/i', $langs->defaultlang)) $urlwiki='https://wiki.dolibarr.org/index.php/Accueil'; -if (preg_match('/es/i', $langs->defaultlang)) $urlwiki='https://wiki.dolibarr.org/index.php/Portada'; +$urlwiki = 'https://wiki.dolibarr.org'; +if (preg_match('/fr/i', $langs->defaultlang)) $urlwiki = 'https://wiki.dolibarr.org/index.php/Accueil'; +if (preg_match('/es/i', $langs->defaultlang)) $urlwiki = 'https://wiki.dolibarr.org/index.php/Portada'; print '
    '.$langs->trans("ForDocumentationSeeWiki", $urlwiki, $urlwiki); print '
    '; -$urlforum='https://www.dolibarr.org/forum/'; -$urlforumlocal='https://www.dolibarr.org/forum/'; -if (preg_match('/fr/i', $langs->defaultlang)) $urlforumlocal='https://www.dolibarr.fr/forum/'; -if (preg_match('/es/i', $langs->defaultlang)) $urlforumlocal='https://www.dolibarr.es/foro/'; -if (preg_match('/it/i', $langs->defaultlang)) $urlforumlocal='http://www.dolibarr.it/forum/'; -if (preg_match('/gr/i', $langs->defaultlang)) $urlforumlocal='https://www.dolibarr.gr/forum/'; +$urlforum = 'https://www.dolibarr.org/forum/'; +$urlforumlocal = 'https://www.dolibarr.org/forum/'; +if (preg_match('/fr/i', $langs->defaultlang)) $urlforumlocal = 'https://www.dolibarr.fr/forum/'; +if (preg_match('/es/i', $langs->defaultlang)) $urlforumlocal = 'https://www.dolibarr.es/foro/'; +if (preg_match('/it/i', $langs->defaultlang)) $urlforumlocal = 'http://www.dolibarr.it/forum/'; +if (preg_match('/gr/i', $langs->defaultlang)) $urlforumlocal = 'https://www.dolibarr.gr/forum/'; print '
    '.$langs->trans("ForAnswersSeeForum", $urlforumlocal, $urlforumlocal).'
    '; if ($urlforumlocal != $urlforum) print ''.$urlforum.''; print '
    '; @@ -121,7 +121,7 @@ print '
    '; print ''; print ''; -$urlwiki='https://partners.dolibarr.org'; +$urlwiki = 'https://partners.dolibarr.org'; print ''; print ''; print '
    '; @@ -155,7 +155,7 @@ print '
    '; print ''; print ''; -$urlwiki='https://partners.dolibarr.org'; +$urlwiki = 'https://partners.dolibarr.org'; print ''; print ''; print ''; print ''; print "\n"; -if ($conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector"){ +if ($conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") { print ''; } -if ($conf->global->TAKEPOS_PRINT_METHOD == "browser" || $conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector"){ +if ($conf->global->TAKEPOS_PRINT_METHOD == "browser" || $conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") { $substitutionarray = pdf_getSubstitutionArray($langs, null, null, 2); $substitutionarray['__(AnyTranslationKey)__'] = $langs->trans("Translation"); $htmltext = ''.$langs->trans("AvailableVariables").':
    '; diff --git a/htdocs/takepos/admin/setup.php b/htdocs/takepos/admin/setup.php index d21936bdaef..bf5c4671b13 100644 --- a/htdocs/takepos/admin/setup.php +++ b/htdocs/takepos/admin/setup.php @@ -161,20 +161,20 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - $var=true; + $var = true; - while (($file = readdir($handle))!==false) + while (($file = readdir($handle)) !== false) { - if (substr($file, 0, 16) == 'mod_takepos_ref_' && substr($file, dol_strlen($file)-3, 3) == 'php') + if (substr($file, 0, 16) == 'mod_takepos_ref_' && substr($file, dol_strlen($file) - 3, 3) == 'php') { - $file = substr($file, 0, dol_strlen($file)-4); + $file = substr($file, 0, dol_strlen($file) - 4); require_once $dir.$file.'.php'; $module = new $file; // Show modules according to features level - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; if ($module->isEnabled()) @@ -185,9 +185,9 @@ foreach ($dirmodels as $reldir) // Show example of numbering module print '
    '."\n"; @@ -211,17 +211,17 @@ foreach ($dirmodels as $reldir) $invoice->pos_source = 1; // Info - $htmltooltip=''; - $htmltooltip.=''.$langs->trans("Version").': '.$module->getVersion().'
    '; - $nextval=$module->getNextValue($mysoc, $invoice); + $htmltooltip = ''; + $htmltooltip .= ''.$langs->trans("Version").': '.$module->getVersion().'
    '; + $nextval = $module->getNextValue($mysoc, $invoice); if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval - $htmltooltip.=''.$langs->trans("NextValue").': '; + $htmltooltip .= ''.$langs->trans("NextValue").': '; if ($nextval) { - if (preg_match('/^Error/', $nextval) || $nextval=='NotConfigured') + if (preg_match('/^Error/', $nextval) || $nextval == 'NotConfigured') $nextval = $langs->trans($nextval); - $htmltooltip.=$nextval.'
    '; + $htmltooltip .= $nextval.'
    '; } else { - $htmltooltip.=$langs->trans($module->error).'
    '; + $htmltooltip .= $langs->trans($module->error).'
    '; } } @@ -370,6 +370,13 @@ if (is_array($formmail->lines_model)) { print $form->selectarray('TAKEPOS_EMAIL_TEMPLATE_INVOICE', $arrayofmessagename, $conf->global->TAKEPOS_EMAIL_TEMPLATE_INVOICE, 'None', 1, 0, '', 0, 0, 0, '', '', 1); print "
    \n"; +// Control cash box at opening pos +print '\n"; + // Numbering module //print ''; + print ''; print ''; + if ($conf->global->TAKEPOS_ORDER_PRINTERS) { + print ''; + print ''; + print ''; + print ''; + } $printer->listPrintersTemplates(); $templates = array(); foreach ($printer->listprinterstemplates as $key => $value) { $templates[$value['rowid']] = $value['name']; } - print ''; + print ''; print ''; - print ''; - print ''; + if ($conf->global->TAKEPOS_ORDER_PRINTERS) { + print ''; + print ''; + } } print ''; diff --git a/htdocs/takepos/ajax/ajax.php b/htdocs/takepos/ajax/ajax.php index 89cf13956ac..f3b5ba15716 100644 --- a/htdocs/takepos/ajax/ajax.php +++ b/htdocs/takepos/ajax/ajax.php @@ -24,13 +24,13 @@ //if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language //if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); -if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); +if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); +if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); +if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); +if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); -require '../../main.inc.php'; // Load $user and permissions +require '../../main.inc.php'; // Load $user and permissions require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $category = GETPOST('category', 'alpha'); @@ -49,7 +49,7 @@ if (empty($user->rights->takepos->run)) { if ($action == 'getProducts') { $object = new Categorie($db); - if ($category=="supplements") $category=$conf->global->TAKEPOS_SUPPLEMENTS_CATEGORY; + if ($category == "supplements") $category = $conf->global->TAKEPOS_SUPPLEMENTS_CATEGORY; $result = $object->fetch($category); if ($result > 0) { @@ -78,7 +78,7 @@ elseif ($action == 'search' && $term != '') { //$result = $object->fetch($conf->global->TAKEPOS_ROOT_CATEGORY_ID); $arrayofcateg = $object->get_full_arbo('product', $conf->global->TAKEPOS_ROOT_CATEGORY_ID, 1); if (is_array($arrayofcateg) && count($arrayofcateg) > 0) { - foreach($arrayofcateg as $val) + foreach ($arrayofcateg as $val) { $filteroncategids .= ($filteroncategids ? ', ' : '').$val['id']; } @@ -88,7 +88,7 @@ elseif ($action == 'search' && $term != '') { $sql = 'SELECT rowid, ref, label, tosell, tobuy, barcode, price FROM '.MAIN_DB_PREFIX.'product as p'; $sql .= ' WHERE entity IN ('.getEntity('product').')'; if ($filteroncategids) { - $sql.= ' AND EXISTS (SELECT cp.fk_product FROM '.MAIN_DB_PREFIX.'categorie_product as cp WHERE cp.fk_product = p.rowid AND cp.fk_categorie IN ('.$filteroncategids.'))'; + $sql .= ' AND EXISTS (SELECT cp.fk_product FROM '.MAIN_DB_PREFIX.'categorie_product as cp WHERE cp.fk_product = p.rowid AND cp.fk_categorie IN ('.$filteroncategids.'))'; } $sql .= ' AND tosell = 1'; $sql .= natural_search(array('ref', 'label', 'barcode'), $term); @@ -123,7 +123,7 @@ elseif ($action == 'search' && $term != '') { $printer->pulse(); $printer->close(); } -} elseif ($action == "printinvoiceticket" && $term != '' && $id > 0 && ! empty($user->rights->facture->lire)) { +} elseif ($action == "printinvoiceticket" && $term != '' && $id > 0 && !empty($user->rights->facture->lire)) { require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $printer = new dolReceiptPrinter($db); @@ -134,7 +134,7 @@ elseif ($action == 'search' && $term != '') { $ret = $printer->sendToPrinter($object, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$term}, $conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term}); } } elseif ($action == 'getInvoice') { - require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; + require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $object = new Facture($db); if ($id > 0) { diff --git a/htdocs/takepos/css/colorful.css b/htdocs/takepos/css/colorful.css index 298a29ce4cf..4df43a70334 100644 --- a/htdocs/takepos/css/colorful.css +++ b/htdocs/takepos/css/colorful.css @@ -31,3 +31,7 @@ tr.selected, tr.selected td { .topnav{ background: rgb(0,0,0) !important; } + +.fa-trash { + color: #fff !important; +} diff --git a/htdocs/takepos/css/images/controls.png b/htdocs/takepos/css/images/controls.png index 259130cd537..cceaa555409 100644 Binary files a/htdocs/takepos/css/images/controls.png and b/htdocs/takepos/css/images/controls.png differ diff --git a/htdocs/takepos/freezone.php b/htdocs/takepos/freezone.php index ef0ff2ca4f4..5193e95c7c5 100644 --- a/htdocs/takepos/freezone.php +++ b/htdocs/takepos/freezone.php @@ -32,9 +32,9 @@ if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); require '../main.inc.php'; // Load $user and permissions -require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; -require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; global $mysoc; @@ -115,15 +115,15 @@ if ($action == "addnote") echo ' load_cache_vatrates("'" . $mysoc->country_code . "'"); + $num = $form->load_cache_vatrates("'".$mysoc->country_code."'"); if ($num > 0) { print '

    '; - print $langs->trans('VAT') . ' : '; + print $langs->trans('VAT').' : '; foreach ($form->cache_vatrates as $rate) { - print ''; + print ''; } } } diff --git a/htdocs/takepos/genimg/empty.png b/htdocs/takepos/genimg/empty.png index 63163e9f869..8f50fa02340 100644 Binary files a/htdocs/takepos/genimg/empty.png and b/htdocs/takepos/genimg/empty.png differ diff --git a/htdocs/takepos/genimg/index.php b/htdocs/takepos/genimg/index.php index faec3ab5088..a5686054193 100644 --- a/htdocs/takepos/genimg/index.php +++ b/htdocs/takepos/genimg/index.php @@ -17,20 +17,20 @@ //if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language //if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language -if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); +if (!defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); -if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); -if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); +if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); +if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); +if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); +if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); -require '../../main.inc.php'; // Load $user and permissions +require '../../main.inc.php'; // Load $user and permissions $id = GETPOST('id', 'int'); $w = GETPOST('w', 'int'); $h = GETPOST('h', 'int'); -$query= GETPOST('query', 'alpha'); +$query = GETPOST('query', 'alpha'); @@ -38,7 +38,7 @@ $query= GETPOST('query', 'alpha'); * View */ -if ($query=="cat") +if ($query == "cat") { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php'; @@ -47,36 +47,36 @@ if ($query=="cat") $result = $object->fetch($id); $upload_dir = $conf->categorie->multidir_output[$object->entity]; - $pdir = get_exdir($object->id, 2, 0, 0, $object, 'category') . $object->id ."/photos/"; + $pdir = get_exdir($object->id, 2, 0, 0, $object, 'category').$object->id."/photos/"; $dir = $upload_dir.'/'.$pdir; foreach ($object->liste_photos($dir) as $key => $obj) { if ($obj['photo_vignette']) { - $filename=$obj['photo_vignette']; + $filename = $obj['photo_vignette']; } else { - $filename=$obj['photo']; + $filename = $obj['photo']; } - $file=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=category&entity='.$object->entity.'&file='.urlencode($pdir.$filename); + $file = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=category&entity='.$object->entity.'&file='.urlencode($pdir.$filename); header('Location: '.$file); exit; } header('Location: ../../public/theme/common/nophoto.png'); } -elseif ($query=="pro") +elseif ($query == "pro") { require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php"; $objProd = new Product($db); $objProd->fetch($id); - $image=$objProd->show_photos('product', $conf->product->multidir_output[$entity], 'small', 1); + $image = $objProd->show_photos('product', $conf->product->multidir_output[$entity], 'small', 1); preg_match('@src="([^"]+)"@', $image, $match); $file = array_pop($match); - if ($file=="") header('Location: ../../public/theme/common/nophoto.png'); + if ($file == "") header('Location: ../../public/theme/common/nophoto.png'); else header('Location: '.$file.'&cache=1'); } else diff --git a/htdocs/takepos/img/arrow-next-top.png b/htdocs/takepos/img/arrow-next-top.png index 70f720cab10..dcc3f10da26 100644 Binary files a/htdocs/takepos/img/arrow-next-top.png and b/htdocs/takepos/img/arrow-next-top.png differ diff --git a/htdocs/takepos/img/arrow-next.png b/htdocs/takepos/img/arrow-next.png index 1056f024390..7d19661e0b3 100644 Binary files a/htdocs/takepos/img/arrow-next.png and b/htdocs/takepos/img/arrow-next.png differ diff --git a/htdocs/takepos/img/arrow-prev-top.png b/htdocs/takepos/img/arrow-prev-top.png index 23567d35890..421be1680a2 100644 Binary files a/htdocs/takepos/img/arrow-prev-top.png and b/htdocs/takepos/img/arrow-prev-top.png differ diff --git a/htdocs/takepos/img/arrow-prev.png b/htdocs/takepos/img/arrow-prev.png index b7311f26f54..1f8f5af78f3 100644 Binary files a/htdocs/takepos/img/arrow-prev.png and b/htdocs/takepos/img/arrow-prev.png differ diff --git a/htdocs/takepos/img/gfdl.png b/htdocs/takepos/img/gfdl.png index f2bacfd179a..1f40a91d4a3 100644 Binary files a/htdocs/takepos/img/gfdl.png and b/htdocs/takepos/img/gfdl.png differ diff --git a/htdocs/takepos/img/gplv3.png b/htdocs/takepos/img/gplv3.png index ba78d4c4941..338e012c824 100644 Binary files a/htdocs/takepos/img/gplv3.png and b/htdocs/takepos/img/gplv3.png differ diff --git a/htdocs/takepos/img/object_takepos.png b/htdocs/takepos/img/object_takepos.png index 5a307bfc62f..b421fe3c9e0 100644 Binary files a/htdocs/takepos/img/object_takepos.png and b/htdocs/takepos/img/object_takepos.png differ diff --git a/htdocs/takepos/img/takepos.png b/htdocs/takepos/img/takepos.png index be9d3dcfc3f..63c1908f2f9 100644 Binary files a/htdocs/takepos/img/takepos.png and b/htdocs/takepos/img/takepos.png differ diff --git a/htdocs/takepos/index.php b/htdocs/takepos/index.php index 9f3a259e441..bba62298989 100644 --- a/htdocs/takepos/index.php +++ b/htdocs/takepos/index.php @@ -33,6 +33,7 @@ if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); require '../main.inc.php'; // Load $user and permissions +require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; @@ -50,7 +51,7 @@ if ($setterminal > 0) $_SESSION["urlfrom"] = '/takepos/index.php'; -$langs->loadLangs(array("bills", "orders", "commercial", "cashdesk", "receiptprinter")); +$langs->loadLangs(array("bills", "orders", "commercial", "cashdesk", "receiptprinter", "banks")); $categorie = new Categorie($db); @@ -82,10 +83,13 @@ else $soc->fetch($conf->global->$constforcompanyid); $result = restrictedArea($user, 'takepos', 0, ''); + /* * View */ +$form = new Form($db); + // Title $title = 'TakePOS - Dolibarr '.DOL_VERSION; if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $title = 'TakePOS - '.$conf->global->MAIN_APPLICATION_TITLE; @@ -648,19 +652,34 @@ function MoreActions(totalactions){ if (pageactions==0){ pageactions=1; for (i = 0; i <= totalactions; i++){ - if (i<9) $("#action"+i).hide(); + if (i<12) $("#action"+i).hide(); else $("#action"+i).show(); } } else if (pageactions==1){ pageactions=0; for (i = 0; i <= totalactions; i++){ - if (i<9) $("#action"+i).show(); + if (i<12) $("#action"+i).show(); else $("#action"+i).hide(); } } } +function ControlCashOpening() +{ + $.colorbox({href:"../compta/cashcontrol/cashcontrol_card.php?action=create&contextpage=takepos", width:"90%", height:"60%", transition:"none", iframe:"true", title:"trans("NewCashFence"); ?>"}); +} + +function CloseCashFence(rowid) +{ + $.colorbox({href:"../compta/cashcontrol/cashcontrol_card.php?id="+rowid+"&contextpage=takepos", width:"90%", height:"90%", transition:"none", iframe:"true", title:"trans("NewCashFence"); ?>"}); +} + +function CashReport(rowid) +{ + $.colorbox({href:"../compta/cashcontrol/report.php?id="+rowid+"&contextpage=takepos", width:"60%", height:"90%", transition:"none", iframe:"true", title:"trans("CashReport"); ?>"}); +} + // Popup to select the terminal to use function TerminalsDialog() { @@ -708,6 +727,18 @@ $( document ).ready(function() { if ($conf->global->TAKEPOS_NUM_TERMINALS == "1") $_SESSION["takeposterminal"] = 1; else print "TerminalsDialog();"; } + if ($conf->global->TAKEPOS_CONTROL_CASH_OPENING) + { + $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."pos_cash_fence WHERE "; + $sql .= "date(date_creation) = CURDATE() "; + $sql .= ""; + $resql = $db->query($sql); + if ($resql) { + $obj = $db->fetch_object($resql); + // If there is no cash control from today open it + if ($obj->rowid == null) print "ControlCashOpening();"; + } + } ?> }); @@ -843,11 +874,14 @@ if ($conf->global->TAKEPOS_BAR_RESTAURANT) { $menus[$r++] = array('title'=>$langs->trans("Order"), 'action'=>'TakeposPrintingOrder();'); } - //add temp ticket button + //Button to print receipt before payment if ($conf->global->TAKEPOS_BAR_RESTAURANT) { if ($conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") { - $menus[$r++] = array('title'=>'
    '.$langs->trans("Receipt").'
    ', 'action'=>'TakeposPrinting(placeid);'); + if (filter_var($conf->global->TAKEPOS_PRINT_SERVER, FILTER_VALIDATE_URL) == true) $menus[$r++] = array('title'=>'
    '.$langs->trans("Receipt").'
    ', 'action'=>'TakeposConnector(placeid);'); + else $menus[$r++] = array('title'=>'
    '.$langs->trans("Receipt").'
    ', 'action'=>'TakeposPrinting(placeid);'); + } elseif ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter") { + $menus[$r++] = array('title'=>'
    '.$langs->trans("Receipt").'
    ', 'action'=>'DolibarrTakeposPrinting(placeid);'); } else { $menus[$r++] = array('title'=>'
    '.$langs->trans("Receipt").'
    ', 'action'=>'Print(placeid);'); } @@ -872,6 +906,20 @@ if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter") { ); } +$sql = "SELECT rowid, status FROM ".MAIN_DB_PREFIX."pos_cash_fence WHERE "; +$sql .= "date(date_creation) = CURDATE() "; +$resql = $db->query($sql); +if ($resql) +{ + $num = $db->num_rows($resql); + if ($num) + { + $obj = $db->fetch_object($resql); + $menus[$r++] = array('title'=>'
    '.$langs->trans("CashReport").'
    ', 'action'=>'CashReport('.$obj->rowid.');'); + if ($obj->status == 0) $menus[$r++] = array('title'=>'
    '.$langs->trans("CloseCashFence").'
    ', 'action'=>'CloseCashFence('.$obj->rowid.');'); + } +} + $hookmanager->initHooks(array('takeposfrontend')); $reshook = $hookmanager->executeHooks('ActionButtons'); if (!empty($reshook)) { @@ -892,12 +940,12 @@ if (!empty($conf->global->TAKEPOS_HIDE_HEAD_BAR)) { foreach ($menus as $menu) { $i++; - if (count($menus) > 9 and $i == 9) + if (count($menus) > 12 and $i == 12) { echo ''; echo ''; } - elseif ($i > 9) echo ''; + elseif ($i > 12) echo ''; else echo ''; } diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php index 6251b5b57b0..77254be543f 100644 --- a/htdocs/takepos/invoice.php +++ b/htdocs/takepos/invoice.php @@ -330,7 +330,7 @@ if ($action == "addline") if (!empty($conf->global->TAKEPOS_GROUP_SAME_PRODUCT)) { foreach ($invoice->lines as $line) { if ($line->product_ref == $prod->ref) { - $result = $invoice->updateline($line->id, $line->desc, $line->subprice, $line->qty+1, $line->remise_percent, $line->date_start, $line->date_end, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit); + $result = $invoice->updateline($line->id, $line->desc, $line->subprice, $line->qty + 1, $line->remise_percent, $line->date_start, $line->date_end, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit); if ($result < 0) { dol_htmloutput_errors($invoice->error, $invoice->errors, 1); } else { @@ -341,10 +341,10 @@ if ($action == "addline") } } if ($idoflineadded <= 0) { - $idoflineadded = $invoice->addline($prod->description, $price, 1, $tva_tx, $localtax1_tx, $localtax2_tx, $idproduct, $customer->remise_percent, '', 0, 0, 0, '', $price_base_type, $price_ttc, $prod->type, -1, 0, '', 0, $parent_line, null, 0, '', 0, 100, '', null, 0); + $idoflineadded = $invoice->addline($prod->description, $price, 1, $tva_tx, $localtax1_tx, $localtax2_tx, $idproduct, $customer->remise_percent, '', 0, 0, 0, '', $price_base_type, $price_ttc, $prod->type, -1, 0, '', 0, $parent_line, null, '', '', 0, 100, '', null, 0); } - $invoice->fetch($placeid); + $invoice->fetch($placeid); } if ($action == "freezone") { @@ -362,7 +362,7 @@ if ($action == "freezone") { $localtax1_tx = get_localtax($tva_tx, 1, $customer, $mysoc, $tva_npr); $localtax2_tx = get_localtax($tva_tx, 2, $customer, $mysoc, $tva_npr); - $invoice->addline($desc, $number, 1, $tva_tx, $localtax1_tx, $localtax2_tx, 0, 0, '', 0, 0, 0, '', 'TTC', $number, 0, -1, 0, '', 0, 0, null, 0, '', 0, 100, '', null, 0); + $invoice->addline($desc, $number, 1, $tva_tx, $localtax1_tx, $localtax2_tx, 0, 0, '', 0, 0, 0, '', 'TTC', $number, 0, -1, 0, '', 0, 0, null, '', '', 0, 100, '', null, 0); $invoice->fetch($placeid); } @@ -416,7 +416,7 @@ if ($action == "delete") { $sql = "DELETE FROM ".MAIN_DB_PREFIX."facturedet where fk_facture = ".$placeid; $resql2 = $db->query($sql); $sql = "UPDATE ".MAIN_DB_PREFIX."facture set fk_soc=".$conf->global->{'CASHDESK_ID_THIRDPARTY'.$_SESSION["takeposterminal"]}; - $sql.= " WHERE ref='(PROV-POS".$_SESSION["takeposterminal"]."-".$place.")'"; + $sql .= " WHERE ref='(PROV-POS".$_SESSION["takeposterminal"]."-".$place.")'"; $resql3 = $db->query($sql); if ($resql1 && $resql2 && $resql3) @@ -526,6 +526,7 @@ if ($action == "order" and $placeid != 0) $result = array_intersect($catsprinter1, $existing); $count = count($result); if ($count > 0) { + $linestoprint++; $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='1' where rowid=".$line->id; //Set to print on printer 1 $db->query($sql); $order_receipt_printer1 .= '
    '.$line->product_label.''; } } - if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter") { + if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" && $linestoprint > 0) { $invoice->fetch($placeid); //Reload object before send to printer - $ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_PRINTER_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 1 + $printer->orderprinter = 1; + $ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_ORDER_PRINTER1_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 1 } $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='4' where special_code='1' and fk_facture=".$invoice->id; // Set as printed $db->query($sql); $invoice->fetch($placeid); //Reload object after set lines as printed + $linestoprint = 0; foreach ($invoice->lines as $line) { @@ -551,6 +554,7 @@ if ($action == "order" and $placeid != 0) $result = array_intersect($catsprinter2, $existing); $count = count($result); if ($count > 0) { + $linestoprint++; $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='2' where rowid=".$line->id; //Set to print on printer 2 $db->query($sql); $order_receipt_printer2 .= ''.$line->product_label.''; } } - if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter") { + if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter" && $linestoprint > 0) { $invoice->fetch($placeid); //Reload object before send to printer - $ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_PRINTER_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 2 + $printer->orderprinter = 2; + $ret = $printer->sendToPrinter($invoice, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$_SESSION["takeposterminal"]}, $conf->global->{'TAKEPOS_ORDER_PRINTER2_TO_USE'.$_SESSION["takeposterminal"]}); // PRINT TO PRINTER 2 } $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet set special_code='4' where special_code='2' and fk_facture=".$invoice->id; // Set as printed $db->query($sql); @@ -585,7 +590,8 @@ if ($action == "valid" || $action == "history") } $sectionwithinvoicelink .= ''; if ($conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") { - $sectionwithinvoicelink .= ' '; + if (filter_var($conf->global->TAKEPOS_PRINT_SERVER, FILTER_VALIDATE_URL) == true) $sectionwithinvoicelink .= ' '; + else $sectionwithinvoicelink .= ' '; } elseif ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter") { $sectionwithinvoicelink .= ' '; } else { @@ -703,6 +709,20 @@ function TakeposPrinting(id){ }); }); } + +function TakeposConnector(id){ + var invoice=''; + $.ajax({ + type: "POST", + url: 'global->TAKEPOS_PRINT_SERVER; ?>/print.php', + data: 'invoice='+invoice + }); +} + function DolibarrTakeposPrinting(id) { console.log('Printing invoice ticket ' + id) $.ajax({ @@ -726,23 +746,23 @@ $( document ).ready(function() { order('datec', 'ASC'); + $sql .= " WHERE ref LIKE '(PROV-POS".$_SESSION["takeposterminal"]."-0%'"; + $sql .= $db->order('datec', 'ASC'); $resql = $db->query($sql); if ($resql) { while ($obj = $db->fetch_object($resql)) { echo '$("#customerandsales").append(\''; - if ($placeid==$obj->rowid) echo ""; + if ($placeid == $obj->rowid) echo ""; echo 'ref)); + $num_sale = str_replace(")", "", str_replace("(PROV-POS".$_SESSION["takeposterminal"]."-", "", $obj->ref)); echo $num_sale; - if (str_replace("-", "", $num_sale)>$max_sale) $max_sale=str_replace("-", "", $num_sale); + if (str_replace("-", "", $num_sale) > $max_sale) $max_sale = str_replace("-", "", $num_sale); echo '\\\';Refresh();">'.date('H:i', strtotime($obj->datec)); - if ($placeid==$obj->rowid) echo ""; + if ($placeid == $obj->rowid) echo ""; echo '\');'; } echo '$("#customerandsales").append(\'\');'; } else { dol_print_error($db); @@ -778,26 +798,26 @@ $( document ).ready(function() { if ($result > 0) { $adh->ref = $adh->getFullName($langs); - $s.= $adh->getFullName($langs); - $s.= ' - '.$adh->type; + $s .= $adh->getFullName($langs); + $s .= ' - '.$adh->type; if ($adh->datefin) { - $s.= '
    '.$langs->trans("SubscriptionEndDate").': '.dol_print_date($adh->datefin, 'day'); + $s .= '
    '.$langs->trans("SubscriptionEndDate").': '.dol_print_date($adh->datefin, 'day'); if ($adh->hasDelay()) { - $s.= " ".img_warning($langs->trans("Late")); + $s .= " ".img_warning($langs->trans("Late")); } } else { - $s.= '
    '.$langs->trans("SubscriptionNotReceived"); - if ($adh->statut > 0) $s.= " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated + $s .= '
    '.$langs->trans("SubscriptionNotReceived"); + if ($adh->statut > 0) $s .= " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated } } else { - $s.= '
    '.$langs->trans("ThirdpartyNotLinkedToMember"); + $s .= '
    '.$langs->trans("ThirdpartyNotLinkedToMember"); } - $s.= ''; + $s .= ''; } ?> $("#moreinfo").html(''); diff --git a/htdocs/takepos/reduction.php b/htdocs/takepos/reduction.php index ae5081ca891..7be5ee85938 100644 --- a/htdocs/takepos/reduction.php +++ b/htdocs/takepos/reduction.php @@ -82,8 +82,8 @@ if (!empty($conf->global->TAKEPOS_NUMPAD_USE_PAYMENT_ICON)) { $htmlReductionPercent = ''; $htmlReductionAmount = ''; } else { - $htmlReductionPercent = $langs->trans('ReductionShort') . '
    %'; - $htmlReductionAmount = $langs->trans('ReductionShort') . '
    ' . $langs->trans('Amount'); + $htmlReductionPercent = $langs->trans('ReductionShort').'
    %'; + $htmlReductionAmount = $langs->trans('ReductionShort').'
    '.$langs->trans('Amount'); } ?> @@ -213,11 +213,11 @@ if (!empty($conf->global->TAKEPOS_NUMPAD_USE_PAYMENT_ICON)) { print ''; print ''; print ''; -print ''; +print ''; print ''; print ''; print ''; -print ''; +print ''; print ''; print ''; print ''; diff --git a/htdocs/theme/common/bell.png b/htdocs/theme/common/bell.png index 2397118a68a..d06f2d6b248 100644 Binary files a/htdocs/theme/common/bell.png and b/htdocs/theme/common/bell.png differ diff --git a/htdocs/theme/common/cheque.png b/htdocs/theme/common/cheque.png index 34b89a1e1d0..c814189fb29 100644 Binary files a/htdocs/theme/common/cheque.png and b/htdocs/theme/common/cheque.png differ diff --git a/htdocs/theme/common/colorpicker.png b/htdocs/theme/common/colorpicker.png index 26cc6af26f0..4c8c948eba3 100644 Binary files a/htdocs/theme/common/colorpicker.png and b/htdocs/theme/common/colorpicker.png differ diff --git a/htdocs/theme/common/credit_card.png b/htdocs/theme/common/credit_card.png index 1d2fc827f61..2e5c72835b9 100644 Binary files a/htdocs/theme/common/credit_card.png and b/htdocs/theme/common/credit_card.png differ diff --git a/htdocs/theme/common/devices/audio-card.png b/htdocs/theme/common/devices/audio-card.png index bf7445d717f..4cd54f17ee0 100644 Binary files a/htdocs/theme/common/devices/audio-card.png and b/htdocs/theme/common/devices/audio-card.png differ diff --git a/htdocs/theme/common/devices/audio-headset.png b/htdocs/theme/common/devices/audio-headset.png index 7e1d4157cec..23612e8e7cd 100644 Binary files a/htdocs/theme/common/devices/audio-headset.png and b/htdocs/theme/common/devices/audio-headset.png differ diff --git a/htdocs/theme/common/devices/audio-input-line.png b/htdocs/theme/common/devices/audio-input-line.png index 08d300c827d..639e55a293e 100644 Binary files a/htdocs/theme/common/devices/audio-input-line.png and b/htdocs/theme/common/devices/audio-input-line.png differ diff --git a/htdocs/theme/common/devices/audio-input-microphone.png b/htdocs/theme/common/devices/audio-input-microphone.png index 5d0893e6171..21add2e26ae 100644 Binary files a/htdocs/theme/common/devices/audio-input-microphone.png and b/htdocs/theme/common/devices/audio-input-microphone.png differ diff --git a/htdocs/theme/common/devices/battery.png b/htdocs/theme/common/devices/battery.png index dfc65555a12..dedd9735f59 100644 Binary files a/htdocs/theme/common/devices/battery.png and b/htdocs/theme/common/devices/battery.png differ diff --git a/htdocs/theme/common/devices/camera-photo.png b/htdocs/theme/common/devices/camera-photo.png index a4162c90083..5a3e91fdec7 100644 Binary files a/htdocs/theme/common/devices/camera-photo.png and b/htdocs/theme/common/devices/camera-photo.png differ diff --git a/htdocs/theme/common/devices/camera-web.png b/htdocs/theme/common/devices/camera-web.png index c95f65c7552..2b495bd3d5d 100644 Binary files a/htdocs/theme/common/devices/camera-web.png and b/htdocs/theme/common/devices/camera-web.png differ diff --git a/htdocs/theme/common/devices/computer-laptop.png b/htdocs/theme/common/devices/computer-laptop.png index b5d8bdefc38..f4bbc4a6220 100644 Binary files a/htdocs/theme/common/devices/computer-laptop.png and b/htdocs/theme/common/devices/computer-laptop.png differ diff --git a/htdocs/theme/common/devices/computer.png b/htdocs/theme/common/devices/computer.png index 1fbf08cab3f..0b77b425dbc 100644 Binary files a/htdocs/theme/common/devices/computer.png and b/htdocs/theme/common/devices/computer.png differ diff --git a/htdocs/theme/common/devices/cpu.png b/htdocs/theme/common/devices/cpu.png index cb5738af993..f6ea8032a86 100644 Binary files a/htdocs/theme/common/devices/cpu.png and b/htdocs/theme/common/devices/cpu.png differ diff --git a/htdocs/theme/common/devices/drive-harddisk.png b/htdocs/theme/common/devices/drive-harddisk.png index 68351d1b692..aa64efdfff4 100644 Binary files a/htdocs/theme/common/devices/drive-harddisk.png and b/htdocs/theme/common/devices/drive-harddisk.png differ diff --git a/htdocs/theme/common/devices/drive-optical.png b/htdocs/theme/common/devices/drive-optical.png index 82dd0cdcf84..3b63569bd6e 100644 Binary files a/htdocs/theme/common/devices/drive-optical.png and b/htdocs/theme/common/devices/drive-optical.png differ diff --git a/htdocs/theme/common/devices/drive-removable-media-usb-pendrive.png b/htdocs/theme/common/devices/drive-removable-media-usb-pendrive.png index 568c07803ac..e57e73c90d6 100644 Binary files a/htdocs/theme/common/devices/drive-removable-media-usb-pendrive.png and b/htdocs/theme/common/devices/drive-removable-media-usb-pendrive.png differ diff --git a/htdocs/theme/common/devices/drive-removable-media-usb.png b/htdocs/theme/common/devices/drive-removable-media-usb.png index 369604f748d..93eebec552f 100644 Binary files a/htdocs/theme/common/devices/drive-removable-media-usb.png and b/htdocs/theme/common/devices/drive-removable-media-usb.png differ diff --git a/htdocs/theme/common/devices/input-gaming.png b/htdocs/theme/common/devices/input-gaming.png index 5cdfb493783..10795b1ffd5 100644 Binary files a/htdocs/theme/common/devices/input-gaming.png and b/htdocs/theme/common/devices/input-gaming.png differ diff --git a/htdocs/theme/common/devices/input-mouse.png b/htdocs/theme/common/devices/input-mouse.png index ef449c39f6f..f8975cf2fcb 100644 Binary files a/htdocs/theme/common/devices/input-mouse.png and b/htdocs/theme/common/devices/input-mouse.png differ diff --git a/htdocs/theme/common/devices/input-tablet.png b/htdocs/theme/common/devices/input-tablet.png index fea0c629881..0be1668c9d9 100644 Binary files a/htdocs/theme/common/devices/input-tablet.png and b/htdocs/theme/common/devices/input-tablet.png differ diff --git a/htdocs/theme/common/devices/media-flash-sd-mmc.png b/htdocs/theme/common/devices/media-flash-sd-mmc.png index ff41fd8d888..c20f1030805 100644 Binary files a/htdocs/theme/common/devices/media-flash-sd-mmc.png and b/htdocs/theme/common/devices/media-flash-sd-mmc.png differ diff --git a/htdocs/theme/common/devices/media-flash-smart-media.png b/htdocs/theme/common/devices/media-flash-smart-media.png index c7fe7be2483..f4a745f828c 100644 Binary files a/htdocs/theme/common/devices/media-flash-smart-media.png and b/htdocs/theme/common/devices/media-flash-smart-media.png differ diff --git a/htdocs/theme/common/devices/media-flash.png b/htdocs/theme/common/devices/media-flash.png index 9a60568d777..10129c2926e 100644 Binary files a/htdocs/theme/common/devices/media-flash.png and b/htdocs/theme/common/devices/media-flash.png differ diff --git a/htdocs/theme/common/devices/media-floppy.png b/htdocs/theme/common/devices/media-floppy.png index d3c527c5e6f..8feeb7eba4a 100644 Binary files a/htdocs/theme/common/devices/media-floppy.png and b/htdocs/theme/common/devices/media-floppy.png differ diff --git a/htdocs/theme/common/devices/media-optical-audio.png b/htdocs/theme/common/devices/media-optical-audio.png index 9ede032d006..ef0b13778bb 100644 Binary files a/htdocs/theme/common/devices/media-optical-audio.png and b/htdocs/theme/common/devices/media-optical-audio.png differ diff --git a/htdocs/theme/common/devices/media-optical-blu-ray.png b/htdocs/theme/common/devices/media-optical-blu-ray.png index 122952d4941..9b0fae791c3 100644 Binary files a/htdocs/theme/common/devices/media-optical-blu-ray.png and b/htdocs/theme/common/devices/media-optical-blu-ray.png differ diff --git a/htdocs/theme/common/devices/media-optical-data.png b/htdocs/theme/common/devices/media-optical-data.png index 19ead0cd62c..5dfcf0adc62 100644 Binary files a/htdocs/theme/common/devices/media-optical-data.png and b/htdocs/theme/common/devices/media-optical-data.png differ diff --git a/htdocs/theme/common/devices/media-optical-dvd-video.png b/htdocs/theme/common/devices/media-optical-dvd-video.png index 86e58953b59..169ee66d345 100644 Binary files a/htdocs/theme/common/devices/media-optical-dvd-video.png and b/htdocs/theme/common/devices/media-optical-dvd-video.png differ diff --git a/htdocs/theme/common/devices/media-optical-dvd.png b/htdocs/theme/common/devices/media-optical-dvd.png index 67a3efcd1e5..1b8cbe5b3a7 100644 Binary files a/htdocs/theme/common/devices/media-optical-dvd.png and b/htdocs/theme/common/devices/media-optical-dvd.png differ diff --git a/htdocs/theme/common/devices/media-optical-mixed-cd.png b/htdocs/theme/common/devices/media-optical-mixed-cd.png index 44425552b6d..6be2b2c2dbf 100644 Binary files a/htdocs/theme/common/devices/media-optical-mixed-cd.png and b/htdocs/theme/common/devices/media-optical-mixed-cd.png differ diff --git a/htdocs/theme/common/devices/media-optical-recordable.png b/htdocs/theme/common/devices/media-optical-recordable.png index a4738ab9b18..ace8bf934b3 100644 Binary files a/htdocs/theme/common/devices/media-optical-recordable.png and b/htdocs/theme/common/devices/media-optical-recordable.png differ diff --git a/htdocs/theme/common/devices/media-optical-video.png b/htdocs/theme/common/devices/media-optical-video.png index 1dfc0ee2bc4..6348b452194 100644 Binary files a/htdocs/theme/common/devices/media-optical-video.png and b/htdocs/theme/common/devices/media-optical-video.png differ diff --git a/htdocs/theme/common/devices/media-optical.png b/htdocs/theme/common/devices/media-optical.png index c11bf8a23ee..c6b05f39036 100644 Binary files a/htdocs/theme/common/devices/media-optical.png and b/htdocs/theme/common/devices/media-optical.png differ diff --git a/htdocs/theme/common/devices/modem.png b/htdocs/theme/common/devices/modem.png index 9df866933ed..75dcdccc9f3 100644 Binary files a/htdocs/theme/common/devices/modem.png and b/htdocs/theme/common/devices/modem.png differ diff --git a/htdocs/theme/common/devices/multimedia-player-apple-ipod.png b/htdocs/theme/common/devices/multimedia-player-apple-ipod.png index 78510fe9bf2..804e20bb101 100644 Binary files a/htdocs/theme/common/devices/multimedia-player-apple-ipod.png and b/htdocs/theme/common/devices/multimedia-player-apple-ipod.png differ diff --git a/htdocs/theme/common/devices/multimedia-player.png b/htdocs/theme/common/devices/multimedia-player.png index 00777e9a481..92ca65c2651 100644 Binary files a/htdocs/theme/common/devices/multimedia-player.png and b/htdocs/theme/common/devices/multimedia-player.png differ diff --git a/htdocs/theme/common/devices/network-wired.png b/htdocs/theme/common/devices/network-wired.png index 2981c5b9e90..9d061858c01 100644 Binary files a/htdocs/theme/common/devices/network-wired.png and b/htdocs/theme/common/devices/network-wired.png differ diff --git a/htdocs/theme/common/devices/network-wireless-connected-00.png b/htdocs/theme/common/devices/network-wireless-connected-00.png index acd6caadf77..604dcafc48d 100644 Binary files a/htdocs/theme/common/devices/network-wireless-connected-00.png and b/htdocs/theme/common/devices/network-wireless-connected-00.png differ diff --git a/htdocs/theme/common/devices/network-wireless-connected-100.png b/htdocs/theme/common/devices/network-wireless-connected-100.png index 747edc90be4..3ed3b9d5b8e 100644 Binary files a/htdocs/theme/common/devices/network-wireless-connected-100.png and b/htdocs/theme/common/devices/network-wireless-connected-100.png differ diff --git a/htdocs/theme/common/devices/network-wireless-connected-25.png b/htdocs/theme/common/devices/network-wireless-connected-25.png index d72df1bdbfe..729953b183d 100644 Binary files a/htdocs/theme/common/devices/network-wireless-connected-25.png and b/htdocs/theme/common/devices/network-wireless-connected-25.png differ diff --git a/htdocs/theme/common/devices/network-wireless-connected-50.png b/htdocs/theme/common/devices/network-wireless-connected-50.png index 7fb79b280f2..e50e653a6e8 100644 Binary files a/htdocs/theme/common/devices/network-wireless-connected-50.png and b/htdocs/theme/common/devices/network-wireless-connected-50.png differ diff --git a/htdocs/theme/common/devices/network-wireless-connected-75.png b/htdocs/theme/common/devices/network-wireless-connected-75.png index c7c8aa4fdb6..064b0f18469 100644 Binary files a/htdocs/theme/common/devices/network-wireless-connected-75.png and b/htdocs/theme/common/devices/network-wireless-connected-75.png differ diff --git a/htdocs/theme/common/devices/network-wireless-disconnected.png b/htdocs/theme/common/devices/network-wireless-disconnected.png index ef64662cf1f..3062bffd745 100644 Binary files a/htdocs/theme/common/devices/network-wireless-disconnected.png and b/htdocs/theme/common/devices/network-wireless-disconnected.png differ diff --git a/htdocs/theme/common/devices/network-wireless.png b/htdocs/theme/common/devices/network-wireless.png index 747edc90be4..3ed3b9d5b8e 100644 Binary files a/htdocs/theme/common/devices/network-wireless.png and b/htdocs/theme/common/devices/network-wireless.png differ diff --git a/htdocs/theme/common/devices/pda.png b/htdocs/theme/common/devices/pda.png index 7ed9c20760a..17a67552071 100644 Binary files a/htdocs/theme/common/devices/pda.png and b/htdocs/theme/common/devices/pda.png differ diff --git a/htdocs/theme/common/devices/phone-openmoko-freerunner.png b/htdocs/theme/common/devices/phone-openmoko-freerunner.png index 2a957c3f894..fe3a64f0ba8 100644 Binary files a/htdocs/theme/common/devices/phone-openmoko-freerunner.png and b/htdocs/theme/common/devices/phone-openmoko-freerunner.png differ diff --git a/htdocs/theme/common/devices/phone.png b/htdocs/theme/common/devices/phone.png index 8f814166bf4..b0b285a160c 100644 Binary files a/htdocs/theme/common/devices/phone.png and b/htdocs/theme/common/devices/phone.png differ diff --git a/htdocs/theme/common/devices/printer-laser.png b/htdocs/theme/common/devices/printer-laser.png index 7442bc9a0b9..1b8ec327f5f 100644 Binary files a/htdocs/theme/common/devices/printer-laser.png and b/htdocs/theme/common/devices/printer-laser.png differ diff --git a/htdocs/theme/common/devices/printer.png b/htdocs/theme/common/devices/printer.png index fd48f9f7c73..eb8a5640faf 100644 Binary files a/htdocs/theme/common/devices/printer.png and b/htdocs/theme/common/devices/printer.png differ diff --git a/htdocs/theme/common/devices/scanner.png b/htdocs/theme/common/devices/scanner.png index 78a2430ab33..48a4917604e 100644 Binary files a/htdocs/theme/common/devices/scanner.png and b/htdocs/theme/common/devices/scanner.png differ diff --git a/htdocs/theme/common/devices/video-display.png b/htdocs/theme/common/devices/video-display.png index 893065eed10..ae48e941521 100644 Binary files a/htdocs/theme/common/devices/video-display.png and b/htdocs/theme/common/devices/video-display.png differ diff --git a/htdocs/theme/common/devices/video-projector.png b/htdocs/theme/common/devices/video-projector.png index 05e3877c9b2..184ce1c54c5 100644 Binary files a/htdocs/theme/common/devices/video-projector.png and b/htdocs/theme/common/devices/video-projector.png differ diff --git a/htdocs/theme/common/devices/video-television.png b/htdocs/theme/common/devices/video-television.png index bdf8bbb2dc3..16880452169 100644 Binary files a/htdocs/theme/common/devices/video-television.png and b/htdocs/theme/common/devices/video-television.png differ diff --git a/htdocs/theme/common/dolibarr_box.png b/htdocs/theme/common/dolibarr_box.png index 69595524187..b65586569df 100644 Binary files a/htdocs/theme/common/dolibarr_box.png and b/htdocs/theme/common/dolibarr_box.png differ diff --git a/htdocs/theme/common/emotes/face-angel.png b/htdocs/theme/common/emotes/face-angel.png index 96be1f7750b..27988f24951 100644 Binary files a/htdocs/theme/common/emotes/face-angel.png and b/htdocs/theme/common/emotes/face-angel.png differ diff --git a/htdocs/theme/common/emotes/face-embarrassed.png b/htdocs/theme/common/emotes/face-embarrassed.png index 5d82cc3ae1d..1dbc1b3ce5a 100644 Binary files a/htdocs/theme/common/emotes/face-embarrassed.png and b/htdocs/theme/common/emotes/face-embarrassed.png differ diff --git a/htdocs/theme/common/emotes/face-kiss.png b/htdocs/theme/common/emotes/face-kiss.png index 4fa05fadfc3..43748104bce 100644 Binary files a/htdocs/theme/common/emotes/face-kiss.png and b/htdocs/theme/common/emotes/face-kiss.png differ diff --git a/htdocs/theme/common/emotes/face-laugh.png b/htdocs/theme/common/emotes/face-laugh.png index 7a22b070271..0d8e7a1243c 100644 Binary files a/htdocs/theme/common/emotes/face-laugh.png and b/htdocs/theme/common/emotes/face-laugh.png differ diff --git a/htdocs/theme/common/emotes/face-plain.png b/htdocs/theme/common/emotes/face-plain.png index f267d0343e0..5c2f01d6d3b 100644 Binary files a/htdocs/theme/common/emotes/face-plain.png and b/htdocs/theme/common/emotes/face-plain.png differ diff --git a/htdocs/theme/common/emotes/face-raspberry.png b/htdocs/theme/common/emotes/face-raspberry.png index 5854a729ef3..55ba53a61fe 100644 Binary files a/htdocs/theme/common/emotes/face-raspberry.png and b/htdocs/theme/common/emotes/face-raspberry.png differ diff --git a/htdocs/theme/common/emotes/face-sad.png b/htdocs/theme/common/emotes/face-sad.png index cf00aafe1f8..77626ba47b0 100644 Binary files a/htdocs/theme/common/emotes/face-sad.png and b/htdocs/theme/common/emotes/face-sad.png differ diff --git a/htdocs/theme/common/emotes/face-smile-big.png b/htdocs/theme/common/emotes/face-smile-big.png index f9c2335df5f..b0168200e81 100644 Binary files a/htdocs/theme/common/emotes/face-smile-big.png and b/htdocs/theme/common/emotes/face-smile-big.png differ diff --git a/htdocs/theme/common/emotes/face-smile.png b/htdocs/theme/common/emotes/face-smile.png index 3d66d725781..5271e86ccb8 100644 Binary files a/htdocs/theme/common/emotes/face-smile.png and b/htdocs/theme/common/emotes/face-smile.png differ diff --git a/htdocs/theme/common/emotes/face-surprise.png b/htdocs/theme/common/emotes/face-surprise.png index 021f7cde5c2..02d6ac59956 100644 Binary files a/htdocs/theme/common/emotes/face-surprise.png and b/htdocs/theme/common/emotes/face-surprise.png differ diff --git a/htdocs/theme/common/emotes/face-uncertain.png b/htdocs/theme/common/emotes/face-uncertain.png index 6ebce9bd813..173cd34514a 100644 Binary files a/htdocs/theme/common/emotes/face-uncertain.png and b/htdocs/theme/common/emotes/face-uncertain.png differ diff --git a/htdocs/theme/common/emotes/face-wink.png b/htdocs/theme/common/emotes/face-wink.png index 1e962e980c3..df5256ba794 100644 Binary files a/htdocs/theme/common/emotes/face-wink.png and b/htdocs/theme/common/emotes/face-wink.png differ diff --git a/htdocs/theme/common/flags/ad.png b/htdocs/theme/common/flags/ad.png index 30e008b3c35..05402458763 100644 Binary files a/htdocs/theme/common/flags/ad.png and b/htdocs/theme/common/flags/ad.png differ diff --git a/htdocs/theme/common/flags/ae.png b/htdocs/theme/common/flags/ae.png index 85d458ad289..d42f9252e6d 100644 Binary files a/htdocs/theme/common/flags/ae.png and b/htdocs/theme/common/flags/ae.png differ diff --git a/htdocs/theme/common/flags/af.png b/htdocs/theme/common/flags/af.png index 219c05b72b8..2de886afd9b 100644 Binary files a/htdocs/theme/common/flags/af.png and b/htdocs/theme/common/flags/af.png differ diff --git a/htdocs/theme/common/flags/ag.png b/htdocs/theme/common/flags/ag.png index 60a62e53832..0801997cae7 100644 Binary files a/htdocs/theme/common/flags/ag.png and b/htdocs/theme/common/flags/ag.png differ diff --git a/htdocs/theme/common/flags/ai.png b/htdocs/theme/common/flags/ai.png index 0ca086500f9..181d73a01e0 100644 Binary files a/htdocs/theme/common/flags/ai.png and b/htdocs/theme/common/flags/ai.png differ diff --git a/htdocs/theme/common/flags/al.png b/htdocs/theme/common/flags/al.png index 997f3f1b748..fcf85b42f9b 100644 Binary files a/htdocs/theme/common/flags/al.png and b/htdocs/theme/common/flags/al.png differ diff --git a/htdocs/theme/common/flags/am.png b/htdocs/theme/common/flags/am.png index e25bc21af0f..20c4acbc219 100644 Binary files a/htdocs/theme/common/flags/am.png and b/htdocs/theme/common/flags/am.png differ diff --git a/htdocs/theme/common/flags/an.png b/htdocs/theme/common/flags/an.png index dab98820777..b281e3665f6 100644 Binary files a/htdocs/theme/common/flags/an.png and b/htdocs/theme/common/flags/an.png differ diff --git a/htdocs/theme/common/flags/ao.png b/htdocs/theme/common/flags/ao.png index 49f0b47fbdf..4ccb612a44c 100644 Binary files a/htdocs/theme/common/flags/ao.png and b/htdocs/theme/common/flags/ao.png differ diff --git a/htdocs/theme/common/flags/ar.png b/htdocs/theme/common/flags/ar.png index 4211272f0fa..b7b37758193 100644 Binary files a/htdocs/theme/common/flags/ar.png and b/htdocs/theme/common/flags/ar.png differ diff --git a/htdocs/theme/common/flags/as.png b/htdocs/theme/common/flags/as.png index 8a2bfdaee5f..4c34432aad7 100644 Binary files a/htdocs/theme/common/flags/as.png and b/htdocs/theme/common/flags/as.png differ diff --git a/htdocs/theme/common/flags/at.png b/htdocs/theme/common/flags/at.png index 49326161af6..2218dc3e1f9 100644 Binary files a/htdocs/theme/common/flags/at.png and b/htdocs/theme/common/flags/at.png differ diff --git a/htdocs/theme/common/flags/au.png b/htdocs/theme/common/flags/au.png index c2b0d6f2bac..984a7ade0ba 100644 Binary files a/htdocs/theme/common/flags/au.png and b/htdocs/theme/common/flags/au.png differ diff --git a/htdocs/theme/common/flags/aw.png b/htdocs/theme/common/flags/aw.png index 2c4a2a4ade6..836e9ff97ae 100644 Binary files a/htdocs/theme/common/flags/aw.png and b/htdocs/theme/common/flags/aw.png differ diff --git a/htdocs/theme/common/flags/ax.png b/htdocs/theme/common/flags/ax.png index 0d1009b3e2c..cb32922f510 100644 Binary files a/htdocs/theme/common/flags/ax.png and b/htdocs/theme/common/flags/ax.png differ diff --git a/htdocs/theme/common/flags/az.png b/htdocs/theme/common/flags/az.png index d42a26360ee..37d7ef46c1e 100644 Binary files a/htdocs/theme/common/flags/az.png and b/htdocs/theme/common/flags/az.png differ diff --git a/htdocs/theme/common/flags/ba.png b/htdocs/theme/common/flags/ba.png index 8daf16f80ad..0ab4af02b34 100644 Binary files a/htdocs/theme/common/flags/ba.png and b/htdocs/theme/common/flags/ba.png differ diff --git a/htdocs/theme/common/flags/bb.png b/htdocs/theme/common/flags/bb.png index 54812d0c78d..547fdcd3482 100644 Binary files a/htdocs/theme/common/flags/bb.png and b/htdocs/theme/common/flags/bb.png differ diff --git a/htdocs/theme/common/flags/bd.png b/htdocs/theme/common/flags/bd.png index 7aeab3bf0cd..0c872c8ee4f 100644 Binary files a/htdocs/theme/common/flags/bd.png and b/htdocs/theme/common/flags/bd.png differ diff --git a/htdocs/theme/common/flags/be.png b/htdocs/theme/common/flags/be.png index 7c0329e9755..13813a31185 100644 Binary files a/htdocs/theme/common/flags/be.png and b/htdocs/theme/common/flags/be.png differ diff --git a/htdocs/theme/common/flags/bf.png b/htdocs/theme/common/flags/bf.png index 783930208fc..0099943526c 100644 Binary files a/htdocs/theme/common/flags/bf.png and b/htdocs/theme/common/flags/bf.png differ diff --git a/htdocs/theme/common/flags/bg.png b/htdocs/theme/common/flags/bg.png index b50b5cae999..be74e768727 100644 Binary files a/htdocs/theme/common/flags/bg.png and b/htdocs/theme/common/flags/bg.png differ diff --git a/htdocs/theme/common/flags/bh.png b/htdocs/theme/common/flags/bh.png index 07b64394023..75f25bf4945 100644 Binary files a/htdocs/theme/common/flags/bh.png and b/htdocs/theme/common/flags/bh.png differ diff --git a/htdocs/theme/common/flags/bi.png b/htdocs/theme/common/flags/bi.png index 8dcc9a50b65..33c53a3026d 100644 Binary files a/htdocs/theme/common/flags/bi.png and b/htdocs/theme/common/flags/bi.png differ diff --git a/htdocs/theme/common/flags/bj.png b/htdocs/theme/common/flags/bj.png index 90ce5ac89d4..5ec75baa8e9 100644 Binary files a/htdocs/theme/common/flags/bj.png and b/htdocs/theme/common/flags/bj.png differ diff --git a/htdocs/theme/common/flags/bm.png b/htdocs/theme/common/flags/bm.png index 86b1e3e2008..a54f33c2881 100644 Binary files a/htdocs/theme/common/flags/bm.png and b/htdocs/theme/common/flags/bm.png differ diff --git a/htdocs/theme/common/flags/bn.png b/htdocs/theme/common/flags/bn.png index 508c7bf49ef..a90cd60e0dc 100644 Binary files a/htdocs/theme/common/flags/bn.png and b/htdocs/theme/common/flags/bn.png differ diff --git a/htdocs/theme/common/flags/bo.png b/htdocs/theme/common/flags/bo.png index b53322d7ca4..87d8af29b08 100644 Binary files a/htdocs/theme/common/flags/bo.png and b/htdocs/theme/common/flags/bo.png differ diff --git a/htdocs/theme/common/flags/br.png b/htdocs/theme/common/flags/br.png index dd49733c0fc..f55ff4f51cc 100644 Binary files a/htdocs/theme/common/flags/br.png and b/htdocs/theme/common/flags/br.png differ diff --git a/htdocs/theme/common/flags/bs.png b/htdocs/theme/common/flags/bs.png index 3d62217f02e..7ef4b87bc6c 100644 Binary files a/htdocs/theme/common/flags/bs.png and b/htdocs/theme/common/flags/bs.png differ diff --git a/htdocs/theme/common/flags/bt.png b/htdocs/theme/common/flags/bt.png index c6d93868a33..67d79855b48 100644 Binary files a/htdocs/theme/common/flags/bt.png and b/htdocs/theme/common/flags/bt.png differ diff --git a/htdocs/theme/common/flags/bv.png b/htdocs/theme/common/flags/bv.png index c403d06ad10..cc0cabb4fb5 100644 Binary files a/htdocs/theme/common/flags/bv.png and b/htdocs/theme/common/flags/bv.png differ diff --git a/htdocs/theme/common/flags/bw.png b/htdocs/theme/common/flags/bw.png index 62078f2c42d..4cef9093afa 100644 Binary files a/htdocs/theme/common/flags/bw.png and b/htdocs/theme/common/flags/bw.png differ diff --git a/htdocs/theme/common/flags/by.png b/htdocs/theme/common/flags/by.png index 20516d176f0..262290af36c 100644 Binary files a/htdocs/theme/common/flags/by.png and b/htdocs/theme/common/flags/by.png differ diff --git a/htdocs/theme/common/flags/bz.png b/htdocs/theme/common/flags/bz.png index 6d7e706544f..2a753bd88ad 100644 Binary files a/htdocs/theme/common/flags/bz.png and b/htdocs/theme/common/flags/bz.png differ diff --git a/htdocs/theme/common/flags/ca.png b/htdocs/theme/common/flags/ca.png index 6aa3009bcaf..95e8e87e65e 100644 Binary files a/htdocs/theme/common/flags/ca.png and b/htdocs/theme/common/flags/ca.png differ diff --git a/htdocs/theme/common/flags/catalonia.png b/htdocs/theme/common/flags/catalonia.png index 69d46d8f4ef..9f9b37faf29 100644 Binary files a/htdocs/theme/common/flags/catalonia.png and b/htdocs/theme/common/flags/catalonia.png differ diff --git a/htdocs/theme/common/flags/cc.png b/htdocs/theme/common/flags/cc.png index e32bd1f9a82..9f291732f14 100644 Binary files a/htdocs/theme/common/flags/cc.png and b/htdocs/theme/common/flags/cc.png differ diff --git a/htdocs/theme/common/flags/cd.png b/htdocs/theme/common/flags/cd.png index 2c20c4578c0..e01dbfbdcae 100644 Binary files a/htdocs/theme/common/flags/cd.png and b/htdocs/theme/common/flags/cd.png differ diff --git a/htdocs/theme/common/flags/cf.png b/htdocs/theme/common/flags/cf.png index 4fe18833d61..2ed0c497f73 100644 Binary files a/htdocs/theme/common/flags/cf.png and b/htdocs/theme/common/flags/cf.png differ diff --git a/htdocs/theme/common/flags/cg.png b/htdocs/theme/common/flags/cg.png index 23c51278c5c..0af89999143 100644 Binary files a/htdocs/theme/common/flags/cg.png and b/htdocs/theme/common/flags/cg.png differ diff --git a/htdocs/theme/common/flags/ch.png b/htdocs/theme/common/flags/ch.png index 0b5ec13d26c..155391649f1 100644 Binary files a/htdocs/theme/common/flags/ch.png and b/htdocs/theme/common/flags/ch.png differ diff --git a/htdocs/theme/common/flags/ci.png b/htdocs/theme/common/flags/ci.png index 079a5b74b19..b5c45d8b5c4 100644 Binary files a/htdocs/theme/common/flags/ci.png and b/htdocs/theme/common/flags/ci.png differ diff --git a/htdocs/theme/common/flags/ck.png b/htdocs/theme/common/flags/ck.png index c3de282a2fa..8de6a038d70 100644 Binary files a/htdocs/theme/common/flags/ck.png and b/htdocs/theme/common/flags/ck.png differ diff --git a/htdocs/theme/common/flags/cl.png b/htdocs/theme/common/flags/cl.png index f6e756fda12..c4eb797ebe6 100644 Binary files a/htdocs/theme/common/flags/cl.png and b/htdocs/theme/common/flags/cl.png differ diff --git a/htdocs/theme/common/flags/cm.png b/htdocs/theme/common/flags/cm.png index 4bf34fb5552..d9b2c9d3b6e 100644 Binary files a/htdocs/theme/common/flags/cm.png and b/htdocs/theme/common/flags/cm.png differ diff --git a/htdocs/theme/common/flags/cn.png b/htdocs/theme/common/flags/cn.png index 45bdfe47cfa..3fd9a790dcc 100644 Binary files a/htdocs/theme/common/flags/cn.png and b/htdocs/theme/common/flags/cn.png differ diff --git a/htdocs/theme/common/flags/co.png b/htdocs/theme/common/flags/co.png index 8933a71b530..0fdd29968ac 100644 Binary files a/htdocs/theme/common/flags/co.png and b/htdocs/theme/common/flags/co.png differ diff --git a/htdocs/theme/common/flags/cr.png b/htdocs/theme/common/flags/cr.png index 2c84ea0c053..e4bc8a6cefc 100644 Binary files a/htdocs/theme/common/flags/cr.png and b/htdocs/theme/common/flags/cr.png differ diff --git a/htdocs/theme/common/flags/cs.png b/htdocs/theme/common/flags/cs.png index 8fde28a6dfd..1d563737dd1 100644 Binary files a/htdocs/theme/common/flags/cs.png and b/htdocs/theme/common/flags/cs.png differ diff --git a/htdocs/theme/common/flags/cu.png b/htdocs/theme/common/flags/cu.png index fe475e9b070..15d653e5b95 100644 Binary files a/htdocs/theme/common/flags/cu.png and b/htdocs/theme/common/flags/cu.png differ diff --git a/htdocs/theme/common/flags/cv.png b/htdocs/theme/common/flags/cv.png index eff1aae4c98..be90dbb0e26 100644 Binary files a/htdocs/theme/common/flags/cv.png and b/htdocs/theme/common/flags/cv.png differ diff --git a/htdocs/theme/common/flags/cx.png b/htdocs/theme/common/flags/cx.png index 245c76954d0..06bd67b9351 100644 Binary files a/htdocs/theme/common/flags/cx.png and b/htdocs/theme/common/flags/cx.png differ diff --git a/htdocs/theme/common/flags/cy.png b/htdocs/theme/common/flags/cy.png index 52fc49a27fe..e6c2c4e2a8a 100644 Binary files a/htdocs/theme/common/flags/cy.png and b/htdocs/theme/common/flags/cy.png differ diff --git a/htdocs/theme/common/flags/cz.png b/htdocs/theme/common/flags/cz.png index 3e97234172f..bf80c236aa1 100644 Binary files a/htdocs/theme/common/flags/cz.png and b/htdocs/theme/common/flags/cz.png differ diff --git a/htdocs/theme/common/flags/dk.png b/htdocs/theme/common/flags/dk.png index 5d93653f59d..815778ea61b 100644 Binary files a/htdocs/theme/common/flags/dk.png and b/htdocs/theme/common/flags/dk.png differ diff --git a/htdocs/theme/common/flags/dm.png b/htdocs/theme/common/flags/dm.png index 687c73acb33..53fa1cc2d7e 100644 Binary files a/htdocs/theme/common/flags/dm.png and b/htdocs/theme/common/flags/dm.png differ diff --git a/htdocs/theme/common/flags/do.png b/htdocs/theme/common/flags/do.png index 5618447d2da..69904baf376 100644 Binary files a/htdocs/theme/common/flags/do.png and b/htdocs/theme/common/flags/do.png differ diff --git a/htdocs/theme/common/flags/dz.png b/htdocs/theme/common/flags/dz.png index 55ab7971596..de1e9267c71 100644 Binary files a/htdocs/theme/common/flags/dz.png and b/htdocs/theme/common/flags/dz.png differ diff --git a/htdocs/theme/common/flags/ec.png b/htdocs/theme/common/flags/ec.png index 1588df6feb9..ccc39baa594 100644 Binary files a/htdocs/theme/common/flags/ec.png and b/htdocs/theme/common/flags/ec.png differ diff --git a/htdocs/theme/common/flags/ee.png b/htdocs/theme/common/flags/ee.png index 152ac6dd5c1..5d6fe247c72 100644 Binary files a/htdocs/theme/common/flags/ee.png and b/htdocs/theme/common/flags/ee.png differ diff --git a/htdocs/theme/common/flags/eg.png b/htdocs/theme/common/flags/eg.png index d3e67889305..b67a2c09402 100644 Binary files a/htdocs/theme/common/flags/eg.png and b/htdocs/theme/common/flags/eg.png differ diff --git a/htdocs/theme/common/flags/eh.png b/htdocs/theme/common/flags/eh.png index 84f89ed867e..c06458d6690 100644 Binary files a/htdocs/theme/common/flags/eh.png and b/htdocs/theme/common/flags/eh.png differ diff --git a/htdocs/theme/common/flags/en.png b/htdocs/theme/common/flags/en.png index 025009e2045..e0cd9aa1eda 100644 Binary files a/htdocs/theme/common/flags/en.png and b/htdocs/theme/common/flags/en.png differ diff --git a/htdocs/theme/common/flags/england.png b/htdocs/theme/common/flags/england.png index 50bd40cb7df..6c48527e77f 100644 Binary files a/htdocs/theme/common/flags/england.png and b/htdocs/theme/common/flags/england.png differ diff --git a/htdocs/theme/common/flags/er.png b/htdocs/theme/common/flags/er.png index c727d4d349d..09cbc702206 100644 Binary files a/htdocs/theme/common/flags/er.png and b/htdocs/theme/common/flags/er.png differ diff --git a/htdocs/theme/common/flags/es.png b/htdocs/theme/common/flags/es.png index 12dd9a59475..e3b69d05900 100644 Binary files a/htdocs/theme/common/flags/es.png and b/htdocs/theme/common/flags/es.png differ diff --git a/htdocs/theme/common/flags/et.png b/htdocs/theme/common/flags/et.png index 26cfab3a785..e922dfee7d0 100644 Binary files a/htdocs/theme/common/flags/et.png and b/htdocs/theme/common/flags/et.png differ diff --git a/htdocs/theme/common/flags/eu.png b/htdocs/theme/common/flags/eu.png index d55e65f32df..3578d04b336 100644 Binary files a/htdocs/theme/common/flags/eu.png and b/htdocs/theme/common/flags/eu.png differ diff --git a/htdocs/theme/common/flags/fam.png b/htdocs/theme/common/flags/fam.png index aebb02c64eb..2020e5be138 100644 Binary files a/htdocs/theme/common/flags/fam.png and b/htdocs/theme/common/flags/fam.png differ diff --git a/htdocs/theme/common/flags/fi.png b/htdocs/theme/common/flags/fi.png index e5d813ab456..d4ce5b9e4fb 100644 Binary files a/htdocs/theme/common/flags/fi.png and b/htdocs/theme/common/flags/fi.png differ diff --git a/htdocs/theme/common/flags/fj.png b/htdocs/theme/common/flags/fj.png index ccd3090bbfc..3e07eae3de4 100644 Binary files a/htdocs/theme/common/flags/fj.png and b/htdocs/theme/common/flags/fj.png differ diff --git a/htdocs/theme/common/flags/fk.png b/htdocs/theme/common/flags/fk.png index 094e64f2093..0abdf641657 100644 Binary files a/htdocs/theme/common/flags/fk.png and b/htdocs/theme/common/flags/fk.png differ diff --git a/htdocs/theme/common/flags/fm.png b/htdocs/theme/common/flags/fm.png index acb54953825..34debcd6e38 100644 Binary files a/htdocs/theme/common/flags/fm.png and b/htdocs/theme/common/flags/fm.png differ diff --git a/htdocs/theme/common/flags/fo.png b/htdocs/theme/common/flags/fo.png index 7ba11b6d1ba..be8aff58fa4 100644 Binary files a/htdocs/theme/common/flags/fo.png and b/htdocs/theme/common/flags/fo.png differ diff --git a/htdocs/theme/common/flags/fr.png b/htdocs/theme/common/flags/fr.png index 9bceb7c255f..89055092431 100644 Binary files a/htdocs/theme/common/flags/fr.png and b/htdocs/theme/common/flags/fr.png differ diff --git a/htdocs/theme/common/flags/ga.png b/htdocs/theme/common/flags/ga.png index 54c7c40c2ab..fe22046cf42 100644 Binary files a/htdocs/theme/common/flags/ga.png and b/htdocs/theme/common/flags/ga.png differ diff --git a/htdocs/theme/common/flags/gb.png b/htdocs/theme/common/flags/gb.png index 025009e2045..e0cd9aa1eda 100644 Binary files a/htdocs/theme/common/flags/gb.png and b/htdocs/theme/common/flags/gb.png differ diff --git a/htdocs/theme/common/flags/gd.png b/htdocs/theme/common/flags/gd.png index 07cdb3d11eb..f899c9246ea 100644 Binary files a/htdocs/theme/common/flags/gd.png and b/htdocs/theme/common/flags/gd.png differ diff --git a/htdocs/theme/common/flags/ge.png b/htdocs/theme/common/flags/ge.png index 0d3f6b3d99a..dddcc4c5faa 100644 Binary files a/htdocs/theme/common/flags/ge.png and b/htdocs/theme/common/flags/ge.png differ diff --git a/htdocs/theme/common/flags/gf.png b/htdocs/theme/common/flags/gf.png index 9bceb7c255f..89055092431 100644 Binary files a/htdocs/theme/common/flags/gf.png and b/htdocs/theme/common/flags/gf.png differ diff --git a/htdocs/theme/common/flags/gg.png b/htdocs/theme/common/flags/gg.png index a61bc7ddc7f..aa29c768cc4 100644 Binary files a/htdocs/theme/common/flags/gg.png and b/htdocs/theme/common/flags/gg.png differ diff --git a/htdocs/theme/common/flags/gh.png b/htdocs/theme/common/flags/gh.png index d5b36270abb..a1cad793e36 100644 Binary files a/htdocs/theme/common/flags/gh.png and b/htdocs/theme/common/flags/gh.png differ diff --git a/htdocs/theme/common/flags/gi.png b/htdocs/theme/common/flags/gi.png index 54d542c8eb3..cc2e00ce1c8 100644 Binary files a/htdocs/theme/common/flags/gi.png and b/htdocs/theme/common/flags/gi.png differ diff --git a/htdocs/theme/common/flags/gl.png b/htdocs/theme/common/flags/gl.png index a20795c2ea8..d4712fbc8ac 100644 Binary files a/htdocs/theme/common/flags/gl.png and b/htdocs/theme/common/flags/gl.png differ diff --git a/htdocs/theme/common/flags/gm.png b/htdocs/theme/common/flags/gm.png index 3c5d1fc3382..ec0513357b1 100644 Binary files a/htdocs/theme/common/flags/gm.png and b/htdocs/theme/common/flags/gm.png differ diff --git a/htdocs/theme/common/flags/gn.png b/htdocs/theme/common/flags/gn.png index 0a97da77bad..d6fd7cf97fa 100644 Binary files a/htdocs/theme/common/flags/gn.png and b/htdocs/theme/common/flags/gn.png differ diff --git a/htdocs/theme/common/flags/gp.png b/htdocs/theme/common/flags/gp.png index 2ed1b78eadc..32aecbf8f68 100644 Binary files a/htdocs/theme/common/flags/gp.png and b/htdocs/theme/common/flags/gp.png differ diff --git a/htdocs/theme/common/flags/gq.png b/htdocs/theme/common/flags/gq.png index c6b3d5d3f2e..e51df89fdce 100644 Binary files a/htdocs/theme/common/flags/gq.png and b/htdocs/theme/common/flags/gq.png differ diff --git a/htdocs/theme/common/flags/gr.png b/htdocs/theme/common/flags/gr.png index c5a05354189..797c52cd620 100644 Binary files a/htdocs/theme/common/flags/gr.png and b/htdocs/theme/common/flags/gr.png differ diff --git a/htdocs/theme/common/flags/gs.png b/htdocs/theme/common/flags/gs.png index 33385645196..e2b20ceb1f4 100644 Binary files a/htdocs/theme/common/flags/gs.png and b/htdocs/theme/common/flags/gs.png differ diff --git a/htdocs/theme/common/flags/gt.png b/htdocs/theme/common/flags/gt.png index 375a86987e6..5841c2f97f7 100644 Binary files a/htdocs/theme/common/flags/gt.png and b/htdocs/theme/common/flags/gt.png differ diff --git a/htdocs/theme/common/flags/gu.png b/htdocs/theme/common/flags/gu.png index ad91f5c37e8..253cb3dd918 100644 Binary files a/htdocs/theme/common/flags/gu.png and b/htdocs/theme/common/flags/gu.png differ diff --git a/htdocs/theme/common/flags/gw.png b/htdocs/theme/common/flags/gw.png index 815d1eba4ab..9029355f387 100644 Binary files a/htdocs/theme/common/flags/gw.png and b/htdocs/theme/common/flags/gw.png differ diff --git a/htdocs/theme/common/flags/gy.png b/htdocs/theme/common/flags/gy.png index 3e74461376e..acd171b1c25 100644 Binary files a/htdocs/theme/common/flags/gy.png and b/htdocs/theme/common/flags/gy.png differ diff --git a/htdocs/theme/common/flags/hk.png b/htdocs/theme/common/flags/hk.png index cb8dc67b4ac..6763a0cb0df 100644 Binary files a/htdocs/theme/common/flags/hk.png and b/htdocs/theme/common/flags/hk.png differ diff --git a/htdocs/theme/common/flags/hm.png b/htdocs/theme/common/flags/hm.png index c2b0d6f2bac..984a7ade0ba 100644 Binary files a/htdocs/theme/common/flags/hm.png and b/htdocs/theme/common/flags/hm.png differ diff --git a/htdocs/theme/common/flags/hn.png b/htdocs/theme/common/flags/hn.png index 45b6fe69264..40fcff4de93 100644 Binary files a/htdocs/theme/common/flags/hn.png and b/htdocs/theme/common/flags/hn.png differ diff --git a/htdocs/theme/common/flags/hr.png b/htdocs/theme/common/flags/hr.png index a93b68684ed..1ad5b58a3fb 100644 Binary files a/htdocs/theme/common/flags/hr.png and b/htdocs/theme/common/flags/hr.png differ diff --git a/htdocs/theme/common/flags/ht.png b/htdocs/theme/common/flags/ht.png index 849aeef99f9..81deab59da6 100644 Binary files a/htdocs/theme/common/flags/ht.png and b/htdocs/theme/common/flags/ht.png differ diff --git a/htdocs/theme/common/flags/hu.png b/htdocs/theme/common/flags/hu.png index 92d2c1b66f6..56552788e42 100644 Binary files a/htdocs/theme/common/flags/hu.png and b/htdocs/theme/common/flags/hu.png differ diff --git a/htdocs/theme/common/flags/id.png b/htdocs/theme/common/flags/id.png index b1d3776b0f6..536b68df000 100644 Binary files a/htdocs/theme/common/flags/id.png and b/htdocs/theme/common/flags/id.png differ diff --git a/htdocs/theme/common/flags/ie.png b/htdocs/theme/common/flags/ie.png index 45fee80eab4..a7ae6640028 100644 Binary files a/htdocs/theme/common/flags/ie.png and b/htdocs/theme/common/flags/ie.png differ diff --git a/htdocs/theme/common/flags/il.png b/htdocs/theme/common/flags/il.png index 25ac3ffcab5..9dcbbbfe83b 100644 Binary files a/htdocs/theme/common/flags/il.png and b/htdocs/theme/common/flags/il.png differ diff --git a/htdocs/theme/common/flags/in.png b/htdocs/theme/common/flags/in.png index 27b07d91665..0e91a4ac127 100644 Binary files a/htdocs/theme/common/flags/in.png and b/htdocs/theme/common/flags/in.png differ diff --git a/htdocs/theme/common/flags/int.png b/htdocs/theme/common/flags/int.png index d9a3f87b300..550bd72e6a1 100644 Binary files a/htdocs/theme/common/flags/int.png and b/htdocs/theme/common/flags/int.png differ diff --git a/htdocs/theme/common/flags/io.png b/htdocs/theme/common/flags/io.png index a9c83c78af8..1884377888d 100644 Binary files a/htdocs/theme/common/flags/io.png and b/htdocs/theme/common/flags/io.png differ diff --git a/htdocs/theme/common/flags/iq.png b/htdocs/theme/common/flags/iq.png index 4b7aecf5d22..f5df4b98502 100644 Binary files a/htdocs/theme/common/flags/iq.png and b/htdocs/theme/common/flags/iq.png differ diff --git a/htdocs/theme/common/flags/ir.png b/htdocs/theme/common/flags/ir.png index 0667684b624..66a64f47f78 100644 Binary files a/htdocs/theme/common/flags/ir.png and b/htdocs/theme/common/flags/ir.png differ diff --git a/htdocs/theme/common/flags/is.png b/htdocs/theme/common/flags/is.png index 7ed17c6494a..64c2aea4625 100644 Binary files a/htdocs/theme/common/flags/is.png and b/htdocs/theme/common/flags/is.png differ diff --git a/htdocs/theme/common/flags/it.png b/htdocs/theme/common/flags/it.png index 459bd5cf525..2a870f14737 100644 Binary files a/htdocs/theme/common/flags/it.png and b/htdocs/theme/common/flags/it.png differ diff --git a/htdocs/theme/common/flags/jm.png b/htdocs/theme/common/flags/jm.png index 6e37e4ff041..b0ab0fcec64 100644 Binary files a/htdocs/theme/common/flags/jm.png and b/htdocs/theme/common/flags/jm.png differ diff --git a/htdocs/theme/common/flags/jo.png b/htdocs/theme/common/flags/jo.png index b2005b98c34..efa15e2492c 100644 Binary files a/htdocs/theme/common/flags/jo.png and b/htdocs/theme/common/flags/jo.png differ diff --git a/htdocs/theme/common/flags/jp.png b/htdocs/theme/common/flags/jp.png index f9b572923ab..91546494bde 100644 Binary files a/htdocs/theme/common/flags/jp.png and b/htdocs/theme/common/flags/jp.png differ diff --git a/htdocs/theme/common/flags/ke.png b/htdocs/theme/common/flags/ke.png index 3fa66c5b32b..41aea07aa16 100644 Binary files a/htdocs/theme/common/flags/ke.png and b/htdocs/theme/common/flags/ke.png differ diff --git a/htdocs/theme/common/flags/kg.png b/htdocs/theme/common/flags/kg.png index 2676ec90f29..828ad8b8035 100644 Binary files a/htdocs/theme/common/flags/kg.png and b/htdocs/theme/common/flags/kg.png differ diff --git a/htdocs/theme/common/flags/kh.png b/htdocs/theme/common/flags/kh.png index 7382c8527b3..e307c2b492c 100644 Binary files a/htdocs/theme/common/flags/kh.png and b/htdocs/theme/common/flags/kh.png differ diff --git a/htdocs/theme/common/flags/ki.png b/htdocs/theme/common/flags/ki.png index 7972152dec0..ce29dbcf6d9 100644 Binary files a/htdocs/theme/common/flags/ki.png and b/htdocs/theme/common/flags/ki.png differ diff --git a/htdocs/theme/common/flags/km.png b/htdocs/theme/common/flags/km.png index 6aaafa71efc..363e755e057 100644 Binary files a/htdocs/theme/common/flags/km.png and b/htdocs/theme/common/flags/km.png differ diff --git a/htdocs/theme/common/flags/kn.png b/htdocs/theme/common/flags/kn.png index e41a57c61d6..b03fc87324a 100644 Binary files a/htdocs/theme/common/flags/kn.png and b/htdocs/theme/common/flags/kn.png differ diff --git a/htdocs/theme/common/flags/kp.png b/htdocs/theme/common/flags/kp.png index dda0c588b9f..8fef6fff31d 100644 Binary files a/htdocs/theme/common/flags/kp.png and b/htdocs/theme/common/flags/kp.png differ diff --git a/htdocs/theme/common/flags/kr.png b/htdocs/theme/common/flags/kr.png index 76cb8c55025..54809178b08 100644 Binary files a/htdocs/theme/common/flags/kr.png and b/htdocs/theme/common/flags/kr.png differ diff --git a/htdocs/theme/common/flags/kw.png b/htdocs/theme/common/flags/kw.png index 54563f3fcba..14a5d1048f5 100644 Binary files a/htdocs/theme/common/flags/kw.png and b/htdocs/theme/common/flags/kw.png differ diff --git a/htdocs/theme/common/flags/ky.png b/htdocs/theme/common/flags/ky.png index bb8a5951c98..d8cbc5790ec 100644 Binary files a/htdocs/theme/common/flags/ky.png and b/htdocs/theme/common/flags/ky.png differ diff --git a/htdocs/theme/common/flags/kz.png b/htdocs/theme/common/flags/kz.png index 9c6c52e711b..68469c08b12 100644 Binary files a/htdocs/theme/common/flags/kz.png and b/htdocs/theme/common/flags/kz.png differ diff --git a/htdocs/theme/common/flags/la.png b/htdocs/theme/common/flags/la.png index 7ef2a818c22..df1aee5d865 100644 Binary files a/htdocs/theme/common/flags/la.png and b/htdocs/theme/common/flags/la.png differ diff --git a/htdocs/theme/common/flags/lb.png b/htdocs/theme/common/flags/lb.png index ef128ece9bc..ca84fd923b6 100644 Binary files a/htdocs/theme/common/flags/lb.png and b/htdocs/theme/common/flags/lb.png differ diff --git a/htdocs/theme/common/flags/lc.png b/htdocs/theme/common/flags/lc.png index aeb7734b46c..3ca4ec6cc1c 100644 Binary files a/htdocs/theme/common/flags/lc.png and b/htdocs/theme/common/flags/lc.png differ diff --git a/htdocs/theme/common/flags/li.png b/htdocs/theme/common/flags/li.png index 760d59ff16a..80eae324963 100644 Binary files a/htdocs/theme/common/flags/li.png and b/htdocs/theme/common/flags/li.png differ diff --git a/htdocs/theme/common/flags/lk.png b/htdocs/theme/common/flags/lk.png index 70ef8bbf4f8..19ebdf035aa 100644 Binary files a/htdocs/theme/common/flags/lk.png and b/htdocs/theme/common/flags/lk.png differ diff --git a/htdocs/theme/common/flags/lr.png b/htdocs/theme/common/flags/lr.png index b1565daaf36..28ec1525319 100644 Binary files a/htdocs/theme/common/flags/lr.png and b/htdocs/theme/common/flags/lr.png differ diff --git a/htdocs/theme/common/flags/ls.png b/htdocs/theme/common/flags/ls.png index 4aba8078c7c..fc00a4be02e 100644 Binary files a/htdocs/theme/common/flags/ls.png and b/htdocs/theme/common/flags/ls.png differ diff --git a/htdocs/theme/common/flags/lt.png b/htdocs/theme/common/flags/lt.png index b860b3266a3..1a7fe607477 100644 Binary files a/htdocs/theme/common/flags/lt.png and b/htdocs/theme/common/flags/lt.png differ diff --git a/htdocs/theme/common/flags/lu.png b/htdocs/theme/common/flags/lu.png index 1783986d89b..788700aa1fa 100644 Binary files a/htdocs/theme/common/flags/lu.png and b/htdocs/theme/common/flags/lu.png differ diff --git a/htdocs/theme/common/flags/lv.png b/htdocs/theme/common/flags/lv.png index bab01cd56ee..ca6561bb554 100644 Binary files a/htdocs/theme/common/flags/lv.png and b/htdocs/theme/common/flags/lv.png differ diff --git a/htdocs/theme/common/flags/ly.png b/htdocs/theme/common/flags/ly.png index 1d41b58d1fc..31bd6c584c0 100644 Binary files a/htdocs/theme/common/flags/ly.png and b/htdocs/theme/common/flags/ly.png differ diff --git a/htdocs/theme/common/flags/ma.png b/htdocs/theme/common/flags/ma.png index 6810c8cae99..624f19d4508 100644 Binary files a/htdocs/theme/common/flags/ma.png and b/htdocs/theme/common/flags/ma.png differ diff --git a/htdocs/theme/common/flags/mc.png b/htdocs/theme/common/flags/mc.png index e9bb93a4875..8b246d93a9f 100644 Binary files a/htdocs/theme/common/flags/mc.png and b/htdocs/theme/common/flags/mc.png differ diff --git a/htdocs/theme/common/flags/md.png b/htdocs/theme/common/flags/md.png index 02d9213e80f..9aedb681341 100644 Binary files a/htdocs/theme/common/flags/md.png and b/htdocs/theme/common/flags/md.png differ diff --git a/htdocs/theme/common/flags/mg.png b/htdocs/theme/common/flags/mg.png index 78cb9f3cc4a..0faa6889c34 100644 Binary files a/htdocs/theme/common/flags/mg.png and b/htdocs/theme/common/flags/mg.png differ diff --git a/htdocs/theme/common/flags/mh.png b/htdocs/theme/common/flags/mh.png index ce403e71ace..682200b19df 100644 Binary files a/htdocs/theme/common/flags/mh.png and b/htdocs/theme/common/flags/mh.png differ diff --git a/htdocs/theme/common/flags/mk.png b/htdocs/theme/common/flags/mk.png index ed39c018d6b..a424980484c 100644 Binary files a/htdocs/theme/common/flags/mk.png and b/htdocs/theme/common/flags/mk.png differ diff --git a/htdocs/theme/common/flags/ml.png b/htdocs/theme/common/flags/ml.png index 7cb80193653..298b8fd2598 100644 Binary files a/htdocs/theme/common/flags/ml.png and b/htdocs/theme/common/flags/ml.png differ diff --git a/htdocs/theme/common/flags/mm.png b/htdocs/theme/common/flags/mm.png index 4090ce6d415..b5a26d400b7 100644 Binary files a/htdocs/theme/common/flags/mm.png and b/htdocs/theme/common/flags/mm.png differ diff --git a/htdocs/theme/common/flags/mn.png b/htdocs/theme/common/flags/mn.png index e269d46855a..8392700aea1 100644 Binary files a/htdocs/theme/common/flags/mn.png and b/htdocs/theme/common/flags/mn.png differ diff --git a/htdocs/theme/common/flags/mo.png b/htdocs/theme/common/flags/mo.png index 763679381a0..44a3f4ffb68 100644 Binary files a/htdocs/theme/common/flags/mo.png and b/htdocs/theme/common/flags/mo.png differ diff --git a/htdocs/theme/common/flags/mp.png b/htdocs/theme/common/flags/mp.png index 88617cf99f3..00d8fe101f0 100644 Binary files a/htdocs/theme/common/flags/mp.png and b/htdocs/theme/common/flags/mp.png differ diff --git a/htdocs/theme/common/flags/mq.png b/htdocs/theme/common/flags/mq.png index 5a29bce76fc..bc3d9006154 100644 Binary files a/htdocs/theme/common/flags/mq.png and b/htdocs/theme/common/flags/mq.png differ diff --git a/htdocs/theme/common/flags/mr.png b/htdocs/theme/common/flags/mr.png index 93a112700e1..4eb2d54c3ca 100644 Binary files a/htdocs/theme/common/flags/mr.png and b/htdocs/theme/common/flags/mr.png differ diff --git a/htdocs/theme/common/flags/ms.png b/htdocs/theme/common/flags/ms.png index 345517e651f..9d49047cdff 100644 Binary files a/htdocs/theme/common/flags/ms.png and b/htdocs/theme/common/flags/ms.png differ diff --git a/htdocs/theme/common/flags/mt.png b/htdocs/theme/common/flags/mt.png index 4930eb53f04..890ae5b33b8 100644 Binary files a/htdocs/theme/common/flags/mt.png and b/htdocs/theme/common/flags/mt.png differ diff --git a/htdocs/theme/common/flags/mu.png b/htdocs/theme/common/flags/mu.png index b05690cd721..7bd90cf49f3 100644 Binary files a/htdocs/theme/common/flags/mu.png and b/htdocs/theme/common/flags/mu.png differ diff --git a/htdocs/theme/common/flags/mv.png b/htdocs/theme/common/flags/mv.png index 35e7a5784d9..8cd31260fec 100644 Binary files a/htdocs/theme/common/flags/mv.png and b/htdocs/theme/common/flags/mv.png differ diff --git a/htdocs/theme/common/flags/mw.png b/htdocs/theme/common/flags/mw.png index 57bd5392914..2f4c4dcdcb8 100644 Binary files a/htdocs/theme/common/flags/mw.png and b/htdocs/theme/common/flags/mw.png differ diff --git a/htdocs/theme/common/flags/mx.png b/htdocs/theme/common/flags/mx.png index fe2ca683808..4456c1b7f00 100644 Binary files a/htdocs/theme/common/flags/mx.png and b/htdocs/theme/common/flags/mx.png differ diff --git a/htdocs/theme/common/flags/my.png b/htdocs/theme/common/flags/my.png index 8c9798b6abf..c2dbf53f708 100644 Binary files a/htdocs/theme/common/flags/my.png and b/htdocs/theme/common/flags/my.png differ diff --git a/htdocs/theme/common/flags/mz.png b/htdocs/theme/common/flags/mz.png index 9fb494db12c..4d1efd25e9d 100644 Binary files a/htdocs/theme/common/flags/mz.png and b/htdocs/theme/common/flags/mz.png differ diff --git a/htdocs/theme/common/flags/na.png b/htdocs/theme/common/flags/na.png index c669b82e8ad..948e720c059 100644 Binary files a/htdocs/theme/common/flags/na.png and b/htdocs/theme/common/flags/na.png differ diff --git a/htdocs/theme/common/flags/nc.png b/htdocs/theme/common/flags/nc.png index 08c9aa312e9..5323c728390 100644 Binary files a/htdocs/theme/common/flags/nc.png and b/htdocs/theme/common/flags/nc.png differ diff --git a/htdocs/theme/common/flags/nf.png b/htdocs/theme/common/flags/nf.png index 95f045d7e15..58e52123157 100644 Binary files a/htdocs/theme/common/flags/nf.png and b/htdocs/theme/common/flags/nf.png differ diff --git a/htdocs/theme/common/flags/ng.png b/htdocs/theme/common/flags/ng.png index 7b7729ef3d9..70c1f14e0fc 100644 Binary files a/htdocs/theme/common/flags/ng.png and b/htdocs/theme/common/flags/ng.png differ diff --git a/htdocs/theme/common/flags/ni.png b/htdocs/theme/common/flags/ni.png index d1c3192f702..cbe94d2712a 100644 Binary files a/htdocs/theme/common/flags/ni.png and b/htdocs/theme/common/flags/ni.png differ diff --git a/htdocs/theme/common/flags/nl.png b/htdocs/theme/common/flags/nl.png index 7f9853cb4ba..fa615dc747f 100644 Binary files a/htdocs/theme/common/flags/nl.png and b/htdocs/theme/common/flags/nl.png differ diff --git a/htdocs/theme/common/flags/no.png b/htdocs/theme/common/flags/no.png index c403d06ad10..cc0cabb4fb5 100644 Binary files a/htdocs/theme/common/flags/no.png and b/htdocs/theme/common/flags/no.png differ diff --git a/htdocs/theme/common/flags/np.png b/htdocs/theme/common/flags/np.png index 7d92685c625..99e2fcfd2fd 100644 Binary files a/htdocs/theme/common/flags/np.png and b/htdocs/theme/common/flags/np.png differ diff --git a/htdocs/theme/common/flags/nr.png b/htdocs/theme/common/flags/nr.png index 89fbe24351c..d070da17c26 100644 Binary files a/htdocs/theme/common/flags/nr.png and b/htdocs/theme/common/flags/nr.png differ diff --git a/htdocs/theme/common/flags/nu.png b/htdocs/theme/common/flags/nu.png index 0f828f60ebb..b476ea7e049 100644 Binary files a/htdocs/theme/common/flags/nu.png and b/htdocs/theme/common/flags/nu.png differ diff --git a/htdocs/theme/common/flags/nz.png b/htdocs/theme/common/flags/nz.png index 541fa4dbdf5..1d0487ad313 100644 Binary files a/htdocs/theme/common/flags/nz.png and b/htdocs/theme/common/flags/nz.png differ diff --git a/htdocs/theme/common/flags/om.png b/htdocs/theme/common/flags/om.png index fae4261a4b3..00354db2ba6 100644 Binary files a/htdocs/theme/common/flags/om.png and b/htdocs/theme/common/flags/om.png differ diff --git a/htdocs/theme/common/flags/pa.png b/htdocs/theme/common/flags/pa.png index 4c39c327769..5a3ed442d82 100644 Binary files a/htdocs/theme/common/flags/pa.png and b/htdocs/theme/common/flags/pa.png differ diff --git a/htdocs/theme/common/flags/pe.png b/htdocs/theme/common/flags/pe.png index 08ac2849712..a6dd0565d3c 100644 Binary files a/htdocs/theme/common/flags/pe.png and b/htdocs/theme/common/flags/pe.png differ diff --git a/htdocs/theme/common/flags/pf.png b/htdocs/theme/common/flags/pf.png index 01ef8ff1db9..d1175fb1906 100644 Binary files a/htdocs/theme/common/flags/pf.png and b/htdocs/theme/common/flags/pf.png differ diff --git a/htdocs/theme/common/flags/pg.png b/htdocs/theme/common/flags/pg.png index 28e777d9a35..bb0d3efe45b 100644 Binary files a/htdocs/theme/common/flags/pg.png and b/htdocs/theme/common/flags/pg.png differ diff --git a/htdocs/theme/common/flags/ph.png b/htdocs/theme/common/flags/ph.png index 758d91a3647..0c8e2d010a9 100644 Binary files a/htdocs/theme/common/flags/ph.png and b/htdocs/theme/common/flags/ph.png differ diff --git a/htdocs/theme/common/flags/pk.png b/htdocs/theme/common/flags/pk.png index 310cf364022..56922033f75 100644 Binary files a/htdocs/theme/common/flags/pk.png and b/htdocs/theme/common/flags/pk.png differ diff --git a/htdocs/theme/common/flags/pl.png b/htdocs/theme/common/flags/pl.png index 96cb1aa144c..1d1236b08ea 100644 Binary files a/htdocs/theme/common/flags/pl.png and b/htdocs/theme/common/flags/pl.png differ diff --git a/htdocs/theme/common/flags/pm.png b/htdocs/theme/common/flags/pm.png index dab08881a6c..fe73f0e73fa 100644 Binary files a/htdocs/theme/common/flags/pm.png and b/htdocs/theme/common/flags/pm.png differ diff --git a/htdocs/theme/common/flags/pn.png b/htdocs/theme/common/flags/pn.png index aec27da5bed..43fd151f7bb 100644 Binary files a/htdocs/theme/common/flags/pn.png and b/htdocs/theme/common/flags/pn.png differ diff --git a/htdocs/theme/common/flags/pr.png b/htdocs/theme/common/flags/pr.png index 28f866bd6e0..19140e57ab8 100644 Binary files a/htdocs/theme/common/flags/pr.png and b/htdocs/theme/common/flags/pr.png differ diff --git a/htdocs/theme/common/flags/ps.png b/htdocs/theme/common/flags/ps.png index 4b7ea877118..804c032d910 100644 Binary files a/htdocs/theme/common/flags/ps.png and b/htdocs/theme/common/flags/ps.png differ diff --git a/htdocs/theme/common/flags/pt.png b/htdocs/theme/common/flags/pt.png index 1dbc37f1283..f7b64d0e870 100644 Binary files a/htdocs/theme/common/flags/pt.png and b/htdocs/theme/common/flags/pt.png differ diff --git a/htdocs/theme/common/flags/pw.png b/htdocs/theme/common/flags/pw.png index a8df9403a9b..6427f163cfe 100644 Binary files a/htdocs/theme/common/flags/pw.png and b/htdocs/theme/common/flags/pw.png differ diff --git a/htdocs/theme/common/flags/py.png b/htdocs/theme/common/flags/py.png index ac02fc5bc6e..0a534a8874e 100644 Binary files a/htdocs/theme/common/flags/py.png and b/htdocs/theme/common/flags/py.png differ diff --git a/htdocs/theme/common/flags/qa.png b/htdocs/theme/common/flags/qa.png index e9c75e98be8..67b5b836fc0 100644 Binary files a/htdocs/theme/common/flags/qa.png and b/htdocs/theme/common/flags/qa.png differ diff --git a/htdocs/theme/common/flags/re.png b/htdocs/theme/common/flags/re.png index 9bceb7c255f..89055092431 100644 Binary files a/htdocs/theme/common/flags/re.png and b/htdocs/theme/common/flags/re.png differ diff --git a/htdocs/theme/common/flags/ro.png b/htdocs/theme/common/flags/ro.png index d914fde33f1..5f046be6666 100644 Binary files a/htdocs/theme/common/flags/ro.png and b/htdocs/theme/common/flags/ro.png differ diff --git a/htdocs/theme/common/flags/ru.png b/htdocs/theme/common/flags/ru.png index 5ab028885c1..33d5ccd0159 100644 Binary files a/htdocs/theme/common/flags/ru.png and b/htdocs/theme/common/flags/ru.png differ diff --git a/htdocs/theme/common/flags/rw.png b/htdocs/theme/common/flags/rw.png index 9fe4fde864d..050bee0ea7b 100644 Binary files a/htdocs/theme/common/flags/rw.png and b/htdocs/theme/common/flags/rw.png differ diff --git a/htdocs/theme/common/flags/sa.png b/htdocs/theme/common/flags/sa.png index a65b59e06a1..bffec7e1a22 100644 Binary files a/htdocs/theme/common/flags/sa.png and b/htdocs/theme/common/flags/sa.png differ diff --git a/htdocs/theme/common/flags/sb.png b/htdocs/theme/common/flags/sb.png index 43e8a46da8c..834c4f1f1f2 100644 Binary files a/htdocs/theme/common/flags/sb.png and b/htdocs/theme/common/flags/sb.png differ diff --git a/htdocs/theme/common/flags/sc.png b/htdocs/theme/common/flags/sc.png index e41bc222505..363f7337048 100644 Binary files a/htdocs/theme/common/flags/sc.png and b/htdocs/theme/common/flags/sc.png differ diff --git a/htdocs/theme/common/flags/scotland.png b/htdocs/theme/common/flags/scotland.png index 31c6075c5b9..15339286066 100644 Binary files a/htdocs/theme/common/flags/scotland.png and b/htdocs/theme/common/flags/scotland.png differ diff --git a/htdocs/theme/common/flags/sd.png b/htdocs/theme/common/flags/sd.png index 9770d0bbeb9..b3f0c0f7fe1 100644 Binary files a/htdocs/theme/common/flags/sd.png and b/htdocs/theme/common/flags/sd.png differ diff --git a/htdocs/theme/common/flags/se.png b/htdocs/theme/common/flags/se.png index 569fe949e23..bf6dfe98a0e 100644 Binary files a/htdocs/theme/common/flags/se.png and b/htdocs/theme/common/flags/se.png differ diff --git a/htdocs/theme/common/flags/sg.png b/htdocs/theme/common/flags/sg.png index 22240587ad3..116186c805a 100644 Binary files a/htdocs/theme/common/flags/sg.png and b/htdocs/theme/common/flags/sg.png differ diff --git a/htdocs/theme/common/flags/sh.png b/htdocs/theme/common/flags/sh.png index a4633de4fc5..e0be2f5198b 100644 Binary files a/htdocs/theme/common/flags/sh.png and b/htdocs/theme/common/flags/sh.png differ diff --git a/htdocs/theme/common/flags/si.png b/htdocs/theme/common/flags/si.png index a73dd8c2bc6..e3d28edc584 100644 Binary files a/htdocs/theme/common/flags/si.png and b/htdocs/theme/common/flags/si.png differ diff --git a/htdocs/theme/common/flags/sj.png b/htdocs/theme/common/flags/sj.png index c403d06ad10..cc0cabb4fb5 100644 Binary files a/htdocs/theme/common/flags/sj.png and b/htdocs/theme/common/flags/sj.png differ diff --git a/htdocs/theme/common/flags/sk.png b/htdocs/theme/common/flags/sk.png index b1b99b04678..56c6a67a279 100644 Binary files a/htdocs/theme/common/flags/sk.png and b/htdocs/theme/common/flags/sk.png differ diff --git a/htdocs/theme/common/flags/sl.png b/htdocs/theme/common/flags/sl.png index ed622b46045..6e9fbe9982c 100644 Binary files a/htdocs/theme/common/flags/sl.png and b/htdocs/theme/common/flags/sl.png differ diff --git a/htdocs/theme/common/flags/sm.png b/htdocs/theme/common/flags/sm.png index abaed46622b..cd0c52f4754 100644 Binary files a/htdocs/theme/common/flags/sm.png and b/htdocs/theme/common/flags/sm.png differ diff --git a/htdocs/theme/common/flags/sn.png b/htdocs/theme/common/flags/sn.png index b8fe72eddfd..b36e6f38581 100644 Binary files a/htdocs/theme/common/flags/sn.png and b/htdocs/theme/common/flags/sn.png differ diff --git a/htdocs/theme/common/flags/so.png b/htdocs/theme/common/flags/so.png index 26e78bb0e32..5a93332ec6d 100644 Binary files a/htdocs/theme/common/flags/so.png and b/htdocs/theme/common/flags/so.png differ diff --git a/htdocs/theme/common/flags/sr.png b/htdocs/theme/common/flags/sr.png index f838a8bb472..048c6cca059 100644 Binary files a/htdocs/theme/common/flags/sr.png and b/htdocs/theme/common/flags/sr.png differ diff --git a/htdocs/theme/common/flags/st.png b/htdocs/theme/common/flags/st.png index fa50b4301e9..b5121fbcdfc 100644 Binary files a/htdocs/theme/common/flags/st.png and b/htdocs/theme/common/flags/st.png differ diff --git a/htdocs/theme/common/flags/sv.png b/htdocs/theme/common/flags/sv.png index 8604c1f5864..5b0824ef956 100644 Binary files a/htdocs/theme/common/flags/sv.png and b/htdocs/theme/common/flags/sv.png differ diff --git a/htdocs/theme/common/flags/sy.png b/htdocs/theme/common/flags/sy.png index 0e5972c1a92..ceee459b20e 100644 Binary files a/htdocs/theme/common/flags/sy.png and b/htdocs/theme/common/flags/sy.png differ diff --git a/htdocs/theme/common/flags/sz.png b/htdocs/theme/common/flags/sz.png index 4e3f1fdb894..cb72e27def0 100644 Binary files a/htdocs/theme/common/flags/sz.png and b/htdocs/theme/common/flags/sz.png differ diff --git a/htdocs/theme/common/flags/tc.png b/htdocs/theme/common/flags/tc.png index e7e9a0a18a0..f640d7d5c0e 100644 Binary files a/htdocs/theme/common/flags/tc.png and b/htdocs/theme/common/flags/tc.png differ diff --git a/htdocs/theme/common/flags/td.png b/htdocs/theme/common/flags/td.png index dec25350f52..c19e9a311b4 100644 Binary files a/htdocs/theme/common/flags/td.png and b/htdocs/theme/common/flags/td.png differ diff --git a/htdocs/theme/common/flags/tf.png b/htdocs/theme/common/flags/tf.png index 8106f7adac0..cdede6611c6 100644 Binary files a/htdocs/theme/common/flags/tf.png and b/htdocs/theme/common/flags/tf.png differ diff --git a/htdocs/theme/common/flags/tg.png b/htdocs/theme/common/flags/tg.png index aef3d9f2160..adb9ef7067f 100644 Binary files a/htdocs/theme/common/flags/tg.png and b/htdocs/theme/common/flags/tg.png differ diff --git a/htdocs/theme/common/flags/th.png b/htdocs/theme/common/flags/th.png index c0c7a6862a1..211ff7d1e2f 100644 Binary files a/htdocs/theme/common/flags/th.png and b/htdocs/theme/common/flags/th.png differ diff --git a/htdocs/theme/common/flags/tj.png b/htdocs/theme/common/flags/tj.png index 2dc4a0d1c06..4a00524dfb1 100644 Binary files a/htdocs/theme/common/flags/tj.png and b/htdocs/theme/common/flags/tj.png differ diff --git a/htdocs/theme/common/flags/tk.png b/htdocs/theme/common/flags/tk.png index 218413dda9a..3e67e4b1001 100644 Binary files a/htdocs/theme/common/flags/tk.png and b/htdocs/theme/common/flags/tk.png differ diff --git a/htdocs/theme/common/flags/tl.png b/htdocs/theme/common/flags/tl.png index 5644f94cb7b..dad031ef088 100644 Binary files a/htdocs/theme/common/flags/tl.png and b/htdocs/theme/common/flags/tl.png differ diff --git a/htdocs/theme/common/flags/tm.png b/htdocs/theme/common/flags/tm.png index a9c6edbdea9..00f532dc067 100644 Binary files a/htdocs/theme/common/flags/tm.png and b/htdocs/theme/common/flags/tm.png differ diff --git a/htdocs/theme/common/flags/tn.png b/htdocs/theme/common/flags/tn.png index cc727ab9caf..81e1036038f 100644 Binary files a/htdocs/theme/common/flags/tn.png and b/htdocs/theme/common/flags/tn.png differ diff --git a/htdocs/theme/common/flags/to.png b/htdocs/theme/common/flags/to.png index 6f5fe0482f5..5483b6e78fc 100644 Binary files a/htdocs/theme/common/flags/to.png and b/htdocs/theme/common/flags/to.png differ diff --git a/htdocs/theme/common/flags/tr.png b/htdocs/theme/common/flags/tr.png index 2031bed4dac..76fd8326c5e 100644 Binary files a/htdocs/theme/common/flags/tr.png and b/htdocs/theme/common/flags/tr.png differ diff --git a/htdocs/theme/common/flags/trans.png b/htdocs/theme/common/flags/trans.png index e001b642ee8..aae5d4f0865 100644 Binary files a/htdocs/theme/common/flags/trans.png and b/htdocs/theme/common/flags/trans.png differ diff --git a/htdocs/theme/common/flags/tt.png b/htdocs/theme/common/flags/tt.png index d280e2c7f5d..6ab522ff46d 100644 Binary files a/htdocs/theme/common/flags/tt.png and b/htdocs/theme/common/flags/tt.png differ diff --git a/htdocs/theme/common/flags/tv.png b/htdocs/theme/common/flags/tv.png index 4746c382843..53a01f258a2 100644 Binary files a/htdocs/theme/common/flags/tv.png and b/htdocs/theme/common/flags/tv.png differ diff --git a/htdocs/theme/common/flags/tw.png b/htdocs/theme/common/flags/tw.png index a99e1d04c5e..852cc914253 100644 Binary files a/htdocs/theme/common/flags/tw.png and b/htdocs/theme/common/flags/tw.png differ diff --git a/htdocs/theme/common/flags/tz.png b/htdocs/theme/common/flags/tz.png index 39a7d21dbe7..b11db56096b 100644 Binary files a/htdocs/theme/common/flags/tz.png and b/htdocs/theme/common/flags/tz.png differ diff --git a/htdocs/theme/common/flags/ua.png b/htdocs/theme/common/flags/ua.png index f544c6ec27e..e8fc3078850 100644 Binary files a/htdocs/theme/common/flags/ua.png and b/htdocs/theme/common/flags/ua.png differ diff --git a/htdocs/theme/common/flags/ug.png b/htdocs/theme/common/flags/ug.png index 2c1674828ef..232c6a12879 100644 Binary files a/htdocs/theme/common/flags/ug.png and b/htdocs/theme/common/flags/ug.png differ diff --git a/htdocs/theme/common/flags/uk.png b/htdocs/theme/common/flags/uk.png index 025009e2045..e0cd9aa1eda 100644 Binary files a/htdocs/theme/common/flags/uk.png and b/htdocs/theme/common/flags/uk.png differ diff --git a/htdocs/theme/common/flags/um.png b/htdocs/theme/common/flags/um.png index fd5ea83a9c5..86866f2cc22 100644 Binary files a/htdocs/theme/common/flags/um.png and b/htdocs/theme/common/flags/um.png differ diff --git a/htdocs/theme/common/flags/us.png b/htdocs/theme/common/flags/us.png index e6eeb28549e..b0786cfd9ae 100644 Binary files a/htdocs/theme/common/flags/us.png and b/htdocs/theme/common/flags/us.png differ diff --git a/htdocs/theme/common/flags/uy.png b/htdocs/theme/common/flags/uy.png index 45dd4d970b3..3a1f9bda917 100644 Binary files a/htdocs/theme/common/flags/uy.png and b/htdocs/theme/common/flags/uy.png differ diff --git a/htdocs/theme/common/flags/uz.png b/htdocs/theme/common/flags/uz.png index 7735ae170e7..326a7ed123d 100644 Binary files a/htdocs/theme/common/flags/uz.png and b/htdocs/theme/common/flags/uz.png differ diff --git a/htdocs/theme/common/flags/va.png b/htdocs/theme/common/flags/va.png index 2394c5ebf18..ab65663eb18 100644 Binary files a/htdocs/theme/common/flags/va.png and b/htdocs/theme/common/flags/va.png differ diff --git a/htdocs/theme/common/flags/vc.png b/htdocs/theme/common/flags/vc.png index 0e7806f989c..04452a8bdd6 100644 Binary files a/htdocs/theme/common/flags/vc.png and b/htdocs/theme/common/flags/vc.png differ diff --git a/htdocs/theme/common/flags/ve.png b/htdocs/theme/common/flags/ve.png index 806d76b8997..9d0b04e24fa 100644 Binary files a/htdocs/theme/common/flags/ve.png and b/htdocs/theme/common/flags/ve.png differ diff --git a/htdocs/theme/common/flags/vg.png b/htdocs/theme/common/flags/vg.png index 222f6b7d9bd..c3a0a65094e 100644 Binary files a/htdocs/theme/common/flags/vg.png and b/htdocs/theme/common/flags/vg.png differ diff --git a/htdocs/theme/common/flags/vi.png b/htdocs/theme/common/flags/vi.png index b5d4222764c..2686383d60c 100644 Binary files a/htdocs/theme/common/flags/vi.png and b/htdocs/theme/common/flags/vi.png differ diff --git a/htdocs/theme/common/flags/vn.png b/htdocs/theme/common/flags/vn.png index 11b4ae710bb..68b3a8623eb 100644 Binary files a/htdocs/theme/common/flags/vn.png and b/htdocs/theme/common/flags/vn.png differ diff --git a/htdocs/theme/common/flags/vu.png b/htdocs/theme/common/flags/vu.png index 31aa37ec304..84407aabd35 100644 Binary files a/htdocs/theme/common/flags/vu.png and b/htdocs/theme/common/flags/vu.png differ diff --git a/htdocs/theme/common/flags/wales.png b/htdocs/theme/common/flags/wales.png index 6b141e1d412..dc847cad9c3 100644 Binary files a/htdocs/theme/common/flags/wales.png and b/htdocs/theme/common/flags/wales.png differ diff --git a/htdocs/theme/common/flags/wf.png b/htdocs/theme/common/flags/wf.png index 1c99bdcf71a..35b959d14b1 100644 Binary files a/htdocs/theme/common/flags/wf.png and b/htdocs/theme/common/flags/wf.png differ diff --git a/htdocs/theme/common/flags/ws.png b/htdocs/theme/common/flags/ws.png index 287482db540..6732260e273 100644 Binary files a/htdocs/theme/common/flags/ws.png and b/htdocs/theme/common/flags/ws.png differ diff --git a/htdocs/theme/common/flags/ye.png b/htdocs/theme/common/flags/ye.png index ede2401cf0a..1380d96c646 100644 Binary files a/htdocs/theme/common/flags/ye.png and b/htdocs/theme/common/flags/ye.png differ diff --git a/htdocs/theme/common/flags/yt.png b/htdocs/theme/common/flags/yt.png index fb9c3669c13..34e592d8224 100644 Binary files a/htdocs/theme/common/flags/yt.png and b/htdocs/theme/common/flags/yt.png differ diff --git a/htdocs/theme/common/flags/za.png b/htdocs/theme/common/flags/za.png index 070aec4cd57..ecc4b82507d 100644 Binary files a/htdocs/theme/common/flags/za.png and b/htdocs/theme/common/flags/za.png differ diff --git a/htdocs/theme/common/flags/zm.png b/htdocs/theme/common/flags/zm.png index bcce6de9380..fa364c9c759 100644 Binary files a/htdocs/theme/common/flags/zm.png and b/htdocs/theme/common/flags/zm.png differ diff --git a/htdocs/theme/common/flags/zw.png b/htdocs/theme/common/flags/zw.png index 62d6988aaee..944d2770084 100644 Binary files a/htdocs/theme/common/flags/zw.png and b/htdocs/theme/common/flags/zw.png differ diff --git a/htdocs/theme/common/folder-new.png b/htdocs/theme/common/folder-new.png index da7ed005f56..3d582db34cb 100644 Binary files a/htdocs/theme/common/folder-new.png and b/htdocs/theme/common/folder-new.png differ diff --git a/htdocs/theme/common/fontawesome-5/css/all.css b/htdocs/theme/common/fontawesome-5/css/all.css index 8bad7158241..8ebd25ff0c0 100644 --- a/htdocs/theme/common/fontawesome-5/css/all.css +++ b/htdocs/theme/common/fontawesome-5/css/all.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ .fa, @@ -441,6 +441,9 @@ readers do not read off random characters that represent icons */ .fa-bacon:before { content: "\f7e5"; } +.fa-bahai:before { + content: "\f666"; } + .fa-balance-scale:before { content: "\f24e"; } @@ -627,6 +630,9 @@ readers do not read off random characters that represent icons */ .fa-box-open:before { content: "\f49e"; } +.fa-box-tissue:before { + content: "\f95b"; } + .fa-boxes:before { content: "\f468"; } @@ -687,6 +693,9 @@ readers do not read off random characters that represent icons */ .fa-business-time:before { content: "\f64a"; } +.fa-buy-n-large:before { + content: "\f8a6"; } + .fa-buysellads:before { content: "\f20d"; } @@ -753,6 +762,9 @@ readers do not read off random characters that represent icons */ .fa-car-side:before { content: "\f5e4"; } +.fa-caravan:before { + content: "\f8ff"; } + .fa-caret-down:before { content: "\f0d7"; } @@ -1062,6 +1074,9 @@ readers do not read off random characters that represent icons */ .fa-compress:before { content: "\f066"; } +.fa-compress-alt:before { + content: "\f422"; } + .fa-compress-arrows-alt:before { content: "\f78c"; } @@ -1191,6 +1206,9 @@ readers do not read off random characters that represent icons */ .fa-d-and-d-beyond:before { content: "\f6ca"; } +.fa-dailymotion:before { + content: "\f952"; } + .fa-dashcube:before { content: "\f210"; } @@ -1278,6 +1296,9 @@ readers do not read off random characters that represent icons */ .fa-discourse:before { content: "\f393"; } +.fa-disease:before { + content: "\f7fa"; } + .fa-divide:before { content: "\f529"; } @@ -1461,6 +1482,9 @@ readers do not read off random characters that represent icons */ .fa-expand:before { content: "\f065"; } +.fa-expand-alt:before { + content: "\f424"; } + .fa-expand-arrows-alt:before { content: "\f31e"; } @@ -1506,6 +1530,9 @@ readers do not read off random characters that represent icons */ .fa-fast-forward:before { content: "\f050"; } +.fa-faucet:before { + content: "\f905"; } + .fa-fax:before { content: "\f1ac"; } @@ -1626,6 +1653,9 @@ readers do not read off random characters that represent icons */ .fa-firefox:before { content: "\f269"; } +.fa-firefox-browser:before { + content: "\f907"; } + .fa-first-aid:before { content: "\f479"; } @@ -1989,9 +2019,15 @@ readers do not read off random characters that represent icons */ .fa-hand-holding-heart:before { content: "\f4be"; } +.fa-hand-holding-medical:before { + content: "\f95c"; } + .fa-hand-holding-usd:before { content: "\f4c0"; } +.fa-hand-holding-water:before { + content: "\f4c1"; } + .fa-hand-lizard:before { content: "\f258"; } @@ -2025,6 +2061,9 @@ readers do not read off random characters that represent icons */ .fa-hand-scissors:before { content: "\f257"; } +.fa-hand-sparkles:before { + content: "\f95d"; } + .fa-hand-spock:before { content: "\f259"; } @@ -2034,9 +2073,18 @@ readers do not read off random characters that represent icons */ .fa-hands-helping:before { content: "\f4c4"; } +.fa-hands-wash:before { + content: "\f95e"; } + .fa-handshake:before { content: "\f2b5"; } +.fa-handshake-alt-slash:before { + content: "\f95f"; } + +.fa-handshake-slash:before { + content: "\f960"; } + .fa-hanukiah:before { content: "\f6e6"; } @@ -2046,15 +2094,30 @@ readers do not read off random characters that represent icons */ .fa-hashtag:before { content: "\f292"; } +.fa-hat-cowboy:before { + content: "\f8c0"; } + +.fa-hat-cowboy-side:before { + content: "\f8c1"; } + .fa-hat-wizard:before { content: "\f6e8"; } -.fa-haykal:before { - content: "\f666"; } - .fa-hdd:before { content: "\f0a0"; } +.fa-head-side-cough:before { + content: "\f961"; } + +.fa-head-side-cough-slash:before { + content: "\f962"; } + +.fa-head-side-mask:before { + content: "\f963"; } + +.fa-head-side-virus:before { + content: "\f964"; } + .fa-heading:before { content: "\f1dc"; } @@ -2127,6 +2190,9 @@ readers do not read off random characters that represent icons */ .fa-hospital-symbol:before { content: "\f47e"; } +.fa-hospital-user:before { + content: "\f80d"; } + .fa-hot-tub:before { content: "\f593"; } @@ -2154,6 +2220,9 @@ readers do not read off random characters that represent icons */ .fa-house-damage:before { content: "\f6f1"; } +.fa-house-user:before { + content: "\f965"; } + .fa-houzz:before { content: "\f27c"; } @@ -2187,6 +2256,9 @@ readers do not read off random characters that represent icons */ .fa-id-card-alt:before { content: "\f47f"; } +.fa-ideal:before { + content: "\f913"; } + .fa-igloo:before { content: "\f7ae"; } @@ -2220,6 +2292,9 @@ readers do not read off random characters that represent icons */ .fa-instagram:before { content: "\f16d"; } +.fa-instagram-square:before { + content: "\f955"; } + .fa-intercom:before { content: "\f7af"; } @@ -2334,6 +2409,9 @@ readers do not read off random characters that represent icons */ .fa-laptop-code:before { content: "\f5fc"; } +.fa-laptop-house:before { + content: "\f966"; } + .fa-laptop-medical:before { content: "\f812"; } @@ -2451,6 +2529,12 @@ readers do not read off random characters that represent icons */ .fa-luggage-cart:before { content: "\f59d"; } +.fa-lungs:before { + content: "\f604"; } + +.fa-lungs-virus:before { + content: "\f967"; } + .fa-lyft:before { content: "\f3c3"; } @@ -2526,6 +2610,9 @@ readers do not read off random characters that represent icons */ .fa-maxcdn:before { content: "\f136"; } +.fa-mdb:before { + content: "\f8ca"; } + .fa-medal:before { content: "\f5a2"; } @@ -2574,6 +2661,9 @@ readers do not read off random characters that represent icons */ .fa-meteor:before { content: "\f753"; } +.fa-microblog:before { + content: "\f91a"; } + .fa-microchip:before { content: "\f2db"; } @@ -2613,6 +2703,9 @@ readers do not read off random characters that represent icons */ .fa-mixcloud:before { content: "\f289"; } +.fa-mixer:before { + content: "\f956"; } + .fa-mizuni:before { content: "\f3cc"; } @@ -2664,6 +2757,9 @@ readers do not read off random characters that represent icons */ .fa-mountain:before { content: "\f6fc"; } +.fa-mouse:before { + content: "\f8cc"; } + .fa-mouse-pointer:before { content: "\f245"; } @@ -2745,6 +2841,9 @@ readers do not read off random characters that represent icons */ .fa-optin-monster:before { content: "\f23c"; } +.fa-orcid:before { + content: "\f8d2"; } + .fa-osi:before { content: "\f41a"; } @@ -2844,6 +2943,9 @@ readers do not read off random characters that represent icons */ .fa-penny-arcade:before { content: "\f704"; } +.fa-people-arrows:before { + content: "\f968"; } + .fa-people-carry:before { content: "\f4ce"; } @@ -2907,6 +3009,9 @@ readers do not read off random characters that represent icons */ .fa-pied-piper-pp:before { content: "\f1a7"; } +.fa-pied-piper-square:before { + content: "\f91e"; } + .fa-piggy-bank:before { content: "\f4d3"; } @@ -2937,6 +3042,9 @@ readers do not read off random characters that represent icons */ .fa-plane-departure:before { content: "\f5b0"; } +.fa-plane-slash:before { + content: "\f969"; } + .fa-play:before { content: "\f04b"; } @@ -3012,6 +3120,12 @@ readers do not read off random characters that represent icons */ .fa-project-diagram:before { content: "\f542"; } +.fa-pump-medical:before { + content: "\f96a"; } + +.fa-pump-soap:before { + content: "\f96b"; } + .fa-pushed:before { content: "\f3e1"; } @@ -3087,6 +3201,9 @@ readers do not read off random characters that represent icons */ .fa-receipt:before { content: "\f543"; } +.fa-record-vinyl:before { + content: "\f8d9"; } + .fa-recycle:before { content: "\f1b8"; } @@ -3294,6 +3411,9 @@ readers do not read off random characters that represent icons */ .fa-shield-alt:before { content: "\f3ed"; } +.fa-shield-virus:before { + content: "\f96c"; } + .fa-ship:before { content: "\f21a"; } @@ -3306,6 +3426,9 @@ readers do not read off random characters that represent icons */ .fa-shoe-prints:before { content: "\f54b"; } +.fa-shopify:before { + content: "\f957"; } + .fa-shopping-bag:before { content: "\f290"; } @@ -3441,6 +3564,9 @@ readers do not read off random characters that represent icons */ .fa-snowplow:before { content: "\f7d2"; } +.fa-soap:before { + content: "\f96e"; } + .fa-socks:before { content: "\f696"; } @@ -3606,12 +3732,21 @@ readers do not read off random characters that represent icons */ .fa-stopwatch:before { content: "\f2f2"; } +.fa-stopwatch-20:before { + content: "\f96f"; } + .fa-store:before { content: "\f54e"; } .fa-store-alt:before { content: "\f54f"; } +.fa-store-alt-slash:before { + content: "\f970"; } + +.fa-store-slash:before { + content: "\f971"; } + .fa-strava:before { content: "\f428"; } @@ -3675,6 +3810,9 @@ readers do not read off random characters that represent icons */ .fa-swatchbook:before { content: "\f5c3"; } +.fa-swift:before { + content: "\f8e1"; } + .fa-swimmer:before { content: "\f5c4"; } @@ -3846,6 +3984,9 @@ readers do not read off random characters that represent icons */ .fa-toilet-paper:before { content: "\f71e"; } +.fa-toilet-paper-slash:before { + content: "\f972"; } + .fa-toolbox:before { content: "\f552"; } @@ -3873,6 +4014,9 @@ readers do not read off random characters that represent icons */ .fa-traffic-light:before { content: "\f637"; } +.fa-trailer:before { + content: "\f941"; } + .fa-train:before { content: "\f238"; } @@ -3960,6 +4104,9 @@ readers do not read off random characters that represent icons */ .fa-uikit:before { content: "\f403"; } +.fa-umbraco:before { + content: "\f8e8"; } + .fa-umbrella:before { content: "\f0e9"; } @@ -3978,6 +4125,9 @@ readers do not read off random characters that represent icons */ .fa-uniregistry:before { content: "\f404"; } +.fa-unity:before { + content: "\f949"; } + .fa-universal-access:before { content: "\f29a"; } @@ -4149,6 +4299,15 @@ readers do not read off random characters that represent icons */ .fa-vine:before { content: "\f1ca"; } +.fa-virus:before { + content: "\f974"; } + +.fa-virus-slash:before { + content: "\f975"; } + +.fa-viruses:before { + content: "\f976"; } + .fa-vk:before { content: "\f189"; } @@ -4364,18 +4523,19 @@ readers do not read off random characters that represent icons */ @font-face { font-family: 'Font Awesome 5 Brands'; font-style: normal; - font-weight: normal; - font-display: auto; + font-weight: 400; + font-display: block; src: url("../webfonts/fa-brands-400.eot"); src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } .fab { - font-family: 'Font Awesome 5 Brands'; } + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 400; - font-display: auto; + font-display: block; src: url("../webfonts/fa-regular-400.eot"); src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } @@ -4386,7 +4546,7 @@ readers do not read off random characters that represent icons */ font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 900; - font-display: auto; + font-display: block; src: url("../webfonts/fa-solid-900.eot"); src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } diff --git a/htdocs/theme/common/fontawesome-5/css/all.min.css b/htdocs/theme/common/fontawesome-5/css/all.min.css index 3158702f5b3..3d28ab203d7 100644 --- a/htdocs/theme/common/fontawesome-5/css/all.min.css +++ b/htdocs/theme/common/fontawesome-5/css/all.min.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file +.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\f95b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\f952"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\f905"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\f95c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\f95d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\f95e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\f95f"}.fa-handshake-slash:before{content:"\f960"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\f961"}.fa-head-side-cough-slash:before{content:"\f962"}.fa-head-side-mask:before{content:"\f963"}.fa-head-side-virus:before{content:"\f964"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\f965"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\f955"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\f966"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\f967"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\f956"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\f968"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\f969"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\f96a"}.fa-pump-soap:before{content:"\f96b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\f96c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\f957"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\f96e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\f96f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\f970"}.fa-store-slash:before{content:"\f971"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\f972"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\f974"}.fa-virus-slash:before{content:"\f975"}.fa-viruses:before{content:"\f976"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/css/brands.css b/htdocs/theme/common/fontawesome-5/css/brands.css index 01b4491544f..ed4b7398c5f 100644 --- a/htdocs/theme/common/fontawesome-5/css/brands.css +++ b/htdocs/theme/common/fontawesome-5/css/brands.css @@ -1,14 +1,15 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ @font-face { font-family: 'Font Awesome 5 Brands'; font-style: normal; - font-weight: normal; - font-display: auto; + font-weight: 400; + font-display: block; src: url("../webfonts/fa-brands-400.eot"); src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } .fab { - font-family: 'Font Awesome 5 Brands'; } + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } diff --git a/htdocs/theme/common/fontawesome-5/css/brands.min.css b/htdocs/theme/common/fontawesome-5/css/brands.min.css index c2c632fdfb6..c8942c22fbb 100644 --- a/htdocs/theme/common/fontawesome-5/css/brands.min.css +++ b/htdocs/theme/common/fontawesome-5/css/brands.min.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"} \ No newline at end of file +@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400} \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/css/fontawesome.css b/htdocs/theme/common/fontawesome-5/css/fontawesome.css index 138e104dd47..c73d7c04750 100644 --- a/htdocs/theme/common/fontawesome-5/css/fontawesome.css +++ b/htdocs/theme/common/fontawesome-5/css/fontawesome.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ .fa, @@ -441,6 +441,9 @@ readers do not read off random characters that represent icons */ .fa-bacon:before { content: "\f7e5"; } +.fa-bahai:before { + content: "\f666"; } + .fa-balance-scale:before { content: "\f24e"; } @@ -627,6 +630,9 @@ readers do not read off random characters that represent icons */ .fa-box-open:before { content: "\f49e"; } +.fa-box-tissue:before { + content: "\f95b"; } + .fa-boxes:before { content: "\f468"; } @@ -687,6 +693,9 @@ readers do not read off random characters that represent icons */ .fa-business-time:before { content: "\f64a"; } +.fa-buy-n-large:before { + content: "\f8a6"; } + .fa-buysellads:before { content: "\f20d"; } @@ -753,6 +762,9 @@ readers do not read off random characters that represent icons */ .fa-car-side:before { content: "\f5e4"; } +.fa-caravan:before { + content: "\f8ff"; } + .fa-caret-down:before { content: "\f0d7"; } @@ -1062,6 +1074,9 @@ readers do not read off random characters that represent icons */ .fa-compress:before { content: "\f066"; } +.fa-compress-alt:before { + content: "\f422"; } + .fa-compress-arrows-alt:before { content: "\f78c"; } @@ -1191,6 +1206,9 @@ readers do not read off random characters that represent icons */ .fa-d-and-d-beyond:before { content: "\f6ca"; } +.fa-dailymotion:before { + content: "\f952"; } + .fa-dashcube:before { content: "\f210"; } @@ -1278,6 +1296,9 @@ readers do not read off random characters that represent icons */ .fa-discourse:before { content: "\f393"; } +.fa-disease:before { + content: "\f7fa"; } + .fa-divide:before { content: "\f529"; } @@ -1461,6 +1482,9 @@ readers do not read off random characters that represent icons */ .fa-expand:before { content: "\f065"; } +.fa-expand-alt:before { + content: "\f424"; } + .fa-expand-arrows-alt:before { content: "\f31e"; } @@ -1506,6 +1530,9 @@ readers do not read off random characters that represent icons */ .fa-fast-forward:before { content: "\f050"; } +.fa-faucet:before { + content: "\f905"; } + .fa-fax:before { content: "\f1ac"; } @@ -1626,6 +1653,9 @@ readers do not read off random characters that represent icons */ .fa-firefox:before { content: "\f269"; } +.fa-firefox-browser:before { + content: "\f907"; } + .fa-first-aid:before { content: "\f479"; } @@ -1989,9 +2019,15 @@ readers do not read off random characters that represent icons */ .fa-hand-holding-heart:before { content: "\f4be"; } +.fa-hand-holding-medical:before { + content: "\f95c"; } + .fa-hand-holding-usd:before { content: "\f4c0"; } +.fa-hand-holding-water:before { + content: "\f4c1"; } + .fa-hand-lizard:before { content: "\f258"; } @@ -2025,6 +2061,9 @@ readers do not read off random characters that represent icons */ .fa-hand-scissors:before { content: "\f257"; } +.fa-hand-sparkles:before { + content: "\f95d"; } + .fa-hand-spock:before { content: "\f259"; } @@ -2034,9 +2073,18 @@ readers do not read off random characters that represent icons */ .fa-hands-helping:before { content: "\f4c4"; } +.fa-hands-wash:before { + content: "\f95e"; } + .fa-handshake:before { content: "\f2b5"; } +.fa-handshake-alt-slash:before { + content: "\f95f"; } + +.fa-handshake-slash:before { + content: "\f960"; } + .fa-hanukiah:before { content: "\f6e6"; } @@ -2046,15 +2094,30 @@ readers do not read off random characters that represent icons */ .fa-hashtag:before { content: "\f292"; } +.fa-hat-cowboy:before { + content: "\f8c0"; } + +.fa-hat-cowboy-side:before { + content: "\f8c1"; } + .fa-hat-wizard:before { content: "\f6e8"; } -.fa-haykal:before { - content: "\f666"; } - .fa-hdd:before { content: "\f0a0"; } +.fa-head-side-cough:before { + content: "\f961"; } + +.fa-head-side-cough-slash:before { + content: "\f962"; } + +.fa-head-side-mask:before { + content: "\f963"; } + +.fa-head-side-virus:before { + content: "\f964"; } + .fa-heading:before { content: "\f1dc"; } @@ -2127,6 +2190,9 @@ readers do not read off random characters that represent icons */ .fa-hospital-symbol:before { content: "\f47e"; } +.fa-hospital-user:before { + content: "\f80d"; } + .fa-hot-tub:before { content: "\f593"; } @@ -2154,6 +2220,9 @@ readers do not read off random characters that represent icons */ .fa-house-damage:before { content: "\f6f1"; } +.fa-house-user:before { + content: "\f965"; } + .fa-houzz:before { content: "\f27c"; } @@ -2187,6 +2256,9 @@ readers do not read off random characters that represent icons */ .fa-id-card-alt:before { content: "\f47f"; } +.fa-ideal:before { + content: "\f913"; } + .fa-igloo:before { content: "\f7ae"; } @@ -2220,6 +2292,9 @@ readers do not read off random characters that represent icons */ .fa-instagram:before { content: "\f16d"; } +.fa-instagram-square:before { + content: "\f955"; } + .fa-intercom:before { content: "\f7af"; } @@ -2334,6 +2409,9 @@ readers do not read off random characters that represent icons */ .fa-laptop-code:before { content: "\f5fc"; } +.fa-laptop-house:before { + content: "\f966"; } + .fa-laptop-medical:before { content: "\f812"; } @@ -2451,6 +2529,12 @@ readers do not read off random characters that represent icons */ .fa-luggage-cart:before { content: "\f59d"; } +.fa-lungs:before { + content: "\f604"; } + +.fa-lungs-virus:before { + content: "\f967"; } + .fa-lyft:before { content: "\f3c3"; } @@ -2526,6 +2610,9 @@ readers do not read off random characters that represent icons */ .fa-maxcdn:before { content: "\f136"; } +.fa-mdb:before { + content: "\f8ca"; } + .fa-medal:before { content: "\f5a2"; } @@ -2574,6 +2661,9 @@ readers do not read off random characters that represent icons */ .fa-meteor:before { content: "\f753"; } +.fa-microblog:before { + content: "\f91a"; } + .fa-microchip:before { content: "\f2db"; } @@ -2613,6 +2703,9 @@ readers do not read off random characters that represent icons */ .fa-mixcloud:before { content: "\f289"; } +.fa-mixer:before { + content: "\f956"; } + .fa-mizuni:before { content: "\f3cc"; } @@ -2664,6 +2757,9 @@ readers do not read off random characters that represent icons */ .fa-mountain:before { content: "\f6fc"; } +.fa-mouse:before { + content: "\f8cc"; } + .fa-mouse-pointer:before { content: "\f245"; } @@ -2745,6 +2841,9 @@ readers do not read off random characters that represent icons */ .fa-optin-monster:before { content: "\f23c"; } +.fa-orcid:before { + content: "\f8d2"; } + .fa-osi:before { content: "\f41a"; } @@ -2844,6 +2943,9 @@ readers do not read off random characters that represent icons */ .fa-penny-arcade:before { content: "\f704"; } +.fa-people-arrows:before { + content: "\f968"; } + .fa-people-carry:before { content: "\f4ce"; } @@ -2907,6 +3009,9 @@ readers do not read off random characters that represent icons */ .fa-pied-piper-pp:before { content: "\f1a7"; } +.fa-pied-piper-square:before { + content: "\f91e"; } + .fa-piggy-bank:before { content: "\f4d3"; } @@ -2937,6 +3042,9 @@ readers do not read off random characters that represent icons */ .fa-plane-departure:before { content: "\f5b0"; } +.fa-plane-slash:before { + content: "\f969"; } + .fa-play:before { content: "\f04b"; } @@ -3012,6 +3120,12 @@ readers do not read off random characters that represent icons */ .fa-project-diagram:before { content: "\f542"; } +.fa-pump-medical:before { + content: "\f96a"; } + +.fa-pump-soap:before { + content: "\f96b"; } + .fa-pushed:before { content: "\f3e1"; } @@ -3087,6 +3201,9 @@ readers do not read off random characters that represent icons */ .fa-receipt:before { content: "\f543"; } +.fa-record-vinyl:before { + content: "\f8d9"; } + .fa-recycle:before { content: "\f1b8"; } @@ -3294,6 +3411,9 @@ readers do not read off random characters that represent icons */ .fa-shield-alt:before { content: "\f3ed"; } +.fa-shield-virus:before { + content: "\f96c"; } + .fa-ship:before { content: "\f21a"; } @@ -3306,6 +3426,9 @@ readers do not read off random characters that represent icons */ .fa-shoe-prints:before { content: "\f54b"; } +.fa-shopify:before { + content: "\f957"; } + .fa-shopping-bag:before { content: "\f290"; } @@ -3441,6 +3564,9 @@ readers do not read off random characters that represent icons */ .fa-snowplow:before { content: "\f7d2"; } +.fa-soap:before { + content: "\f96e"; } + .fa-socks:before { content: "\f696"; } @@ -3606,12 +3732,21 @@ readers do not read off random characters that represent icons */ .fa-stopwatch:before { content: "\f2f2"; } +.fa-stopwatch-20:before { + content: "\f96f"; } + .fa-store:before { content: "\f54e"; } .fa-store-alt:before { content: "\f54f"; } +.fa-store-alt-slash:before { + content: "\f970"; } + +.fa-store-slash:before { + content: "\f971"; } + .fa-strava:before { content: "\f428"; } @@ -3675,6 +3810,9 @@ readers do not read off random characters that represent icons */ .fa-swatchbook:before { content: "\f5c3"; } +.fa-swift:before { + content: "\f8e1"; } + .fa-swimmer:before { content: "\f5c4"; } @@ -3846,6 +3984,9 @@ readers do not read off random characters that represent icons */ .fa-toilet-paper:before { content: "\f71e"; } +.fa-toilet-paper-slash:before { + content: "\f972"; } + .fa-toolbox:before { content: "\f552"; } @@ -3873,6 +4014,9 @@ readers do not read off random characters that represent icons */ .fa-traffic-light:before { content: "\f637"; } +.fa-trailer:before { + content: "\f941"; } + .fa-train:before { content: "\f238"; } @@ -3960,6 +4104,9 @@ readers do not read off random characters that represent icons */ .fa-uikit:before { content: "\f403"; } +.fa-umbraco:before { + content: "\f8e8"; } + .fa-umbrella:before { content: "\f0e9"; } @@ -3978,6 +4125,9 @@ readers do not read off random characters that represent icons */ .fa-uniregistry:before { content: "\f404"; } +.fa-unity:before { + content: "\f949"; } + .fa-universal-access:before { content: "\f29a"; } @@ -4149,6 +4299,15 @@ readers do not read off random characters that represent icons */ .fa-vine:before { content: "\f1ca"; } +.fa-virus:before { + content: "\f974"; } + +.fa-virus-slash:before { + content: "\f975"; } + +.fa-viruses:before { + content: "\f976"; } + .fa-vk:before { content: "\f189"; } diff --git a/htdocs/theme/common/fontawesome-5/css/fontawesome.min.css b/htdocs/theme/common/fontawesome-5/css/fontawesome.min.css index 17529af86af..06a13c55033 100644 --- a/htdocs/theme/common/fontawesome-5/css/fontawesome.min.css +++ b/htdocs/theme/common/fontawesome-5/css/fontawesome.min.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto} \ No newline at end of file +.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\f95b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\f952"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\f905"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\f95c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\f95d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\f95e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\f95f"}.fa-handshake-slash:before{content:"\f960"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\f961"}.fa-head-side-cough-slash:before{content:"\f962"}.fa-head-side-mask:before{content:"\f963"}.fa-head-side-virus:before{content:"\f964"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\f965"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\f955"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\f966"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\f967"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\f956"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\f968"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\f969"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\f96a"}.fa-pump-soap:before{content:"\f96b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\f96c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\f957"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\f96e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\f96f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\f970"}.fa-store-slash:before{content:"\f971"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\f972"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\f974"}.fa-virus-slash:before{content:"\f975"}.fa-viruses:before{content:"\f976"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto} \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/css/regular.css b/htdocs/theme/common/fontawesome-5/css/regular.css index e7b787628b8..9914a0072d1 100644 --- a/htdocs/theme/common/fontawesome-5/css/regular.css +++ b/htdocs/theme/common/fontawesome-5/css/regular.css @@ -1,12 +1,12 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 400; - font-display: auto; + font-display: block; src: url("../webfonts/fa-regular-400.eot"); src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } diff --git a/htdocs/theme/common/fontawesome-5/css/regular.min.css b/htdocs/theme/common/fontawesome-5/css/regular.min.css index 9f75964aa50..e247cb1946f 100644 --- a/htdocs/theme/common/fontawesome-5/css/regular.min.css +++ b/htdocs/theme/common/fontawesome-5/css/regular.min.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400} \ No newline at end of file +@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400} \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/css/solid.css b/htdocs/theme/common/fontawesome-5/css/solid.css index 50b1776ffae..252d7757165 100644 --- a/htdocs/theme/common/fontawesome-5/css/solid.css +++ b/htdocs/theme/common/fontawesome-5/css/solid.css @@ -1,12 +1,12 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 900; - font-display: auto; + font-display: block; src: url("../webfonts/fa-solid-900.eot"); src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } diff --git a/htdocs/theme/common/fontawesome-5/css/solid.min.css b/htdocs/theme/common/fontawesome-5/css/solid.min.css index 767892b0935..c26a3ae64a5 100644 --- a/htdocs/theme/common/fontawesome-5/css/solid.min.css +++ b/htdocs/theme/common/fontawesome-5/css/solid.min.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900} \ No newline at end of file +@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900} \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/css/svg-with-js.css b/htdocs/theme/common/fontawesome-5/css/svg-with-js.css index d3278e5dd40..dbca9475a3c 100644 --- a/htdocs/theme/common/fontawesome-5/css/svg-with-js.css +++ b/htdocs/theme/common/fontawesome-5/css/svg-with-js.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ svg:not(:root).svg-inline--fa { diff --git a/htdocs/theme/common/fontawesome-5/css/svg-with-js.min.css b/htdocs/theme/common/fontawesome-5/css/svg-with-js.min.css index abb065cbd5f..08ef08c98aa 100644 --- a/htdocs/theme/common/fontawesome-5/css/svg-with-js.min.css +++ b/htdocs/theme/common/fontawesome-5/css/svg-with-js.min.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ .svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff} \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/css/v4-shims.css b/htdocs/theme/common/fontawesome-5/css/v4-shims.css index 8a4bfc5dee3..1070fbe73e6 100644 --- a/htdocs/theme/common/fontawesome-5/css/v4-shims.css +++ b/htdocs/theme/common/fontawesome-5/css/v4-shims.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ .fa.fa-glass:before { @@ -154,6 +154,12 @@ .fa.fa-mail-forward:before { content: "\f064"; } +.fa.fa-expand:before { + content: "\f424"; } + +.fa.fa-compress:before { + content: "\f422"; } + .fa.fa-eye { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -1055,9 +1061,6 @@ .fa.fa-automobile:before { content: "\f1b9"; } -.fa.fa-cab:before { - content: "\f1ba"; } - .fa.fa-envelope-o { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -1065,6 +1068,10 @@ .fa.fa-envelope-o:before { content: "\f0e0"; } +.fa.fa-spotify { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + .fa.fa-deviantart { font-family: 'Font Awesome 5 Brands'; font-weight: 400; } @@ -2161,6 +2168,5 @@ font-family: 'Font Awesome 5 Brands'; font-weight: 400; } -.fa.fa-spotify { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } +.fa.fa-cab:before { + content: "\f1ba"; } diff --git a/htdocs/theme/common/fontawesome-5/css/v4-shims.min.css b/htdocs/theme/common/fontawesome-5/css/v4-shims.min.css index ebfba4a42cb..974cb4de551 100644 --- a/htdocs/theme/common/fontawesome-5/css/v4-shims.min.css +++ b/htdocs/theme/common/fontawesome-5/css/v4-shims.min.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f884"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400} \ No newline at end of file +.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f884"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cab:before{content:"\f1ba"} \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/js/all.js b/htdocs/theme/common/fontawesome-5/js/all.js index ac5e879210d..1e2f5f4aff5 100644 --- a/htdocs/theme/common/fontawesome-5/js/all.js +++ b/htdocs/theme/common/fontawesome-5/js/all.js @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ (function () { @@ -133,7 +133,7 @@ "amazon": [448, 512, [], "f270", "M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"], "amazon-pay": [640, 512, [], "f42c", "M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"], "amilia": [448, 512, [], "f36d", "M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z"], - "android": [448, 512, [], "f17b", "M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"], + "android": [576, 512, [], "f17b", "M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"], "angellist": [448, 512, [], "f209", "M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"], "angrycreative": [640, 512, [], "f36e", "M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"], "angular": [448, 512, [], "f420", "M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z"], @@ -168,6 +168,7 @@ "btc": [384, 512, [], "f15a", "M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"], "buffer": [448, 512, [], "f837", "M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z"], "buromobelexperte": [448, 512, [], "f37f", "M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"], + "buy-n-large": [576, 512, [], "f8a6", "M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z"], "buysellads": [448, 512, [], "f20d", "M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"], "canadian-maple-leaf": [512, 512, [], "f785", "M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z"], "cc-amazon-pay": [576, 512, [], "f42d", "M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"], @@ -214,6 +215,7 @@ "cuttlefish": [440, 512, [], "f38c", "M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"], "d-and-d": [576, 512, [], "f38d", "M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"], "d-and-d-beyond": [640, 512, [], "f6ca", "M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z"], + "dailymotion": [448, 512, [], "f952", "M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z"], "dashcube": [448, 512, [], "f210", "M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"], "delicious": [448, 512, [], "f1a5", "M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z"], "deploydog": [512, 512, [], "f38e", "M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"], @@ -236,7 +238,7 @@ "dyalog": [416, 512, [], "f399", "M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"], "earlybirds": [480, 512, [], "f39a", "M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"], "ebay": [640, 512, [], "f4f4", "M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z"], - "edge": [512, 512, [], "f282", "M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z"], + "edge": [512, 512, [], "f282", "M481.92,134.48C440.87,54.18,352.26,8,255.91,8,137.05,8,37.51,91.68,13.47,203.66c26-46.49,86.22-79.14,149.46-79.14,79.27,0,121.09,48.93,122.25,50.18,22,23.8,33,50.39,33,83.1,0,10.4-5.31,25.82-15.11,38.57-1.57,2-6.39,4.84-6.39,11,0,5.06,3.29,9.92,9.14,14,27.86,19.37,80.37,16.81,80.51,16.81A115.39,115.39,0,0,0,444.94,322a118.92,118.92,0,0,0,58.95-102.44C504.39,176.13,488.39,147.26,481.92,134.48ZM212.77,475.67a154.88,154.88,0,0,1-46.64-45c-32.94-47.42-34.24-95.6-20.1-136A155.5,155.5,0,0,1,203,215.75c59-45.2,94.84-5.65,99.06-1a80,80,0,0,0-4.89-10.14c-9.24-15.93-24-36.41-56.56-53.51-33.72-17.69-70.59-18.59-77.64-18.59-38.71,0-77.9,13-107.53,35.69C35.68,183.3,12.77,208.72,8.6,243c-1.08,12.31-2.75,62.8,23,118.27a248,248,0,0,0,248.3,141.61C241.78,496.26,214.05,476.24,212.77,475.67Zm250.72-98.33a7.76,7.76,0,0,0-7.92-.23,181.66,181.66,0,0,1-20.41,9.12,197.54,197.54,0,0,1-69.55,12.52c-91.67,0-171.52-63.06-171.52-144A61.12,61.12,0,0,1,200.61,228,168.72,168.72,0,0,0,161.85,278c-14.92,29.37-33,88.13,13.33,151.66,6.51,8.91,23,30,56,47.67,23.57,12.65,49,19.61,71.7,19.61,35.14,0,115.43-33.44,163-108.87A7.75,7.75,0,0,0,463.49,377.34Z"], "elementor": [448, 512, [], "f430", "M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z"], "ello": [496, 512, [], "f5f1", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"], "ember": [640, 512, [], "f423", "M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"], @@ -255,7 +257,8 @@ "fedex": [640, 512, [], "f797", "M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z"], "fedora": [448, 512, [], "f798", "M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z"], "figma": [384, 512, [], "f799", "M277 170.7A85.35 85.35 0 0 0 277 0H106.3a85.3 85.3 0 0 0 0 170.6 85.35 85.35 0 0 0 0 170.7 85.35 85.35 0 1 0 85.3 85.4v-256zm0 0a85.3 85.3 0 1 0 85.3 85.3 85.31 85.31 0 0 0-85.3-85.3z"], - "firefox": [480, 512, [], "f269", "M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v-.1c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1s-.2.3-.3.4c-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6zm-299-97.6c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5z"], + "firefox": [512, 512, [], "f269", "M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z"], + "firefox-browser": [512, 512, [], "f907", "M189.37,152.86Zm-58.74-29.37C130.79,123.5,130.71,123.5,130.63,123.49Zm351.42,45.35c-10.61-25.5-32.08-53-48.94-61.73,13.72,26.89,21.67,53.88,24.7,74,0,0,0,.14.05.41-27.58-68.75-74.35-96.47-112.55-156.83-1.93-3.05-3.86-6.11-5.74-9.33-1-1.65-1.86-3.34-2.69-5.05A44.88,44.88,0,0,1,333.24.69a.63.63,0,0,0-.55-.66.9.9,0,0,0-.46,0l-.12.07-.18.1.1-.14c-54.23,31.77-76.72,87.38-82.5,122.78a130,130,0,0,0-48.33,12.33,6.25,6.25,0,0,0-3.09,7.75,6.13,6.13,0,0,0,7.79,3.79l.52-.21a117.84,117.84,0,0,1,42.11-11l1.42-.1c2-.12,4-.2,6-.22A122.61,122.61,0,0,1,291,140c.67.2,1.32.42,2,.63,1.89.57,3.76,1.2,5.62,1.87,1.36.5,2.71,1,4.05,1.58,1.09.44,2.18.88,3.25,1.35q2.52,1.13,5,2.35c.75.37,1.5.74,2.25,1.13q2.4,1.26,4.74,2.63,1.51.87,3,1.8a124.89,124.89,0,0,1,42.66,44.13c-13-9.15-36.35-18.19-58.82-14.28,87.74,43.86,64.18,194.9-57.39,189.2a108.43,108.43,0,0,1-31.74-6.12c-2.42-.91-4.8-1.89-7.16-2.93-1.38-.63-2.76-1.27-4.12-2C174.5,346,149.9,316.92,146.83,281.59c0,0,11.25-41.95,80.62-41.95,7.5,0,28.93-20.92,29.33-27-.09-2-42.54-18.87-59.09-35.18-8.85-8.71-13.05-12.91-16.77-16.06a69.58,69.58,0,0,0-6.31-4.77A113.05,113.05,0,0,1,173.92,97c-25.06,11.41-44.55,29.45-58.71,45.37h-.12c-9.67-12.25-9-52.65-8.43-61.08-.12-.53-7.22,3.68-8.15,4.31a178.54,178.54,0,0,0-23.84,20.43A214,214,0,0,0,51.9,133.36l0,0a.08.08,0,0,1,0,0,205.84,205.84,0,0,0-32.73,73.9c-.06.27-2.33,10.21-4,22.48q-.42,2.87-.78,5.74c-.57,3.69-1,7.71-1.44,14,0,.24,0,.48-.05.72-.18,2.71-.34,5.41-.49,8.12,0,.41,0,.82,0,1.24,0,134.7,109.21,243.89,243.92,243.89,120.64,0,220.82-87.58,240.43-202.62.41-3.12.74-6.26,1.11-9.41,4.85-41.83-.54-85.79-15.82-122.55Z"], "first-order": [448, 512, [], "f2b0", "M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"], "first-order-alt": [496, 512, [], "f50a", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"], "firstdraft": [384, 512, [], "f3a1", "M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"], @@ -272,7 +275,7 @@ "fort-awesome-alt": [512, 512, [], "f3a3", "M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z"], "forumbee": [448, 512, [], "f211", "M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"], "foursquare": [368, 512, [], "f180", "M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"], - "free-code-camp": [576, 512, [], "f2c5", "M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z"], + "free-code-camp": [576, 512, [], "f2c5", "M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z"], "freebsd": [448, 512, [], "f3a4", "M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"], "fulcrum": [320, 512, [], "f50b", "M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z"], "galactic-republic": [496, 512, [], "f50c", "M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"], @@ -317,8 +320,10 @@ "houzz": [448, 512, [], "f27c", "M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z"], "html5": [384, 512, [], "f13b", "M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"], "hubspot": [512, 512, [], "f3b2", "M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"], + "ideal": [576, 512, [], "f913", "M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z"], "imdb": [448, 512, [], "f2d8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z"], "instagram": [448, 512, [], "f16d", "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"], + "instagram-square": [448, 512, [], "f955", "M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z"], "intercom": [448, 512, [], "f7af", "M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z"], "internet-explorer": [512, 512, [], "f26b", "M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"], "invision": [448, 512, [], "f7b0", "M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z"], @@ -336,12 +341,12 @@ "js-square": [448, 512, [], "f3b9", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"], "jsfiddle": [576, 512, [], "f1cc", "M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"], "kaggle": [320, 512, [], "f5fa", "M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z"], - "keybase": [448, 512, [], "f4f5", "M286.17,419a18,18,0,1,0,18,18A18,18,0,0,0,286.17,419ZM398.09,271.4c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27A78.43,78.43,0,0,0,244.57,86.29c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11,9.4-35L198.66,32l-5.48,7.56c-8.69,12.06-16.92,23.55-24.34,34.89a51,51,0,0,0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61,0-50.75,52.12-50.75,45.88l-2.36,36.68c-1.61,27,19.75,50.21,47.63,51.85l8.93.54a214,214,0,0,0-46.29,35.54C14,304.66,14,374,14,429.77v33.64l23.32-29.8a148.6,148.6,0,0,0,14.56,37.56c5.78,10.13,14.87,9.45,19.64,7.33,4.21-1.87,10-6.92,3.75-20.11a178.29,178.29,0,0,1-15.76-53.13l46.82-59.83L81.67,419.54c58.23-42.4,157.38-61.76,236.25-38.59,34.2,10.05,67.45.69,84.74-23.84.72-1,1.2-2.16,1.85-3.22a156.09,156.09,0,0,1,2.8,28.43c0,23.3-3.69,52.93-14.88,81.64-2.52,6.46,1.76,14.5,8.6,15.74,7.42,1.57,15.33-3.1,18.37-11.15C429,443,434,414,434,382.32,434,343.74,421,304.86,398.09,271.4ZM142.37,128.58l-15.7-.93-1.39,21.79,13.13.78a93,93,0,0,0,.32,19.57l-22.38-1.34a12.28,12.28,0,0,1-11.76-12.79L107,119c1-12.17,13.87-11.27,13.26-11.32l29.11,1.73A144.35,144.35,0,0,0,142.37,128.58ZM290.79,300.76a10.51,10.51,0,0,1-14.35-1.39l-9.68-11.49-34.42,27a8.09,8.09,0,0,1-11.13-1.08l-15.78-18.64a7.38,7.38,0,0,1,1.34-10.34l34.57-27.18L227.2,240.9l-17.09,13.45a7.75,7.75,0,0,1-10.59-1s-3.72-4.42-3.8-4.53a7.38,7.38,0,0,1,1.37-10.34L214,225.19s-18.51-22-18.6-22.14a9.56,9.56,0,0,1,1.74-13.42A10.38,10.38,0,0,1,211.44,191l81.09,96.32A9.58,9.58,0,0,1,290.79,300.76ZM187.44,419a18,18,0,1,0,18,18A18,18,0,0,0,187.44,419Z"], + "keybase": [448, 512, [], "f4f5", "M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z"], "keycdn": [512, 512, [], "f3ba", "M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"], "kickstarter": [448, 512, [], "f3bb", "M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"], "kickstarter-k": [384, 512, [], "f3bc", "M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"], "korvue": [446, 512, [], "f42f", "M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"], - "laravel": [640, 512, [], "f3bd", "M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z"], + "laravel": [512, 512, [], "f3bd", "M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z"], "lastfm": [512, 512, [], "f202", "M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"], "lastfm-square": [448, 512, [], "f203", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"], "leanpub": [576, 512, [], "f212", "M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"], @@ -358,6 +363,7 @@ "markdown": [640, 512, [], "f60f", "M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"], "mastodon": [448, 512, [], "f4f6", "M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"], "maxcdn": [512, 512, [], "f136", "M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"], + "mdb": [576, 512, [], "f8ca", "M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z"], "medapps": [320, 512, [], "f3c6", "M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"], "medium": [448, 512, [], "f23a", "M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"], "medium-m": [512, 512, [], "f3c7", "M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z"], @@ -365,9 +371,11 @@ "meetup": [512, 512, [], "f2e0", "M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"], "megaport": [496, 512, [], "f5a3", "M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z"], "mendeley": [640, 512, [], "f7b3", "M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z"], + "microblog": [448, 512, [], "f91a", "M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z"], "microsoft": [448, 512, [], "f3ca", "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"], "mix": [448, 512, [], "f3cb", "M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"], "mixcloud": [640, 512, [], "f289", "M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z"], + "mixer": [512, 512, [], "f956", "M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z"], "mizuni": [496, 512, [], "f3cc", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"], "modx": [448, 512, [], "f285", "M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"], "monero": [496, 512, [], "f3d0", "M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"], @@ -386,6 +394,7 @@ "openid": [448, 512, [], "f19b", "M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"], "opera": [496, 512, [], "f26a", "M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"], "optin-monster": [576, 512, [], "f23c", "M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z"], + "orcid": [512, 512, [], "f8d2", "M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z"], "osi": [512, 512, [], "f41a", "M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z"], "page4": [496, 512, [], "f3d7", "M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"], "pagelines": [384, 512, [], "f18c", "M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"], @@ -398,10 +407,11 @@ "phoenix-framework": [640, 512, [], "f3dc", "M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"], "phoenix-squadron": [512, 512, [], "f511", "M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z"], "php": [640, 512, [], "f457", "M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"], - "pied-piper": [448, 512, [], "f2ae", "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"], + "pied-piper": [480, 512, [], "f2ae", "M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z"], "pied-piper-alt": [576, 512, [], "f1a8", "M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z"], "pied-piper-hat": [640, 512, [], "f4e5", "M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"], "pied-piper-pp": [448, 512, [], "f1a7", "M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"], + "pied-piper-square": [448, 512, [], "f91e", "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"], "pinterest": [496, 512, [], "f0d2", "M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"], "pinterest-p": [384, 512, [], "f231", "M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"], "pinterest-square": [448, 512, [], "f0d3", "M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"], @@ -431,7 +441,7 @@ "rev": [448, 512, [], "f5b2", "M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z"], "rocketchat": [576, 512, [], "f3e8", "M486.41 107.57c-76.93-50.83-179.18-62.4-264.12-47.07C127.26-31.16 20.77 11 0 23.12c0 0 73.08 62.1 61.21 116.49-86.52 88.2-45.39 186.4 0 232.77C73.08 426.77 0 488.87 0 488.87c20.57 12.16 126.77 54.19 222.29-37 84.75 15.23 187 3.76 264.12-47.16 119.26-76.14 119.65-220.61 0-297.15zM294.18 404.22a339.53 339.53 0 0 1-88.11-11.37l-19.77 19.09a179.74 179.74 0 0 1-36.59 27.39A143.14 143.14 0 0 1 98 454.06c1-1.78 1.88-3.56 2.77-5.24q29.67-55 16-98.69c-32.53-25.61-52-58.34-52-94.13 0-82 102.74-148.43 229.41-148.43S523.59 174 523.59 256 420.85 404.22 294.18 404.22zM184.12 291.3a34.32 34.32 0 0 1-34.8-33.72c-.7-45.39 67.83-46.38 68.52-1.09v.51a34 34 0 0 1-33.72 34.32zm73.77-33.72c-.79-45.39 67.74-46.48 68.53-1.19v.61c.39 45.08-67.74 45.57-68.53.58zm143.38 33.72a34.33 34.33 0 0 1-34.81-33.72c-.69-45.39 67.84-46.38 68.53-1.09v.51a33.89 33.89 0 0 1-33.72 34.32z"], "rockrms": [496, 512, [], "f3e9", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"], - "safari": [512, 512, [], "f267", "M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z"], + "safari": [512, 512, [], "f267", "M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z"], "salesforce": [640, 512, [], "f83b", "M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z"], "sass": [640, 512, [], "f41e", "M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z"], "schlix": [448, 512, [], "f3ea", "M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"], @@ -441,6 +451,7 @@ "sellsy": [640, 512, [], "f213", "M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"], "servicestack": [496, 512, [], "f3ec", "M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"], "shirtsinbulk": [448, 512, [], "f214", "M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z"], + "shopify": [448, 512, [], "f957", "M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z"], "shopware": [512, 512, [], "f5b5", "M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z"], "simplybuilt": [512, 512, [], "f215", "M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"], "sistrix": [448, 512, [], "f3ee", "M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"], @@ -477,6 +488,7 @@ "superpowers": [448, 512, [], "f2dd", "M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"], "supple": [640, 512, [], "f3f9", "M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"], "suse": [640, 512, [], "f7d6", "M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z"], + "swift": [448, 512, [], "f8e1", "M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z"], "symfony": [512, 512, [], "f83d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z"], "teamspeak": [512, 512, [], "f4f9", "M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z"], "telegram": [496, 512, [], "f2c6", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"], @@ -491,14 +503,16 @@ "tripadvisor": [576, 512, [], "f262", "M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z"], "tumblr": [320, 512, [], "f173", "M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"], "tumblr-square": [448, 512, [], "f174", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"], - "twitch": [448, 512, [], "f1e8", "M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z"], + "twitch": [512, 512, [], "f1e8", "M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z"], "twitter": [512, 512, [], "f099", "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"], "twitter-square": [448, 512, [], "f081", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"], "typo3": [448, 512, [], "f42b", "M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z"], "uber": [448, 512, [], "f402", "M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"], "ubuntu": [496, 512, [], "f7df", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z"], "uikit": [448, 512, [], "f403", "M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"], + "umbraco": [510, 512, [], "f8e8", "M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z"], "uniregistry": [384, 512, [], "f404", "M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z"], + "unity": [576, 512, [], "f949", "M498.11,206.4,445.31,14.72,248.2,66.08,219,116.14l-59.2-.43L15.54,256,159.82,396.32l59.17-.43,29.24,50,197.08,51.36,52.8-191.62-30-49.63ZM223.77,124.2,374.55,86.51,288,232.33H114.87Zm0,263.63L114.87,279.71H288l86.55,145.81Zm193,14L330.17,256l86.58-145.84L458.56,256Z"], "untappd": [640, 512, [], "f405", "M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"], "ups": [384, 512, [], "f7e0", "M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z"], "usb": [640, 512, [], "f287", "M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"], @@ -760,7 +774,7 @@ "hand-pointer": [448, 512, [], "f25a", "M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"], "hand-rock": [512, 512, [], "f255", "M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"], "hand-scissors": [512, 512, [], "f257", "M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"], - "hand-spock": [512, 512, [], "f259", "M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"], + "hand-spock": [512, 512, [], "f259", "M501.03053,116.17605c-19.39059-31.50779-51.24406-35.72849-66.31044-35.01756-14.11325-50.81051-62.0038-54.08-70.73816-54.08a74.03091,74.03091,0,0,0-72.23816,58.916l-4.64648,22.66014-13.68357-53.207c-9.09569-35.37107-46.412-64.05074-89.66-53.07223a73.89749,73.89749,0,0,0-55.121,78.94722,73.68273,73.68273,0,0,0-64.8495,94.42181l24.35933,82.19721c-38.24017-7.54492-62.79677,16.18358-68.11512,21.84764a73.6791,73.6791,0,0,0,3.19921,104.19329l91.36509,85.9765A154.164,154.164,0,0,0,220.62279,512h107.4549A127.30079,127.30079,0,0,0,452.3392,413.86139l57.623-241.96272A73.20274,73.20274,0,0,0,501.03053,116.17605Zm-37.7597,44.60544L405.64788,402.74812a79.46616,79.46616,0,0,1-77.57019,61.25972H220.62279a106.34052,106.34052,0,0,1-73.1366-28.998l-91.369-85.98041C31.34381,325.72669,66.61133,288.131,91.39644,311.5392l51.123,48.10739c5.42577,5.10937,13.48239.71679,13.48239-5.82617a246.79914,246.79914,0,0,0-10.17771-70.1523l-36.01362-121.539c-9.7324-32.88279,39.69916-47.27145,49.38664-14.625l31.3437,105.77923c5.59374,18.90428,33.78119,10.71288,28.9648-8.00781L177.06427,80.23662c-8.50389-33.1035,41.43157-45.64646,49.86515-12.83593l47.32609,184.035c4.42773,17.24218,29.16207,16.5039,32.71089-.80468l31.791-154.9706c6.81054-33.1074,57.51748-24.10741,50.11906,11.96288L360.32764,246.78924c-3.72265,18.10936,23.66793,24.63084,28.05659,6.21679L413.185,148.85962C421.1498,115.512,471.14,127.79713,463.27083,160.78149Z"], "handshake": [640, 512, [], "f2b5", "M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"], "hdd": [576, 512, [], "f0a0", "M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"], "heart": [512, 512, [], "f004", "M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"], @@ -993,7 +1007,7 @@ "asterisk": [512, 512, [], "f069", "M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"], "at": [512, 512, [], "f1fa", "M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"], "atlas": [448, 512, [], "f558", "M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"], - "atom": [448, 512, [], "f5d2", "M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"], + "atom": [448, 512, [], "f5d2", "M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z"], "audio-description": [512, 512, [], "f29e", "M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"], "award": [384, 512, [], "f559", "M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"], "baby": [384, 512, [], "f77c", "M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z"], @@ -1001,6 +1015,7 @@ "backspace": [640, 512, [], "f55a", "M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"], "backward": [512, 512, [], "f04a", "M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"], "bacon": [576, 512, [], "f7e5", "M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z"], + "bahai": [512, 512, [], "f666", "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"], "balance-scale": [640, 512, [], "f24e", "M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"], "balance-scale-left": [640, 512, [], "f515", "M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z"], "balance-scale-right": [640, 512, [], "f516", "M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z"], @@ -1010,7 +1025,7 @@ "bars": [448, 512, [], "f0c9", "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"], "baseball-ball": [496, 512, [], "f433", "M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"], "basketball-ball": [496, 512, [], "f434", "M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"], - "bath": [512, 512, [], "f2cd", "M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"], + "bath": [512, 512, [], "f2cd", "M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z"], "battery-empty": [640, 512, [], "f244", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"], "battery-full": [640, 512, [], "f240", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"], "battery-half": [640, 512, [], "f242", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"], @@ -1048,6 +1063,7 @@ "bowling-ball": [496, 512, [], "f436", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"], "box": [512, 512, [], "f466", "M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"], "box-open": [640, 512, [], "f49e", "M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z"], + "box-tissue": [512, 512, [], "f95b", "M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z"], "boxes": [576, 512, [], "f468", "M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"], "braille": [640, 512, [], "f2a1", "M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"], "brain": [576, 512, [], "f5dc", "M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z"], @@ -1085,6 +1101,7 @@ "car-battery": [512, 512, [], "f5df", "M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"], "car-crash": [640, 512, [], "f5e1", "M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"], "car-side": [640, 512, [], "f5e4", "M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"], + "caravan": [640, 512, [], "f8ff", "M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z"], "caret-down": [320, 512, [], "f0d7", "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"], "caret-left": [192, 512, [], "f0d9", "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"], "caret-right": [192, 512, [], "f0da", "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"], @@ -1137,7 +1154,7 @@ "clipboard": [384, 512, [], "f328", "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"], "clipboard-check": [384, 512, [], "f46c", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"], "clipboard-list": [384, 512, [], "f46d", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"], - "clock": [512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"], + "clock": [512, 512, [], "f017", "M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"], "clone": [512, 512, [], "f24d", "M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"], "closed-captioning": [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"], "cloud": [640, 512, [], "f0c2", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"], @@ -1169,6 +1186,7 @@ "compact-disc": [496, 512, [], "f51f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"], "compass": [496, 512, [], "f14e", "M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"], "compress": [448, 512, [], "f066", "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"], + "compress-alt": [448, 512, [], "f422", "M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z"], "compress-arrows-alt": [512, 512, [], "f78c", "M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"], "concierge-bell": [512, 512, [], "f562", "M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"], "cookie": [512, 512, [], "f563", "M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"], @@ -1204,10 +1222,11 @@ "dice-two": [448, 512, [], "f528", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"], "digital-tachograph": [640, 512, [], "f566", "M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"], "directions": [512, 512, [], "f5eb", "M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"], + "disease": [512, 512, [], "f7fa", "M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z"], "divide": [448, 512, [], "f529", "M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"], "dizzy": [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"], "dna": [448, 512, [], "f471", "M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"], - "dog": [512, 512, [], "f6d3", "M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"], + "dog": [576, 512, [], "f6d3", "M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z"], "dollar-sign": [288, 512, [], "f155", "M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"], "dolly": [576, 512, [], "f472", "M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"], "dolly-flatbed": [640, 512, [], "f474", "M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"], @@ -1220,7 +1239,7 @@ "drafting-compass": [512, 512, [], "f568", "M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"], "dragon": [640, 512, [], "f6d5", "M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"], "draw-polygon": [448, 512, [], "f5ee", "M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"], - "drum": [576, 512, [], "f569", "M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z"], + "drum": [512, 512, [], "f569", "M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z"], "drum-steelpan": [576, 512, [], "f56a", "M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"], "drumstick-bite": [512, 512, [], "f6d7", "M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z"], "dumbbell": [640, 512, [], "f44b", "M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"], @@ -1245,8 +1264,9 @@ "exclamation-circle": [512, 512, [], "f06a", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"], "exclamation-triangle": [576, 512, [], "f071", "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"], "expand": [448, 512, [], "f065", "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"], + "expand-alt": [448, 512, [], "f424", "M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z"], "expand-arrows-alt": [448, 512, [], "f31e", "M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"], - "external-link-alt": [576, 512, [], "f35d", "M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"], + "external-link-alt": [512, 512, [], "f35d", "M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z"], "external-link-square-alt": [448, 512, [], "f360", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"], "eye": [576, 512, [], "f06e", "M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"], "eye-dropper": [512, 512, [], "f1fb", "M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"], @@ -1254,7 +1274,8 @@ "fan": [512, 512, [], "f863", "M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"], "fast-backward": [512, 512, [], "f049", "M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"], "fast-forward": [512, 512, [], "f050", "M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"], - "fax": [512, 512, [], "f1ac", "M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z"], + "faucet": [512, 512, [], "f905", "M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z"], + "fax": [512, 512, [], "f1ac", "M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z"], "feather": [512, 512, [], "f52d", "M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"], "feather-alt": [512, 512, [], "f56b", "M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"], "female": [256, 512, [], "f182", "M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"], @@ -1301,7 +1322,7 @@ "folder": [512, 512, [], "f07b", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"], "folder-minus": [512, 512, [], "f65d", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"], "folder-open": [576, 512, [], "f07c", "M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"], - "folder-plus": [512, 512, [], "f65e", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"], + "folder-plus": [512, 512, [], "f65e", "M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z"], "font": [448, 512, [], "f031", "M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"], "font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"], "football-ball": [496, 512, [], "f44e", "M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"], @@ -1311,7 +1332,7 @@ "frown-open": [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"], "funnel-dollar": [640, 512, [], "f662", "M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"], "futbol": [512, 512, [], "f1e3", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"], - "gamepad": [640, 512, [], "f11b", "M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"], + "gamepad": [640, 512, [], "f11b", "M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"], "gas-pump": [512, 512, [], "f52f", "M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"], "gavel": [512, 512, [], "f0e3", "M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"], "gem": [576, 512, [], "f3a5", "M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"], @@ -1352,14 +1373,16 @@ "grip-lines": [512, 512, [], "f7a4", "M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"], "grip-lines-vertical": [256, 512, [], "f7a5", "M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z"], "grip-vertical": [320, 512, [], "f58e", "M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"], - "guitar": [512, 512, [], "f7a6", "M502.6 54.6L457.4 9.4c-12.5-12.5-32.8-12.5-45.3 0l-67.9 67.9c-12.5 12.5-12.5 32.8 0 45.3L290 176.7c-45.4-29-100.4-28.9-133.5 4.2-9.7 9.7-16.4 21.2-20.5 33.9-6.1 18.8-23.5 33.1-42.7 34.9-24 2.3-46.3 11.6-63.4 28.8C-16.3 324.6-8 407.6 48.2 463.8c56.2 56.2 139.2 64.4 185.3 18.3 17.2-17.1 26.5-39.4 28.8-63.5 1.8-19.1 16.1-36.6 34.9-42.7 12.7-4.1 24.2-10.8 33.9-20.5 33.1-33.1 33.1-88.1 4.2-133.5l54.2-54.2c12.5 12.5 32.8 12.5 45.3 0l67.9-67.9c12.4-12.4 12.4-32.7-.1-45.2zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"], + "guitar": [512, 512, [], "f7a6", "M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z"], "h-square": [448, 512, [], "f0fd", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"], "hamburger": [512, 512, [], "f805", "M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z"], "hammer": [576, 512, [], "f6e3", "M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"], "hamsa": [512, 512, [], "f665", "M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"], "hand-holding": [576, 512, [], "f4bd", "M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"], "hand-holding-heart": [576, 512, [], "f4be", "M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"], - "hand-holding-usd": [544, 512, [], "f4c0", "M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z"], + "hand-holding-medical": [576, 512, [], "f95c", "M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z"], + "hand-holding-usd": [576, 512, [], "f4c0", "M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z"], + "hand-holding-water": [576, 512, [], "f4c1", "M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"], "hand-lizard": [576, 512, [], "f258", "M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"], "hand-middle-finger": [512, 512, [], "f806", "M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z"], "hand-paper": [448, 512, [], "f256", "M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"], @@ -1371,16 +1394,25 @@ "hand-pointer": [448, 512, [], "f25a", "M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"], "hand-rock": [512, 512, [], "f255", "M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z"], "hand-scissors": [512, 512, [], "f257", "M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"], - "hand-spock": [512, 512, [], "f259", "M481.3 97.1c-21.5-5.1-43.1 8.2-48.2 29.6L402.3 256h-11.1l43.6-174.3c5.4-21.4-7.7-43.1-29.1-48.5s-43.1 7.7-48.5 29.1L308.8 256h-15.1L242 31.1c-5-21.6-26.4-35-48-30.1-21.5 4.9-35 26.4-30 47.9l47.6 207h-9.8L167 103.1c-4.9-21.5-26.3-35-47.9-30.1-21.5 4.9-35 26.3-30.1 47.9l39 171.6v79.4l-60.6-57c-16.1-15.1-41.4-14.4-56.5 1.7s-14.4 41.4 1.7 56.5L146.3 499c8.9 8.4 20.7 13 32.9 13h216.7c21.3 0 40-14 46-34.4l26.2-88.3c2.6-8.9 4-18 4-27.3v-42c0-7.5.9-15 2.6-22.2L511 145.3c5-21.5-8.3-43.1-29.7-48.2z"], + "hand-sparkles": [640, 512, [], "f95d", "M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z"], + "hand-spock": [512, 512, [], "f259", "M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z"], "hands": [640, 512, [], "f4c2", "M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"], "hands-helping": [640, 512, [], "f4c4", "M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"], + "hands-wash": [576, 512, [], "f95e", "M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z"], "handshake": [640, 512, [], "f2b5", "M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"], + "handshake-alt-slash": [640, 512, [], "f95f", "M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z"], + "handshake-slash": [640, 512, [], "f960", "M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z"], "hanukiah": [640, 512, [], "f6e6", "M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"], "hard-hat": [512, 512, [], "f807", "M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"], "hashtag": [448, 512, [], "f292", "M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"], + "hat-cowboy": [640, 512, [], "f8c0", "M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z"], + "hat-cowboy-side": [640, 512, [], "f8c1", "M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z"], "hat-wizard": [512, 512, [], "f6e8", "M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"], - "haykal": [512, 512, [], "f666", "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"], "hdd": [576, 512, [], "f0a0", "M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"], + "head-side-cough": [640, 512, [], "f961", "M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z"], + "head-side-cough-slash": [640, 512, [], "f962", "M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z"], + "head-side-mask": [512, 512, [], "f963", "M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z"], + "head-side-virus": [512, 512, [], "f964", "M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z"], "heading": [512, 512, [], "f1dc", "M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z"], "headphones": [512, 512, [], "f025", "M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"], "headphones-alt": [512, 512, [], "f58f", "M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"], @@ -1401,6 +1433,7 @@ "hospital": [448, 512, [], "f0f8", "M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"], "hospital-alt": [576, 512, [], "f47d", "M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"], "hospital-symbol": [512, 512, [], "f47e", "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"], + "hospital-user": [640, 512, [], "f80d", "M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z"], "hot-tub": [512, 512, [], "f593", "M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"], "hotdog": [512, 512, [], "f80f", "M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z"], "hotel": [576, 512, [], "f594", "M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"], @@ -1409,6 +1442,7 @@ "hourglass-half": [384, 512, [], "f252", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"], "hourglass-start": [384, 512, [], "f251", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"], "house-damage": [576, 512, [], "f6f1", "M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"], + "house-user": [576, 512, [], "f965", "M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z"], "hryvnia": [384, 512, [], "f6f2", "M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"], "i-cursor": [256, 512, [], "f246", "M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"], "ice-cream": [448, 512, [], "f810", "M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z"], @@ -1427,9 +1461,9 @@ "info": [192, 512, [], "f129", "M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"], "info-circle": [512, 512, [], "f05a", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"], "italic": [320, 512, [], "f033", "M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"], - "jedi": [544, 512, [], "f669", "M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"], + "jedi": [576, 512, [], "f669", "M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z"], "joint": [640, 512, [], "f595", "M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"], - "journal-whills": [448, 512, [], "f66a", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"], + "journal-whills": [448, 512, [], "f66a", "M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z"], "kaaba": [576, 512, [], "f66b", "M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"], "key": [512, 512, [], "f084", "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"], "keyboard": [576, 512, [], "f11c", "M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"], @@ -1442,6 +1476,7 @@ "language": [640, 512, [], "f1ab", "M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"], "laptop": [640, 512, [], "f109", "M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"], "laptop-code": [640, 512, [], "f5fc", "M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"], + "laptop-house": [640, 512, [], "f966", "M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z"], "laptop-medical": [640, 512, [], "f812", "M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z"], "laugh": [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"], "laugh-beam": [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"], @@ -1471,6 +1506,8 @@ "long-arrow-alt-up": [256, 512, [], "f30c", "M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"], "low-vision": [576, 512, [], "f2a8", "M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"], "luggage-cart": [640, 512, [], "f59d", "M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"], + "lungs": [640, 512, [], "f604", "M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z"], + "lungs-virus": [640, 512, [], "f967", "M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z"], "magic": [512, 512, [], "f0d0", "M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"], "magnet": [512, 512, [], "f076", "M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z"], "mail-bulk": [576, 512, [], "f674", "M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"], @@ -1497,7 +1534,7 @@ "memory": [640, 512, [], "f538", "M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"], "menorah": [640, 512, [], "f676", "M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"], "mercury": [288, 512, [], "f223", "M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"], - "meteor": [512, 512, [], "f753", "M491.2.7C452.5 12.3 379.4 35 303.5 62c-2.1-7-4-13.5-5.6-18.6-3-9.7-13.9-14.2-22.9-9.5C232.6 56 122.2 116.5 60.6 176.4c-1.1 1-2.5 2-3.5 3C19 217.4 0 267.3 0 317.2 0 367 19 416.9 57 455c38 38 87.9 57.1 137.8 57 49.9 0 99.8-19 137.9-57.1 1-1 2-2.4 3-3.5 59.8-61.6 120.4-172.1 142.5-214.4 4.7-9 .2-19.9-9.5-22.9-5.2-1.6-11.6-3.5-18.6-5.6 27-76 49.7-149 61.3-187.7C515 8.4 503.6-3 491.2.7zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128 128 57.3 128 128-57.3 128-128 128zm-32-192c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm48 96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16z"], + "meteor": [512, 512, [], "f753", "M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z"], "microchip": [512, 512, [], "f2db", "M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"], "microphone": [352, 512, [], "f130", "M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"], "microphone-alt": [352, 512, [], "f3c9", "M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"], @@ -1522,9 +1559,10 @@ "mosque": [640, 512, [], "f678", "M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"], "motorcycle": [640, 512, [], "f21c", "M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z"], "mountain": [640, 512, [], "f6fc", "M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"], + "mouse": [384, 512, [], "f8cc", "M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z"], "mouse-pointer": [320, 512, [], "f245", "M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"], "mug-hot": [512, 512, [], "f7b6", "M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z"], - "music": [512, 512, [], "f001", "M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"], + "music": [512, 512, [], "f001", "M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z"], "network-wired": [640, 512, [], "f6ff", "M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"], "neuter": [288, 512, [], "f22c", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"], "newspaper": [576, 512, [], "f1ea", "M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"], @@ -1560,6 +1598,7 @@ "pen-square": [448, 512, [], "f14b", "M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"], "pencil-alt": [512, 512, [], "f303", "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"], "pencil-ruler": [512, 512, [], "f5ae", "M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"], + "people-arrows": [576, 512, [], "f968", "M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z"], "people-carry": [640, 512, [], "f4ce", "M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"], "pepper-hot": [512, 512, [], "f816", "M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z"], "percent": [448, 512, [], "f295", "M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"], @@ -1579,9 +1618,10 @@ "plane": [576, 512, [], "f072", "M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"], "plane-arrival": [640, 512, [], "f5af", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"], "plane-departure": [640, 512, [], "f5b0", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"], + "plane-slash": [640, 512, [], "f969", "M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z"], "play": [448, 512, [], "f04b", "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"], "play-circle": [512, 512, [], "f144", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"], - "plug": [384, 512, [], "f1e6", "M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"], + "plug": [384, 512, [], "f1e6", "M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z"], "plus": [448, 512, [], "f067", "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"], "plus-circle": [512, 512, [], "f055", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"], "plus-square": [448, 512, [], "f0fe", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"], @@ -1602,6 +1642,8 @@ "print": [512, 512, [], "f02f", "M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"], "procedures": [640, 512, [], "f487", "M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"], "project-diagram": [640, 512, [], "f542", "M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"], + "pump-medical": [384, 512, [], "f96a", "M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z"], + "pump-soap": [384, 512, [], "f96b", "M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z"], "puzzle-piece": [576, 512, [], "f12e", "M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"], "qrcode": [448, 512, [], "f029", "M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"], "question": [384, 512, [], "f128", "M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"], @@ -1615,6 +1657,7 @@ "rainbow": [576, 512, [], "f75b", "M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z"], "random": [512, 512, [], "f074", "M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"], "receipt": [384, 512, [], "f543", "M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"], + "record-vinyl": [512, 512, [], "f8d9", "M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z"], "recycle": [512, 512, [], "f1b8", "M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"], "redo": [512, 512, [], "f01e", "M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"], "redo-alt": [512, 512, [], "f2f9", "M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"], @@ -1628,8 +1671,8 @@ "ribbon": [448, 512, [], "f4d6", "M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"], "ring": [512, 512, [], "f70b", "M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"], "road": [576, 512, [], "f018", "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"], - "robot": [640, 512, [], "f544", "M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"], - "rocket": [512, 512, [], "f135", "M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"], + "robot": [640, 512, [], "f544", "M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z"], + "rocket": [512, 512, [], "f135", "M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z"], "route": [512, 512, [], "f4d7", "M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"], "rss": [448, 512, [], "f09e", "M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"], "rss-square": [448, 512, [], "f143", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"], @@ -1642,8 +1685,8 @@ "rupee-sign": [320, 512, [], "f156", "M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"], "sad-cry": [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"], "sad-tear": [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"], - "satellite": [512, 512, [], "f7bf", "M502.7 265l-80.3-80.4 47.8-47.9c13.1-13.1 13.1-34.4 0-47.5l-47.5-47.5c-13.1-13.1-34.4-13.1-47.5 0l-47.8 47.9-80.3-80.3C240.8 3.1 232.7 0 224.5 0S208.2 3.1 202 9.3L105.3 106c-12.4 12.4-12.4 32.6 0 45.1l80.3 80.4-9.8 9.8C122.1 217 59.6 218.6 7.3 246.7c-8.5 4.6-9.6 16.4-2.8 23.2L112 377.4l-17.8 17.8c-2.6-.7-5-1.6-7.8-1.6-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32c0-2.8-.9-5.2-1.6-7.8l17.8-17.8 107.5 107.5c6.8 6.8 18.7 5.7 23.2-2.8 28.1-52.3 29.7-114.8 5.4-168.5l9.9-9.9 80.3 80.4c6.2 6.2 14.4 9.3 22.5 9.3s16.3-3.1 22.5-9.3l96.7-96.7c12.5-12.4 12.5-32.6.1-45zm-352-136.5l73.8-73.8 68.9 68.9-73.8 73.8-68.9-68.9zm232.8 232.8l-68.9-68.9 73.8-73.8 68.9 68.9-73.8 73.8z"], - "satellite-dish": [512, 512, [], "f7c0", "M188.8 345.9l27.4-27.4c2.6.7 5 1.6 7.8 1.6 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 2.8.9 5.2 1.6 7.8l-27.4 27.4L49.4 206.5c-7.3-7.3-20.1-6.1-25 3-41.8 77.8-29.9 176.7 35.7 242.3 65.6 65.6 164.6 77.5 242.3 35.7 9.2-4.9 10.4-17.7 3-25L188.8 345.9zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z"], + "satellite": [512, 512, [], "f7bf", "M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z"], + "satellite-dish": [512, 512, [], "f7c0", "M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z"], "save": [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"], "school": [640, 512, [], "f549", "M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"], "screwdriver": [512, 512, [], "f54a", "M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"], @@ -1656,20 +1699,21 @@ "search-plus": [512, 512, [], "f00e", "M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"], "seedling": [512, 512, [], "f4d8", "M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"], "server": [512, 512, [], "f233", "M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"], - "shapes": [512, 512, [], "f61f", "M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"], + "shapes": [512, 512, [], "f61f", "M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z"], "share": [512, 512, [], "f064", "M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"], "share-alt": [448, 512, [], "f1e0", "M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"], "share-alt-square": [448, 512, [], "f1e1", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"], "share-square": [576, 512, [], "f14d", "M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"], "shekel-sign": [448, 512, [], "f20b", "M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"], "shield-alt": [512, 512, [], "f3ed", "M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"], + "shield-virus": [512, 512, [], "f96c", "M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z"], "ship": [640, 512, [], "f21a", "M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"], "shipping-fast": [640, 512, [], "f48b", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"], "shoe-prints": [640, 512, [], "f54b", "M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"], "shopping-bag": [448, 512, [], "f290", "M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"], "shopping-basket": [576, 512, [], "f291", "M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"], "shopping-cart": [576, 512, [], "f07a", "M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"], - "shower": [512, 512, [], "f2cc", "M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"], + "shower": [512, 512, [], "f2cc", "M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z"], "shuttle-van": [640, 512, [], "f5b6", "M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"], "sign": [512, 512, [], "f4d9", "M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"], "sign-in-alt": [512, 512, [], "f2f6", "M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"], @@ -1698,6 +1742,7 @@ "snowflake": [448, 512, [], "f2dc", "M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z"], "snowman": [512, 512, [], "f7d0", "M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"], "snowplow": [640, 512, [], "f7d2", "M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z"], + "soap": [512, 512, [], "f96e", "M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z"], "socks": [512, 512, [], "f696", "M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"], "solar-panel": [640, 512, [], "f5ba", "M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"], "sort": [320, 512, [], "f0dc", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"], @@ -1739,8 +1784,11 @@ "stop": [448, 512, [], "f04d", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"], "stop-circle": [512, 512, [], "f28d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"], "stopwatch": [448, 512, [], "f2f2", "M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"], + "stopwatch-20": [448, 512, [], "f96f", "M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z"], "store": [616, 512, [], "f54e", "M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"], "store-alt": [640, 512, [], "f54f", "M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"], + "store-alt-slash": [640, 512, [], "f970", "M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z"], + "store-slash": [640, 512, [], "f971", "M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z"], "stream": [512, 512, [], "f550", "M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"], "street-view": [512, 512, [], "f21d", "M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"], "strikethrough": [512, 512, [], "f0cc", "M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z"], @@ -1752,7 +1800,7 @@ "sun": [512, 512, [], "f185", "M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"], "superscript": [512, 512, [], "f12b", "M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"], "surprise": [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"], - "swatchbook": [511, 512, [], "f5c3", "M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z"], + "swatchbook": [512, 512, [], "f5c3", "M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z"], "swimmer": [640, 512, [], "f5c4", "M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"], "swimming-pool": [640, 512, [], "f5c5", "M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"], "synagogue": [640, 512, [], "f69b", "M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"], @@ -1801,6 +1849,7 @@ "toggle-on": [576, 512, [], "f205", "M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"], "toilet": [384, 512, [], "f7d8", "M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z"], "toilet-paper": [576, 512, [], "f71e", "M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"], + "toilet-paper-slash": [640, 512, [], "f972", "M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z"], "toolbox": [512, 512, [], "f552", "M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"], "tools": [512, 512, [], "f7d9", "M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"], "tooth": [448, 512, [], "f5c9", "M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"], @@ -1809,6 +1858,7 @@ "tractor": [640, 512, [], "f722", "M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"], "trademark": [640, 512, [], "f25c", "M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z"], "traffic-light": [384, 512, [], "f637", "M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"], + "trailer": [640, 512, [], "f941", "M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z"], "train": [448, 512, [], "f238", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"], "tram": [512, 512, [], "f7da", "M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"], "transgender": [384, 512, [], "f224", "M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"], @@ -1826,7 +1876,7 @@ "truck-pickup": [640, 512, [], "f63c", "M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"], "tshirt": [640, 512, [], "f553", "M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"], "tty": [512, 512, [], "f1e4", "M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"], - "tv": [640, 512, [], "f26c", "M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"], + "tv": [640, 512, [], "f26c", "M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z"], "umbrella": [576, 512, [], "f0e9", "M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z"], "umbrella-beach": [640, 512, [], "f5ca", "M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"], "underline": [448, 512, [], "f0cd", "M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"], @@ -1854,7 +1904,7 @@ "user-md": [448, 512, [], "f0f0", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"], "user-minus": [640, 512, [], "f503", "M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"], "user-ninja": [448, 512, [], "f504", "M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"], - "user-nurse": [448, 512, [], "f82f", "M57.78 288h82.36c22.51 19.68 51.62 32 83.86 32s61.35-12.32 83.86-32h82.36a16 16 0 0 0 14.28-23.18c-15.23-29.85-31.28-62.23-42.15-95.54C354.78 146.09 352 121.59 352 97.2V48L224 0 96 48v49.2c0 24.39-2.75 48.89-10.33 72.08C74.78 202.59 58.73 235 43.5 264.82A16 16 0 0 0 57.78 288zM184 71.67a5 5 0 0 1 5-5h21.67V45a5 5 0 0 1 5-5h16.66a5 5 0 0 1 5 5v21.67H259a5 5 0 0 1 5 5v16.66a5 5 0 0 1-5 5h-21.67V115a5 5 0 0 1-5 5h-16.66a5 5 0 0 1-5-5V93.33H189a5 5 0 0 1-5-5zM144 160h160v32a80 80 0 0 1-160 0zm175.41 160L224 415.39 128.59 320C57.1 323.1 0 381.6 0 453.79A58.21 58.21 0 0 0 58.21 512h331.58A58.21 58.21 0 0 0 448 453.79C448 381.6 390.9 323.1 319.41 320z"], + "user-nurse": [448, 512, [], "f82f", "M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z"], "user-plus": [640, 512, [], "f234", "M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"], "user-secret": [448, 512, [], "f21b", "M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"], "user-shield": [640, 512, [], "f505", "M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"], @@ -1875,6 +1925,9 @@ "video": [576, 512, [], "f03d", "M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"], "video-slash": [640, 512, [], "f4e2", "M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"], "vihara": [640, 512, [], "f6a7", "M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"], + "virus": [512, 512, [], "f974", "M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z"], + "virus-slash": [640, 512, [], "f975", "M114,227.56H92.44a28.44,28.44,0,0,0,0,56.88H114c50.68,0,76.06,61.28,40.23,97.12L139,396.81A28.44,28.44,0,1,0,179.19,437l15.25-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-26.61,17-45.91,38.22-53.37l-244.5-189A55.58,55.58,0,0,1,114,227.56ZM633.82,458.09,470.62,332c4.17-25.39,24.91-47.52,55.39-47.52h21.55a28.44,28.44,0,1,0,0-56.88H526c-50.68,0-76.06-61.28-40.23-97.12L501,115.19A28.44,28.44,0,0,0,460.81,75L445.56,90.22c-35.84,35.84-97.11,10.46-97.11-40.23V28.45a28.45,28.45,0,0,0-56.9,0V50c0,50.69-61.27,76.07-97.11,40.23L179.19,75A28.43,28.43,0,0,0,139,75c-.13.14-.15.32-.28.46L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM335.43,227.48l-62.87-48.59A46.55,46.55,0,0,1,288,176a48,48,0,0,1,48,48C336,225.22,335.52,226.29,335.43,227.48Z"], + "viruses": [640, 512, [], "f976", "M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z"], "voicemail": [640, 512, [], "f897", "M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z"], "volleyball-ball": [512, 512, [], "f45f", "M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"], "volume-down": [384, 512, [], "f027", "M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"], @@ -2681,6 +2734,7 @@ attributes = _ref.attributes, main = _ref.main, mask = _ref.mask, + explicitMaskId = _ref.maskId, transform = _ref.transform; var mainWidth = main.width, mainPath = main.icon; @@ -2713,8 +2767,8 @@ attributes: _objectSpread({}, trans.outer), children: [maskInnerGroup] }; - var maskId = "mask-".concat(nextUniqueId()); - var clipId = "clip-".concat(nextUniqueId()); + var maskId = "mask-".concat(explicitMaskId || nextUniqueId()); + var clipId = "clip-".concat(explicitMaskId || nextUniqueId()); var maskTag = { tag: 'mask', attributes: _objectSpread({}, ALL_SPACE, { @@ -2847,6 +2901,8 @@ transform = params.transform, symbol = params.symbol, title = params.title, + maskId = params.maskId, + titleId = params.titleId, extra = params.extra, _params$watchable = params.watchable, watchable = _params$watchable === void 0 ? false : _params$watchable; @@ -2878,7 +2934,7 @@ if (title) content.children.push({ tag: 'title', attributes: { - id: content.attributes['aria-labelledby'] || "title-".concat(nextUniqueId()) + id: content.attributes['aria-labelledby'] || "title-".concat(titleId || nextUniqueId()) }, children: [title] }); @@ -2888,6 +2944,7 @@ iconName: iconName, main: main, mask: mask, + maskId: maskId, transform: transform, symbol: symbol, styles: extra.styles @@ -3006,7 +3063,7 @@ mark: noop$1, measure: noop$1 }; - var preamble = "FA \"5.10.2\""; + var preamble = "FA \"5.13.0\""; var begin = function begin(name) { p.mark("".concat(preamble, " ").concat(name, " begins")); @@ -3272,6 +3329,7 @@ var forSvg = new RegExp("".concat(config.familyPrefix, "-.*")); delete abstract[0].attributes.style; + delete abstract[0].attributes.id; var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) { if (cls === config.replacementClass || cls.match(forSvg)) { acc.toSvg.push(cls); @@ -3510,10 +3568,11 @@ return acc; }, {}); var title = node.getAttribute('title'); + var titleId = node.getAttribute('data-fa-title-id'); if (config.autoA11y) { if (title) { - extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(nextUniqueId()); + extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); } else { extraAttributes['aria-hidden'] = 'true'; extraAttributes['focusable'] = 'false'; @@ -3539,10 +3598,12 @@ return { iconName: null, title: null, + titleId: null, prefix: null, transform: meaninglessTransform, symbol: false, mask: null, + maskId: null, extra: { classes: [], styles: {}, @@ -3564,10 +3625,12 @@ return { iconName: iconName, title: node.getAttribute('title'), + titleId: node.getAttribute('data-fa-title-id'), prefix: prefix, transform: transform, symbol: symbol, mask: mask, + maskId: node.getAttribute('data-fa-mask-id'), extra: { classes: extraClasses, styles: extraStyles, @@ -3718,6 +3781,12 @@ return resolve(asFoundIcon(icon)); } + var headers = {}; + + if (_typeof(WINDOW.FontAwesomeKitConfig) === 'object' && typeof window.FontAwesomeKitConfig.token === 'string') { + headers['fa-kit-token'] = WINDOW.FontAwesomeKitConfig.token; + } + if (iconName && prefix && !config.showMissingIcons) { reject(new MissingIcon("Icon is missing for prefix ".concat(prefix, " with icon name ").concat(iconName))); } else { @@ -3731,10 +3800,12 @@ function generateSvgReplacementMutation(node, nodeMeta) { var iconName = nodeMeta.iconName, title = nodeMeta.title, + titleId = nodeMeta.titleId, prefix = nodeMeta.prefix, transform = nodeMeta.transform, symbol = nodeMeta.symbol, mask = nodeMeta.mask, + maskId = nodeMeta.maskId, extra = nodeMeta.extra; return new picked(function (resolve, reject) { picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) { @@ -3752,7 +3823,9 @@ transform: transform, symbol: symbol, mask: mask, + maskId: maskId, title: title, + titleId: titleId, extra: extra, watchable: true })]); @@ -3893,6 +3966,7 @@ var styles = WINDOW.getComputedStyle(node, position); var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN); var fontWeight = styles.getPropertyValue('font-weight'); + var content = styles.getPropertyValue('content'); if (alreadyProcessedPseudoElement && !fontFamily) { // If we've already processed it but the current computed style does not result in a font-family, @@ -3900,8 +3974,7 @@ // removed. So we now should delete the icon. node.removeChild(alreadyProcessedPseudoElement); return resolve(); - } else if (fontFamily) { - var content = styles.getPropertyValue('content'); + } else if (fontFamily && content !== 'none' && content !== '') { var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight]; var hexValue = toHex(content.length === 3 ? content.substr(1, 1) : content); var iconName = byUnicode(prefix, hexValue); @@ -4174,8 +4247,12 @@ symbol = _params$symbol === void 0 ? false : _params$symbol, _params$mask = params.mask, mask = _params$mask === void 0 ? null : _params$mask, + _params$maskId = params.maskId, + maskId = _params$maskId === void 0 ? null : _params$maskId, _params$title = params.title, title = _params$title === void 0 ? null : _params$title, + _params$titleId = params.titleId, + titleId = _params$titleId === void 0 ? null : _params$titleId, _params$classes = params.classes, classes = _params$classes === void 0 ? [] : _params$classes, _params$attributes = params.attributes, @@ -4193,7 +4270,7 @@ if (config.autoA11y) { if (title) { - attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(nextUniqueId()); + attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); } else { attributes['aria-hidden'] = 'true'; attributes['focusable'] = 'false'; @@ -4215,6 +4292,8 @@ transform: _objectSpread({}, meaninglessTransform, transform), symbol: symbol, title: title, + maskId: maskId, + titleId: titleId, extra: { attributes: attributes, styles: styles, diff --git a/htdocs/theme/common/fontawesome-5/js/all.min.js b/htdocs/theme/common/fontawesome-5/js/all.min.js index a55186f2328..3f7a82306fe 100644 --- a/htdocs/theme/common/fontawesome-5/js/all.min.js +++ b/htdocs/theme/common/fontawesome-5/js/all.min.js @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -!function(){"use strict";var c={},l={};try{"undefined"!=typeof window&&(c=window),"undefined"!=typeof document&&(l=document)}catch(c){}var h=(c.navigator||{}).userAgent,z=void 0===h?"":h,v=c,a=l,m=(v.document,!!a.documentElement&&!!a.head&&"function"==typeof a.addEventListener&&a.createElement,~z.indexOf("MSIE")||z.indexOf("Trident/"),"___FONT_AWESOME___"),s=function(){try{return!0}catch(c){return!1}}();var e=v||{};e[m]||(e[m]={}),e[m].styles||(e[m].styles={}),e[m].hooks||(e[m].hooks={}),e[m].shims||(e[m].shims=[]);var t=e[m];function M(c,z){var l=(2>>0;h--;)l[h]=c[h];return l}function gc(c){return c.classList?bc(c.classList):(c.getAttribute("class")||"").split(" ").filter(function(c){return c})}function Sc(c,l){var h,z=l.split("-"),v=z[0],a=z.slice(1).join("-");return v!==c||""===a||(h=a,~T.indexOf(h))?null:a}function yc(c){return"".concat(c).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function wc(h){return Object.keys(h||{}).reduce(function(c,l){return c+"".concat(l,": ").concat(h[l],";")},"")}function Ac(c){return c.size!==Lc.size||c.x!==Lc.x||c.y!==Lc.y||c.rotate!==Lc.rotate||c.flipX||c.flipY}function kc(c){var l=c.transform,h=c.containerWidth,z=c.iconWidth,v={transform:"translate(".concat(h/2," 256)")},a="translate(".concat(32*l.x,", ").concat(32*l.y,") "),m="scale(".concat(l.size/16*(l.flipX?-1:1),", ").concat(l.size/16*(l.flipY?-1:1),") "),s="rotate(".concat(l.rotate," 0 0)");return{outer:v,inner:{transform:"".concat(a," ").concat(m," ").concat(s)},path:{transform:"translate(".concat(z/2*-1," -256)")}}}var xc={x:0,y:0,width:"100%",height:"100%"};function qc(c){var l=!(1").concat(m.map(Jc).join(""),"")}var $c=function(){};function cl(c){return"string"==typeof(c.getAttribute?c.getAttribute(Z):null)}var ll={replace:function(c){var l=c[0],h=c[1].map(function(c){return Jc(c)}).join("\n");if(l.parentNode&&l.outerHTML)l.outerHTML=h+(G.keepOriginalSource&&"svg"!==l.tagName.toLowerCase()?"\x3c!-- ".concat(l.outerHTML," --\x3e"):"");else if(l.parentNode){var z=document.createElement("span");l.parentNode.replaceChild(z,l),z.outerHTML=h}},nest:function(c){var l=c[0],h=c[1];if(~gc(l).indexOf(G.replacementClass))return ll.replace(c);var z=new RegExp("".concat(G.familyPrefix,"-.*"));delete h[0].attributes.style;var v=h[0].attributes.class.split(" ").reduce(function(c,l){return l===G.replacementClass||l.match(z)?c.toSvg.push(l):c.toNode.push(l),c},{toNode:[],toSvg:[]});h[0].attributes.class=v.toSvg.join(" ");var a=h.map(function(c){return Jc(c)}).join("\n");l.setAttribute("class",v.toNode.join(" ")),l.setAttribute(Z,""),l.innerHTML=a}};function hl(c){c()}function zl(h,c){var z="function"==typeof c?c:$c;if(0===h.length)z();else{var l=hl;G.mutateApproach===w&&(l=o.requestAnimationFrame||hl),l(function(){var c=!0===G.autoReplaceSvg?ll.replace:ll[G.autoReplaceSvg]||ll.replace,l=Rc.begin("mutate");h.map(c),l(),z()})}}var vl=!1;function al(){vl=!1}var ml=null;function sl(c){if(t&&G.observeMutations){var v=c.treeCallback,a=c.nodeCallback,m=c.pseudoElementsCallback,l=c.observeMutationsRoot,h=void 0===l?V:l;ml=new t(function(c){vl||bc(c).forEach(function(c){if("childList"===c.type&&0>>0;h--;)l[h]=c[h];return l}function gc(c){return c.classList?bc(c.classList):(c.getAttribute("class")||"").split(" ").filter(function(c){return c})}function Ac(c,l){var h,z=l.split("-"),v=z[0],a=z.slice(1).join("-");return v!==c||""===a||(h=a,~T.indexOf(h))?null:a}function Sc(c){return"".concat(c).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function yc(h){return Object.keys(h||{}).reduce(function(c,l){return c+"".concat(l,": ").concat(h[l],";")},"")}function wc(c){return c.size!==Lc.size||c.x!==Lc.x||c.y!==Lc.y||c.rotate!==Lc.rotate||c.flipX||c.flipY}function kc(c){var l=c.transform,h=c.containerWidth,z=c.iconWidth,v={transform:"translate(".concat(h/2," 256)")},a="translate(".concat(32*l.x,", ").concat(32*l.y,") "),m="scale(".concat(l.size/16*(l.flipX?-1:1),", ").concat(l.size/16*(l.flipY?-1:1),") "),s="rotate(".concat(l.rotate," 0 0)");return{outer:v,inner:{transform:"".concat(a," ").concat(m," ").concat(s)},path:{transform:"translate(".concat(z/2*-1," -256)")}}}var Zc={x:0,y:0,width:"100%",height:"100%"};function xc(c){var l=!(1").concat(m.map(Jc).join(""),"")}var $c=function(){};function cl(c){return"string"==typeof(c.getAttribute?c.getAttribute(J):null)}var ll={replace:function(c){var l=c[0],h=c[1].map(function(c){return Jc(c)}).join("\n");if(l.parentNode&&l.outerHTML)l.outerHTML=h+($.keepOriginalSource&&"svg"!==l.tagName.toLowerCase()?"\x3c!-- ".concat(l.outerHTML," --\x3e"):"");else if(l.parentNode){var z=document.createElement("span");l.parentNode.replaceChild(z,l),z.outerHTML=h}},nest:function(c){var l=c[0],h=c[1];if(~gc(l).indexOf($.replacementClass))return ll.replace(c);var z=new RegExp("".concat($.familyPrefix,"-.*"));delete h[0].attributes.style,delete h[0].attributes.id;var v=h[0].attributes.class.split(" ").reduce(function(c,l){return l===$.replacementClass||l.match(z)?c.toSvg.push(l):c.toNode.push(l),c},{toNode:[],toSvg:[]});h[0].attributes.class=v.toSvg.join(" ");var a=h.map(function(c){return Jc(c)}).join("\n");l.setAttribute("class",v.toNode.join(" ")),l.setAttribute(J,""),l.innerHTML=a}};function hl(c){c()}function zl(h,c){var z="function"==typeof c?c:$c;if(0===h.length)z();else{var l=hl;$.mutateApproach===y&&(l=V.requestAnimationFrame||hl),l(function(){var c=!0===$.autoReplaceSvg?ll.replace:ll[$.autoReplaceSvg]||ll.replace,l=_c.begin("mutate");h.map(c),l(),z()})}}var vl=!1;function al(){vl=!1}var ml=null;function sl(c){if(t&&$.observeMutations){var v=c.treeCallback,a=c.nodeCallback,m=c.pseudoElementsCallback,l=c.observeMutationsRoot,h=void 0===l?o:l;ml=new t(function(c){vl||bc(c).forEach(function(c){if("childList"===c.type&&0>16)+(t>>16)+(n>>16)<<16|65535&n}function a(e,t,n,o,r,i){return u((c=u(u(t,e),u(o,i)))<<(a=r)|c>>>32-a,n);var c,a}function d(e,t,n,o,r,i,c){return a(t&n|~t&o,e,t,r,i,c)}function m(e,t,n,o,r,i,c){return a(t&o|n&~o,e,t,r,i,c)}function h(e,t,n,o,r,i,c){return a(t^n^o,e,t,r,i,c)}function g(e,t,n,o,r,i,c){return a(n^(t|~o),e,t,r,i,c)}function s(e,t){var n,o,r,i,c;e[t>>5]|=128<>>9<<4)]=t;var a=1732584193,s=-271733879,f=-1732584194,l=271733878;for(n=0;n>5]>>>t%32&255);return n}function l(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<>>4&15)+o.charAt(15&t);return r}function n(e){return unescape(encodeURIComponent(e))}function r(e){return f(s(l(t=n(e)),8*t.length));var t}function i(e,t){return function(e,t){var n,o,r=l(e),i=[],c=[];for(i[15]=c[15]=void 0,16 element that loads this detection:"),console.info("\t%c".concat(A,"%c: milliseconds to wait for each test before deciding whether it's a conflict."),"font-weight: bold;","font-size: normal;"),console.info("\t%c".concat(T,"%c: milliseconds to wait for the browser to accumulate test results before giving up."),"font-weight: bold;","font-size: normal;"),D({maxDuration:c,showProgress:!0,progressIndicator:"waiting...",fn:function(){return Object.keys(n.conflict).length+Object.keys(n.noConflict).length>=i}}).then(function(){console.info("DONE!"),E({nodesTested:n,nodesFound:r}),t({nodesTested:n,nodesFound:r}),console.groupEnd()}).catch(function(e){"timeout"===e?console.info("TIME OUT! We waited until we got tired. Here's what we found:"):(console.info("Whoops! We hit an error:",e),console.info("Here's what we'd found up until that error:")),E({nodesTested:n,nodesFound:r}),t({nodesTested:n,nodesFound:r}),console.groupEnd()}))}var F=l.FontAwesomeDetection||{},O=a({},{report:function(e){var t=e.nodesTested,n=e.nodesFound,o={};for(var r in n)t.conflict[r]||t.noConflict[r]||(o[r]=n[r]);var i=Object.keys(t.conflict).length;if(0>16)+(t>>16)+(n>>16)<<16|65535&n}function a(e,t,n,o,r,i){return u((c=u(u(t,e),u(o,i)))<<(a=r)|c>>>32-a,n);var c,a}function d(e,t,n,o,r,i,c){return a(t&n|~t&o,e,t,r,i,c)}function m(e,t,n,o,r,i,c){return a(t&o|n&~o,e,t,r,i,c)}function h(e,t,n,o,r,i,c){return a(t^n^o,e,t,r,i,c)}function g(e,t,n,o,r,i,c){return a(n^(t|~o),e,t,r,i,c)}function s(e,t){var n,o,r,i,c;e[t>>5]|=128<>>9<<4)]=t;var a=1732584193,s=-271733879,f=-1732584194,l=271733878;for(n=0;n>5]>>>t%32&255);return n}function l(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<>>4&15)+o.charAt(15&t);return r}function n(e){return unescape(encodeURIComponent(e))}function r(e){return f(s(l(t=n(e)),8*t.length));var t}function i(e,t){return function(e,t){var n,o,r=l(e),i=[],c=[];for(i[15]=c[15]=void 0,16 element that loads this detection:"),console.info("\t%c".concat(A,"%c: milliseconds to wait for each test before deciding whether it's a conflict."),"font-weight: bold;","font-size: normal;"),console.info("\t%c".concat(T,"%c: milliseconds to wait for the browser to accumulate test results before giving up."),"font-weight: bold;","font-size: normal;"),E({maxDuration:c,showProgress:!0,progressIndicator:"waiting...",fn:function(){return Object.keys(n.conflict).length+Object.keys(n.noConflict).length>=i}}).then(function(){console.info("DONE!"),C({nodesTested:n,nodesFound:r}),t({nodesTested:n,nodesFound:r}),console.groupEnd()}).catch(function(e){"timeout"===e?console.info("TIME OUT! We waited until we got tired. Here's what we found:"):(console.info("Whoops! We hit an error:",e),console.info("Here's what we'd found up until that error:")),C({nodesTested:n,nodesFound:r}),t({nodesTested:n,nodesFound:r}),console.groupEnd()}))}var O=l.FontAwesomeDetection||{},N=a({},{report:function(e){var t=e.nodesTested,n=e.nodesFound,o={};for(var r in n)t.conflict[r]||t.noConflict[r]||(o[r]=n[r]);var i=Object.keys(t.conflict).length;if(0>>0;n--;)e[n]=t[n];return e}function Ct(t){return t.classList?At(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(t){return t})}function Ot(t,e){var n,a=e.split("-"),r=a[0],i=a.slice(1).join("-");return r!==t||""===i||(n=i,~H.indexOf(n))?null:i}function St(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Pt(n){return Object.keys(n||{}).reduce(function(t,e){return t+"".concat(e,": ").concat(n[e],";")},"")}function Nt(t){return t.size!==yt.size||t.x!==yt.x||t.y!==yt.y||t.rotate!==yt.rotate||t.flipX||t.flipY}function Mt(t){var e=t.transform,n=t.containerWidth,a=t.iconWidth,r={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*e.x,", ").concat(32*e.y,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),c="rotate(".concat(e.rotate," 0 0)");return{outer:r,inner:{transform:"".concat(i," ").concat(o," ").concat(c)},path:{transform:"translate(".concat(a/2*-1," -256)")}}}var zt={x:0,y:0,width:"100%",height:"100%"};function Et(t){var e=!(1").concat(o.map(Zt).join(""),"")}var $t=function(){};function te(t){return"string"==typeof(t.getAttribute?t.getAttribute(K):null)}var ee={replace:function(t){var e=t[0],n=t[1].map(function(t){return Zt(t)}).join("\n");if(e.parentNode&&e.outerHTML)e.outerHTML=n+(J.keepOriginalSource&&"svg"!==e.tagName.toLowerCase()?"\x3c!-- ".concat(e.outerHTML," --\x3e"):"");else if(e.parentNode){var a=document.createElement("span");e.parentNode.replaceChild(a,e),a.outerHTML=n}},nest:function(t){var e=t[0],n=t[1];if(~Ct(e).indexOf(J.replacementClass))return ee.replace(t);var a=new RegExp("".concat(J.familyPrefix,"-.*"));delete n[0].attributes.style;var r=n[0].attributes.class.split(" ").reduce(function(t,e){return e===J.replacementClass||e.match(a)?t.toSvg.push(e):t.toNode.push(e),t},{toNode:[],toSvg:[]});n[0].attributes.class=r.toSvg.join(" ");var i=n.map(function(t){return Zt(t)}).join("\n");e.setAttribute("class",r.toNode.join(" ")),e.setAttribute(K,""),e.innerHTML=i}};function ne(t){t()}function ae(n,t){var a="function"==typeof t?t:$t;if(0===n.length)a();else{var e=ne;J.mutateApproach===P&&(e=g.requestAnimationFrame||ne),e(function(){var t=!0===J.autoReplaceSvg?ee.replace:ee[J.autoReplaceSvg]||ee.replace,e=Yt.begin("mutate");n.map(t),e(),a()})}}var re=!1;function ie(){re=!1}var oe=null;function ce(t){if(l&&J.observeMutations){var r=t.treeCallback,i=t.nodeCallback,o=t.pseudoElementsCallback,e=t.observeMutationsRoot,n=void 0===e?v:e;oe=new l(function(t){re||At(t).forEach(function(t){if("childList"===t.type&&0>>0;n--;)e[n]=t[n];return e}function Ct(t){return t.classList?At(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(t){return t})}function Ot(t,e){var n,a=e.split("-"),r=a[0],i=a.slice(1).join("-");return r!==t||""===i||(n=i,~F.indexOf(n))?null:i}function St(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Pt(n){return Object.keys(n||{}).reduce(function(t,e){return t+"".concat(e,": ").concat(n[e],";")},"")}function Nt(t){return t.size!==yt.size||t.x!==yt.x||t.y!==yt.y||t.rotate!==yt.rotate||t.flipX||t.flipY}function Mt(t){var e=t.transform,n=t.containerWidth,a=t.iconWidth,r={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*e.x,", ").concat(32*e.y,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),c="rotate(".concat(e.rotate," 0 0)");return{outer:r,inner:{transform:"".concat(i," ").concat(o," ").concat(c)},path:{transform:"translate(".concat(a/2*-1," -256)")}}}var zt={x:0,y:0,width:"100%",height:"100%"};function Et(t){var e=!(1").concat(o.map(Zt).join(""),"")}var $t=function(){};function te(t){return"string"==typeof(t.getAttribute?t.getAttribute(Z):null)}var ee={replace:function(t){var e=t[0],n=t[1].map(function(t){return Zt(t)}).join("\n");if(e.parentNode&&e.outerHTML)e.outerHTML=n+($.keepOriginalSource&&"svg"!==e.tagName.toLowerCase()?"\x3c!-- ".concat(e.outerHTML," --\x3e"):"");else if(e.parentNode){var a=document.createElement("span");e.parentNode.replaceChild(a,e),a.outerHTML=n}},nest:function(t){var e=t[0],n=t[1];if(~Ct(e).indexOf($.replacementClass))return ee.replace(t);var a=new RegExp("".concat($.familyPrefix,"-.*"));delete n[0].attributes.style,delete n[0].attributes.id;var r=n[0].attributes.class.split(" ").reduce(function(t,e){return e===$.replacementClass||e.match(a)?t.toSvg.push(e):t.toNode.push(e),t},{toNode:[],toSvg:[]});n[0].attributes.class=r.toSvg.join(" ");var i=n.map(function(t){return Zt(t)}).join("\n");e.setAttribute("class",r.toNode.join(" ")),e.setAttribute(Z,""),e.innerHTML=i}};function ne(t){t()}function ae(n,t){var a="function"==typeof t?t:$t;if(0===n.length)a();else{var e=ne;$.mutateApproach===P&&(e=g.requestAnimationFrame||ne),e(function(){var t=!0===$.autoReplaceSvg?ee.replace:ee[$.autoReplaceSvg]||ee.replace,e=Yt.begin("mutate");n.map(t),e(),a()})}}var re=!1;function ie(){re=!1}var oe=null;function ce(t){if(l&&$.observeMutations){var r=t.treeCallback,i=t.nodeCallback,o=t.pseudoElementsCallback,e=t.observeMutationsRoot,n=void 0===e?v:e;oe=new l(function(t){re||At(t).forEach(function(t){if("childList"===t.type&&0", + "last_modified": 1573073505342, + "raw": "", "viewBox": [ "0", "0", - "448", + "576", "512" ], - "width": 448, + "width": 576, "height": 512, - "path": "M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z" + "path": "M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55" } }, "free": [ @@ -1317,7 +1321,8 @@ "angle-left": { "changes": [ "3", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -1357,7 +1362,8 @@ "angle-right": { "changes": [ "3", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -1435,7 +1441,9 @@ }, "angry": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -2475,7 +2483,8 @@ }, "arrows-alt-v": { "changes": [ - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -2777,15 +2786,20 @@ }, "atom": { "changes": [ - "5.2.0" + "5.2.0", + "5.12.0" ], "ligatures": [], "search": { "terms": [ "atheism", "chemistry", + "electron", "ion", + "isotope", + "neutron", "nuclear", + "proton", "science" ] }, @@ -2797,8 +2811,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861359, - "raw": "", + "last_modified": 1573074807842, + "raw": "", "viewBox": [ "0", "0", @@ -2807,7 +2821,7 @@ ], "width": 448, "height": 512, - "path": "M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z" + "path": "M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z" } }, "free": [ @@ -3266,6 +3280,44 @@ "solid" ] }, + "bahai": { + "changes": [ + "5.3.0", + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [ + "bahai", + "bahá'í", + "star" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f666", + "label": "Bahá'í", + "voted": false, + "svg": { + "solid": { + "last_modified": 1573073505391, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z" + } + }, + "free": [ + "solid" + ] + }, "balance-scale": { "changes": [ "4.4", @@ -3309,7 +3361,9 @@ }, "balance-scale-left": { "changes": [ - "5.0.13" + "5.0.13", + "5.9.0", + "5.12.0" ], "ligatures": [], "search": { @@ -3348,7 +3402,9 @@ }, "balance-scale-right": { "changes": [ - "5.0.13" + "5.0.13", + "5.9.0", + "5.12.0" ], "ligatures": [], "search": { @@ -3592,7 +3648,9 @@ }, "baseball-ball": { "changes": [ - "5.0.5" + "5.0.5", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -3633,7 +3691,9 @@ }, "basketball-ball": { "changes": [ - "5.0.5" + "5.0.5", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -3672,7 +3732,8 @@ "bath": { "changes": [ "4.7", - "5.0.0" + "5.0.0", + "5.12.0" ], "ligatures": [], "search": { @@ -3691,8 +3752,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861362, - "raw": "", + "last_modified": 1573074807842, + "raw": "", "viewBox": [ "0", "0", @@ -3701,7 +3762,7 @@ ], "width": 512, "height": 512, - "path": "M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z" + "path": "M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z" } }, "free": [ @@ -3942,6 +4003,7 @@ "search": { "terms": [ "lodging", + "mattress", "rest", "sleep", "travel" @@ -4090,7 +4152,8 @@ "changes": [ "2", "5.0.0", - "5.2.0" + "5.2.0", + "5.11.0" ], "ligatures": [], "search": { @@ -4439,6 +4502,7 @@ "ligatures": [], "search": { "terms": [ + "covid-19", "danger", "dangerous", "hazmat", @@ -4776,7 +4840,8 @@ "blind": { "changes": [ "4.6", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -5601,7 +5666,9 @@ }, "bowling-ball": { "changes": [ - "5.0.5" + "5.0.5", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -5717,6 +5784,47 @@ "solid" ] }, + "box-tissue": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "cough", + "covid-19", + "kleenex", + "mucus", + "nose", + "sneeze", + "snot" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f95b", + "label": "Tissue Box", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438632, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z" + } + }, + "free": [ + "solid" + ] + }, "boxes": { "changes": [ "5.0.7" @@ -5798,7 +5906,8 @@ "brain": { "changes": [ "5.2.0", - "5.9.0" + "5.9.0", + "5.11.0" ], "ligatures": [], "search": { @@ -6519,6 +6628,38 @@ "solid" ] }, + "buy-n-large": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f8a6", + "label": "Buy n Large", + "svg": { + "brands": { + "last_modified": 1568817883851, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z" + } + }, + "free": [ + "brands" + ] + }, "buysellads": { "changes": [ "4.3", @@ -6557,7 +6698,8 @@ "changes": [ "4.2", "5.0.0", - "5.3.0" + "5.3.0", + "5.11.0" ], "ligatures": [], "search": { @@ -7384,7 +7526,9 @@ }, "car-alt": { "changes": [ - "5.2.0" + "5.2.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -7542,6 +7686,45 @@ "solid" ] }, + "caravan": { + "changes": [ + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [ + "camper", + "motor home", + "rv", + "trailer", + "travel" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f8ff", + "label": "Caravan", + "voted": true, + "svg": { + "solid": { + "last_modified": 1573074807844, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z" + } + }, + "free": [ + "solid" + ] + }, "caret-down": { "changes": [ "2", @@ -8578,7 +8761,8 @@ }, "chair": { "changes": [ - "5.4.0" + "5.4.0", + "5.11.0" ], "ligatures": [], "search": { @@ -10096,6 +10280,7 @@ "ligatures": [], "search": { "terms": [ + "covid-19", "doctor", "general practitioner", "hospital", @@ -10274,7 +10459,8 @@ "clock": { "changes": [ "1", - "5.0.0" + "5.0.0", + "5.12.1" ], "ligatures": [], "search": { @@ -10297,8 +10483,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861379, - "raw": "", + "last_modified": 1581349336612, + "raw": "", "viewBox": [ "0", "0", @@ -10307,7 +10493,7 @@ ], "width": 512, "height": 512, - "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z" + "path": "M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z" }, "regular": { "last_modified": 1546440861244, @@ -10331,7 +10517,8 @@ "clone": { "changes": [ "4.4", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -11781,7 +11968,9 @@ "compact-disc": { "changes": [ "5.0.13", - "5.10.1" + "5.10.1", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -11828,7 +12017,9 @@ "changes": [ "3.2", "5.0.0", - "5.2.0" + "5.2.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -11923,6 +12114,49 @@ "solid" ] }, + "compress-alt": { + "changes": [ + "1", + "5.0.0", + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [ + "collapse", + "fullscreen", + "minimize", + "move", + "resize", + "shrink", + "smaller" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f422", + "label": "Alternate Compress", + "voted": false, + "svg": { + "solid": { + "last_modified": 1546440861385, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z" + } + }, + "free": [ + "solid" + ] + }, "compress-arrows-alt": { "changes": [ "5.6.0" @@ -12321,7 +12555,7 @@ "label": "Cotton Bureau", "svg": { "brands": { - "last_modified": 1564081968781, + "last_modified": 1567694055624, "raw": "", "viewBox": [ "0", @@ -13550,6 +13784,39 @@ "brands" ] }, + "dailymotion": { + "changes": [ + "5.12.1" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f952", + "label": "dailymotion", + "voted": true, + "svg": { + "brands": { + "last_modified": 1581349336589, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z" + } + }, + "free": [ + "brands" + ] + }, "dashcube": { "changes": [ "4.3", @@ -14526,7 +14793,8 @@ }, "directions": { "changes": [ - "5.2.0" + "5.2.0", + "5.11.0" ], "ligatures": [], "search": { @@ -14629,6 +14897,47 @@ "brands" ] }, + "disease": { + "changes": [ + "5.7.0" + ], + "ligatures": [], + "search": { + "terms": [ + "bacteria", + "cancer", + "covid-19", + "illness", + "infection", + "sickness", + "virus" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f7fa", + "label": "Disease", + "voted": false, + "svg": { + "solid": { + "last_modified": 1548701299306, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z" + } + }, + "free": [ + "solid" + ] + }, "divide": { "changes": [ "5.0.13" @@ -14669,7 +14978,9 @@ }, "dizzy": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -14829,7 +15140,8 @@ }, "dog": { "changes": [ - "5.4.0" + "5.4.0", + "5.12.0" ], "ligatures": [], "search": { @@ -14852,17 +15164,17 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861390, - "raw": "", + "last_modified": 1571943996859, + "raw": "", "viewBox": [ "0", "0", - "512", + "576", "512" ], - "width": 512, + "width": 576, "height": 512, - "path": "M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z" + "path": "M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z" } }, "free": [ @@ -14873,7 +15185,9 @@ "changes": [ "3.2", "5.0.0", - "5.0.9" + "5.0.9", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -15486,7 +15800,8 @@ }, "drum": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0" ], "ligatures": [], "search": { @@ -15506,17 +15821,17 @@ "voted": true, "svg": { "solid": { - "last_modified": 1546440861392, - "raw": "", + "last_modified": 1568817883954, + "raw": "", "viewBox": [ "0", "0", - "576", + "512", "512" ], - "width": 576, + "width": 512, "height": 512, - "path": "M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z" + "path": "M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z" } }, "free": [ @@ -15909,7 +16224,8 @@ "edge": { "changes": [ "4.5", - "5.0.0" + "5.0.0", + "5.12.1" ], "ligatures": [], "search": { @@ -15926,8 +16242,8 @@ "voted": false, "svg": { "brands": { - "last_modified": 1546440860983, - "raw": "", + "last_modified": 1581349336589, + "raw": "", "viewBox": [ "0", "0", @@ -15936,7 +16252,7 @@ ], "width": 512, "height": 512, - "path": "M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z" + "path": "M481.92,134.48C440.87,54.18,352.26,8,255.91,8,137.05,8,37.51,91.68,13.47,203.66c26-46.49,86.22-79.14,149.46-79.14,79.27,0,121.09,48.93,122.25,50.18,22,23.8,33,50.39,33,83.1,0,10.4-5.31,25.82-15.11,38.57-1.57,2-6.39,4.84-6.39,11,0,5.06,3.29,9.92,9.14,14,27.86,19.37,80.37,16.81,80.51,16.81A115.39,115.39,0,0,0,444.94,322a118.92,118.92,0,0,0,58.95-102.44C504.39,176.13,488.39,147.26,481.92,134.48ZM212.77,475.67a154.88,154.88,0,0,1-46.64-45c-32.94-47.42-34.24-95.6-20.1-136A155.5,155.5,0,0,1,203,215.75c59-45.2,94.84-5.65,99.06-1a80,80,0,0,0-4.89-10.14c-9.24-15.93-24-36.41-56.56-53.51-33.72-17.69-70.59-18.59-77.64-18.59-38.71,0-77.9,13-107.53,35.69C35.68,183.3,12.77,208.72,8.6,243c-1.08,12.31-2.75,62.8,23,118.27a248,248,0,0,0,248.3,141.61C241.78,496.26,214.05,476.24,212.77,475.67Zm250.72-98.33a7.76,7.76,0,0,0-7.92-.23,181.66,181.66,0,0,1-20.41,9.12,197.54,197.54,0,0,1-69.55,12.52c-91.67,0-171.52-63.06-171.52-144A61.12,61.12,0,0,1,200.61,228,168.72,168.72,0,0,0,161.85,278c-14.92,29.37-33,88.13,13.33,151.66,6.51,8.91,23,30,56,47.67,23.57,12.65,49,19.61,71.7,19.61,35.14,0,115.43-33.44,163-108.87A7.75,7.75,0,0,0,463.49,377.34Z" } }, "free": [ @@ -16423,7 +16739,8 @@ "envelope-open-text": { "changes": [ "5.3.0", - "5.10.1" + "5.10.1", + "5.12.0" ], "ligatures": [], "search": { @@ -17047,6 +17364,46 @@ "solid" ] }, + "expand-alt": { + "changes": [ + "1", + "5.0.0", + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [ + "arrow", + "bigger", + "enlarge", + "resize" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f424", + "label": "Alternate Expand", + "voted": false, + "svg": { + "solid": { + "last_modified": 1546440861395, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z" + } + }, + "free": [ + "solid" + ] + }, "expand-arrows-alt": { "changes": [ "5.0.0", @@ -17123,7 +17480,8 @@ }, "external-link-alt": { "changes": [ - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -17142,17 +17500,17 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861396, - "raw": "", + "last_modified": 1568817883954, + "raw": "", "viewBox": [ "0", "0", - "576", + "512", "512" ], - "width": 576, + "width": 512, "height": 512, - "path": "M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z" + "path": "M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z" } }, "free": [ @@ -17663,11 +18021,53 @@ "solid" ] }, + "faucet": { + "changes": [ + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [ + "covid-19", + "drip", + "house", + "hygiene", + "kitchen", + "sink", + "water" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f905", + "label": "Faucet", + "voted": false, + "svg": { + "solid": { + "last_modified": 1573074807845, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z" + } + }, + "free": [ + "solid" + ] + }, "fax": { "changes": [ "4.1", "5.0.0", - "5.3.0" + "5.3.0", + "5.11.0" ], "ligatures": [], "search": { @@ -17687,8 +18087,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861397, - "raw": "", + "last_modified": 1568817883955, + "raw": "", "viewBox": [ "0", "0", @@ -17697,7 +18097,7 @@ ], "width": 512, "height": 512, - "path": "M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z" + "path": "M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z" } }, "free": [ @@ -19201,7 +19601,9 @@ "changes": [ "2", "5.0.0", - "5.10.1" + "5.10.1", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -19408,7 +19810,8 @@ "changes": [ "4.4", "5.0.0", - "5.0.1" + "5.0.1", + "5.12.0" ], "ligatures": [], "search": { @@ -19424,17 +19827,52 @@ "voted": false, "svg": { "brands": { - "last_modified": 1548363722328, - "raw": "", + "last_modified": 1573074807765, + "raw": "", "viewBox": [ "0", "0", - "480", + "512", "512" ], - "width": 480, + "width": 512, "height": 512, - "path": "M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v-.1c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1s-.2.3-.3.4c-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6zm-299-97.6c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5z" + "path": "M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z" + } + }, + "free": [ + "brands" + ] + }, + "firefox-browser": { + "changes": [ + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [ + "browser" + ] + }, + "styles": [ + "brands" + ], + "unicode": "f907", + "label": "Firefox Browser", + "voted": false, + "svg": { + "brands": { + "last_modified": 1573074807763, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M189.37,152.86Zm-58.74-29.37C130.79,123.5,130.71,123.5,130.63,123.49Zm351.42,45.35c-10.61-25.5-32.08-53-48.94-61.73,13.72,26.89,21.67,53.88,24.7,74,0,0,0,.14.05.41-27.58-68.75-74.35-96.47-112.55-156.83-1.93-3.05-3.86-6.11-5.74-9.33-1-1.65-1.86-3.34-2.69-5.05A44.88,44.88,0,0,1,333.24.69a.63.63,0,0,0-.55-.66.9.9,0,0,0-.46,0l-.12.07-.18.1.1-.14c-54.23,31.77-76.72,87.38-82.5,122.78a130,130,0,0,0-48.33,12.33,6.25,6.25,0,0,0-3.09,7.75,6.13,6.13,0,0,0,7.79,3.79l.52-.21a117.84,117.84,0,0,1,42.11-11l1.42-.1c2-.12,4-.2,6-.22A122.61,122.61,0,0,1,291,140c.67.2,1.32.42,2,.63,1.89.57,3.76,1.2,5.62,1.87,1.36.5,2.71,1,4.05,1.58,1.09.44,2.18.88,3.25,1.35q2.52,1.13,5,2.35c.75.37,1.5.74,2.25,1.13q2.4,1.26,4.74,2.63,1.51.87,3,1.8a124.89,124.89,0,0,1,42.66,44.13c-13-9.15-36.35-18.19-58.82-14.28,87.74,43.86,64.18,194.9-57.39,189.2a108.43,108.43,0,0,1-31.74-6.12c-2.42-.91-4.8-1.89-7.16-2.93-1.38-.63-2.76-1.27-4.12-2C174.5,346,149.9,316.92,146.83,281.59c0,0,11.25-41.95,80.62-41.95,7.5,0,28.93-20.92,29.33-27-.09-2-42.54-18.87-59.09-35.18-8.85-8.71-13.05-12.91-16.77-16.06a69.58,69.58,0,0,0-6.31-4.77A113.05,113.05,0,0,1,173.92,97c-25.06,11.41-44.55,29.45-58.71,45.37h-.12c-9.67-12.25-9-52.65-8.43-61.08-.12-.53-7.22,3.68-8.15,4.31a178.54,178.54,0,0,0-23.84,20.43A214,214,0,0,0,51.9,133.36l0,0a.08.08,0,0,1,0,0,205.84,205.84,0,0,0-32.73,73.9c-.06.27-2.33,10.21-4,22.48q-.42,2.87-.78,5.74c-.57,3.69-1,7.71-1.44,14,0,.24,0,.48-.05.72-.18,2.71-.34,5.41-.49,8.12,0,.41,0,.82,0,1.24,0,134.7,109.21,243.89,243.92,243.89,120.64,0,220.82-87.58,240.43-202.62.41-3.12.74-6.26,1.11-9.41,4.85-41.83-.54-85.79-15.82-122.55Z" } }, "free": [ @@ -19913,7 +20351,9 @@ }, "flushed": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -20151,7 +20591,9 @@ }, "folder-plus": { "changes": [ - "5.3.0" + "5.3.0", + "5.11.0", + "5.12.1" ], "ligatures": [], "search": { @@ -20174,8 +20616,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861402, - "raw": "", + "last_modified": 1581349336617, + "raw": "", "viewBox": [ "0", "0", @@ -20184,7 +20626,7 @@ ], "width": 512, "height": 512, - "path": "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z" + "path": "M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z" } }, "free": [ @@ -20471,7 +20913,9 @@ }, "football-ball": { "changes": [ - "5.0.5" + "5.0.5", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -20689,7 +21133,8 @@ "free-code-camp": { "changes": [ "4.7", - "5.0.0" + "5.0.0", + "5.12.0" ], "ligatures": [], "search": { @@ -20699,12 +21144,12 @@ "brands" ], "unicode": "f2c5", - "label": "Free Code Camp", + "label": "freeCodeCamp", "voted": false, "svg": { "brands": { - "last_modified": 1546440860989, - "raw": "", + "last_modified": 1573074807767, + "raw": "", "viewBox": [ "0", "0", @@ -20713,7 +21158,7 @@ ], "width": 576, "height": 512, - "path": "M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z" + "path": "M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z" } }, "free": [ @@ -20802,7 +21247,9 @@ "3.1", "5.0.0", "5.0.9", - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -20856,7 +21303,9 @@ }, "frown-open": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -21110,15 +21559,18 @@ "gamepad": { "changes": [ "3.1", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { "terms": [ + "arcade", "controller", "d-pad", "joystick", - "video" + "video", + "video game" ] }, "styles": [ @@ -21129,8 +21581,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861404, - "raw": "", + "last_modified": 1568817883957, + "raw": "", "viewBox": [ "0", "0", @@ -21139,7 +21591,7 @@ ], "width": 640, "height": 512, - "path": "M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z" + "path": "M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z" } }, "free": [ @@ -21283,7 +21735,9 @@ "genderless": { "changes": [ "4.4", - "5.0.0" + "5.0.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -22142,7 +22596,9 @@ "changes": [ "2", "5.0.0", - "5.0.9" + "5.0.9", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -22192,7 +22648,9 @@ }, "globe-africa": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -22241,7 +22699,9 @@ }, "globe-americas": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -22290,7 +22750,9 @@ }, "globe-asia": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -22339,7 +22801,9 @@ }, "globe-europe": { "changes": [ - "5.6.0" + "5.6.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -22770,7 +23234,8 @@ "gopuram": { "changes": [ "5.3.0", - "5.7.0" + "5.7.0", + "5.11.0" ], "ligatures": [], "search": { @@ -22999,7 +23464,9 @@ }, "grimace": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23052,7 +23519,9 @@ }, "grin": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23105,7 +23574,9 @@ }, "grin-alt": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23158,7 +23629,9 @@ }, "grin-beam": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23211,7 +23684,9 @@ }, "grin-beam-sweat": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23264,7 +23739,9 @@ }, "grin-hearts": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23317,7 +23794,9 @@ }, "grin-squint": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23423,7 +23902,9 @@ }, "grin-stars": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23527,7 +24008,9 @@ }, "grin-tongue": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23579,7 +24062,9 @@ }, "grin-tongue-squint": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23631,7 +24116,10 @@ }, "grin-tongue-wink": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1", + "5.12.0" ], "ligatures": [], "search": { @@ -23684,7 +24172,9 @@ "grin-wink": { "changes": [ "5.1.0", - "5.1.1" + "5.1.1", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23816,7 +24306,9 @@ }, "grip-lines-vertical": { "changes": [ - "5.6.0" + "5.6.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -23960,7 +24452,8 @@ }, "guitar": { "changes": [ - "5.6.0" + "5.6.0", + "5.11.0" ], "ligatures": [], "search": { @@ -23982,8 +24475,8 @@ "voted": true, "svg": { "solid": { - "last_modified": 1546440861409, - "raw": "", + "last_modified": 1568817883958, + "raw": "", "viewBox": [ "0", "0", @@ -23992,7 +24485,7 @@ ], "width": 512, "height": 512, - "path": "M502.6 54.6L457.4 9.4c-12.5-12.5-32.8-12.5-45.3 0l-67.9 67.9c-12.5 12.5-12.5 32.8 0 45.3L290 176.7c-45.4-29-100.4-28.9-133.5 4.2-9.7 9.7-16.4 21.2-20.5 33.9-6.1 18.8-23.5 33.1-42.7 34.9-24 2.3-46.3 11.6-63.4 28.8C-16.3 324.6-8 407.6 48.2 463.8c56.2 56.2 139.2 64.4 185.3 18.3 17.2-17.1 26.5-39.4 28.8-63.5 1.8-19.1 16.1-36.6 34.9-42.7 12.7-4.1 24.2-10.8 33.9-20.5 33.1-33.1 33.1-88.1 4.2-133.5l54.2-54.2c12.5 12.5 32.8 12.5 45.3 0l67.9-67.9c12.4-12.4 12.4-32.7-.1-45.2zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z" + "path": "M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z" } }, "free": [ @@ -24372,9 +24865,48 @@ "solid" ] }, + "hand-holding-medical": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "care", + "covid-19", + "donate", + "help" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f95c", + "label": "Hand Holding Medical Cross", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438632, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z" + } + }, + "free": [ + "solid" + ] + }, "hand-holding-usd": { "changes": [ - "5.0.9" + "5.0.9", + "5.11.0" ], "ligatures": [], "search": { @@ -24397,17 +24929,56 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861410, - "raw": "", + "last_modified": 1568817883958, + "raw": "\n", "viewBox": [ "0", "0", - "544", + "576", "512" ], - "width": 544, + "width": 576, "height": 512, - "path": "M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z" + "path": "M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z" + } + }, + "free": [ + "solid" + ] + }, + "hand-holding-water": { + "changes": [ + "5.0.9" + ], + "ligatures": [], + "search": { + "terms": [ + "carry", + "covid-19", + "drought", + "grow", + "lift" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f4c1", + "label": "Hand Holding Water", + "voted": false, + "svg": { + "solid": { + "last_modified": 1546440861410, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z" } }, "free": [ @@ -24468,7 +25039,9 @@ }, "hand-middle-finger": { "changes": [ - "5.7.0" + "5.7.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -24987,10 +25560,51 @@ "regular" ] }, + "hand-sparkles": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "clean", + "covid-19", + "hygiene", + "magic", + "soap", + "wash" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f95d", + "label": "Hand Sparkles", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438632, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z" + } + }, + "free": [ + "solid" + ] + }, "hand-spock": { "changes": [ "4.4", - "5.0.0" + "5.0.0", + "5.12.0" ], "ligatures": [], "search": { @@ -25011,8 +25625,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1548363722388, - "raw": "", + "last_modified": 1573074807845, + "raw": "", "viewBox": [ "0", "0", @@ -25021,11 +25635,11 @@ ], "width": 512, "height": 512, - "path": "M481.3 97.1c-21.5-5.1-43.1 8.2-48.2 29.6L402.3 256h-11.1l43.6-174.3c5.4-21.4-7.7-43.1-29.1-48.5s-43.1 7.7-48.5 29.1L308.8 256h-15.1L242 31.1c-5-21.6-26.4-35-48-30.1-21.5 4.9-35 26.4-30 47.9l47.6 207h-9.8L167 103.1c-4.9-21.5-26.3-35-47.9-30.1-21.5 4.9-35 26.3-30.1 47.9l39 171.6v79.4l-60.6-57c-16.1-15.1-41.4-14.4-56.5 1.7s-14.4 41.4 1.7 56.5L146.3 499c8.9 8.4 20.7 13 32.9 13h216.7c21.3 0 40-14 46-34.4l26.2-88.3c2.6-8.9 4-18 4-27.3v-42c0-7.5.9-15 2.6-22.2L511 145.3c5-21.5-8.3-43.1-29.7-48.2z" + "path": "M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z" }, "regular": { - "last_modified": 1546440861278, - "raw": "", + "last_modified": 1573074807828, + "raw": "", "viewBox": [ "0", "0", @@ -25034,7 +25648,7 @@ ], "width": 512, "height": 512, - "path": "M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z" + "path": "M501.03053,116.17605c-19.39059-31.50779-51.24406-35.72849-66.31044-35.01756-14.11325-50.81051-62.0038-54.08-70.73816-54.08a74.03091,74.03091,0,0,0-72.23816,58.916l-4.64648,22.66014-13.68357-53.207c-9.09569-35.37107-46.412-64.05074-89.66-53.07223a73.89749,73.89749,0,0,0-55.121,78.94722,73.68273,73.68273,0,0,0-64.8495,94.42181l24.35933,82.19721c-38.24017-7.54492-62.79677,16.18358-68.11512,21.84764a73.6791,73.6791,0,0,0,3.19921,104.19329l91.36509,85.9765A154.164,154.164,0,0,0,220.62279,512h107.4549A127.30079,127.30079,0,0,0,452.3392,413.86139l57.623-241.96272A73.20274,73.20274,0,0,0,501.03053,116.17605Zm-37.7597,44.60544L405.64788,402.74812a79.46616,79.46616,0,0,1-77.57019,61.25972H220.62279a106.34052,106.34052,0,0,1-73.1366-28.998l-91.369-85.98041C31.34381,325.72669,66.61133,288.131,91.39644,311.5392l51.123,48.10739c5.42577,5.10937,13.48239.71679,13.48239-5.82617a246.79914,246.79914,0,0,0-10.17771-70.1523l-36.01362-121.539c-9.7324-32.88279,39.69916-47.27145,49.38664-14.625l31.3437,105.77923c5.59374,18.90428,33.78119,10.71288,28.9648-8.00781L177.06427,80.23662c-8.50389-33.1035,41.43157-45.64646,49.86515-12.83593l47.32609,184.035c4.42773,17.24218,29.16207,16.5039,32.71089-.80468l31.791-154.9706c6.81054-33.1074,57.51748-24.10741,50.11906,11.96288L360.32764,246.78924c-3.72265,18.10936,23.66793,24.63084,28.05659,6.21679L413.185,148.85962C421.1498,115.512,471.14,127.79713,463.27083,160.78149Z" } }, "free": [ @@ -25118,6 +25732,44 @@ "solid" ] }, + "hands-wash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "covid-19", + "hygiene", + "soap", + "wash" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f95e", + "label": "Hands Wash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438633, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z" + } + }, + "free": [ + "solid" + ] + }, "handshake": { "changes": [ "4.7", @@ -25173,6 +25825,80 @@ "regular" ] }, + "handshake-alt-slash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "broken", + "covid-19", + "social distance" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f95f", + "label": "Handshake Alternate Slash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438633, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z" + } + }, + "free": [ + "solid" + ] + }, + "handshake-slash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "broken", + "covid-19", + "social distance" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f960", + "label": "Handshake Slash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438633, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z" + } + }, + "free": [ + "solid" + ] + }, "hanukiah": { "changes": [ "5.4.0" @@ -25290,9 +26016,100 @@ "solid" ] }, + "hat-cowboy": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [ + "buckaroo", + "horse", + "jackeroo", + "john b.", + "old west", + "pardner", + "ranch", + "rancher", + "rodeo", + "western", + "wrangler" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f8c0", + "label": "Cowboy Hat", + "voted": false, + "svg": { + "solid": { + "last_modified": 1568817883959, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z" + } + }, + "free": [ + "solid" + ] + }, + "hat-cowboy-side": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [ + "buckaroo", + "horse", + "jackeroo", + "john b.", + "old west", + "pardner", + "ranch", + "rancher", + "rodeo", + "western", + "wrangler" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f8c1", + "label": "Cowboy Hat Side", + "voted": false, + "svg": { + "solid": { + "last_modified": 1568817883958, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z" + } + }, + "free": [ + "solid" + ] + }, "hat-wizard": { "changes": [ - "5.4.0" + "5.4.0", + "5.11.0" ], "ligatures": [], "search": { @@ -25338,43 +26155,6 @@ "solid" ] }, - "haykal": { - "changes": [ - "5.3.0" - ], - "ligatures": [], - "search": { - "terms": [ - "bahai", - "bahá'í", - "star" - ] - }, - "styles": [ - "solid" - ], - "unicode": "f666", - "label": "Haykal", - "voted": false, - "svg": { - "solid": { - "last_modified": 1546440861413, - "raw": "", - "viewBox": [ - "0", - "0", - "512", - "512" - ], - "width": 512, - "height": 512, - "path": "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z" - } - }, - "free": [ - "solid" - ] - }, "hdd": { "changes": [ "2", @@ -25432,6 +26212,163 @@ "regular" ] }, + "head-side-cough": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "cough", + "covid-19", + "germs", + "lungs", + "respiratory", + "sick" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f961", + "label": "Head Side Cough", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438633, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z" + } + }, + "free": [ + "solid" + ] + }, + "head-side-cough-slash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "cough", + "covid-19", + "germs", + "lungs", + "respiratory", + "sick" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f962", + "label": "Head Side-cough-slash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584975350035, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z" + } + }, + "free": [ + "solid" + ] + }, + "head-side-mask": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "breath", + "covid-19", + "filter", + "respirator", + "virus" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f963", + "label": "Head Side Mask", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438633, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z" + } + }, + "free": [ + "solid" + ] + }, + "head-side-virus": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "cold", + "covid-19", + "flu", + "sick" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f964", + "label": "Head Side Virus", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438633, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z" + } + }, + "free": [ + "solid" + ] + }, "heading": { "changes": [ "4.1", @@ -26286,6 +27223,7 @@ "search": { "terms": [ "building", + "covid-19", "emergency room", "medical center" ] @@ -26338,6 +27276,7 @@ "search": { "terms": [ "building", + "covid-19", "emergency room", "medical center" ] @@ -26375,6 +27314,7 @@ "search": { "terms": [ "clinic", + "covid-19", "emergency", "map" ] @@ -26404,6 +27344,45 @@ "solid" ] }, + "hospital-user": { + "changes": [ + "5.7.0" + ], + "ligatures": [], + "search": { + "terms": [ + "covid-19", + "doctor", + "network", + "patient", + "primary care" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f80d", + "label": "Hospital with User", + "voted": false, + "svg": { + "solid": { + "last_modified": 1548701299546, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z" + } + }, + "free": [ + "solid" + ] + }, "hot-tub": { "changes": [ "5.1.0" @@ -26778,6 +27757,44 @@ "solid" ] }, + "house-user": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "covid-19", + "home", + "isolation", + "quarantine" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f965", + "label": "House User", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438633, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z" + } + }, + "free": [ + "solid" + ] + }, "houzz": { "changes": [ "4.4", @@ -26960,7 +27977,9 @@ }, "ice-cream": { "changes": [ - "5.7.0" + "5.7.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -27236,6 +28255,39 @@ "solid" ] }, + "ideal": { + "changes": [ + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f913", + "label": "iDeal", + "voted": true, + "svg": { + "brands": { + "last_modified": 1573074807767, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z" + } + }, + "free": [ + "brands" + ] + }, "igloo": { "changes": [ "5.6.0" @@ -27697,6 +28749,39 @@ "brands" ] }, + "instagram-square": { + "changes": [ + "5.12.1" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f955", + "label": "Instagram Square", + "voted": true, + "svg": { + "brands": { + "last_modified": 1581349336590, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z" + } + }, + "free": [ + "brands" + ] + }, "intercom": { "changes": [ "5.6.0" @@ -28042,17 +29127,17 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861419, - "raw": "", + "last_modified": 1573074807846, + "raw": "", "viewBox": [ "0", "0", - "544", + "576", "512" ], - "width": 544, + "width": 576, "height": 512, - "path": "M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z" + "path": "M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z" } }, "free": [ @@ -28275,7 +29360,8 @@ }, "journal-whills": { "changes": [ - "5.3.0" + "5.3.0", + "5.11.0" ], "ligatures": [], "search": { @@ -28296,8 +29382,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861419, - "raw": "", + "last_modified": 1573074807847, + "raw": "", "viewBox": [ "0", "0", @@ -28306,7 +29392,7 @@ ], "width": 448, "height": 512, - "path": "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z" + "path": "M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z" } }, "free": [ @@ -28531,7 +29617,8 @@ "changes": [ "5.0.11", "5.8.0", - "5.10.2" + "5.10.2", + "5.11.0" ], "ligatures": [], "search": { @@ -28545,8 +29632,8 @@ "voted": true, "svg": { "brands": { - "last_modified": 1566425143542, - "raw": "\n", + "last_modified": 1568817883851, + "raw": "", "viewBox": [ "0", "0", @@ -28555,7 +29642,7 @@ ], "width": 448, "height": 512, - "path": "M286.17,419a18,18,0,1,0,18,18A18,18,0,0,0,286.17,419ZM398.09,271.4c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27A78.43,78.43,0,0,0,244.57,86.29c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11,9.4-35L198.66,32l-5.48,7.56c-8.69,12.06-16.92,23.55-24.34,34.89a51,51,0,0,0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61,0-50.75,52.12-50.75,45.88l-2.36,36.68c-1.61,27,19.75,50.21,47.63,51.85l8.93.54a214,214,0,0,0-46.29,35.54C14,304.66,14,374,14,429.77v33.64l23.32-29.8a148.6,148.6,0,0,0,14.56,37.56c5.78,10.13,14.87,9.45,19.64,7.33,4.21-1.87,10-6.92,3.75-20.11a178.29,178.29,0,0,1-15.76-53.13l46.82-59.83L81.67,419.54c58.23-42.4,157.38-61.76,236.25-38.59,34.2,10.05,67.45.69,84.74-23.84.72-1,1.2-2.16,1.85-3.22a156.09,156.09,0,0,1,2.8,28.43c0,23.3-3.69,52.93-14.88,81.64-2.52,6.46,1.76,14.5,8.6,15.74,7.42,1.57,15.33-3.1,18.37-11.15C429,443,434,414,434,382.32,434,343.74,421,304.86,398.09,271.4ZM142.37,128.58l-15.7-.93-1.39,21.79,13.13.78a93,93,0,0,0,.32,19.57l-22.38-1.34a12.28,12.28,0,0,1-11.76-12.79L107,119c1-12.17,13.87-11.27,13.26-11.32l29.11,1.73A144.35,144.35,0,0,0,142.37,128.58ZM290.79,300.76a10.51,10.51,0,0,1-14.35-1.39l-9.68-11.49-34.42,27a8.09,8.09,0,0,1-11.13-1.08l-15.78-18.64a7.38,7.38,0,0,1,1.34-10.34l34.57-27.18L227.2,240.9l-17.09,13.45a7.75,7.75,0,0,1-10.59-1s-3.72-4.42-3.8-4.53a7.38,7.38,0,0,1,1.37-10.34L214,225.19s-18.51-22-18.6-22.14a9.56,9.56,0,0,1,1.74-13.42A10.38,10.38,0,0,1,211.44,191l81.09,96.32A9.58,9.58,0,0,1,290.79,300.76ZM187.44,419a18,18,0,1,0,18,18A18,18,0,0,0,187.44,419Z" + "path": "M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z" } }, "free": [ @@ -28758,7 +29845,9 @@ "kiss": { "changes": [ "5.1.0", - "5.1.1" + "5.1.1", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -28812,7 +29901,9 @@ }, "kiss-beam": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -28866,7 +29957,9 @@ }, "kiss-wink-heart": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -29158,6 +30251,46 @@ "solid" ] }, + "laptop-house": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "computer", + "covid-19", + "device", + "office", + "remote", + "work from home" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f966", + "label": "Laptop House", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584978057698, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z" + } + }, + "free": [ + "solid" + ] + }, "laptop-medical": { "changes": [ "5.7.0" @@ -29200,7 +30333,8 @@ "laravel": { "changes": [ "5.0.0", - "5.0.3" + "5.0.3", + "5.11.2" ], "ligatures": [], "search": { @@ -29214,17 +30348,17 @@ "voted": false, "svg": { "brands": { - "last_modified": 1546440861002, - "raw": "", + "last_modified": 1569257345254, + "raw": "\n", "viewBox": [ "0", "0", - "640", + "512", "512" ], - "width": 640, + "width": 512, "height": 512, - "path": "M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z" + "path": "M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z" } }, "free": [ @@ -29302,7 +30436,9 @@ }, "laugh": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -29356,7 +30492,9 @@ }, "laugh-beam": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -29410,7 +30548,9 @@ }, "laugh-squint": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -29464,7 +30604,9 @@ }, "laugh-wink": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -30766,6 +31908,83 @@ "solid" ] }, + "lungs": { + "changes": [ + "5.2.0" + ], + "ligatures": [], + "search": { + "terms": [ + "air", + "breath", + "covid-19", + "organ", + "respiratory" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f604", + "label": "Lungs", + "voted": false, + "svg": { + "solid": { + "last_modified": 1546440861426, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z" + } + }, + "free": [ + "solid" + ] + }, + "lungs-virus": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "breath", + "covid-19", + "respiratory", + "sick" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f967", + "label": "Lungs Virus", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438634, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z" + } + }, + "free": [ + "solid" + ] + }, "lyft": { "changes": [ "5.0.0" @@ -31602,7 +32821,8 @@ "mars-stroke-h": { "changes": [ "4.3", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -31636,7 +32856,8 @@ "mars-stroke-v": { "changes": [ "4.3", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -31776,6 +32997,38 @@ "brands" ] }, + "mdb": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f8ca", + "label": "Material Design for Bootstrap", + "svg": { + "brands": { + "last_modified": 1568817883852, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z" + } + }, + "free": [ + "brands" + ] + }, "medal": { "changes": [ "5.1.0" @@ -32059,7 +33312,9 @@ "3.1", "5.0.0", "5.0.9", - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -32112,7 +33367,9 @@ }, "meh-blank": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -32165,7 +33422,9 @@ }, "meh-rolling-eyes": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -32331,7 +33590,8 @@ "mercury": { "changes": [ "4.3", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -32366,7 +33626,8 @@ }, "meteor": { "changes": [ - "5.5.0" + "5.5.0", + "5.12.0" ], "ligatures": [], "search": { @@ -32386,8 +33647,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861430, - "raw": "", + "last_modified": 1573074807848, + "raw": "", "viewBox": [ "0", "0", @@ -32396,13 +33657,46 @@ ], "width": 512, "height": 512, - "path": "M491.2.7C452.5 12.3 379.4 35 303.5 62c-2.1-7-4-13.5-5.6-18.6-3-9.7-13.9-14.2-22.9-9.5C232.6 56 122.2 116.5 60.6 176.4c-1.1 1-2.5 2-3.5 3C19 217.4 0 267.3 0 317.2 0 367 19 416.9 57 455c38 38 87.9 57.1 137.8 57 49.9 0 99.8-19 137.9-57.1 1-1 2-2.4 3-3.5 59.8-61.6 120.4-172.1 142.5-214.4 4.7-9 .2-19.9-9.5-22.9-5.2-1.6-11.6-3.5-18.6-5.6 27-76 49.7-149 61.3-187.7C515 8.4 503.6-3 491.2.7zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128 128 57.3 128 128-57.3 128-128 128zm-32-192c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm48 96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16z" + "path": "M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z" } }, "free": [ "solid" ] }, + "microblog": { + "changes": [ + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f91a", + "label": "Micro.blog", + "voted": true, + "svg": { + "brands": { + "last_modified": 1573074807768, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z" + } + }, + "free": [ + "brands" + ] + }, "microchip": { "changes": [ "4.7", @@ -32618,6 +33912,7 @@ "ligatures": [], "search": { "terms": [ + "covid-19", "electron", "lens", "optics", @@ -32933,6 +34228,39 @@ "brands" ] }, + "mixer": { + "changes": [ + "5.12.1" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f956", + "label": "Mixer", + "voted": true, + "svg": { + "brands": { + "last_modified": 1581349336590, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z" + } + }, + "free": [ + "brands" + ] + }, "mizuni": { "changes": [ "5.0.0" @@ -33427,7 +34755,9 @@ "moon": { "changes": [ "3.2", - "5.0.0" + "5.0.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -33638,6 +34968,45 @@ "solid" ] }, + "mouse": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [ + "click", + "computer", + "cursor", + "input", + "peripheral" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f8cc", + "label": "Mouse", + "voted": true, + "svg": { + "solid": { + "last_modified": 1568817883961, + "raw": "", + "viewBox": [ + "0", + "0", + "384", + "512" + ], + "width": 384, + "height": 512, + "path": "M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z" + } + }, + "free": [ + "solid" + ] + }, "mouse-pointer": { "changes": [ "4.4", @@ -33724,7 +35093,8 @@ "changes": [ "1", "5.0.0", - "5.2.0" + "5.2.0", + "5.11.0" ], "ligatures": [], "search": { @@ -33744,8 +35114,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861434, - "raw": "", + "last_modified": 1568817883962, + "raw": "", "viewBox": [ "0", "0", @@ -33754,7 +35124,7 @@ ], "width": 512, "height": 512, - "path": "M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z" + "path": "M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z" } }, "free": [ @@ -33870,7 +35240,8 @@ "neuter": { "changes": [ "4.3", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -34667,6 +36038,38 @@ "brands" ] }, + "orcid": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f8d2", + "label": "ORCID", + "svg": { + "brands": { + "last_modified": 1568817883852, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z" + } + }, + "free": [ + "brands" + ] + }, "osi": { "changes": [ "5.0.0", @@ -35621,7 +37024,9 @@ }, "peace": { "changes": [ - "5.3.0" + "5.3.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -35971,6 +37376,46 @@ "brands" ] }, + "people-arrows": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "covid-19", + "personal space", + "social distance", + "space", + "spread", + "users" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f968", + "label": "People Arrows", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438634, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z" + } + }, + "free": [ + "solid" + ] + }, "people-carry": { "changes": [ "5.0.9" @@ -36640,7 +38085,8 @@ "changes": [ "4.6", "5.0.0", - "5.0.10" + "5.0.10", + "5.12.0" ], "ligatures": [], "search": { @@ -36654,17 +38100,17 @@ "voted": false, "svg": { "brands": { - "last_modified": 1546440861013, - "raw": "", + "last_modified": 1573074807769, + "raw": "", "viewBox": [ "0", "0", - "448", + "480", "512" ], - "width": 448, + "width": 480, "height": 512, - "path": "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z" + "path": "M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z" } }, "free": [ @@ -36685,7 +38131,7 @@ "brands" ], "unicode": "f1a8", - "label": "Alternate Pied Piper Logo", + "label": "Alternate Pied Piper Logo (Old)", "voted": false, "svg": { "brands": { @@ -36720,7 +38166,7 @@ "brands" ], "unicode": "f4e5", - "label": "Pied Piper-hat", + "label": "Pied Piper Hat (Old)", "voted": false, "svg": { "brands": { @@ -36775,6 +38221,39 @@ "brands" ] }, + "pied-piper-square": { + "changes": [ + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f91e", + "label": "Pied Piper Square Logo (Old)", + "voted": false, + "svg": { + "brands": { + "last_modified": 1573074807768, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z" + } + }, + "free": [ + "brands" + ] + }, "piggy-bank": { "changes": [ "5.0.9", @@ -37168,6 +38647,46 @@ "solid" ] }, + "plane-slash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "airplane mode", + "canceled", + "covid-19", + "delayed", + "grounded", + "travel" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f969", + "label": "Plane Slash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438634, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z" + } + }, + "free": [ + "solid" + ] + }, "play": { "changes": [ "1", @@ -37303,7 +38822,8 @@ "plug": { "changes": [ "4.2", - "5.0.0" + "5.0.0", + "5.12.0" ], "ligatures": [], "search": { @@ -37322,8 +38842,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861442, - "raw": "", + "last_modified": 1573074807849, + "raw": "", "viewBox": [ "0", "0", @@ -37332,7 +38852,7 @@ ], "width": 384, "height": 512, - "path": "M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z" + "path": "M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z" } }, "free": [ @@ -38033,7 +39553,8 @@ "changes": [ "1", "5.0.0", - "5.3.0" + "5.3.0", + "5.11.0" ], "ligatures": [], "search": { @@ -38184,6 +39705,89 @@ "solid" ] }, + "pump-medical": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "anti-bacterial", + "clean", + "covid-19", + "disinfect", + "hygiene", + "medical grade", + "sanitizer", + "soap" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f96a", + "label": "Pump Medical", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438634, + "raw": "", + "viewBox": [ + "0", + "0", + "384", + "512" + ], + "width": 384, + "height": 512, + "path": "M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z" + } + }, + "free": [ + "solid" + ] + }, + "pump-soap": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "anti-bacterial", + "clean", + "covid-19", + "disinfect", + "hygiene", + "sanitizer", + "soap" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f96b", + "label": "Pump Soap", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438635, + "raw": "", + "viewBox": [ + "0", + "0", + "384", + "512" + ], + "width": 384, + "height": 512, + "path": "M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z" + } + }, + "free": [ + "solid" + ] + }, "pushed": { "changes": [ "5.0.0" @@ -38725,7 +40329,9 @@ "radiation": { "changes": [ "5.6.0", - "5.8.2" + "5.8.2", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -38767,7 +40373,9 @@ "radiation-alt": { "changes": [ "5.6.0", - "5.8.2" + "5.8.2", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -39128,6 +40736,46 @@ "solid" ] }, + "record-vinyl": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [ + "LP", + "album", + "analog", + "music", + "phonograph", + "sound" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f8d9", + "label": "Record Vinyl", + "voted": false, + "svg": { + "solid": { + "last_modified": 1568817883963, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z" + } + }, + "free": [ + "solid" + ] + }, "recycle": { "changes": [ "4.1", @@ -40008,7 +41656,8 @@ }, "robot": { "changes": [ - "5.0.13" + "5.0.13", + "5.12.0" ], "ligatures": [], "search": { @@ -40027,8 +41676,8 @@ "voted": true, "svg": { "solid": { - "last_modified": 1546440861448, - "raw": "", + "last_modified": 1573074807850, + "raw": "", "viewBox": [ "0", "0", @@ -40037,7 +41686,7 @@ ], "width": 640, "height": 512, - "path": "M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z" + "path": "M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z" } }, "free": [ @@ -40048,7 +41697,8 @@ "changes": [ "3.1", "5.0.0", - "5.7.0" + "5.7.0", + "5.12.0" ], "ligatures": [], "search": { @@ -40069,8 +41719,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1548697859202, - "raw": "", + "last_modified": 1573074807850, + "raw": "", "viewBox": [ "0", "0", @@ -40079,7 +41729,7 @@ ], "width": 512, "height": 512, - "path": "M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z" + "path": "M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z" } }, "free": [ @@ -40468,7 +42118,8 @@ }, "running": { "changes": [ - "5.4.0" + "5.4.0", + "5.11.0" ], "ligatures": [], "search": { @@ -40548,7 +42199,9 @@ }, "sad-cry": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -40601,7 +42254,9 @@ }, "sad-tear": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -40655,7 +42310,8 @@ "safari": { "changes": [ "4.4", - "5.0.0" + "5.0.0", + "5.12.0" ], "ligatures": [], "search": { @@ -40671,8 +42327,8 @@ "voted": false, "svg": { "brands": { - "last_modified": 1546440861018, - "raw": "", + "last_modified": 1571943996851, + "raw": "\n", "viewBox": [ "0", "0", @@ -40681,7 +42337,7 @@ ], "width": 512, "height": 512, - "path": "M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z" + "path": "M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z" } }, "free": [ @@ -40757,7 +42413,8 @@ "satellite": { "changes": [ "5.6.0", - "5.10.1" + "5.10.1", + "5.12.0" ], "ligatures": [], "search": { @@ -40776,8 +42433,8 @@ "voted": true, "svg": { "solid": { - "last_modified": 1546440861450, - "raw": "", + "last_modified": 1573074807851, + "raw": "", "viewBox": [ "0", "0", @@ -40786,7 +42443,7 @@ ], "width": 512, "height": 512, - "path": "M502.7 265l-80.3-80.4 47.8-47.9c13.1-13.1 13.1-34.4 0-47.5l-47.5-47.5c-13.1-13.1-34.4-13.1-47.5 0l-47.8 47.9-80.3-80.3C240.8 3.1 232.7 0 224.5 0S208.2 3.1 202 9.3L105.3 106c-12.4 12.4-12.4 32.6 0 45.1l80.3 80.4-9.8 9.8C122.1 217 59.6 218.6 7.3 246.7c-8.5 4.6-9.6 16.4-2.8 23.2L112 377.4l-17.8 17.8c-2.6-.7-5-1.6-7.8-1.6-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32c0-2.8-.9-5.2-1.6-7.8l17.8-17.8 107.5 107.5c6.8 6.8 18.7 5.7 23.2-2.8 28.1-52.3 29.7-114.8 5.4-168.5l9.9-9.9 80.3 80.4c6.2 6.2 14.4 9.3 22.5 9.3s16.3-3.1 22.5-9.3l96.7-96.7c12.5-12.4 12.5-32.6.1-45zm-352-136.5l73.8-73.8 68.9 68.9-73.8 73.8-68.9-68.9zm232.8 232.8l-68.9-68.9 73.8-73.8 68.9 68.9-73.8 73.8z" + "path": "M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z" } }, "free": [ @@ -40795,7 +42452,8 @@ }, "satellite-dish": { "changes": [ - "5.6.0" + "5.6.0", + "5.12.0" ], "ligatures": [], "search": { @@ -40805,7 +42463,8 @@ "hardware", "receiver", "saucer", - "signal" + "signal", + "space" ] }, "styles": [ @@ -40816,8 +42475,8 @@ "voted": true, "svg": { "solid": { - "last_modified": 1546440861450, - "raw": "", + "last_modified": 1573074807850, + "raw": "", "viewBox": [ "0", "0", @@ -40826,7 +42485,7 @@ ], "width": 512, "height": 512, - "path": "M188.8 345.9l27.4-27.4c2.6.7 5 1.6 7.8 1.6 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 2.8.9 5.2 1.6 7.8l-27.4 27.4L49.4 206.5c-7.3-7.3-20.1-6.1-25 3-41.8 77.8-29.9 176.7 35.7 242.3 65.6 65.6 164.6 77.5 242.3 35.7 9.2-4.9 10.4-17.7 3-25L188.8 345.9zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z" + "path": "M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z" } }, "free": [ @@ -41533,7 +43192,8 @@ }, "shapes": { "changes": [ - "5.2.0" + "5.2.0", + "5.12.0" ], "ligatures": [], "search": { @@ -41553,8 +43213,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861452, - "raw": "", + "last_modified": 1571943996859, + "raw": "\n", "viewBox": [ "0", "0", @@ -41563,7 +43223,7 @@ ], "width": 512, "height": 512, - "path": "M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z" + "path": "M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z" } }, "free": [ @@ -41819,11 +43479,52 @@ "solid" ] }, + "shield-virus": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "antibodies", + "barrier", + "covid-19", + "health", + "protect" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f96c", + "label": "Shield Virus", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438635, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z" + } + }, + "free": [ + "solid" + ] + }, "ship": { "changes": [ "4.3", "5.0.0", - "5.10.2" + "5.10.2", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -41971,6 +43672,39 @@ "solid" ] }, + "shopify": { + "changes": [ + "5.12.1" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f957", + "label": "Shopify", + "voted": false, + "svg": { + "brands": { + "last_modified": 1581349336591, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z" + } + }, + "free": [ + "brands" + ] + }, "shopping-bag": { "changes": [ "4.5", @@ -42128,7 +43862,8 @@ "shower": { "changes": [ "4.7", - "5.0.0" + "5.0.0", + "5.12.0" ], "ligatures": [], "search": { @@ -42147,8 +43882,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861454, - "raw": "", + "last_modified": 1573074807852, + "raw": "", "viewBox": [ "0", "0", @@ -42157,7 +43892,7 @@ ], "width": 512, "height": 512, - "path": "M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z" + "path": "M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z" } }, "free": [ @@ -43184,7 +44919,9 @@ "3.1", "5.0.0", "5.0.9", - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -43239,7 +44976,9 @@ }, "smile-beam": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -43292,7 +45031,9 @@ }, "smile-wink": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -43772,6 +45513,45 @@ "solid" ] }, + "soap": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "bubbles", + "clean", + "covid-19", + "hygiene", + "wash" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f96e", + "label": "Soap", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438635, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z" + } + }, + "free": [ + "solid" + ] + }, "socks": { "changes": [ "5.3.0", @@ -44571,6 +46351,7 @@ "machine", "nasa", "rocket", + "space", "transportation" ] }, @@ -45354,7 +47135,9 @@ }, "star-half-alt": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -45394,7 +47177,9 @@ }, "star-of-david": { "changes": [ - "5.3.0" + "5.3.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -45606,7 +47391,9 @@ "changes": [ "1", "5.0.0", - "5.10.2" + "5.10.2", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -45647,7 +47434,9 @@ "changes": [ "1", "5.0.0", - "5.10.2" + "5.10.2", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -45691,6 +47480,7 @@ "ligatures": [], "search": { "terms": [ + "covid-19", "diagnosis", "doctor", "general practitioner", @@ -45947,9 +47737,54 @@ "solid" ] }, + "stopwatch-20": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "ABCs", + "countdown", + "covid-19", + "happy birthday", + "i will survive", + "reminder", + "seconds", + "time", + "timer" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f96f", + "label": "Stopwatch 20", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438635, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z" + } + }, + "free": [ + "solid" + ] + }, "store": { "changes": [ - "5.0.13" + "5.0.13", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -46023,6 +47858,86 @@ "solid" ] }, + "store-alt-slash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "building", + "buy", + "closed", + "covid-19", + "purchase", + "shopping" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f970", + "label": "Alternate Store Slash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438635, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z" + } + }, + "free": [ + "solid" + ] + }, + "store-slash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "building", + "buy", + "closed", + "covid-19", + "purchase", + "shopping" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f971", + "label": "Store Slash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438636, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z" + } + }, + "free": [ + "solid" + ] + }, "strava": { "changes": [ "5.0.0", @@ -46722,7 +48637,9 @@ }, "surprise": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -46812,7 +48729,9 @@ }, "swatchbook": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -46832,23 +48751,55 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861465, - "raw": "", + "last_modified": 1568817883965, + "raw": " \n", "viewBox": [ "0", "0", - "511", + "512", "512" ], - "width": 511, + "width": 512, "height": 512, - "path": "M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z" + "path": "M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z" } }, "free": [ "solid" ] }, + "swift": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f8e1", + "label": "Swift", + "svg": { + "brands": { + "last_modified": 1568817883852, + "raw": "", + "viewBox": [ + "0", + "0", + "448", + "512" + ], + "width": 448, + "height": 512, + "path": "M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z" + } + }, + "free": [ + "brands" + ] + }, "swimmer": { "changes": [ "5.1.0" @@ -47087,6 +49038,7 @@ "ligatures": [], "search": { "terms": [ + "covid-19", "doctor", "immunizations", "medical", @@ -47747,6 +49699,7 @@ "search": { "terms": [ "cook", + "covid-19", "mercury", "summer", "thermometer", @@ -47787,6 +49740,7 @@ "terms": [ "cold", "cool", + "covid-19", "mercury", "thermometer", "winter" @@ -48283,6 +50237,7 @@ "ligatures": [], "search": { "terms": [ + "covid-19", "mercury", "status", "temperature" @@ -48744,7 +50699,9 @@ "changes": [ "1", "5.0.0", - "5.0.13" + "5.0.13", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -48929,7 +50886,9 @@ }, "tired": { "changes": [ - "5.1.0" + "5.1.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -49110,6 +51069,7 @@ "search": { "terms": [ "bathroom", + "covid-19", "halloween", "holiday", "lavatory", @@ -49143,6 +51103,51 @@ "solid" ] }, + "toilet-paper-slash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "bathroom", + "covid-19", + "halloween", + "holiday", + "lavatory", + "leaves", + "prank", + "restroom", + "roll", + "trouble", + "ut oh" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f972", + "label": "Toilet Paper Slash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438636, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z" + } + }, + "free": [ + "solid" + ] + }, "toolbox": { "changes": [ "5.0.13" @@ -49489,6 +51494,44 @@ "solid" ] }, + "trailer": { + "changes": [ + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [ + "carry", + "haul", + "moving", + "travel" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f941", + "label": "Trailer", + "voted": true, + "svg": { + "solid": { + "last_modified": 1573074807855, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z" + } + }, + "free": [ + "solid" + ] + }, "train": { "changes": [ "4.3", @@ -49606,7 +51649,8 @@ "transgender-alt": { "changes": [ "4.3", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -49930,7 +51974,8 @@ "trophy": { "changes": [ "1", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -50310,7 +52355,8 @@ "tv": { "changes": [ "4.4", - "5.0.0" + "5.0.0", + "5.11.0" ], "ligatures": [], "search": { @@ -50329,8 +52375,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1546440861478, - "raw": "", + "last_modified": 1568817883966, + "raw": "", "viewBox": [ "0", "0", @@ -50339,7 +52385,7 @@ ], "width": 640, "height": 512, - "path": "M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z" + "path": "M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z" } }, "free": [ @@ -50349,7 +52395,8 @@ "twitch": { "changes": [ "4.2", - "5.0.0" + "5.0.0", + "5.12.0" ], "ligatures": [], "search": { @@ -50363,17 +52410,17 @@ "voted": false, "svg": { "brands": { - "last_modified": 1546440861025, - "raw": "", + "last_modified": 1571943996851, + "raw": "\n", "viewBox": [ "0", "0", - "448", + "512", "512" ], - "width": 448, + "width": 512, "height": 512, - "path": "M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z" + "path": "M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z" } }, "free": [ @@ -50591,6 +52638,38 @@ "brands" ] }, + "umbraco": { + "changes": [ + "5.11.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f8e8", + "label": "Umbraco", + "svg": { + "brands": { + "last_modified": 1568817883852, + "raw": "", + "viewBox": [ + "0", + "0", + "510", + "512" + ], + "width": 510, + "height": 512, + "path": "M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z" + } + }, + "free": [ + "brands" + ] + }, "umbrella": { "changes": [ "2", @@ -50826,6 +52905,39 @@ "brands" ] }, + "unity": { + "changes": [ + "5.12.0" + ], + "ligatures": [], + "search": { + "terms": [] + }, + "styles": [ + "brands" + ], + "unicode": "f949", + "label": "Unity 3D", + "voted": true, + "svg": { + "brands": { + "last_modified": 1573074807769, + "raw": "", + "viewBox": [ + "0", + "0", + "576", + "512" + ], + "width": 576, + "height": 512, + "path": "M498.11,206.4,445.31,14.72,248.2,66.08,219,116.14l-59.2-.43L15.54,256,159.82,396.32l59.17-.43,29.24,50,197.08,51.36,52.8-191.62-30-49.63ZM223.77,124.2,374.55,86.51,288,232.33H114.87Zm0,263.63L114.87,279.71H288l86.55,145.81Zm193,14L330.17,256l86.58-145.84L458.56,256Z" + } + }, + "free": [ + "brands" + ] + }, "universal-access": { "changes": [ "4.6", @@ -50871,7 +52983,9 @@ "changes": [ "4.1", "5.0.0", - "5.0.3" + "5.0.3", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -51395,7 +53509,9 @@ "4.7", "5.0.0", "5.0.3", - "5.0.11" + "5.0.11", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -51736,6 +53852,7 @@ "ligatures": [], "search": { "terms": [ + "covid-19", "job", "medical", "nurse", @@ -51848,11 +53965,13 @@ }, "user-nurse": { "changes": [ - "5.7.0" + "5.7.0", + "5.12.0" ], "ligatures": [], "search": { "terms": [ + "covid-19", "doctor", "midwife", "practitioner", @@ -51867,8 +53986,8 @@ "voted": false, "svg": { "solid": { - "last_modified": 1548701300095, - "raw": "", + "last_modified": 1573074807857, + "raw": "", "viewBox": [ "0", "0", @@ -51877,7 +53996,7 @@ ], "width": 448, "height": 512, - "path": "M57.78 288h82.36c22.51 19.68 51.62 32 83.86 32s61.35-12.32 83.86-32h82.36a16 16 0 0 0 14.28-23.18c-15.23-29.85-31.28-62.23-42.15-95.54C354.78 146.09 352 121.59 352 97.2V48L224 0 96 48v49.2c0 24.39-2.75 48.89-10.33 72.08C74.78 202.59 58.73 235 43.5 264.82A16 16 0 0 0 57.78 288zM184 71.67a5 5 0 0 1 5-5h21.67V45a5 5 0 0 1 5-5h16.66a5 5 0 0 1 5 5v21.67H259a5 5 0 0 1 5 5v16.66a5 5 0 0 1-5 5h-21.67V115a5 5 0 0 1-5 5h-16.66a5 5 0 0 1-5-5V93.33H189a5 5 0 0 1-5-5zM144 160h160v32a80 80 0 0 1-160 0zm175.41 160L224 415.39 128.59 320C57.1 323.1 0 381.6 0 453.79A58.21 58.21 0 0 0 58.21 512h331.58A58.21 58.21 0 0 0 448 453.79C448 381.6 390.9 323.1 319.41 320z" + "path": "M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z" } }, "free": [ @@ -52480,7 +54599,9 @@ "venus": { "changes": [ "4.3", - "5.0.0" + "5.0.0", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -53059,6 +55180,130 @@ "brands" ] }, + "virus": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "bug", + "covid-19", + "flu", + "health", + "sick", + "viral" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f974", + "label": "Virus", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438637, + "raw": "", + "viewBox": [ + "0", + "0", + "512", + "512" + ], + "width": 512, + "height": 512, + "path": "M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z" + } + }, + "free": [ + "solid" + ] + }, + "virus-slash": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "bug", + "covid-19", + "cure", + "eliminate", + "flu", + "health", + "sick", + "viral" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f975", + "label": "Virus Slash", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438636, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M114,227.56H92.44a28.44,28.44,0,0,0,0,56.88H114c50.68,0,76.06,61.28,40.23,97.12L139,396.81A28.44,28.44,0,1,0,179.19,437l15.25-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-26.61,17-45.91,38.22-53.37l-244.5-189A55.58,55.58,0,0,1,114,227.56ZM633.82,458.09,470.62,332c4.17-25.39,24.91-47.52,55.39-47.52h21.55a28.44,28.44,0,1,0,0-56.88H526c-50.68,0-76.06-61.28-40.23-97.12L501,115.19A28.44,28.44,0,0,0,460.81,75L445.56,90.22c-35.84,35.84-97.11,10.46-97.11-40.23V28.45a28.45,28.45,0,0,0-56.9,0V50c0,50.69-61.27,76.07-97.11,40.23L179.19,75A28.43,28.43,0,0,0,139,75c-.13.14-.15.32-.28.46L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM335.43,227.48l-62.87-48.59A46.55,46.55,0,0,1,288,176a48,48,0,0,1,48,48C336,225.22,335.52,226.29,335.43,227.48Z" + } + }, + "free": [ + "solid" + ] + }, + "viruses": { + "changes": [ + "5.13.0" + ], + "ligatures": [], + "search": { + "terms": [ + "bugs", + "covid-19", + "flu", + "health", + "multiply", + "sick", + "spread", + "viral" + ] + }, + "styles": [ + "solid" + ], + "unicode": "f976", + "label": "Viruses", + "voted": false, + "svg": { + "solid": { + "last_modified": 1584714438637, + "raw": "", + "viewBox": [ + "0", + "0", + "640", + "512" + ], + "width": 640, + "height": 512, + "path": "M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z" + } + }, + "free": [ + "solid" + ] + }, "vk": { "changes": [ "3.2", @@ -54027,7 +56272,8 @@ "4.2", "5.0.0", "5.3.0", - "5.10.1" + "5.10.1", + "5.11.1" ], "ligatures": [], "search": { @@ -54439,7 +56685,9 @@ "changes": [ "5.0.9", "5.1.0", - "5.10.1" + "5.10.1", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -54481,7 +56729,9 @@ "wine-glass-alt": { "changes": [ "5.1.0", - "5.10.1" + "5.10.1", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { @@ -55332,7 +57582,9 @@ "yin-yang": { "changes": [ "5.3.0", - "5.10.2" + "5.10.2", + "5.11.0", + "5.11.1" ], "ligatures": [], "search": { diff --git a/htdocs/theme/common/fontawesome-5/metadata/icons.yml b/htdocs/theme/common/fontawesome-5/metadata/icons.yml index 0f36260bf22..8518e2104cc 100644 --- a/htdocs/theme/common/fontawesome-5/metadata/icons.yml +++ b/htdocs/theme/common/fontawesome-5/metadata/icons.yml @@ -110,6 +110,7 @@ adjust: - '1' - 5.0.0 - 5.10.2 + - 5.11.0 label: adjust search: terms: @@ -321,6 +322,7 @@ ambulance: label: ambulance search: terms: + - covid-19 - emergency - emt - er @@ -363,6 +365,7 @@ anchor: changes: - '3.1' - 5.0.0 + - 5.11.0 label: Anchor search: terms: @@ -382,6 +385,7 @@ android: changes: - '3.2' - 5.0.0 + - 5.12.0 label: Android search: terms: @@ -485,6 +489,7 @@ angle-left: changes: - '3' - 5.0.0 + - 5.11.0 label: angle-left search: terms: @@ -501,6 +506,7 @@ angle-right: changes: - '3' - 5.0.0 + - 5.11.0 label: angle-right search: terms: @@ -531,6 +537,8 @@ angle-up: angry: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Angry Face search: terms: @@ -883,6 +891,7 @@ arrows-alt-h: arrows-alt-v: changes: - 5.0.0 + - 5.11.0 label: Alternate Arrows Vertical search: terms: @@ -996,13 +1005,18 @@ atlassian: atom: changes: - 5.2.0 + - 5.12.0 label: Atom search: terms: - atheism - chemistry + - electron - ion + - isotope + - neutron - nuclear + - proton - science styles: - solid @@ -1177,6 +1191,20 @@ bacon: - solid unicode: f7e5 voted: false +bahai: + changes: + - 5.3.0 + - 5.12.0 + label: Bahá'í + search: + terms: + - bahai + - bahá'í + - star + styles: + - solid + unicode: f666 + voted: false balance-scale: changes: - '4.4' @@ -1197,6 +1225,8 @@ balance-scale: balance-scale-left: changes: - 5.0.13 + - 5.9.0 + - 5.12.0 label: Balance Scale (Left-Weighted) search: terms: @@ -1212,6 +1242,8 @@ balance-scale-left: balance-scale-right: changes: - 5.0.13 + - 5.9.0 + - 5.12.0 label: Balance Scale (Right-Weighted) search: terms: @@ -1313,6 +1345,8 @@ bars: baseball-ball: changes: - 5.0.5 + - 5.11.0 + - 5.11.1 label: Baseball Ball search: terms: @@ -1330,6 +1364,8 @@ baseball-ball: basketball-ball: changes: - 5.0.5 + - 5.11.0 + - 5.11.1 label: Basketball Ball search: terms: @@ -1345,6 +1381,7 @@ bath: changes: - '4.7' - 5.0.0 + - 5.12.0 label: Bath search: terms: @@ -1446,6 +1483,7 @@ bed: search: terms: - lodging + - mattress - rest - sleep - travel @@ -1502,6 +1540,7 @@ bell: - '2' - 5.0.0 - 5.2.0 + - 5.11.0 label: bell search: terms: @@ -1630,6 +1669,7 @@ biohazard: label: Biohazard search: terms: + - covid-19 - danger - dangerous - hazmat @@ -1757,6 +1797,7 @@ blind: changes: - '4.6' - 5.0.0 + - 5.11.0 label: Blind search: terms: @@ -2070,6 +2111,8 @@ border-style: bowling-ball: changes: - 5.0.5 + - 5.11.0 + - 5.11.1 label: Bowling Ball search: terms: @@ -2113,6 +2156,23 @@ box-open: - solid unicode: f49e voted: false +box-tissue: + changes: + - 5.13.0 + label: Tissue Box + search: + terms: + - cough + - covid-19 + - kleenex + - mucus + - nose + - sneeze + - snot + styles: + - solid + unicode: f95b + voted: false boxes: changes: - 5.0.7 @@ -2147,6 +2207,7 @@ brain: changes: - 5.2.0 - 5.9.0 + - 5.11.0 label: Brain search: terms: @@ -2424,6 +2485,15 @@ business-time: - solid unicode: f64a voted: false +buy-n-large: + changes: + - 5.11.0 + label: Buy n Large + search: + terms: [] + styles: + - brands + unicode: f8a6 buysellads: changes: - '4.3' @@ -2440,6 +2510,7 @@ calculator: - '4.2' - 5.0.0 - 5.3.0 + - 5.11.0 label: Calculator search: terms: @@ -2775,6 +2846,8 @@ car: car-alt: changes: - 5.2.0 + - 5.11.0 + - 5.11.1 label: Alternate Car search: terms: @@ -2836,6 +2909,21 @@ car-side: - solid unicode: f5e4 voted: false +caravan: + changes: + - 5.12.0 + label: Caravan + search: + terms: + - camper + - motor home + - rv + - trailer + - travel + styles: + - solid + unicode: f8ff + voted: true caret-down: changes: - '2' @@ -3203,6 +3291,7 @@ certificate: chair: changes: - 5.4.0 + - 5.11.0 label: Chair search: terms: @@ -3800,6 +3889,7 @@ clinic-medical: label: Medical Clinic search: terms: + - covid-19 - doctor - general practitioner - hospital @@ -3870,6 +3960,7 @@ clock: changes: - '1' - 5.0.0 + - 5.12.1 label: Clock search: terms: @@ -3889,6 +3980,7 @@ clone: changes: - '4.4' - 5.0.0 + - 5.11.0 label: Clone search: terms: @@ -4468,6 +4560,8 @@ compact-disc: changes: - 5.0.13 - 5.10.1 + - 5.11.0 + - 5.11.1 label: Compact Disc search: terms: @@ -4491,6 +4585,8 @@ compass: - '3.2' - 5.0.0 - 5.2.0 + - 5.11.0 + - 5.11.1 label: Compass search: terms: @@ -4523,6 +4619,25 @@ compress: - solid unicode: f066 voted: false +compress-alt: + changes: + - '1' + - 5.0.0 + - 5.12.0 + label: Alternate Compress + search: + terms: + - collapse + - fullscreen + - minimize + - move + - resize + - shrink + - smaller + styles: + - solid + unicode: f422 + voted: false compress-arrows-alt: changes: - 5.6.0 @@ -5096,6 +5211,16 @@ d-and-d-beyond: - brands unicode: f6ca voted: false +dailymotion: + changes: + - 5.12.1 + label: dailymotion + search: + terms: [] + styles: + - brands + unicode: f952 + voted: true dashcube: changes: - '4.3' @@ -5458,6 +5583,7 @@ digital-tachograph: directions: changes: - 5.2.0 + - 5.11.0 label: Directions search: terms: @@ -5490,6 +5616,23 @@ discourse: - brands unicode: f393 voted: false +disease: + changes: + - 5.7.0 + label: Disease + search: + terms: + - bacteria + - cancer + - covid-19 + - illness + - infection + - sickness + - virus + styles: + - solid + unicode: f7fa + voted: false divide: changes: - 5.0.13 @@ -5507,6 +5650,8 @@ divide: dizzy: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Dizzy Face search: terms: @@ -5559,6 +5704,7 @@ docker: dog: changes: - 5.4.0 + - 5.12.0 label: Dog search: terms: @@ -5579,6 +5725,8 @@ dollar-sign: - '3.2' - 5.0.0 - 5.0.9 + - 5.11.0 + - 5.11.1 label: Dollar Sign search: terms: @@ -5798,6 +5946,7 @@ dropbox: drum: changes: - 5.1.0 + - 5.11.0 label: Drum search: terms: @@ -5961,6 +6110,7 @@ edge: changes: - '4.5' - 5.0.0 + - 5.12.1 label: Edge Browser search: terms: @@ -6149,6 +6299,7 @@ envelope-open-text: changes: - 5.3.0 - 5.10.1 + - 5.12.0 label: Envelope Open-text search: terms: @@ -6392,6 +6543,22 @@ expand: - solid unicode: f065 voted: false +expand-alt: + changes: + - '1' + - 5.0.0 + - 5.12.0 + label: Alternate Expand + search: + terms: + - arrow + - bigger + - enlarge + - resize + styles: + - solid + unicode: f424 + voted: false expand-arrows-alt: changes: - 5.0.0 @@ -6422,6 +6589,7 @@ expeditedssl: external-link-alt: changes: - 5.0.0 + - 5.11.0 label: Alternate External Link search: terms: @@ -6622,11 +6790,29 @@ fast-forward: - solid unicode: f050 voted: false +faucet: + changes: + - 5.12.0 + label: Faucet + search: + terms: + - covid-19 + - drip + - house + - hygiene + - kitchen + - sink + - water + styles: + - solid + unicode: f905 + voted: false fax: changes: - '4.1' - 5.0.0 - 5.3.0 + - 5.11.0 label: Fax search: terms: @@ -7191,6 +7377,8 @@ filter: - '2' - 5.0.0 - 5.10.1 + - 5.11.0 + - 5.11.1 label: Filter search: terms: @@ -7278,6 +7466,7 @@ firefox: - '4.4' - 5.0.0 - 5.0.1 + - 5.12.0 label: Firefox search: terms: @@ -7286,6 +7475,17 @@ firefox: - brands unicode: f269 voted: false +firefox-browser: + changes: + - 5.12.0 + label: Firefox Browser + search: + terms: + - browser + styles: + - brands + unicode: f907 + voted: false first-aid: changes: - 5.0.7 @@ -7462,6 +7662,8 @@ flipboard: flushed: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Flushed Face search: terms: @@ -7539,6 +7741,8 @@ folder-open: folder-plus: changes: - 5.3.0 + - 5.11.0 + - 5.12.1 label: Folder Plus search: terms: @@ -7644,6 +7848,8 @@ fonticons-fi: football-ball: changes: - 5.0.5 + - 5.11.0 + - 5.11.1 label: Football Ball search: terms: @@ -7720,7 +7926,8 @@ free-code-camp: changes: - '4.7' - 5.0.0 - label: Free Code Camp + - 5.12.0 + label: freeCodeCamp search: terms: [] styles: @@ -7763,6 +7970,8 @@ frown: - 5.0.0 - 5.0.9 - 5.1.0 + - 5.11.0 + - 5.11.1 label: Frowning Face search: terms: @@ -7779,6 +7988,8 @@ frown: frown-open: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Frowning Face With Open Mouth search: terms: @@ -7862,13 +8073,16 @@ gamepad: changes: - '3.1' - 5.0.0 + - 5.11.0 label: Gamepad search: terms: + - arcade - controller - d-pad - joystick - video + - video game styles: - solid unicode: f11b @@ -7925,6 +8139,8 @@ genderless: changes: - '4.4' - 5.0.0 + - 5.11.0 + - 5.11.1 label: Genderless search: terms: @@ -8242,6 +8458,8 @@ globe: - '2' - 5.0.0 - 5.0.9 + - 5.11.0 + - 5.11.1 label: Globe search: terms: @@ -8268,6 +8486,8 @@ globe: globe-africa: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Globe with Africa shown search: terms: @@ -8293,6 +8513,8 @@ globe-africa: globe-americas: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Globe with Americas shown search: terms: @@ -8318,6 +8540,8 @@ globe-americas: globe-asia: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Globe with Asia shown search: terms: @@ -8343,6 +8567,8 @@ globe-asia: globe-europe: changes: - 5.6.0 + - 5.11.0 + - 5.11.1 label: Globe with Europe shown search: terms: @@ -8493,6 +8719,7 @@ gopuram: changes: - 5.3.0 - 5.7.0 + - 5.11.0 label: Gopuram search: terms: @@ -8579,6 +8806,8 @@ greater-than-equal: grimace: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Grimacing Face search: terms: @@ -8594,6 +8823,8 @@ grimace: grin: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Grinning Face search: terms: @@ -8609,6 +8840,8 @@ grin: grin-alt: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Alternate Grinning Face search: terms: @@ -8624,6 +8857,8 @@ grin-alt: grin-beam: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Grinning Face With Smiling Eyes search: terms: @@ -8639,6 +8874,8 @@ grin-beam: grin-beam-sweat: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Grinning Face With Sweat search: terms: @@ -8654,6 +8891,8 @@ grin-beam-sweat: grin-hearts: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Smiling Face With Heart-Eyes search: terms: @@ -8669,6 +8908,8 @@ grin-hearts: grin-squint: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Grinning Squinting Face search: terms: @@ -8699,6 +8940,8 @@ grin-squint-tears: grin-stars: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Star-Struck search: terms: @@ -8727,6 +8970,8 @@ grin-tears: grin-tongue: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Face With Tongue search: terms: @@ -8741,6 +8986,8 @@ grin-tongue: grin-tongue-squint: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Squinting Face With Tongue search: terms: @@ -8755,6 +9002,9 @@ grin-tongue-squint: grin-tongue-wink: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 + - 5.12.0 label: Winking Face With Tongue search: terms: @@ -8770,6 +9020,8 @@ grin-wink: changes: - 5.1.0 - 5.1.1 + - 5.11.0 + - 5.11.1 label: Grinning Winking Face search: terms: @@ -8816,6 +9068,8 @@ grip-lines: grip-lines-vertical: changes: - 5.6.0 + - 5.11.0 + - 5.11.1 label: Grip Lines Vertical search: terms: @@ -8866,6 +9120,7 @@ grunt: guitar: changes: - 5.6.0 + - 5.11.0 label: Guitar search: terms: @@ -9017,9 +9272,24 @@ hand-holding-heart: - solid unicode: f4be voted: false +hand-holding-medical: + changes: + - 5.13.0 + label: Hand Holding Medical Cross + search: + terms: + - care + - covid-19 + - donate + - help + styles: + - solid + unicode: f95c + voted: false hand-holding-usd: changes: - 5.0.9 + - 5.11.0 label: Hand Holding US Dollar search: terms: @@ -9035,6 +9305,21 @@ hand-holding-usd: - solid unicode: f4c0 voted: false +hand-holding-water: + changes: + - 5.0.9 + label: Hand Holding Water + search: + terms: + - carry + - covid-19 + - drought + - grow + - lift + styles: + - solid + unicode: f4c1 + voted: false hand-lizard: changes: - '4.4' @@ -9052,6 +9337,8 @@ hand-lizard: hand-middle-finger: changes: - 5.7.0 + - 5.11.0 + - 5.11.1 label: Hand with Middle Finger Raised search: terms: @@ -9204,10 +9491,27 @@ hand-scissors: - regular unicode: f257 voted: false +hand-sparkles: + changes: + - 5.13.0 + label: Hand Sparkles + search: + terms: + - clean + - covid-19 + - hygiene + - magic + - soap + - wash + styles: + - solid + unicode: f95d + voted: false hand-spock: changes: - '4.4' - 5.0.0 + - 5.12.0 label: Spock (Hand) search: terms: @@ -9249,6 +9553,20 @@ hands-helping: - solid unicode: f4c4 voted: false +hands-wash: + changes: + - 5.13.0 + label: Hands Wash + search: + terms: + - covid-19 + - hygiene + - soap + - wash + styles: + - solid + unicode: f95e + voted: false handshake: changes: - '4.7' @@ -9266,6 +9584,32 @@ handshake: - regular unicode: f2b5 voted: false +handshake-alt-slash: + changes: + - 5.13.0 + label: Handshake Alternate Slash + search: + terms: + - broken + - covid-19 + - social distance + styles: + - solid + unicode: f95f + voted: false +handshake-slash: + changes: + - 5.13.0 + label: Handshake Slash + search: + terms: + - broken + - covid-19 + - social distance + styles: + - solid + unicode: f960 + voted: false hanukiah: changes: - 5.4.0 @@ -9311,9 +9655,52 @@ hashtag: - solid unicode: f292 voted: false +hat-cowboy: + changes: + - 5.11.0 + label: Cowboy Hat + search: + terms: + - buckaroo + - horse + - jackeroo + - john b. + - old west + - pardner + - ranch + - rancher + - rodeo + - western + - wrangler + styles: + - solid + unicode: f8c0 + voted: false +hat-cowboy-side: + changes: + - 5.11.0 + label: Cowboy Hat Side + search: + terms: + - buckaroo + - horse + - jackeroo + - john b. + - old west + - pardner + - ranch + - rancher + - rodeo + - western + - wrangler + styles: + - solid + unicode: f8c1 + voted: false hat-wizard: changes: - 5.4.0 + - 5.11.0 label: Wizard's Hat search: terms: @@ -9335,19 +9722,6 @@ hat-wizard: - solid unicode: f6e8 voted: false -haykal: - changes: - - 5.3.0 - label: Haykal - search: - terms: - - bahai - - bahá'í - - star - styles: - - solid - unicode: f666 - voted: false hdd: changes: - '2' @@ -9367,6 +9741,67 @@ hdd: - regular unicode: f0a0 voted: false +head-side-cough: + changes: + - 5.13.0 + label: Head Side Cough + search: + terms: + - cough + - covid-19 + - germs + - lungs + - respiratory + - sick + styles: + - solid + unicode: f961 + voted: false +head-side-cough-slash: + changes: + - 5.13.0 + label: Head Side-cough-slash + search: + terms: + - cough + - covid-19 + - germs + - lungs + - respiratory + - sick + styles: + - solid + unicode: f962 + voted: false +head-side-mask: + changes: + - 5.13.0 + label: Head Side Mask + search: + terms: + - breath + - covid-19 + - filter + - respirator + - virus + styles: + - solid + unicode: f963 + voted: false +head-side-virus: + changes: + - 5.13.0 + label: Head Side Virus + search: + terms: + - cold + - covid-19 + - flu + - sick + styles: + - solid + unicode: f964 + voted: false heading: changes: - '4.1' @@ -9706,6 +10141,7 @@ hospital: search: terms: - building + - covid-19 - emergency room - medical center styles: @@ -9720,6 +10156,7 @@ hospital-alt: search: terms: - building + - covid-19 - emergency room - medical center styles: @@ -9733,12 +10170,28 @@ hospital-symbol: search: terms: - clinic + - covid-19 - emergency - map styles: - solid unicode: f47e voted: false +hospital-user: + changes: + - 5.7.0 + label: Hospital with User + search: + terms: + - covid-19 + - doctor + - network + - patient + - primary care + styles: + - solid + unicode: f80d + voted: false hot-tub: changes: - 5.1.0 @@ -9884,6 +10337,20 @@ house-damage: - solid unicode: f6f1 voted: false +house-user: + changes: + - 5.13.0 + label: House User + search: + terms: + - covid-19 + - home + - isolation + - quarantine + styles: + - solid + unicode: f965 + voted: false houzz: changes: - '4.4' @@ -9950,6 +10417,8 @@ i-cursor: ice-cream: changes: - 5.7.0 + - 5.11.0 + - 5.11.1 label: Ice Cream search: terms: @@ -10053,6 +10522,16 @@ id-card-alt: - solid unicode: f47f voted: false +ideal: + changes: + - 5.12.0 + label: iDeal + search: + terms: [] + styles: + - brands + unicode: f913 + voted: true igloo: changes: - 5.6.0 @@ -10224,6 +10703,16 @@ instagram: - brands unicode: f16d voted: false +instagram-square: + changes: + - 5.12.1 + label: Instagram Square + search: + terms: [] + styles: + - brands + unicode: f955 + voted: true intercom: changes: - 5.6.0 @@ -10427,6 +10916,7 @@ joomla: journal-whills: changes: - 5.3.0 + - 5.11.0 label: Journal of the Whills search: terms: @@ -10519,6 +11009,7 @@ keybase: - 5.0.11 - 5.8.0 - 5.10.2 + - 5.11.0 label: Keybase search: terms: [] @@ -10592,6 +11083,8 @@ kiss: changes: - 5.1.0 - 5.1.1 + - 5.11.0 + - 5.11.1 label: Kissing Face search: terms: @@ -10608,6 +11101,8 @@ kiss: kiss-beam: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Kissing Face With Smiling Eyes search: terms: @@ -10624,6 +11119,8 @@ kiss-beam: kiss-wink-heart: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Face Blowing a Kiss search: terms: @@ -10734,6 +11231,22 @@ laptop-code: - solid unicode: f5fc voted: false +laptop-house: + changes: + - 5.13.0 + label: Laptop House + search: + terms: + - computer + - covid-19 + - device + - office + - remote + - work from home + styles: + - solid + unicode: f966 + voted: false laptop-medical: changes: - 5.7.0 @@ -10753,6 +11266,7 @@ laravel: changes: - 5.0.0 - 5.0.3 + - 5.11.2 label: Laravel search: terms: [] @@ -10786,6 +11300,8 @@ lastfm-square: laugh: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Grinning Face With Big Eyes search: terms: @@ -10802,6 +11318,8 @@ laugh: laugh-beam: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Laugh Face with Beaming Eyes search: terms: @@ -10818,6 +11336,8 @@ laugh-beam: laugh-squint: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Laughing Squinting Face search: terms: @@ -10834,6 +11354,8 @@ laugh-squint: laugh-wink: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Laughing Winking Face search: terms: @@ -11301,6 +11823,35 @@ luggage-cart: - solid unicode: f59d voted: false +lungs: + changes: + - 5.2.0 + label: Lungs + search: + terms: + - air + - breath + - covid-19 + - organ + - respiratory + styles: + - solid + unicode: f604 + voted: false +lungs-virus: + changes: + - 5.13.0 + label: Lungs Virus + search: + terms: + - breath + - covid-19 + - respiratory + - sick + styles: + - solid + unicode: f967 + voted: false lyft: changes: - 5.0.0 @@ -11651,6 +12202,7 @@ mars-stroke-h: changes: - '4.3' - 5.0.0 + - 5.11.0 label: Mars Stroke Horizontal search: terms: [] @@ -11662,6 +12214,7 @@ mars-stroke-v: changes: - '4.3' - 5.0.0 + - 5.11.0 label: Mars Stroke Vertical search: terms: [] @@ -11708,6 +12261,15 @@ maxcdn: - brands unicode: f136 voted: false +mdb: + changes: + - 5.11.0 + label: Material Design for Bootstrap + search: + terms: [] + styles: + - brands + unicode: f8ca medal: changes: - 5.1.0 @@ -11806,6 +12368,8 @@ meh: - 5.0.0 - 5.0.9 - 5.1.0 + - 5.11.0 + - 5.11.1 label: Neutral Face search: terms: @@ -11821,6 +12385,8 @@ meh: meh-blank: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Face Without Mouth search: terms: @@ -11836,6 +12402,8 @@ meh-blank: meh-rolling-eyes: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Face With Rolling Eyes search: terms: @@ -11893,6 +12461,7 @@ mercury: changes: - '4.3' - 5.0.0 + - 5.11.0 label: Mercury search: terms: @@ -11904,6 +12473,7 @@ mercury: meteor: changes: - 5.5.0 + - 5.12.0 label: Meteor search: terms: @@ -11916,6 +12486,16 @@ meteor: - solid unicode: f753 voted: false +microblog: + changes: + - 5.12.0 + label: Micro.blog + search: + terms: [] + styles: + - brands + unicode: f91a + voted: true microchip: changes: - '4.7' @@ -12010,6 +12590,7 @@ microscope: label: Microscope search: terms: + - covid-19 - electron - lens - optics @@ -12123,6 +12704,16 @@ mixcloud: - brands unicode: f289 voted: false +mixer: + changes: + - 5.12.1 + label: Mixer + search: + terms: [] + styles: + - brands + unicode: f956 + voted: true mizuni: changes: - 5.0.0 @@ -12319,6 +12910,8 @@ moon: changes: - '3.2' - 5.0.0 + - 5.11.0 + - 5.11.1 label: Moon search: terms: @@ -12395,6 +12988,21 @@ mountain: - solid unicode: f6fc voted: false +mouse: + changes: + - 5.11.0 + label: Mouse + search: + terms: + - click + - computer + - cursor + - input + - peripheral + styles: + - solid + unicode: f8cc + voted: true mouse-pointer: changes: - '4.4' @@ -12434,6 +13042,7 @@ music: - '1' - 5.0.0 - 5.2.0 + - 5.11.0 label: Music search: terms: @@ -12486,6 +13095,7 @@ neuter: changes: - '4.3' - 5.0.0 + - 5.11.0 label: Neuter search: terms: [] @@ -12749,6 +13359,15 @@ optin-monster: - brands unicode: f23c voted: false +orcid: + changes: + - 5.11.0 + label: ORCID + search: + terms: [] + styles: + - brands + unicode: f8d2 osi: changes: - 5.0.0 @@ -13105,6 +13724,8 @@ paypal: peace: changes: - 5.3.0 + - 5.11.0 + - 5.11.1 label: Peace search: terms: @@ -13238,6 +13859,22 @@ penny-arcade: - brands unicode: f704 voted: false +people-arrows: + changes: + - 5.13.0 + label: People Arrows + search: + terms: + - covid-19 + - personal space + - social distance + - space + - spread + - users + styles: + - solid + unicode: f968 + voted: false people-carry: changes: - 5.0.9 @@ -13505,6 +14142,7 @@ pied-piper: - '4.6' - 5.0.0 - 5.0.10 + - 5.12.0 label: Pied Piper Logo search: terms: [] @@ -13517,7 +14155,7 @@ pied-piper-alt: - '4.1' - 5.0.0 - 5.7.0 - label: Alternate Pied Piper Logo + label: Alternate Pied Piper Logo (Old) search: terms: [] styles: @@ -13527,7 +14165,7 @@ pied-piper-alt: pied-piper-hat: changes: - 5.0.10 - label: Pied Piper-hat + label: Pied Piper Hat (Old) search: terms: - clothing @@ -13546,6 +14184,16 @@ pied-piper-pp: - brands unicode: f1a7 voted: false +pied-piper-square: + changes: + - 5.12.0 + label: Pied Piper Square Logo (Old) + search: + terms: [] + styles: + - brands + unicode: f91e + voted: false piggy-bank: changes: - 5.0.9 @@ -13702,6 +14350,22 @@ plane-departure: - solid unicode: f5b0 voted: false +plane-slash: + changes: + - 5.13.0 + label: Plane Slash + search: + terms: + - airplane mode + - canceled + - covid-19 + - delayed + - grounded + - travel + styles: + - solid + unicode: f969 + voted: false play: changes: - '1' @@ -13753,6 +14417,7 @@ plug: changes: - '4.2' - 5.0.0 + - 5.12.0 label: Plug search: terms: @@ -14037,6 +14702,7 @@ print: - '1' - 5.0.0 - 5.3.0 + - 5.11.0 label: print search: terms: @@ -14092,6 +14758,41 @@ project-diagram: - solid unicode: f542 voted: false +pump-medical: + changes: + - 5.13.0 + label: Pump Medical + search: + terms: + - anti-bacterial + - clean + - covid-19 + - disinfect + - hygiene + - medical grade + - sanitizer + - soap + styles: + - solid + unicode: f96a + voted: false +pump-soap: + changes: + - 5.13.0 + label: Pump Soap + search: + terms: + - anti-bacterial + - clean + - covid-19 + - disinfect + - hygiene + - sanitizer + - soap + styles: + - solid + unicode: f96b + voted: false pushed: changes: - 5.0.0 @@ -14290,6 +14991,8 @@ radiation: changes: - 5.6.0 - 5.8.2 + - 5.11.0 + - 5.11.1 label: Radiation search: terms: @@ -14308,6 +15011,8 @@ radiation-alt: changes: - 5.6.0 - 5.8.2 + - 5.11.0 + - 5.11.1 label: Alternate Radiation search: terms: @@ -14434,6 +15139,22 @@ receipt: - solid unicode: f543 voted: true +record-vinyl: + changes: + - 5.11.0 + label: Record Vinyl + search: + terms: + - LP + - album + - analog + - music + - phonograph + - sound + styles: + - solid + unicode: f8d9 + voted: false recycle: changes: - '4.1' @@ -14758,6 +15479,7 @@ road: robot: changes: - 5.0.13 + - 5.12.0 label: Robot search: terms: @@ -14774,6 +15496,7 @@ rocket: - '3.1' - 5.0.0 - 5.7.0 + - 5.12.0 label: rocket search: terms: @@ -14932,6 +15655,7 @@ ruler-vertical: running: changes: - 5.4.0 + - 5.11.0 label: Running search: terms: @@ -14964,6 +15688,8 @@ rupee-sign: sad-cry: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Crying Face search: terms: @@ -14979,6 +15705,8 @@ sad-cry: sad-tear: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Loudly Crying Face search: terms: @@ -14995,6 +15723,7 @@ safari: changes: - '4.4' - 5.0.0 + - 5.12.0 label: Safari search: terms: @@ -15027,6 +15756,7 @@ satellite: changes: - 5.6.0 - 5.10.1 + - 5.12.0 label: Satellite search: terms: @@ -15041,6 +15771,7 @@ satellite: satellite-dish: changes: - 5.6.0 + - 5.12.0 label: Satellite Dish search: terms: @@ -15050,6 +15781,7 @@ satellite-dish: - receiver - saucer - signal + - space styles: - solid unicode: f7c0 @@ -15314,6 +16046,7 @@ servicestack: shapes: changes: - 5.2.0 + - 5.12.0 label: Shapes search: terms: @@ -15417,11 +16150,28 @@ shield-alt: - solid unicode: f3ed voted: false +shield-virus: + changes: + - 5.13.0 + label: Shield Virus + search: + terms: + - antibodies + - barrier + - covid-19 + - health + - protect + styles: + - solid + unicode: f96c + voted: false ship: changes: - '4.3' - 5.0.0 - 5.10.2 + - 5.11.0 + - 5.11.1 label: Ship search: terms: @@ -15474,6 +16224,16 @@ shoe-prints: - solid unicode: f54b voted: true +shopify: + changes: + - 5.12.1 + label: Shopify + search: + terms: [] + styles: + - brands + unicode: f957 + voted: false shopping-bag: changes: - '4.5' @@ -15537,6 +16297,7 @@ shower: changes: - '4.7' - 5.0.0 + - 5.12.0 label: Shower search: terms: @@ -15951,6 +16712,8 @@ smile: - 5.0.0 - 5.0.9 - 5.1.0 + - 5.11.0 + - 5.11.1 label: Smiling Face search: terms: @@ -15968,6 +16731,8 @@ smile: smile-beam: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Beaming Face With Smiling Eyes search: terms: @@ -15983,6 +16748,8 @@ smile-beam: smile-wink: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Winking Face search: terms: @@ -16149,6 +16916,21 @@ snowplow: styles: - solid unicode: f7d2 +soap: + changes: + - 5.13.0 + label: Soap + search: + terms: + - bubbles + - clean + - covid-19 + - hygiene + - wash + styles: + - solid + unicode: f96e + voted: false socks: changes: - 5.3.0 @@ -16469,6 +17251,7 @@ space-shuttle: - machine - nasa - rocket + - space - transportation styles: - solid @@ -16739,6 +17522,8 @@ star-half: star-half-alt: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Alternate Star Half search: terms: @@ -16755,6 +17540,8 @@ star-half-alt: star-of-david: changes: - 5.3.0 + - 5.11.0 + - 5.11.1 label: Star of David search: terms: @@ -16827,6 +17614,8 @@ step-backward: - '1' - 5.0.0 - 5.10.2 + - 5.11.0 + - 5.11.1 label: step-backward search: terms: @@ -16844,6 +17633,8 @@ step-forward: - '1' - 5.0.0 - 5.10.2 + - 5.11.0 + - 5.11.1 label: step-forward search: terms: @@ -16862,6 +17653,7 @@ stethoscope: label: Stethoscope search: terms: + - covid-19 - diagnosis - doctor - general practitioner @@ -16948,9 +17740,30 @@ stopwatch: - solid unicode: f2f2 voted: false +stopwatch-20: + changes: + - 5.13.0 + label: Stopwatch 20 + search: + terms: + - ABCs + - countdown + - covid-19 + - happy birthday + - i will survive + - reminder + - seconds + - time + - timer + styles: + - solid + unicode: f96f + voted: false store: changes: - 5.0.13 + - 5.11.0 + - 5.11.1 label: Store search: terms: @@ -16976,6 +17789,38 @@ store-alt: - solid unicode: f54f voted: true +store-alt-slash: + changes: + - 5.13.0 + label: Alternate Store Slash + search: + terms: + - building + - buy + - closed + - covid-19 + - purchase + - shopping + styles: + - solid + unicode: f970 + voted: false +store-slash: + changes: + - 5.13.0 + label: Store Slash + search: + terms: + - building + - buy + - closed + - covid-19 + - purchase + - shopping + styles: + - solid + unicode: f971 + voted: false strava: changes: - 5.0.0 @@ -17238,6 +18083,8 @@ supple: surprise: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Hushed Face search: terms: @@ -17266,6 +18113,8 @@ suse: swatchbook: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Swatchbook search: terms: @@ -17278,6 +18127,15 @@ swatchbook: - solid unicode: f5c3 voted: false +swift: + changes: + - 5.11.0 + label: Swift + search: + terms: [] + styles: + - brands + unicode: f8e1 swimmer: changes: - 5.1.0 @@ -17372,6 +18230,7 @@ syringe: label: Syringe search: terms: + - covid-19 - doctor - immunizations - medical @@ -17627,6 +18486,7 @@ temperature-high: search: terms: - cook + - covid-19 - mercury - summer - thermometer @@ -17643,6 +18503,7 @@ temperature-low: terms: - cold - cool + - covid-19 - mercury - thermometer - winter @@ -17831,6 +18692,7 @@ thermometer: label: Thermometer search: terms: + - covid-19 - mercury - status - temperature @@ -18003,6 +18865,8 @@ times: - '1' - 5.0.0 - 5.0.13 + - 5.11.0 + - 5.11.1 label: Times search: terms: @@ -18078,6 +18942,8 @@ tint-slash: tired: changes: - 5.1.0 + - 5.11.0 + - 5.11.1 label: Tired Face search: terms: @@ -18147,6 +19013,7 @@ toilet-paper: search: terms: - bathroom + - covid-19 - halloween - holiday - lavatory @@ -18157,6 +19024,27 @@ toilet-paper: - solid unicode: f71e voted: false +toilet-paper-slash: + changes: + - 5.13.0 + label: Toilet Paper Slash + search: + terms: + - bathroom + - covid-19 + - halloween + - holiday + - lavatory + - leaves + - prank + - restroom + - roll + - trouble + - ut oh + styles: + - solid + unicode: f972 + voted: false toolbox: changes: - 5.0.13 @@ -18288,6 +19176,20 @@ traffic-light: - solid unicode: f637 voted: false +trailer: + changes: + - 5.12.0 + label: Trailer + search: + terms: + - carry + - haul + - moving + - travel + styles: + - solid + unicode: f941 + voted: true train: changes: - '4.3' @@ -18334,6 +19236,7 @@ transgender-alt: changes: - '4.3' - 5.0.0 + - 5.11.0 label: Alternate Transgender search: terms: @@ -18453,6 +19356,7 @@ trophy: changes: - '1' - 5.0.0 + - 5.11.0 label: trophy search: terms: @@ -18595,6 +19499,7 @@ tv: changes: - '4.4' - 5.0.0 + - 5.11.0 label: Television search: terms: @@ -18610,6 +19515,7 @@ twitch: changes: - '4.2' - 5.0.0 + - 5.12.0 label: Twitch search: terms: [] @@ -18687,6 +19593,15 @@ uikit: - brands unicode: f403 voted: false +umbraco: + changes: + - 5.11.0 + label: Umbraco + search: + terms: [] + styles: + - brands + unicode: f8e8 umbrella: changes: - '2' @@ -18779,6 +19694,16 @@ uniregistry: - brands unicode: f404 voted: false +unity: + changes: + - 5.12.0 + label: Unity 3D + search: + terms: [] + styles: + - brands + unicode: f949 + voted: true universal-access: changes: - '4.6' @@ -18801,6 +19726,8 @@ university: - '4.1' - 5.0.0 - 5.0.3 + - 5.11.0 + - 5.11.1 label: University search: terms: @@ -19001,6 +19928,8 @@ user-circle: - 5.0.0 - 5.0.3 - 5.0.11 + - 5.11.0 + - 5.11.1 label: User Circle search: terms: @@ -19134,6 +20063,7 @@ user-md: label: Doctor search: terms: + - covid-19 - job - medical - nurse @@ -19176,9 +20106,11 @@ user-ninja: user-nurse: changes: - 5.7.0 + - 5.12.0 label: Nurse search: terms: + - covid-19 - doctor - midwife - practitioner @@ -19426,6 +20358,8 @@ venus: changes: - '4.3' - 5.0.0 + - 5.11.0 + - 5.11.1 label: Venus search: terms: @@ -19627,6 +20561,58 @@ vine: - brands unicode: f1ca voted: false +virus: + changes: + - 5.13.0 + label: Virus + search: + terms: + - bug + - covid-19 + - flu + - health + - sick + - viral + styles: + - solid + unicode: f974 + voted: false +virus-slash: + changes: + - 5.13.0 + label: Virus Slash + search: + terms: + - bug + - covid-19 + - cure + - eliminate + - flu + - health + - sick + - viral + styles: + - solid + unicode: f975 + voted: false +viruses: + changes: + - 5.13.0 + label: Viruses + search: + terms: + - bugs + - covid-19 + - flu + - health + - multiply + - sick + - spread + - viral + styles: + - solid + unicode: f976 + voted: false vk: changes: - '3.2' @@ -19982,6 +20968,7 @@ wifi: - 5.0.0 - 5.3.0 - 5.10.1 + - 5.11.1 label: WiFi search: terms: @@ -20123,6 +21110,8 @@ wine-glass: - 5.0.9 - 5.1.0 - 5.10.1 + - 5.11.0 + - 5.11.1 label: Wine Glass search: terms: @@ -20141,6 +21130,8 @@ wine-glass-alt: changes: - 5.1.0 - 5.10.1 + - 5.11.0 + - 5.11.1 label: Alternate Wine Glas search: terms: @@ -20433,6 +21424,8 @@ yin-yang: changes: - 5.3.0 - 5.10.2 + - 5.11.0 + - 5.11.1 label: Yin Yang search: terms: diff --git a/htdocs/theme/common/fontawesome-5/metadata/shims.json b/htdocs/theme/common/fontawesome-5/metadata/shims.json index 1a78c9797e9..9e055269706 100644 --- a/htdocs/theme/common/fontawesome-5/metadata/shims.json +++ b/htdocs/theme/common/fontawesome-5/metadata/shims.json @@ -149,6 +149,16 @@ null, "share" ], + [ + "expand", + null, + "expand-alt" + ], + [ + "compress", + null, + "compress-alt" + ], [ "eye", "far", @@ -1144,16 +1154,16 @@ null, "car" ], - [ - "cab", - null, - "taxi" - ], [ "envelope-o", "far", "envelope" ], + [ + "spotify", + "fab", + null + ], [ "deviantart", "fab", @@ -2300,8 +2310,8 @@ null ], [ - "spotify", - "fab", - null + "cab", + null, + "taxi" ] ] \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/metadata/shims.yml b/htdocs/theme/common/fontawesome-5/metadata/shims.yml index 0313c12fa9c..a47caebb548 100644 --- a/htdocs/theme/common/fontawesome-5/metadata/shims.yml +++ b/htdocs/theme/common/fontawesome-5/metadata/shims.yml @@ -70,6 +70,8 @@ commenting: name: comment-dots compass: prefix: far +compress: + name: compress-alt copyright: prefix: far creative-commons: @@ -90,6 +92,8 @@ eur: name: euro-sign exchange: name: exchange-alt +expand: + name: expand-alt external-link: name: external-link-alt external-link-square: diff --git a/htdocs/theme/common/fontawesome-5/metadata/sponsors.yml b/htdocs/theme/common/fontawesome-5/metadata/sponsors.yml index 3c6e49175b2..74a03568a70 100644 --- a/htdocs/theme/common/fontawesome-5/metadata/sponsors.yml +++ b/htdocs/theme/common/fontawesome-5/metadata/sponsors.yml @@ -167,6 +167,11 @@ dyalog-apl: - dyalog label: Dyalog APL url: 'http://www.dyalog.com' +econopublish: + icons: + - hat-cowboy-side + label: EconoPublish + url: 'https://www.econopublish.com' firstdraft: icons: - firstdraft @@ -330,6 +335,8 @@ medapps: - clinic-medical - comment-medical - crutch + - disease + - hospital-user - laptop-medical - pager label: MedApps @@ -594,6 +601,7 @@ the-us-sunnah-foundation: - globe - hand-holding-heart - hand-holding-usd + - hand-holding-water - hands-helping - handshake - heart diff --git a/htdocs/theme/common/fontawesome-5/scss/_icons.scss b/htdocs/theme/common/fontawesome-5/scss/_icons.scss index 9cdf8b6f4ac..230366051cb 100644 --- a/htdocs/theme/common/fontawesome-5/scss/_icons.scss +++ b/htdocs/theme/common/fontawesome-5/scss/_icons.scss @@ -85,6 +85,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-backspace:before { content: fa-content($fa-var-backspace); } .#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); } .#{$fa-css-prefix}-bacon:before { content: fa-content($fa-var-bacon); } +.#{$fa-css-prefix}-bahai:before { content: fa-content($fa-var-bahai); } .#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); } .#{$fa-css-prefix}-balance-scale-left:before { content: fa-content($fa-var-balance-scale-left); } .#{$fa-css-prefix}-balance-scale-right:before { content: fa-content($fa-var-balance-scale-right); } @@ -147,6 +148,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-bowling-ball:before { content: fa-content($fa-var-bowling-ball); } .#{$fa-css-prefix}-box:before { content: fa-content($fa-var-box); } .#{$fa-css-prefix}-box-open:before { content: fa-content($fa-var-box-open); } +.#{$fa-css-prefix}-box-tissue:before { content: fa-content($fa-var-box-tissue); } .#{$fa-css-prefix}-boxes:before { content: fa-content($fa-var-boxes); } .#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); } .#{$fa-css-prefix}-brain:before { content: fa-content($fa-var-brain); } @@ -167,6 +169,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); } .#{$fa-css-prefix}-bus-alt:before { content: fa-content($fa-var-bus-alt); } .#{$fa-css-prefix}-business-time:before { content: fa-content($fa-var-business-time); } +.#{$fa-css-prefix}-buy-n-large:before { content: fa-content($fa-var-buy-n-large); } .#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); } .#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); } .#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); } @@ -189,6 +192,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-car-battery:before { content: fa-content($fa-var-car-battery); } .#{$fa-css-prefix}-car-crash:before { content: fa-content($fa-var-car-crash); } .#{$fa-css-prefix}-car-side:before { content: fa-content($fa-var-car-side); } +.#{$fa-css-prefix}-caravan:before { content: fa-content($fa-var-caravan); } .#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); } .#{$fa-css-prefix}-caret-left:before { content: fa-content($fa-var-caret-left); } .#{$fa-css-prefix}-caret-right:before { content: fa-content($fa-var-caret-right); } @@ -292,6 +296,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-compact-disc:before { content: fa-content($fa-var-compact-disc); } .#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); } .#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); } +.#{$fa-css-prefix}-compress-alt:before { content: fa-content($fa-var-compress-alt); } .#{$fa-css-prefix}-compress-arrows-alt:before { content: fa-content($fa-var-compress-arrows-alt); } .#{$fa-css-prefix}-concierge-bell:before { content: fa-content($fa-var-concierge-bell); } .#{$fa-css-prefix}-confluence:before { content: fa-content($fa-var-confluence); } @@ -335,6 +340,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-cuttlefish:before { content: fa-content($fa-var-cuttlefish); } .#{$fa-css-prefix}-d-and-d:before { content: fa-content($fa-var-d-and-d); } .#{$fa-css-prefix}-d-and-d-beyond:before { content: fa-content($fa-var-d-and-d-beyond); } +.#{$fa-css-prefix}-dailymotion:before { content: fa-content($fa-var-dailymotion); } .#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); } .#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); } .#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); } @@ -364,6 +370,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-directions:before { content: fa-content($fa-var-directions); } .#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); } .#{$fa-css-prefix}-discourse:before { content: fa-content($fa-var-discourse); } +.#{$fa-css-prefix}-disease:before { content: fa-content($fa-var-disease); } .#{$fa-css-prefix}-divide:before { content: fa-content($fa-var-divide); } .#{$fa-css-prefix}-dizzy:before { content: fa-content($fa-var-dizzy); } .#{$fa-css-prefix}-dna:before { content: fa-content($fa-var-dna); } @@ -425,6 +432,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); } .#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); } .#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); } +.#{$fa-css-prefix}-expand-alt:before { content: fa-content($fa-var-expand-alt); } .#{$fa-css-prefix}-expand-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); } .#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); } .#{$fa-css-prefix}-external-link-alt:before { content: fa-content($fa-var-external-link-alt); } @@ -440,6 +448,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-fantasy-flight-games:before { content: fa-content($fa-var-fantasy-flight-games); } .#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); } .#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); } +.#{$fa-css-prefix}-faucet:before { content: fa-content($fa-var-faucet); } .#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); } .#{$fa-css-prefix}-feather:before { content: fa-content($fa-var-feather); } .#{$fa-css-prefix}-feather-alt:before { content: fa-content($fa-var-feather-alt); } @@ -480,6 +489,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-fire-alt:before { content: fa-content($fa-var-fire-alt); } .#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); } .#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); } +.#{$fa-css-prefix}-firefox-browser:before { content: fa-content($fa-var-firefox-browser); } .#{$fa-css-prefix}-first-aid:before { content: fa-content($fa-var-first-aid); } .#{$fa-css-prefix}-first-order:before { content: fa-content($fa-var-first-order); } .#{$fa-css-prefix}-first-order-alt:before { content: fa-content($fa-var-first-order-alt); } @@ -601,7 +611,9 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-hamsa:before { content: fa-content($fa-var-hamsa); } .#{$fa-css-prefix}-hand-holding:before { content: fa-content($fa-var-hand-holding); } .#{$fa-css-prefix}-hand-holding-heart:before { content: fa-content($fa-var-hand-holding-heart); } +.#{$fa-css-prefix}-hand-holding-medical:before { content: fa-content($fa-var-hand-holding-medical); } .#{$fa-css-prefix}-hand-holding-usd:before { content: fa-content($fa-var-hand-holding-usd); } +.#{$fa-css-prefix}-hand-holding-water:before { content: fa-content($fa-var-hand-holding-water); } .#{$fa-css-prefix}-hand-lizard:before { content: fa-content($fa-var-hand-lizard); } .#{$fa-css-prefix}-hand-middle-finger:before { content: fa-content($fa-var-hand-middle-finger); } .#{$fa-css-prefix}-hand-paper:before { content: fa-content($fa-var-hand-paper); } @@ -613,16 +625,25 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-hand-pointer:before { content: fa-content($fa-var-hand-pointer); } .#{$fa-css-prefix}-hand-rock:before { content: fa-content($fa-var-hand-rock); } .#{$fa-css-prefix}-hand-scissors:before { content: fa-content($fa-var-hand-scissors); } +.#{$fa-css-prefix}-hand-sparkles:before { content: fa-content($fa-var-hand-sparkles); } .#{$fa-css-prefix}-hand-spock:before { content: fa-content($fa-var-hand-spock); } .#{$fa-css-prefix}-hands:before { content: fa-content($fa-var-hands); } .#{$fa-css-prefix}-hands-helping:before { content: fa-content($fa-var-hands-helping); } +.#{$fa-css-prefix}-hands-wash:before { content: fa-content($fa-var-hands-wash); } .#{$fa-css-prefix}-handshake:before { content: fa-content($fa-var-handshake); } +.#{$fa-css-prefix}-handshake-alt-slash:before { content: fa-content($fa-var-handshake-alt-slash); } +.#{$fa-css-prefix}-handshake-slash:before { content: fa-content($fa-var-handshake-slash); } .#{$fa-css-prefix}-hanukiah:before { content: fa-content($fa-var-hanukiah); } .#{$fa-css-prefix}-hard-hat:before { content: fa-content($fa-var-hard-hat); } .#{$fa-css-prefix}-hashtag:before { content: fa-content($fa-var-hashtag); } +.#{$fa-css-prefix}-hat-cowboy:before { content: fa-content($fa-var-hat-cowboy); } +.#{$fa-css-prefix}-hat-cowboy-side:before { content: fa-content($fa-var-hat-cowboy-side); } .#{$fa-css-prefix}-hat-wizard:before { content: fa-content($fa-var-hat-wizard); } -.#{$fa-css-prefix}-haykal:before { content: fa-content($fa-var-haykal); } .#{$fa-css-prefix}-hdd:before { content: fa-content($fa-var-hdd); } +.#{$fa-css-prefix}-head-side-cough:before { content: fa-content($fa-var-head-side-cough); } +.#{$fa-css-prefix}-head-side-cough-slash:before { content: fa-content($fa-var-head-side-cough-slash); } +.#{$fa-css-prefix}-head-side-mask:before { content: fa-content($fa-var-head-side-mask); } +.#{$fa-css-prefix}-head-side-virus:before { content: fa-content($fa-var-head-side-virus); } .#{$fa-css-prefix}-heading:before { content: fa-content($fa-var-heading); } .#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); } .#{$fa-css-prefix}-headphones-alt:before { content: fa-content($fa-var-headphones-alt); } @@ -647,6 +668,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-hospital:before { content: fa-content($fa-var-hospital); } .#{$fa-css-prefix}-hospital-alt:before { content: fa-content($fa-var-hospital-alt); } .#{$fa-css-prefix}-hospital-symbol:before { content: fa-content($fa-var-hospital-symbol); } +.#{$fa-css-prefix}-hospital-user:before { content: fa-content($fa-var-hospital-user); } .#{$fa-css-prefix}-hot-tub:before { content: fa-content($fa-var-hot-tub); } .#{$fa-css-prefix}-hotdog:before { content: fa-content($fa-var-hotdog); } .#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-hotel); } @@ -656,6 +678,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); } .#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); } .#{$fa-css-prefix}-house-damage:before { content: fa-content($fa-var-house-damage); } +.#{$fa-css-prefix}-house-user:before { content: fa-content($fa-var-house-user); } .#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); } .#{$fa-css-prefix}-hryvnia:before { content: fa-content($fa-var-hryvnia); } .#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); } @@ -667,6 +690,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); } .#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); } .#{$fa-css-prefix}-id-card-alt:before { content: fa-content($fa-var-id-card-alt); } +.#{$fa-css-prefix}-ideal:before { content: fa-content($fa-var-ideal); } .#{$fa-css-prefix}-igloo:before { content: fa-content($fa-var-igloo); } .#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); } .#{$fa-css-prefix}-images:before { content: fa-content($fa-var-images); } @@ -678,6 +702,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); } .#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); } .#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); } +.#{$fa-css-prefix}-instagram-square:before { content: fa-content($fa-var-instagram-square); } .#{$fa-css-prefix}-intercom:before { content: fa-content($fa-var-intercom); } .#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); } .#{$fa-css-prefix}-invision:before { content: fa-content($fa-var-invision); } @@ -716,6 +741,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); } .#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); } .#{$fa-css-prefix}-laptop-code:before { content: fa-content($fa-var-laptop-code); } +.#{$fa-css-prefix}-laptop-house:before { content: fa-content($fa-var-laptop-house); } .#{$fa-css-prefix}-laptop-medical:before { content: fa-content($fa-var-laptop-medical); } .#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); } .#{$fa-css-prefix}-lastfm:before { content: fa-content($fa-var-lastfm); } @@ -755,6 +781,8 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-long-arrow-alt-up:before { content: fa-content($fa-var-long-arrow-alt-up); } .#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); } .#{$fa-css-prefix}-luggage-cart:before { content: fa-content($fa-var-luggage-cart); } +.#{$fa-css-prefix}-lungs:before { content: fa-content($fa-var-lungs); } +.#{$fa-css-prefix}-lungs-virus:before { content: fa-content($fa-var-lungs-virus); } .#{$fa-css-prefix}-lyft:before { content: fa-content($fa-var-lyft); } .#{$fa-css-prefix}-magento:before { content: fa-content($fa-var-magento); } .#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); } @@ -780,6 +808,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-mask:before { content: fa-content($fa-var-mask); } .#{$fa-css-prefix}-mastodon:before { content: fa-content($fa-var-mastodon); } .#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); } +.#{$fa-css-prefix}-mdb:before { content: fa-content($fa-var-mdb); } .#{$fa-css-prefix}-medal:before { content: fa-content($fa-var-medal); } .#{$fa-css-prefix}-medapps:before { content: fa-content($fa-var-medapps); } .#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); } @@ -796,6 +825,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-menorah:before { content: fa-content($fa-var-menorah); } .#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); } .#{$fa-css-prefix}-meteor:before { content: fa-content($fa-var-meteor); } +.#{$fa-css-prefix}-microblog:before { content: fa-content($fa-var-microblog); } .#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); } .#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); } .#{$fa-css-prefix}-microphone-alt:before { content: fa-content($fa-var-microphone-alt); } @@ -809,6 +839,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-mitten:before { content: fa-content($fa-var-mitten); } .#{$fa-css-prefix}-mix:before { content: fa-content($fa-var-mix); } .#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); } +.#{$fa-css-prefix}-mixer:before { content: fa-content($fa-var-mixer); } .#{$fa-css-prefix}-mizuni:before { content: fa-content($fa-var-mizuni); } .#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); } .#{$fa-css-prefix}-mobile-alt:before { content: fa-content($fa-var-mobile-alt); } @@ -826,6 +857,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-mosque:before { content: fa-content($fa-var-mosque); } .#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); } .#{$fa-css-prefix}-mountain:before { content: fa-content($fa-var-mountain); } +.#{$fa-css-prefix}-mouse:before { content: fa-content($fa-var-mouse); } .#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); } .#{$fa-css-prefix}-mug-hot:before { content: fa-content($fa-var-mug-hot); } .#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); } @@ -853,6 +885,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); } .#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); } .#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); } +.#{$fa-css-prefix}-orcid:before { content: fa-content($fa-var-orcid); } .#{$fa-css-prefix}-osi:before { content: fa-content($fa-var-osi); } .#{$fa-css-prefix}-otter:before { content: fa-content($fa-var-otter); } .#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); } @@ -886,6 +919,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); } .#{$fa-css-prefix}-pencil-ruler:before { content: fa-content($fa-var-pencil-ruler); } .#{$fa-css-prefix}-penny-arcade:before { content: fa-content($fa-var-penny-arcade); } +.#{$fa-css-prefix}-people-arrows:before { content: fa-content($fa-var-people-arrows); } .#{$fa-css-prefix}-people-carry:before { content: fa-content($fa-var-people-carry); } .#{$fa-css-prefix}-pepper-hot:before { content: fa-content($fa-var-pepper-hot); } .#{$fa-css-prefix}-percent:before { content: fa-content($fa-var-percent); } @@ -907,6 +941,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-pied-piper-alt:before { content: fa-content($fa-var-pied-piper-alt); } .#{$fa-css-prefix}-pied-piper-hat:before { content: fa-content($fa-var-pied-piper-hat); } .#{$fa-css-prefix}-pied-piper-pp:before { content: fa-content($fa-var-pied-piper-pp); } +.#{$fa-css-prefix}-pied-piper-square:before { content: fa-content($fa-var-pied-piper-square); } .#{$fa-css-prefix}-piggy-bank:before { content: fa-content($fa-var-piggy-bank); } .#{$fa-css-prefix}-pills:before { content: fa-content($fa-var-pills); } .#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); } @@ -917,6 +952,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); } .#{$fa-css-prefix}-plane-arrival:before { content: fa-content($fa-var-plane-arrival); } .#{$fa-css-prefix}-plane-departure:before { content: fa-content($fa-var-plane-departure); } +.#{$fa-css-prefix}-plane-slash:before { content: fa-content($fa-var-plane-slash); } .#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); } .#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); } .#{$fa-css-prefix}-playstation:before { content: fa-content($fa-var-playstation); } @@ -942,6 +978,8 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-procedures:before { content: fa-content($fa-var-procedures); } .#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); } .#{$fa-css-prefix}-project-diagram:before { content: fa-content($fa-var-project-diagram); } +.#{$fa-css-prefix}-pump-medical:before { content: fa-content($fa-var-pump-medical); } +.#{$fa-css-prefix}-pump-soap:before { content: fa-content($fa-var-pump-soap); } .#{$fa-css-prefix}-pushed:before { content: fa-content($fa-var-pushed); } .#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); } .#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); } @@ -967,6 +1005,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-readme:before { content: fa-content($fa-var-readme); } .#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); } .#{$fa-css-prefix}-receipt:before { content: fa-content($fa-var-receipt); } +.#{$fa-css-prefix}-record-vinyl:before { content: fa-content($fa-var-record-vinyl); } .#{$fa-css-prefix}-recycle:before { content: fa-content($fa-var-recycle); } .#{$fa-css-prefix}-red-river:before { content: fa-content($fa-var-red-river); } .#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); } @@ -1036,10 +1075,12 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); } .#{$fa-css-prefix}-shekel-sign:before { content: fa-content($fa-var-shekel-sign); } .#{$fa-css-prefix}-shield-alt:before { content: fa-content($fa-var-shield-alt); } +.#{$fa-css-prefix}-shield-virus:before { content: fa-content($fa-var-shield-virus); } .#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); } .#{$fa-css-prefix}-shipping-fast:before { content: fa-content($fa-var-shipping-fast); } .#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); } .#{$fa-css-prefix}-shoe-prints:before { content: fa-content($fa-var-shoe-prints); } +.#{$fa-css-prefix}-shopify:before { content: fa-content($fa-var-shopify); } .#{$fa-css-prefix}-shopping-bag:before { content: fa-content($fa-var-shopping-bag); } .#{$fa-css-prefix}-shopping-basket:before { content: fa-content($fa-var-shopping-basket); } .#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); } @@ -1085,6 +1126,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-snowflake:before { content: fa-content($fa-var-snowflake); } .#{$fa-css-prefix}-snowman:before { content: fa-content($fa-var-snowman); } .#{$fa-css-prefix}-snowplow:before { content: fa-content($fa-var-snowplow); } +.#{$fa-css-prefix}-soap:before { content: fa-content($fa-var-soap); } .#{$fa-css-prefix}-socks:before { content: fa-content($fa-var-socks); } .#{$fa-css-prefix}-solar-panel:before { content: fa-content($fa-var-solar-panel); } .#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); } @@ -1140,8 +1182,11 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); } .#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); } .#{$fa-css-prefix}-stopwatch:before { content: fa-content($fa-var-stopwatch); } +.#{$fa-css-prefix}-stopwatch-20:before { content: fa-content($fa-var-stopwatch-20); } .#{$fa-css-prefix}-store:before { content: fa-content($fa-var-store); } .#{$fa-css-prefix}-store-alt:before { content: fa-content($fa-var-store-alt); } +.#{$fa-css-prefix}-store-alt-slash:before { content: fa-content($fa-var-store-alt-slash); } +.#{$fa-css-prefix}-store-slash:before { content: fa-content($fa-var-store-slash); } .#{$fa-css-prefix}-strava:before { content: fa-content($fa-var-strava); } .#{$fa-css-prefix}-stream:before { content: fa-content($fa-var-stream); } .#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); } @@ -1163,6 +1208,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-surprise:before { content: fa-content($fa-var-surprise); } .#{$fa-css-prefix}-suse:before { content: fa-content($fa-var-suse); } .#{$fa-css-prefix}-swatchbook:before { content: fa-content($fa-var-swatchbook); } +.#{$fa-css-prefix}-swift:before { content: fa-content($fa-var-swift); } .#{$fa-css-prefix}-swimmer:before { content: fa-content($fa-var-swimmer); } .#{$fa-css-prefix}-swimming-pool:before { content: fa-content($fa-var-swimming-pool); } .#{$fa-css-prefix}-symfony:before { content: fa-content($fa-var-symfony); } @@ -1220,6 +1266,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-toggle-on:before { content: fa-content($fa-var-toggle-on); } .#{$fa-css-prefix}-toilet:before { content: fa-content($fa-var-toilet); } .#{$fa-css-prefix}-toilet-paper:before { content: fa-content($fa-var-toilet-paper); } +.#{$fa-css-prefix}-toilet-paper-slash:before { content: fa-content($fa-var-toilet-paper-slash); } .#{$fa-css-prefix}-toolbox:before { content: fa-content($fa-var-toolbox); } .#{$fa-css-prefix}-tools:before { content: fa-content($fa-var-tools); } .#{$fa-css-prefix}-tooth:before { content: fa-content($fa-var-tooth); } @@ -1229,6 +1276,7 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-trade-federation:before { content: fa-content($fa-var-trade-federation); } .#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); } .#{$fa-css-prefix}-traffic-light:before { content: fa-content($fa-var-traffic-light); } +.#{$fa-css-prefix}-trailer:before { content: fa-content($fa-var-trailer); } .#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); } .#{$fa-css-prefix}-tram:before { content: fa-content($fa-var-tram); } .#{$fa-css-prefix}-transgender:before { content: fa-content($fa-var-transgender); } @@ -1258,12 +1306,14 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-uber:before { content: fa-content($fa-var-uber); } .#{$fa-css-prefix}-ubuntu:before { content: fa-content($fa-var-ubuntu); } .#{$fa-css-prefix}-uikit:before { content: fa-content($fa-var-uikit); } +.#{$fa-css-prefix}-umbraco:before { content: fa-content($fa-var-umbraco); } .#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); } .#{$fa-css-prefix}-umbrella-beach:before { content: fa-content($fa-var-umbrella-beach); } .#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); } .#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); } .#{$fa-css-prefix}-undo-alt:before { content: fa-content($fa-var-undo-alt); } .#{$fa-css-prefix}-uniregistry:before { content: fa-content($fa-var-uniregistry); } +.#{$fa-css-prefix}-unity:before { content: fa-content($fa-var-unity); } .#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); } .#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); } .#{$fa-css-prefix}-unlink:before { content: fa-content($fa-var-unlink); } @@ -1321,6 +1371,9 @@ readers do not read off random characters that represent icons */ .#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); } .#{$fa-css-prefix}-vimeo-v:before { content: fa-content($fa-var-vimeo-v); } .#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); } +.#{$fa-css-prefix}-virus:before { content: fa-content($fa-var-virus); } +.#{$fa-css-prefix}-virus-slash:before { content: fa-content($fa-var-virus-slash); } +.#{$fa-css-prefix}-viruses:before { content: fa-content($fa-var-viruses); } .#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); } .#{$fa-css-prefix}-vnv:before { content: fa-content($fa-var-vnv); } .#{$fa-css-prefix}-voicemail:before { content: fa-content($fa-var-voicemail); } diff --git a/htdocs/theme/common/fontawesome-5/scss/_shims.scss b/htdocs/theme/common/fontawesome-5/scss/_shims.scss index c7110812bea..d1753445c94 100644 --- a/htdocs/theme/common/fontawesome-5/scss/_shims.scss +++ b/htdocs/theme/common/fontawesome-5/scss/_shims.scss @@ -124,6 +124,10 @@ .#{$fa-css-prefix}.#{$fa-css-prefix}-mail-forward:before { content: fa-content($fa-var-share); } +.#{$fa-css-prefix}.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress-alt); } + .#{$fa-css-prefix}.#{$fa-css-prefix}-eye { font-family: 'Font Awesome 5 Free'; font-weight: 400; @@ -954,14 +958,17 @@ .#{$fa-css-prefix}.#{$fa-css-prefix}-automobile:before { content: fa-content($fa-var-car); } -.#{$fa-css-prefix}.#{$fa-css-prefix}-cab:before { content: fa-content($fa-var-taxi); } - .#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o { font-family: 'Font Awesome 5 Free'; font-weight: 400; } .#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o:before { content: fa-content($fa-var-envelope); } +.#{$fa-css-prefix}.#{$fa-css-prefix}-spotify { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + .#{$fa-css-prefix}.#{$fa-css-prefix}-deviantart { font-family: 'Font Awesome 5 Brands'; font-weight: 400; @@ -2055,8 +2062,5 @@ font-weight: 400; } -.#{$fa-css-prefix}.#{$fa-css-prefix}-spotify { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; -} +.#{$fa-css-prefix}.#{$fa-css-prefix}-cab:before { content: fa-content($fa-var-taxi); } diff --git a/htdocs/theme/common/fontawesome-5/scss/_variables.scss b/htdocs/theme/common/fontawesome-5/scss/_variables.scss index 999536c3eac..fad7705d887 100644 --- a/htdocs/theme/common/fontawesome-5/scss/_variables.scss +++ b/htdocs/theme/common/fontawesome-5/scss/_variables.scss @@ -3,9 +3,9 @@ $fa-font-path: "../webfonts" !default; $fa-font-size-base: 16px !default; -$fa-font-display: auto !default; +$fa-font-display: block !default; $fa-css-prefix: fa !default; -$fa-version: "5.10.2" !default; +$fa-version: "5.13.0" !default; $fa-border-color: #eee !default; $fa-inverse: #fff !default; $fa-li-width: 2em !default; @@ -102,6 +102,7 @@ $fa-var-baby-carriage: \f77d; $fa-var-backspace: \f55a; $fa-var-backward: \f04a; $fa-var-bacon: \f7e5; +$fa-var-bahai: \f666; $fa-var-balance-scale: \f24e; $fa-var-balance-scale-left: \f515; $fa-var-balance-scale-right: \f516; @@ -164,6 +165,7 @@ $fa-var-border-style: \f853; $fa-var-bowling-ball: \f436; $fa-var-box: \f466; $fa-var-box-open: \f49e; +$fa-var-box-tissue: \f95b; $fa-var-boxes: \f468; $fa-var-braille: \f2a1; $fa-var-brain: \f5dc; @@ -184,6 +186,7 @@ $fa-var-buromobelexperte: \f37f; $fa-var-bus: \f207; $fa-var-bus-alt: \f55e; $fa-var-business-time: \f64a; +$fa-var-buy-n-large: \f8a6; $fa-var-buysellads: \f20d; $fa-var-calculator: \f1ec; $fa-var-calendar: \f133; @@ -206,6 +209,7 @@ $fa-var-car-alt: \f5de; $fa-var-car-battery: \f5df; $fa-var-car-crash: \f5e1; $fa-var-car-side: \f5e4; +$fa-var-caravan: \f8ff; $fa-var-caret-down: \f0d7; $fa-var-caret-left: \f0d9; $fa-var-caret-right: \f0da; @@ -309,6 +313,7 @@ $fa-var-comments-dollar: \f653; $fa-var-compact-disc: \f51f; $fa-var-compass: \f14e; $fa-var-compress: \f066; +$fa-var-compress-alt: \f422; $fa-var-compress-arrows-alt: \f78c; $fa-var-concierge-bell: \f562; $fa-var-confluence: \f78d; @@ -352,6 +357,7 @@ $fa-var-cut: \f0c4; $fa-var-cuttlefish: \f38c; $fa-var-d-and-d: \f38d; $fa-var-d-and-d-beyond: \f6ca; +$fa-var-dailymotion: \f952; $fa-var-dashcube: \f210; $fa-var-database: \f1c0; $fa-var-deaf: \f2a4; @@ -381,6 +387,7 @@ $fa-var-digital-tachograph: \f566; $fa-var-directions: \f5eb; $fa-var-discord: \f392; $fa-var-discourse: \f393; +$fa-var-disease: \f7fa; $fa-var-divide: \f529; $fa-var-dizzy: \f567; $fa-var-dna: \f471; @@ -442,6 +449,7 @@ $fa-var-exclamation: \f12a; $fa-var-exclamation-circle: \f06a; $fa-var-exclamation-triangle: \f071; $fa-var-expand: \f065; +$fa-var-expand-alt: \f424; $fa-var-expand-arrows-alt: \f31e; $fa-var-expeditedssl: \f23e; $fa-var-external-link-alt: \f35d; @@ -457,6 +465,7 @@ $fa-var-fan: \f863; $fa-var-fantasy-flight-games: \f6dc; $fa-var-fast-backward: \f049; $fa-var-fast-forward: \f050; +$fa-var-faucet: \f905; $fa-var-fax: \f1ac; $fa-var-feather: \f52d; $fa-var-feather-alt: \f56b; @@ -497,6 +506,7 @@ $fa-var-fire: \f06d; $fa-var-fire-alt: \f7e4; $fa-var-fire-extinguisher: \f134; $fa-var-firefox: \f269; +$fa-var-firefox-browser: \f907; $fa-var-first-aid: \f479; $fa-var-first-order: \f2b0; $fa-var-first-order-alt: \f50a; @@ -618,7 +628,9 @@ $fa-var-hammer: \f6e3; $fa-var-hamsa: \f665; $fa-var-hand-holding: \f4bd; $fa-var-hand-holding-heart: \f4be; +$fa-var-hand-holding-medical: \f95c; $fa-var-hand-holding-usd: \f4c0; +$fa-var-hand-holding-water: \f4c1; $fa-var-hand-lizard: \f258; $fa-var-hand-middle-finger: \f806; $fa-var-hand-paper: \f256; @@ -630,16 +642,25 @@ $fa-var-hand-point-up: \f0a6; $fa-var-hand-pointer: \f25a; $fa-var-hand-rock: \f255; $fa-var-hand-scissors: \f257; +$fa-var-hand-sparkles: \f95d; $fa-var-hand-spock: \f259; $fa-var-hands: \f4c2; $fa-var-hands-helping: \f4c4; +$fa-var-hands-wash: \f95e; $fa-var-handshake: \f2b5; +$fa-var-handshake-alt-slash: \f95f; +$fa-var-handshake-slash: \f960; $fa-var-hanukiah: \f6e6; $fa-var-hard-hat: \f807; $fa-var-hashtag: \f292; +$fa-var-hat-cowboy: \f8c0; +$fa-var-hat-cowboy-side: \f8c1; $fa-var-hat-wizard: \f6e8; -$fa-var-haykal: \f666; $fa-var-hdd: \f0a0; +$fa-var-head-side-cough: \f961; +$fa-var-head-side-cough-slash: \f962; +$fa-var-head-side-mask: \f963; +$fa-var-head-side-virus: \f964; $fa-var-heading: \f1dc; $fa-var-headphones: \f025; $fa-var-headphones-alt: \f58f; @@ -664,6 +685,7 @@ $fa-var-horse-head: \f7ab; $fa-var-hospital: \f0f8; $fa-var-hospital-alt: \f47d; $fa-var-hospital-symbol: \f47e; +$fa-var-hospital-user: \f80d; $fa-var-hot-tub: \f593; $fa-var-hotdog: \f80f; $fa-var-hotel: \f594; @@ -673,6 +695,7 @@ $fa-var-hourglass-end: \f253; $fa-var-hourglass-half: \f252; $fa-var-hourglass-start: \f251; $fa-var-house-damage: \f6f1; +$fa-var-house-user: \f965; $fa-var-houzz: \f27c; $fa-var-hryvnia: \f6f2; $fa-var-html5: \f13b; @@ -684,6 +707,7 @@ $fa-var-icons: \f86d; $fa-var-id-badge: \f2c1; $fa-var-id-card: \f2c2; $fa-var-id-card-alt: \f47f; +$fa-var-ideal: \f913; $fa-var-igloo: \f7ae; $fa-var-image: \f03e; $fa-var-images: \f302; @@ -695,6 +719,7 @@ $fa-var-infinity: \f534; $fa-var-info: \f129; $fa-var-info-circle: \f05a; $fa-var-instagram: \f16d; +$fa-var-instagram-square: \f955; $fa-var-intercom: \f7af; $fa-var-internet-explorer: \f26b; $fa-var-invision: \f7b0; @@ -733,6 +758,7 @@ $fa-var-landmark: \f66f; $fa-var-language: \f1ab; $fa-var-laptop: \f109; $fa-var-laptop-code: \f5fc; +$fa-var-laptop-house: \f966; $fa-var-laptop-medical: \f812; $fa-var-laravel: \f3bd; $fa-var-lastfm: \f202; @@ -772,6 +798,8 @@ $fa-var-long-arrow-alt-right: \f30b; $fa-var-long-arrow-alt-up: \f30c; $fa-var-low-vision: \f2a8; $fa-var-luggage-cart: \f59d; +$fa-var-lungs: \f604; +$fa-var-lungs-virus: \f967; $fa-var-lyft: \f3c3; $fa-var-magento: \f3c4; $fa-var-magic: \f0d0; @@ -797,6 +825,7 @@ $fa-var-mars-stroke-v: \f22a; $fa-var-mask: \f6fa; $fa-var-mastodon: \f4f6; $fa-var-maxcdn: \f136; +$fa-var-mdb: \f8ca; $fa-var-medal: \f5a2; $fa-var-medapps: \f3c6; $fa-var-medium: \f23a; @@ -813,6 +842,7 @@ $fa-var-mendeley: \f7b3; $fa-var-menorah: \f676; $fa-var-mercury: \f223; $fa-var-meteor: \f753; +$fa-var-microblog: \f91a; $fa-var-microchip: \f2db; $fa-var-microphone: \f130; $fa-var-microphone-alt: \f3c9; @@ -826,6 +856,7 @@ $fa-var-minus-square: \f146; $fa-var-mitten: \f7b5; $fa-var-mix: \f3cb; $fa-var-mixcloud: \f289; +$fa-var-mixer: \f956; $fa-var-mizuni: \f3cc; $fa-var-mobile: \f10b; $fa-var-mobile-alt: \f3cd; @@ -843,6 +874,7 @@ $fa-var-mortar-pestle: \f5a7; $fa-var-mosque: \f678; $fa-var-motorcycle: \f21c; $fa-var-mountain: \f6fc; +$fa-var-mouse: \f8cc; $fa-var-mouse-pointer: \f245; $fa-var-mug-hot: \f7b6; $fa-var-music: \f001; @@ -870,6 +902,7 @@ $fa-var-opencart: \f23d; $fa-var-openid: \f19b; $fa-var-opera: \f26a; $fa-var-optin-monster: \f23c; +$fa-var-orcid: \f8d2; $fa-var-osi: \f41a; $fa-var-otter: \f700; $fa-var-outdent: \f03b; @@ -903,6 +936,7 @@ $fa-var-pen-square: \f14b; $fa-var-pencil-alt: \f303; $fa-var-pencil-ruler: \f5ae; $fa-var-penny-arcade: \f704; +$fa-var-people-arrows: \f968; $fa-var-people-carry: \f4ce; $fa-var-pepper-hot: \f816; $fa-var-percent: \f295; @@ -924,6 +958,7 @@ $fa-var-pied-piper: \f2ae; $fa-var-pied-piper-alt: \f1a8; $fa-var-pied-piper-hat: \f4e5; $fa-var-pied-piper-pp: \f1a7; +$fa-var-pied-piper-square: \f91e; $fa-var-piggy-bank: \f4d3; $fa-var-pills: \f484; $fa-var-pinterest: \f0d2; @@ -934,6 +969,7 @@ $fa-var-place-of-worship: \f67f; $fa-var-plane: \f072; $fa-var-plane-arrival: \f5af; $fa-var-plane-departure: \f5b0; +$fa-var-plane-slash: \f969; $fa-var-play: \f04b; $fa-var-play-circle: \f144; $fa-var-playstation: \f3df; @@ -959,6 +995,8 @@ $fa-var-print: \f02f; $fa-var-procedures: \f487; $fa-var-product-hunt: \f288; $fa-var-project-diagram: \f542; +$fa-var-pump-medical: \f96a; +$fa-var-pump-soap: \f96b; $fa-var-pushed: \f3e1; $fa-var-puzzle-piece: \f12e; $fa-var-python: \f3e2; @@ -984,6 +1022,7 @@ $fa-var-reacteurope: \f75d; $fa-var-readme: \f4d5; $fa-var-rebel: \f1d0; $fa-var-receipt: \f543; +$fa-var-record-vinyl: \f8d9; $fa-var-recycle: \f1b8; $fa-var-red-river: \f3e3; $fa-var-reddit: \f1a1; @@ -1053,10 +1092,12 @@ $fa-var-share-alt-square: \f1e1; $fa-var-share-square: \f14d; $fa-var-shekel-sign: \f20b; $fa-var-shield-alt: \f3ed; +$fa-var-shield-virus: \f96c; $fa-var-ship: \f21a; $fa-var-shipping-fast: \f48b; $fa-var-shirtsinbulk: \f214; $fa-var-shoe-prints: \f54b; +$fa-var-shopify: \f957; $fa-var-shopping-bag: \f290; $fa-var-shopping-basket: \f291; $fa-var-shopping-cart: \f07a; @@ -1102,6 +1143,7 @@ $fa-var-snowboarding: \f7ce; $fa-var-snowflake: \f2dc; $fa-var-snowman: \f7d0; $fa-var-snowplow: \f7d2; +$fa-var-soap: \f96e; $fa-var-socks: \f696; $fa-var-solar-panel: \f5ba; $fa-var-sort: \f0dc; @@ -1157,8 +1199,11 @@ $fa-var-sticky-note: \f249; $fa-var-stop: \f04d; $fa-var-stop-circle: \f28d; $fa-var-stopwatch: \f2f2; +$fa-var-stopwatch-20: \f96f; $fa-var-store: \f54e; $fa-var-store-alt: \f54f; +$fa-var-store-alt-slash: \f970; +$fa-var-store-slash: \f971; $fa-var-strava: \f428; $fa-var-stream: \f550; $fa-var-street-view: \f21d; @@ -1180,6 +1225,7 @@ $fa-var-supple: \f3f9; $fa-var-surprise: \f5c2; $fa-var-suse: \f7d6; $fa-var-swatchbook: \f5c3; +$fa-var-swift: \f8e1; $fa-var-swimmer: \f5c4; $fa-var-swimming-pool: \f5c5; $fa-var-symfony: \f83d; @@ -1237,6 +1283,7 @@ $fa-var-toggle-off: \f204; $fa-var-toggle-on: \f205; $fa-var-toilet: \f7d8; $fa-var-toilet-paper: \f71e; +$fa-var-toilet-paper-slash: \f972; $fa-var-toolbox: \f552; $fa-var-tools: \f7d9; $fa-var-tooth: \f5c9; @@ -1246,6 +1293,7 @@ $fa-var-tractor: \f722; $fa-var-trade-federation: \f513; $fa-var-trademark: \f25c; $fa-var-traffic-light: \f637; +$fa-var-trailer: \f941; $fa-var-train: \f238; $fa-var-tram: \f7da; $fa-var-transgender: \f224; @@ -1275,12 +1323,14 @@ $fa-var-typo3: \f42b; $fa-var-uber: \f402; $fa-var-ubuntu: \f7df; $fa-var-uikit: \f403; +$fa-var-umbraco: \f8e8; $fa-var-umbrella: \f0e9; $fa-var-umbrella-beach: \f5ca; $fa-var-underline: \f0cd; $fa-var-undo: \f0e2; $fa-var-undo-alt: \f2ea; $fa-var-uniregistry: \f404; +$fa-var-unity: \f949; $fa-var-universal-access: \f29a; $fa-var-university: \f19c; $fa-var-unlink: \f127; @@ -1338,6 +1388,9 @@ $fa-var-vimeo: \f40a; $fa-var-vimeo-square: \f194; $fa-var-vimeo-v: \f27d; $fa-var-vine: \f1ca; +$fa-var-virus: \f974; +$fa-var-virus-slash: \f975; +$fa-var-viruses: \f976; $fa-var-vk: \f189; $fa-var-vnv: \f40b; $fa-var-voicemail: \f897; diff --git a/htdocs/theme/common/fontawesome-5/scss/brands.scss b/htdocs/theme/common/fontawesome-5/scss/brands.scss index 5b2fb5fa4eb..923e1ab0f39 100644 --- a/htdocs/theme/common/fontawesome-5/scss/brands.scss +++ b/htdocs/theme/common/fontawesome-5/scss/brands.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ @import 'variables'; @@ -7,7 +7,7 @@ @font-face { font-family: 'Font Awesome 5 Brands'; font-style: normal; - font-weight: normal; + font-weight: 400; font-display: $fa-font-display; src: url('#{$fa-font-path}/fa-brands-400.eot'); src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'), @@ -19,4 +19,5 @@ .fab { font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } diff --git a/htdocs/theme/common/fontawesome-5/scss/fontawesome.scss b/htdocs/theme/common/fontawesome-5/scss/fontawesome.scss index 69d9e82808e..8a1ef35d326 100644 --- a/htdocs/theme/common/fontawesome-5/scss/fontawesome.scss +++ b/htdocs/theme/common/fontawesome-5/scss/fontawesome.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ @import 'variables'; diff --git a/htdocs/theme/common/fontawesome-5/scss/regular.scss b/htdocs/theme/common/fontawesome-5/scss/regular.scss index bb4a5f36497..44a1b262030 100644 --- a/htdocs/theme/common/fontawesome-5/scss/regular.scss +++ b/htdocs/theme/common/fontawesome-5/scss/regular.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ @import 'variables'; diff --git a/htdocs/theme/common/fontawesome-5/scss/solid.scss b/htdocs/theme/common/fontawesome-5/scss/solid.scss index d8f3f4a77e9..efa8648c87e 100644 --- a/htdocs/theme/common/fontawesome-5/scss/solid.scss +++ b/htdocs/theme/common/fontawesome-5/scss/solid.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ @import 'variables'; diff --git a/htdocs/theme/common/fontawesome-5/scss/v4-shims.scss b/htdocs/theme/common/fontawesome-5/scss/v4-shims.scss index 8fafe901ebb..6cfed37cbb1 100644 --- a/htdocs/theme/common/fontawesome-5/scss/v4-shims.scss +++ b/htdocs/theme/common/fontawesome-5/scss/v4-shims.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ @import 'variables'; diff --git a/htdocs/theme/common/fontawesome-5/sprites/brands.svg b/htdocs/theme/common/fontawesome-5/sprites/brands.svg index fd308e484b0..af8e65588cc 100644 --- a/htdocs/theme/common/fontawesome-5/sprites/brands.svg +++ b/htdocs/theme/common/fontawesome-5/sprites/brands.svg @@ -1,6 +1,6 @@ @@ -46,8 +46,8 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + @@ -151,6 +151,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -289,6 +292,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -356,7 +362,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -412,8 +418,11 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + + + + @@ -464,7 +473,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -598,12 +607,18 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + + + + @@ -656,7 +671,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -670,8 +685,8 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + @@ -721,6 +736,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -742,6 +760,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -751,6 +772,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -805,6 +829,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -841,8 +868,8 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + @@ -853,6 +880,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -941,7 +971,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -970,6 +1000,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -1078,6 +1111,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -1120,8 +1156,8 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + @@ -1141,9 +1177,15 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + + + + diff --git a/htdocs/theme/common/fontawesome-5/sprites/regular.svg b/htdocs/theme/common/fontawesome-5/sprites/regular.svg index 83b27f081ec..e50fe6185c4 100644 --- a/htdocs/theme/common/fontawesome-5/sprites/regular.svg +++ b/htdocs/theme/common/fontawesome-5/sprites/regular.svg @@ -1,6 +1,6 @@ @@ -269,7 +269,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + diff --git a/htdocs/theme/common/fontawesome-5/sprites/solid.svg b/htdocs/theme/common/fontawesome-5/sprites/solid.svg index 685155dbb87..ac5eab4b7ca 100644 --- a/htdocs/theme/common/fontawesome-5/sprites/solid.svg +++ b/htdocs/theme/common/fontawesome-5/sprites/solid.svg @@ -1,6 +1,6 @@ @@ -140,7 +140,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -163,6 +163,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -191,7 +194,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -304,6 +307,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -415,6 +421,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -572,7 +581,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -667,6 +676,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -772,6 +784,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -781,8 +796,8 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + @@ -820,8 +835,8 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + @@ -895,11 +910,14 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + - - + + @@ -922,8 +940,11 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + - + @@ -1064,7 +1085,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -1094,7 +1115,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -1217,7 +1238,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -1237,8 +1258,14 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + + + + + + + @@ -1273,8 +1300,11 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + - + @@ -1282,9 +1312,18 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + + + + + + + @@ -1294,15 +1333,30 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + + + + - - - + + + + + + + + + + + + @@ -1363,6 +1417,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -1387,6 +1444,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -1441,14 +1501,14 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + - + @@ -1486,6 +1546,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -1573,6 +1636,12 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + + + + @@ -1652,7 +1721,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -1726,6 +1795,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -1733,7 +1805,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -1840,6 +1912,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -1897,6 +1972,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -1904,7 +1982,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -1966,6 +2044,12 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + + + + @@ -2005,6 +2089,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -2045,10 +2132,10 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + - + @@ -2087,10 +2174,10 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + - + @@ -2129,7 +2216,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -2149,6 +2236,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -2168,7 +2258,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -2254,6 +2344,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -2377,12 +2470,21 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + + + + + + + @@ -2416,8 +2518,8 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - - + + @@ -2563,6 +2665,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -2587,6 +2692,9 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + @@ -2639,7 +2747,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -2723,7 +2831,7 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL - + @@ -2785,6 +2893,15 @@ License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL + + + + + + + + + diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/android.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/android.svg index 62de4106bff..f096167edf1 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/android.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/android.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/buy-n-large.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/buy-n-large.svg new file mode 100644 index 00000000000..cbb298c3a35 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/buy-n-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/dailymotion.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/dailymotion.svg new file mode 100644 index 00000000000..fd89872cc17 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/dailymotion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/edge.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/edge.svg index 70548ac783b..6796e864374 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/edge.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/edge.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/firefox-browser.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/firefox-browser.svg new file mode 100644 index 00000000000..ca2613077ed --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/firefox-browser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/firefox.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/firefox.svg index a011198f000..0f842172a58 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/firefox.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/firefox.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/free-code-camp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/free-code-camp.svg index be4d13b7eb0..626ee40baa2 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/free-code-camp.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/free-code-camp.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ideal.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ideal.svg new file mode 100644 index 00000000000..cc30e503abd --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ideal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/instagram-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/instagram-square.svg new file mode 100644 index 00000000000..55559757a36 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/instagram-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/keybase.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/keybase.svg index 8e5ae4590e6..be1135a36fa 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/keybase.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/keybase.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/laravel.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/laravel.svg index 4c7a74c942b..b360037fce4 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/laravel.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/laravel.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/mdb.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/mdb.svg new file mode 100644 index 00000000000..af962711ca2 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/mdb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/microblog.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/microblog.svg new file mode 100644 index 00000000000..b2c426cf521 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/microblog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/mixer.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/mixer.svg new file mode 100644 index 00000000000..3d08f42f18b --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/mixer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/orcid.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/orcid.svg new file mode 100644 index 00000000000..501fc76972d --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/orcid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-square.svg new file mode 100644 index 00000000000..d74fb980c71 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper.svg index d74fb980c71..53ef1a4bf7e 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/safari.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/safari.svg index 70dc86b8dcb..8f79dc95684 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/safari.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/safari.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/shopify.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/shopify.svg new file mode 100644 index 00000000000..4c5be99870d --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/shopify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/swift.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/swift.svg new file mode 100644 index 00000000000..47498ffc8d7 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/swift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/twitch.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/twitch.svg index 89a02fb6f66..11f254c88e0 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/brands/twitch.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/twitch.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/umbraco.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/umbraco.svg new file mode 100644 index 00000000000..454e1152233 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/umbraco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/unity.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/unity.svg new file mode 100644 index 00000000000..3d1b1b85aeb --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/unity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-spock.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-spock.svg index 100466704f3..a7a470d87ff 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-spock.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-spock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/atom.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/atom.svg index e6bc4a44116..2df2144c13d 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/atom.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/atom.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/haykal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bahai.svg similarity index 100% rename from htdocs/theme/common/fontawesome-5/svgs/solid/haykal.svg rename to htdocs/theme/common/fontawesome-5/svgs/solid/bahai.svg diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bath.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bath.svg index fef517b2ec4..3bf7b36bf85 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/bath.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bath.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/box-tissue.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/box-tissue.svg new file mode 100644 index 00000000000..9ea5c28e01f --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/box-tissue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caravan.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caravan.svg new file mode 100644 index 00000000000..1e80ee0bded --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caravan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/clock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/clock.svg index 6444d5b9b6e..91a5bc64acd 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/clock.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/clock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/compress-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/compress-alt.svg new file mode 100644 index 00000000000..cdb153697b3 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/compress-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/disease.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/disease.svg new file mode 100644 index 00000000000..043d7c6b200 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/disease.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dog.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dog.svg index ac7c62681e8..c3a9f638ebf 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/dog.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dog.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/drum.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/drum.svg index 71abe5bb2fa..e2ba640c8e2 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/drum.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/drum.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/expand-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/expand-alt.svg new file mode 100644 index 00000000000..05eb259352e --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/expand-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-alt.svg index cf8f0b6cacc..859914bab20 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-alt.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-alt.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/faucet.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/faucet.svg new file mode 100644 index 00000000000..18e922a853e --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/faucet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fax.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fax.svg index 12386de93da..9c9cc82327d 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/fax.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fax.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/folder-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/folder-plus.svg index 6d6bb9fa27a..5aaba5d05d5 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/folder-plus.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/folder-plus.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/gamepad.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/gamepad.svg index 047a5a37336..a1d2c131e33 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/gamepad.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/gamepad.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/guitar.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/guitar.svg index f86ead6ce26..db1f699f955 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/guitar.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/guitar.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-medical.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-medical.svg new file mode 100644 index 00000000000..907e6cb5ded --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-usd.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-usd.svg index 00f13128387..5534433a6d7 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-usd.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-usd.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-water.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-water.svg new file mode 100644 index 00000000000..36c5c92adfb --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-water.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-sparkles.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-sparkles.svg new file mode 100644 index 00000000000..7dd43a178d3 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-sparkles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-spock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-spock.svg index e884771f9a8..a8640b580f1 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-spock.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-spock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hands-wash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hands-wash.svg new file mode 100644 index 00000000000..c44c4d8aaf2 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hands-wash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/handshake-alt-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/handshake-alt-slash.svg new file mode 100644 index 00000000000..285ed856c7d --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/handshake-alt-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/handshake-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/handshake-slash.svg new file mode 100644 index 00000000000..833cd020897 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/handshake-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hat-cowboy-side.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hat-cowboy-side.svg new file mode 100644 index 00000000000..0ba999fa7c2 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hat-cowboy-side.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hat-cowboy.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hat-cowboy.svg new file mode 100644 index 00000000000..c02b9eaf13e --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hat-cowboy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-cough-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-cough-slash.svg new file mode 100644 index 00000000000..9496f7e7091 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-cough-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-cough.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-cough.svg new file mode 100644 index 00000000000..774710a5eff --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-cough.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-mask.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-mask.svg new file mode 100644 index 00000000000..b2b2b2f06be --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-mask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-virus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-virus.svg new file mode 100644 index 00000000000..d6161223691 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/head-side-virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-user.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-user.svg new file mode 100644 index 00000000000..35bd902708b --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/house-user.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/house-user.svg new file mode 100644 index 00000000000..eea549caf4f --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/house-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/jedi.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/jedi.svg index 500135b33ba..cdc724b7d5c 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/jedi.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/jedi.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/journal-whills.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/journal-whills.svg index a463f3279b3..e3593b3c283 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/journal-whills.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/journal-whills.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/laptop-house.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/laptop-house.svg new file mode 100644 index 00000000000..313248922de --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/laptop-house.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/lungs-virus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/lungs-virus.svg new file mode 100644 index 00000000000..5c4e19bd675 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/lungs-virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/lungs.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/lungs.svg new file mode 100644 index 00000000000..9f2839152da --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/lungs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/meteor.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/meteor.svg index 22cd094458c..95b3f74b460 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/meteor.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/meteor.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mouse.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mouse.svg new file mode 100644 index 00000000000..092d515b995 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mouse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/music.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/music.svg index d82b9c62f83..7ad2b9bc734 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/music.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/music.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/people-arrows.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/people-arrows.svg new file mode 100644 index 00000000000..a743c8358a9 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/people-arrows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plane-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plane-slash.svg new file mode 100644 index 00000000000..9352a4ea03b --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plane-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plug.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plug.svg index 0082e8adad3..d99cc576cbe 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/plug.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plug.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pump-medical.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pump-medical.svg new file mode 100644 index 00000000000..dedc67fe16f --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pump-medical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pump-soap.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pump-soap.svg new file mode 100644 index 00000000000..b2a0600d8ec --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pump-soap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/record-vinyl.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/record-vinyl.svg new file mode 100644 index 00000000000..b63b60c1c50 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/record-vinyl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/robot.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/robot.svg index cc0277f5c33..4d80ffa2829 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/robot.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/robot.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/rocket.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/rocket.svg index d2113500205..1d8c1cca903 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/rocket.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/rocket.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/satellite-dish.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/satellite-dish.svg index 4da9e3a9670..cb27d73fe5b 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/satellite-dish.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/satellite-dish.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/satellite.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/satellite.svg index 9230471c21d..231d520b614 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/satellite.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/satellite.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shapes.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shapes.svg index 69264a33c1c..ccedf71c6bf 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/shapes.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shapes.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shield-virus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shield-virus.svg new file mode 100644 index 00000000000..65beed6a6ac --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shield-virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shower.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shower.svg index 66ccb5769b1..4a74f9b5689 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/shower.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shower.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/soap.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/soap.svg new file mode 100644 index 00000000000..8996e199220 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/soap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/stopwatch-20.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/stopwatch-20.svg new file mode 100644 index 00000000000..dc6ee4bf28e --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/stopwatch-20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/store-alt-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/store-alt-slash.svg new file mode 100644 index 00000000000..d838b7d18bd --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/store-alt-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/store-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/store-slash.svg new file mode 100644 index 00000000000..747ac32ef32 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/store-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/swatchbook.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/swatchbook.svg index faaa6c2e852..58b8a87fcdf 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/swatchbook.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/swatchbook.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/toilet-paper-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/toilet-paper-slash.svg new file mode 100644 index 00000000000..930dd8eb09c --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/toilet-paper-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/trailer.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/trailer.svg new file mode 100644 index 00000000000..6ec4e199495 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/trailer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tv.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tv.svg index 95151f5a28e..4e33e619969 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/tv.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tv.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-nurse.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-nurse.svg index 6a54369da51..e3a4da8db8a 100644 --- a/htdocs/theme/common/fontawesome-5/svgs/solid/user-nurse.svg +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-nurse.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/virus-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/virus-slash.svg new file mode 100644 index 00000000000..2084bccac27 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/virus-slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/virus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/virus.svg new file mode 100644 index 00000000000..6a570886bd8 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/virus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/viruses.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/viruses.svg new file mode 100644 index 00000000000..1894e946e44 --- /dev/null +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/viruses.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.eot b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.eot index 85d81ebcf1d..a1bc094ab14 100644 Binary files a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.eot and b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.eot differ diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.svg b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.svg index 594d6198d2d..46ad237a619 100644 --- a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.svg +++ b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.svg @@ -1,12 +1,12 @@ -Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 +Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020 By Robert Madole Copyright (c) Font Awesome @@ -23,7 +23,7 @@ Copyright (c) Font Awesome bbox="-0.200195 -66.9505 641.5 448.3" underline-thickness="25" underline-position="-50" - unicode-range="U+0020-F89E" + unicode-range="U+0020-F957" /> - + - + +d="M274.69 173.31l-108.69 -71.3096l71.3096 108.69zM256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM411.85 265.21c-2.71094 -1.13477 -4.91211 -4.44043 -4.91211 -7.37988c0 -0.880859 0.274414 -2.25684 0.612305 -3.07031 +v0c1.12988 -2.72559 4.44043 -4.9375 7.39062 -4.9375c0.87793 0 2.24902 0.272461 3.05957 0.607422l14.75 6.11035c2.72754 1.12891 4.94141 4.44043 4.94141 7.39258c0 0.879883 -0.273438 2.25391 -0.611328 3.06738v0 +c-1.12793 2.73047 -4.44043 4.94629 -7.39453 4.94629c-0.876953 0 -2.24512 -0.271484 -3.05566 -0.606445zM314.43 354c-0.341797 -0.818359 -0.620117 -2.20117 -0.620117 -3.08789c0 -2.95215 2.21387 -6.26367 4.94043 -7.39258v0 +c0.810547 -0.334961 2.18164 -0.607422 3.05957 -0.607422c2.9502 0 6.26074 2.21191 7.39062 4.9375l6.12988 14.7803c0.335938 0.811523 0.608398 2.18164 0.608398 3.05957c0 2.9502 -2.21289 6.26172 -4.93848 7.39062v0 +c-0.813477 0.337891 -2.18848 0.612305 -3.07031 0.612305c-2.93848 0 -6.24512 -2.20117 -7.37988 -4.91211zM256 388c-4.41602 0 -8 -3.58398 -8 -8v-16c0 -4.41602 3.58398 -8 8 -8v0c4.41602 0 8 3.58398 8 8v16c0 4.41602 -3.58398 8 -8 8v0zM181 373.08 +c-2.72461 -1.12988 -4.93555 -4.44043 -4.93555 -7.38965c0 -0.869141 0.266602 -2.22656 0.595703 -3.03027l6.12988 -14.7803c1.09863 -2.80664 4.43555 -5.08398 7.44922 -5.08398c4.41602 0 8 3.58398 8 8c0 0.922852 -0.299805 2.3584 -0.668945 3.2041l-6.11035 14.75 +c-1.12891 2.72754 -4.44043 4.94141 -7.39258 4.94141c-0.879883 0 -2.25391 -0.273438 -3.06738 -0.611328zM117.42 330.59c-1.29297 -1.29297 -2.35156 -3.82617 -2.35156 -5.65527c0 -1.81445 1.03613 -4.33398 2.31152 -5.625l11.3105 -11.3096 +c1.29297 -1.29199 3.82617 -2.34082 5.6543 -2.34082s4.3623 1.04883 5.65527 2.34082v0c1.28418 1.29199 2.32617 3.81836 2.32617 5.63965c0 1.82227 -1.04199 4.34863 -2.32617 5.64062l-11.2695 11.3096c-1.29395 1.29297 -3.82715 2.3418 -5.65527 2.3418 +s-4.3623 -1.04883 -5.65527 -2.3418v0zM60 192c0 -4.41602 3.58398 -8 8 -8h16c4.41602 0 8 3.58398 8 8v0c0 4.41602 -3.58398 8 -8 8h-16c-4.41602 0 -8 -3.58398 -8 -8v0zM100.15 118.79c2.71094 1.13477 4.91211 4.44043 4.91211 7.37988 +c0 0.880859 -0.274414 2.25684 -0.612305 3.07031v0c-1.12988 2.72559 -4.44043 4.9375 -7.39062 4.9375c-0.87793 0 -2.24902 -0.272461 -3.05957 -0.607422l-14.75 -6.11035c-2.72754 -1.12891 -4.94141 -4.44043 -4.94141 -7.39258 +c0 -0.879883 0.273438 -2.25391 0.611328 -3.06738v0c1.12793 -2.73047 4.44043 -4.94629 7.39453 -4.94629c0.876953 0 2.24512 0.271484 3.05566 0.606445zM104.48 254.79c0.333008 0.80957 0.604492 2.14551 0.604492 3.02051 +c0 2.94922 -2.21094 6.25977 -4.93457 7.38965l-14.7803 6.12988c-0.811523 0.335938 -2.18164 0.608398 -3.05957 0.608398c-2.9502 0 -6.26172 -2.21289 -7.39062 -4.93848v0c-0.337891 -0.813477 -0.612305 -2.18848 -0.612305 -3.07031 +c0 -2.93848 2.20117 -6.24512 4.91211 -7.37988l14.7803 -6.12012c0.814453 -0.338867 2.19141 -0.614258 3.07422 -0.614258c2.96582 0 6.28418 2.22852 7.40625 4.97461v0zM197.57 30c0.369141 0.845703 0.668945 2.28125 0.668945 3.2041c0 4.41602 -3.58398 8 -8 8 +c-3.01367 0 -6.35059 -2.27734 -7.44922 -5.08398l-6.12988 -14.7803c-0.335938 -0.811523 -0.608398 -2.18164 -0.608398 -3.05957c0 -4.41797 3.58594 -8.00293 8.00293 -8.00293c2.95312 0 6.2666 2.21387 7.39551 4.94238zM264 4v16c0 4.41602 -3.58398 8 -8 8v0 +c-4.41602 0 -8 -3.58398 -8 -8v-16c0 -4.41602 3.58398 -8 8 -8v0c4.41602 0 8 3.58398 8 8zM331 10.9199c2.72461 1.12988 4.93555 4.44043 4.93555 7.38965c0 0.869141 -0.266602 2.22656 -0.595703 3.03027l-6.12988 14.7803 +c-1.12891 2.72559 -4.44043 4.9375 -7.39062 4.9375c-0.87793 0 -2.24805 -0.272461 -3.05957 -0.607422v0c-2.72559 -1.12988 -4.9375 -4.44043 -4.9375 -7.39062c0 -0.87793 0.272461 -2.24902 0.607422 -3.05957l6.11035 -14.75 +c1.12891 -2.72754 4.44043 -4.94141 7.39258 -4.94141c0.879883 0 2.25391 0.273438 3.06738 0.611328v0zM394.58 53.4102c1.29297 1.29297 2.35156 3.82617 2.35156 5.65527c0 1.81445 -1.03613 4.33398 -2.31152 5.625l-11.3105 11.3096 +c-1.29297 1.29199 -3.82617 2.34082 -5.6543 2.34082s-4.3623 -1.04883 -5.65527 -2.34082v0c-1.28418 -1.29199 -2.32617 -3.81836 -2.32617 -5.63965c0 -1.82227 1.04199 -4.34863 2.32617 -5.64062l11.2695 -11.3096c1.29395 -1.29297 3.82715 -2.3418 5.65527 -2.3418 +s4.3623 1.04883 5.65527 2.3418v0zM286.25 161.75l115.41 175.91l-175.91 -115.41l-115.41 -175.91zM437.08 117c0.337891 0.813477 0.612305 2.18848 0.612305 3.07031c0 2.93848 -2.20117 6.24512 -4.91211 7.37988l-14.7803 6.12012 +c-0.818359 0.341797 -2.20117 0.620117 -3.08789 0.620117c-2.95215 0 -6.26367 -2.21387 -7.39258 -4.94043v0c-0.334961 -0.810547 -0.607422 -2.18164 -0.607422 -3.05957c0 -2.9502 2.21191 -6.26074 4.9375 -7.39062l14.7803 -6.12988 +c0.811523 -0.335938 2.18164 -0.608398 3.05957 -0.608398c2.9502 0 6.26172 2.21289 7.39062 4.93848v0zM444 184c4.41602 0 8 3.58398 8 8v0c0 4.41602 -3.58398 8 -8 8h-16c-4.41602 0 -8 -3.58398 -8 -8v0c0 -4.41602 3.58398 -8 8 -8h16z" /> - + +d="M481.92 313.52c6.46973 -12.7793 22.4697 -41.6494 21.9697 -85.0791c-0.0791016 -37.5908 -26.4893 -83.4844 -58.9492 -102.44c-14.957 -8.88379 -41.2148 -16.1318 -58.6104 -16.1797c-0.139648 0 -52.6504 -2.56055 -80.5098 16.8096 +c-5.85059 4.08008 -9.14062 8.94043 -9.14062 14c0 6.16016 4.82031 9 6.39062 11c9.7998 12.75 15.1094 28.1699 15.1094 38.5703c0 32.71 -11 59.2998 -33 83.0996c-1.16016 1.25 -42.9795 50.1807 -122.25 50.1807c-63.2393 0 -123.46 -32.6504 -149.46 -79.1406 +c24.04 111.98 123.58 195.66 242.44 195.66c96.3496 0 184.96 -46.1797 226.01 -126.48zM212.77 -27.6699c1.28027 -0.570312 29.0107 -20.5898 67.1309 -27.21c-6.53809 -0.628906 -17.1748 -1.13965 -23.7422 -1.13965c-87.0234 0 -187.626 63.9521 -224.559 142.75 +c-25.75 55.4697 -24.0801 105.96 -23 118.27c4.16992 34.2803 27.0801 59.7002 46.8408 74.7998c29.6299 22.6904 68.8193 35.6904 107.529 35.6904c7.0498 0 43.9199 -0.900391 77.6406 -18.5898c32.5596 -17.1006 47.3193 -37.5801 56.5596 -53.5107 +c1.54688 -2.70312 3.73828 -7.24609 4.88965 -10.1396c-4.21973 4.65039 -40.0596 44.2002 -99.0596 -1c-22.9014 -16.6006 -48.4238 -51.957 -56.9697 -78.9199c-14.1406 -40.4004 -12.8398 -88.5801 20.0996 -136c10.2158 -15.1748 31.1104 -35.334 46.6396 -45z +M463.49 70.6602c1.99316 -1.25879 3.6123 -4.19531 3.6123 -6.55273c0 -1.25195 -0.547852 -3.12305 -1.22266 -4.17773c-47.5703 -75.4297 -127.86 -108.87 -163 -108.87c-22.7002 0 -48.1299 6.95996 -71.7002 19.6104c-33 17.6699 -49.4893 38.7598 -56 47.6699 +c-46.3301 63.5303 -28.25 122.29 -13.3301 151.66c8.06445 15.8418 25.4287 38.2422 38.7607 50c-3.50684 -6.9668 -6.42773 -18.9512 -6.52051 -26.75c0 -80.9404 79.8506 -144 171.521 -144h0.341797c19.7266 0 50.7314 5.6084 69.208 12.5195 +c5.78809 2.16992 14.9316 6.25586 20.4102 9.12012c0.969727 0.539062 2.65723 0.975586 3.76562 0.975586c1.24316 0 3.10449 -0.540039 4.1543 -1.20508z" /> - + +d="M97.2197 351.79c-43.2197 -41.6201 -64.9697 -92.5898 -64.8193 -154.021c0.15918 -68 23.0293 -122.67 67.4795 -165c9.33984 -8.34961 13.2002 -14.9199 13.2002 -20.5498c0 -2.75 -1.90039 -5.62012 -3.81055 -8.37988 +c-1.92676 -1.89453 -5.67676 -3.61426 -8.36914 -3.83984c-10.2803 0 -24.6807 12.1396 -43.4707 35.79c-36.5898 44.8701 -53.1992 94.3398 -54.0596 161.87s20.3096 113.34 61.79 160.6c14.9199 16.9004 27.3594 25.6904 35.8398 25.6904 +c2.56152 -0.0585938 6.32031 -1.33105 8.38965 -2.83984c1.91016 -1.91016 3.83008 -4.66016 3.83008 -7.41992c0 -4.78027 -5.63965 -11.25 -16 -21.9004zM239.47 27.9297c0.580078 -0.370117 0.910156 -0.549805 0.910156 -0.549805zM333.26 27.3799l0.169922 0.129883 +c-0.189453 -0.129883 -0.259766 -0.179688 -0.169922 -0.129883zM336.39 185.56c16.2305 -4.14941 24.04 24.04 30.0303 30.0508c84.71 -110.101 -27.5098 -184.45 -33 -188.101c3.86035 3.04004 44.3301 49.7705 21.5801 76.5498 +c-1 1.03027 -67.2998 -20.0596 -54.8398 53.54c8.30957 48.6807 -7.60059 71.1309 -7.60059 71.1309c-17.9697 -37.29 -32.5 -53.8604 -43.5 -72.1602c-56.9492 -92.9404 -16.2793 -124.29 -9.5498 -128.641c-10.54 6.5 -108.27 70.8799 -34 175.23 +c78.3701 110.189 62.8301 159.57 62.8301 159.57c118.46 -94.2803 51.8105 -173.021 68.0498 -177.171zM510.88 358.31c41.4404 -47.3096 62.6699 -93.1592 61.75 -160.649s-17.4697 -117.021 -54.0596 -161.87c-18.79 -23.6602 -33.1904 -35.79 -43.4707 -35.79 +c-2.69238 0.231445 -6.44141 1.95605 -8.36914 3.84961c-1.91016 2.76074 -3.81055 5.63086 -3.81055 8.38086c0.0205078 5.62988 3.86035 12.1992 13.2002 20.5498c44.4795 42.3701 67.3203 97 67.4795 165c0.180664 61.4697 -21.5898 112.45 -64.8193 154.06 +c-10.4004 10.6406 -16 17.1201 -16 21.9004c0 2.75977 1.91992 5.50977 3.83008 7.41992c2.06934 1.50977 5.82812 2.78125 8.38965 2.83984c8.51953 0 21 -8.79004 35.8799 -25.6904z" /> @@ -1694,15 +1704,24 @@ c-16.3994 15.8994 -44.5996 17.2998 -61.3994 -7l-44.8008 -64.7002v38.7998z" /> - + + + + + + + + + + + + + + + diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.ttf b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.ttf index aa1687de5c0..948a2a6cc76 100644 Binary files a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.ttf and b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.ttf differ diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff index 6d1c6148e3b..2a89d521e3f 100644 Binary files a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff and b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff differ diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff2 b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff2 index 1727af3ebb7..141a90a9e0a 100644 Binary files a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff2 and b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff2 differ diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.eot b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.eot index ea607caa7e3..38cf2517a4d 100644 Binary files a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.eot and b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.eot differ diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.svg b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.svg index a35e6d911ee..48634a9ab47 100644 --- a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.svg +++ b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.svg @@ -1,12 +1,12 @@ -Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 +Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020 By Robert Madole Copyright (c) Font Awesome @@ -435,14 +435,14 @@ c-44.1123 0 -80 35.8877 -80 80v8c0 30.8779 25.1211 56 56 56h293.917c24.5 0 47.08 c-4.41113 0 -8 -3.58887 -8 -8v-8c0 -17.6445 14.3555 -32 32 -32h213.471c25.2021 0 42.626 -25.293 33.6299 -48.8457l-24.5518 -64.2812c-7.05371 -18.4658 -25.0732 -30.873 -44.8398 -30.873h-113.709c-22.0557 0 -40 -17.9443 -40 -40c0 -4.41113 3.58887 -8 8 -8 h131.552h0.0517578c7.44141 0 19.1074 -2.19238 26.041 -4.89355l99.752 -38.7881c18.5898 -7.22852 30.6035 -24.7881 30.6035 -44.7363v-23.582h128z" /> +d="M501.03 331.824c6.05762 -9.77832 10.9746 -27.0498 10.9746 -38.5518c0 -4.80664 -0.915039 -12.499 -2.04297 -17.1709l-57.623 -241.963c-12.748 -54.1729 -68.2627 -98.1387 -123.915 -98.1387h-0.345703h-107.455h-0.224609 +c-33.8135 0 -81.2148 18.834 -105.807 42.041l-91.3652 85.9766c-12.8213 12.0469 -23.2266 36.1016 -23.2266 53.6943c0 16.1299 8.97266 38.7529 20.0273 50.499c5.31836 5.66406 29.875 29.3926 68.1152 21.8477l-24.3594 82.1973 +c-1.68164 5.66406 -3.0459 15.0576 -3.0459 20.9668c0 37.5938 30.417 70.502 67.8955 73.4551c-0.204102 2.03125 -0.369141 5.33691 -0.369141 7.37891c0 31.627 24.8594 63.6895 55.4902 71.5684c43.248 10.9785 80.5645 -17.7012 89.6602 -53.0723l13.6836 -53.207 +l4.64648 22.6602c6.76074 32.417 39.123 58.8115 72.2373 58.916c8.73438 0 56.625 -3.26953 70.7383 -54.0801c15.0664 0.710938 46.9199 -3.50977 66.3105 -35.0176zM463.271 287.219c7.86914 32.9844 -42.1211 45.2695 -50.0859 11.9219l-24.8008 -104.146 +c-4.38867 -18.4141 -31.7783 -11.8926 -28.0557 6.2168l28.5479 139.166c7.39844 36.0703 -43.3076 45.0703 -50.1182 11.9629l-31.791 -154.971c-3.54883 -17.3086 -28.2832 -18.0469 -32.7109 -0.804688l-47.3262 184.035 +c-8.43359 32.8105 -58.3691 20.2676 -49.8652 -12.8359l42.4414 -165.039c4.81641 -18.7207 -23.3711 -26.9121 -28.9648 -8.00781l-31.3438 105.779c-9.6875 32.6465 -59.1191 18.2578 -49.3867 -14.625l36.0137 -121.539 +c5.61816 -18.9521 10.1777 -50.377 10.1777 -70.1436v-0.00878906c0 -6.54297 -8.05664 -10.9355 -13.4824 -5.82617l-51.123 48.1074c-24.7852 23.4082 -60.0527 -14.1875 -35.2793 -37.4902l91.3691 -85.9805c16.9629 -16.0068 49.6592 -28.998 72.9824 -28.998h0.154297 +h107.455h0.216797c34.7402 0 69.3936 27.4443 77.3525 61.2598z" /> -Created by FontForge 20190801 at Thu Aug 22 14:41:09 2019 +Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020 By Robert Madole Copyright (c) Font Awesome @@ -23,15 +23,15 @@ Copyright (c) Font Awesome bbox="-0.983398 -64.9834 640.104 448.427" underline-thickness="25" underline-position="-50" - unicode-range="U+0020-F897" + unicode-range="U+0020-F976" /> +d="M470.38 446.49c2.59277 0.816406 6.90234 1.48047 9.62012 1.48047c17.6475 0 31.9834 -14.3232 32 -31.9707v-352c0 -35.3496 -43 -64 -96 -64s-96 28.6602 -96 64s43 64 96 64c8.95898 -0.0488281 23.2949 -1.80957 32 -3.92969v184.609l-256 -75v-233.68 +c0 -35.3398 -43 -64 -96 -64s-96 28.6602 -96 64s43 64 96 64c8.95801 -0.0507812 23.2939 -1.80664 32 -3.91992v261.41c0.0078125 12.958 10.0479 26.626 22.4102 30.5098z" /> +d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM348.49 127c1.94043 2.4209 3.51465 6.90332 3.51465 10.0059c0 4.24512 -2.69043 9.84277 -6.00488 12.4941l-58 42.5v144c0 8.83203 -7.16797 16 -16 16h-32 +c-8.83203 0 -16 -7.16797 -16 -16v-155.55v-0.00488281c0 -10.6074 6.71973 -24.5957 15 -31.2256l67 -49.7197v0c2.41895 -1.93555 6.89746 -3.50586 9.99512 -3.50586c4.24512 0 9.84277 2.69043 12.4951 6.00586l20 25v0z" /> +d="M480.07 352c88.2939 -0.0263672 159.952 -71.7061 159.952 -160c0 -88.3203 -71.6797 -160 -160 -160c-37.1016 0 -88.291 21.5039 -114.263 48h-91.5195c-25.9717 -26.4961 -77.1611 -48 -114.263 -48c-88.3203 0 -160 71.6797 -160 160s71.6797 160 160 160h0.0224609 +h320.07zM248 180v24c0 6.62402 -5.37598 12 -12 12h-52v52c0 6.62402 -5.37598 12 -12 12h-24c-6.62402 0 -12 -5.37598 -12 -12v-52h-52c-6.62402 0 -12 -5.37598 -12 -12v-24c0 -6.62402 5.37598 -12 12 -12h52v-52c0 -6.62402 5.37598 -12 12 -12h24 +c6.62402 0 12 5.37598 12 12v52h52c6.62402 0 12 5.37598 12 12zM464 104c22.0801 0 40 17.9199 40 40s-17.9199 40 -40 40s-40 -17.9199 -40 -40s17.9199 -40 40 -40zM528 200c22.0801 0 40 17.9199 40 40s-17.9199 40 -40 40s-40 -17.9199 -40 -40s17.9199 -40 40 -40z +" /> +d="M505.12 428.906c6.95508 -32.2031 6.95508 -57.4062 6.86133 -82.6094c0 -102.688 -55.4375 -164.781 -128.035 -211.094v-104.438c0 -16.3594 -11.8789 -35.5625 -26.5078 -42.8594l-98.7275 -49.3906c-2.81934 -1.27441 -7.61621 -2.40137 -10.707 -2.51562 +c-13.2471 0.00195312 -24.002 10.7539 -24.0059 24v103.844l-22.4746 -22.4688c-13.1211 -13.1562 -34.1211 -11.1875 -45.2773 0l-50.9043 50.9062c-12.9961 12.9922 -11.3652 33.8887 0 45.25l22.4746 22.4688h-103.811c-13.2461 0.00195312 -24.001 10.7539 -24.0059 24 +c0.111328 3.09082 1.23828 7.88574 2.51562 10.7031l49.4355 98.8125c7.33008 14.6094 26.5391 26.4688 42.8867 26.4844h104.215c46.2168 72.7969 108.122 128 211.354 128c25.0996 0 50.3086 0 82.5059 -6.90625c5.54883 -1.1875 11.0176 -6.65625 12.207 -12.1875z +M384.04 280c22.0732 0.0078125 39.9971 17.9277 40.0098 40c0 22.0801 -17.9199 40 -40 40s-40 -17.9199 -40 -40c0 -22.0742 17.916 -39.9951 39.9902 -40z" /> @@ -1159,11 +1160,11 @@ c10.9004 -8.7998 22.8008 -17.0996 35.4004 -24.8994c5.7998 -3.5 13.2998 -1.60059 c6.59961 0 12 5.40039 12 12zM0 328c0 13.2998 10.7002 24 24 24h280v-320h-280c-13.2998 0 -24 10.7002 -24 24v272zM58.9004 111.9c-2.60059 -7.80078 3.19922 -15.9004 11.3994 -15.9004h22.9004c5.2998 0 10 3.59961 11.5 8.7002l9.09961 31.7998h60.2002 l9.40039 -31.9004c1.40137 -4.74316 6.55273 -8.59668 11.5 -8.59961h22.8994c8.2998 0 14 8.09961 11.4004 15.9004l-57.5 169.1c-1.7002 4.7998 -6.2998 8.09961 -11.4004 8.09961h-32.5c-5.2002 0 -9.7002 -3.19922 -11.3994 -8.09961z" /> +d="M480 288c17.6641 0 32 -14.3359 32 -32v-288c0 -17.6641 -14.3359 -32 -32 -32h-320c-17.6641 0 -32 14.3359 -32 32v448c0 17.6641 14.3359 32 32 32h242.75c7.31348 -0.000976562 17.4473 -4.19922 22.6201 -9.37012l45.25 -45.25 +c5.17676 -5.17285 9.37891 -15.3115 9.37988 -22.6299v-82.75zM288 16v32c0 8.83203 -7.16797 16 -16 16h-32c-8.83203 0 -16 -7.16797 -16 -16v-32c0 -8.83203 7.16797 -16 16 -16h32c8.83203 0 16 7.16797 16 16zM288 144v32c0 8.83203 -7.16797 16 -16 16h-32 +c-8.83203 0 -16 -7.16797 -16 -16v-32c0 -8.83203 7.16797 -16 16 -16h32c8.83203 0 16 7.16797 16 16zM416 16v32c0 8.83203 -7.16797 16 -16 16h-32c-8.83203 0 -16 -7.16797 -16 -16v-32c0 -8.83203 7.16797 -16 16 -16h32c8.83203 0 16 7.16797 16 16zM416 144v32 +c0 8.83203 -7.16797 16 -16 16h-32c-8.83203 0 -16 -7.16797 -16 -16v-32c0 -8.83203 7.16797 -16 16 -16h32c8.83203 0 16 7.16797 16 16zM416 256v64h-48c-8.83203 0 -16 7.16797 -16 16v48h-160v-128h224zM64 320c17.6641 0 32 -14.3359 32 -32v-320 +c0 -17.6641 -14.3359 -32 -32 -32h-32c-17.6641 0 -32 14.3359 -32 32v320c0 17.6641 14.3359 32 32 32h32z" /> +d="M320 416v-96h-64v96c0 17.6641 14.3359 32 32 32s32 -14.3359 32 -32zM368 288c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-16v-32c-0.0107422 -72.1074 -57.3555 -142.354 -128 -156.8v-99.2002h-64v99.2002 +c-70.6445 14.4463 -127.989 84.6924 -128 156.8v32h-16c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h352zM128 416v-96h-64v96c0 17.6641 14.3359 32 32 32s32 -14.3359 32 -32z" /> +d="M510.9 302.729l-68.2969 -286.823c-10.502 -44.1084 -55.8252 -79.9062 -101.166 -79.9062h-127.363c-29.7637 0 -71.5107 16.5547 -93.1855 36.9531l-108.298 101.92c-6.92383 6.53418 -12.542 19.5635 -12.542 29.083c0 22.0762 17.916 39.9922 39.9922 39.9922 +c8.7334 0 20.9922 -4.84961 27.3623 -10.8252l60.5928 -57.0254v0c0 22.6758 -5.22852 58.7256 -11.6699 80.4668l-42.6885 144.075c-0.90918 3.06934 -1.64746 8.1582 -1.64746 11.3594c0 22.083 17.9229 40.0059 40.0059 40.0059 +c16.4922 0 33.6768 -12.833 38.3594 -28.6465l37.1543 -125.395c0.975586 -3.29199 4.55469 -5.96484 7.98828 -5.96484c4.59863 0 8.33105 3.73242 8.33105 8.33105c0 0.582031 -0.117188 1.51172 -0.262695 2.0752l-50.3047 195.641 +c-0.696289 2.70703 -1.26172 7.17285 -1.26172 9.96875c0 22.0781 17.918 39.9961 39.9961 39.9961c17.1152 0 34.4678 -13.4521 38.7344 -30.0273l56.0947 -218.158c1.11035 -4.31934 5.63184 -7.82617 10.0918 -7.82617c4.69238 0 9.26562 3.73047 10.208 8.32715 +l37.6826 183.704c3.6416 17.6387 21.2139 31.9541 39.2246 31.9541c3.41309 0 8.82422 -0.835938 12.0781 -1.86426c19.8604 -6.2998 30.8623 -27.6738 26.6758 -48.085l-33.8389 -164.967c-0.0849609 -0.414062 -0.154297 -1.09375 -0.154297 -1.51758 +c0 -4.16797 3.38281 -7.55176 7.55176 -7.55176c3.29297 0 6.58398 2.59961 7.34668 5.80273l29.3975 123.459c4.03906 16.9619 21.4688 30.7285 38.9053 30.7285c22.0771 0 39.9941 -17.917 39.9941 -39.9941c0 -2.59277 -0.487305 -6.74316 -1.08789 -9.26562z" /> +d="M592 448c26.4961 0 48 -21.5039 48 -48v-320c0 -26.4961 -21.5039 -48 -48 -48h-240v-32h176c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-416c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h176v32h-240 +c-26.4961 0 -48 21.5039 -48 48v320c0 26.4961 21.5039 48 48 48h544zM576 96v288h-512v-288h512z" /> +d="M304 128c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM336 224c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM368 160c-8.83203 0 -16 7.16797 -16 16s7.16797 16 16 16 +s16 -7.16797 16 -16s-7.16797 -16 -16 -16zM336 128c-8.83203 0 -16 7.16797 -16 16s7.16797 16 16 16s16 -7.16797 16 -16s-7.16797 -16 -16 -16zM304 192c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM432 224 +c-8.83203 0 -16 7.16797 -16 16s7.16797 16 16 16s16 -7.16797 16 -16s-7.16797 -16 -16 -16zM384 208c0 8.83203 7.16797 16 16 16s16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16zM368 256c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16 +s-16 7.16797 -16 16s7.16797 16 16 16zM464 224c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM496 256c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM432 192 +c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM400 160c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM336 96c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16 +s-16 7.16797 -16 16s7.16797 16 16 16zM304 64c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM368 128c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM389.65 346.35 +c2.58691 -2.58691 4.6875 -7.65527 4.6875 -11.3145s-2.10059 -8.72852 -4.6875 -11.3154l-169.381 -169.37c-2.58691 -2.58691 -7.65527 -4.6875 -11.3145 -4.6875s-8.72852 2.10059 -11.3154 4.6875l-11.2998 11.3105c-2.58496 2.58594 -4.68262 7.65332 -4.68262 11.3096 +c0 3.65723 2.09766 8.72363 4.68262 11.3105l5.66016 5.66992c-17.6602 17.9219 -31.9961 52.8887 -32 78.0498c0 19.2402 5.2998 37.0801 13.9297 52.8604l-10 10c-9.44434 9.47461 -27.9678 17.1641 -41.3457 17.1641c-2.10254 0 -5.5 -0.22168 -7.58398 -0.494141 +c-30 -3.73047 -51 -31.7803 -51 -61.9307v-305.6c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v303.15c0 67.9395 55.4902 129.35 123.44 128.85c27.7246 -0.138672 66.1006 -16.1992 85.6592 -35.8496l10 -10 +c15.8203 8.5498 33.6602 13.8496 52.9004 13.8496c25.1631 -0.000976562 60.1289 -14.3369 78.0498 -32l5.66992 5.66016c2.58691 2.58691 7.65625 4.6875 11.3154 4.6875s8.72754 -2.10059 11.3145 -4.6875z" /> +d="M32 64v48h448v-48c-0.0478516 -23.5742 -14.3848 -55.4229 -32 -71.0898v-40.9102c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v16h-256v-16c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v40.9102 +c-17.6152 15.667 -31.9521 47.5156 -32 71.0898zM496 192c8.83203 0 16 -7.16797 16 -16v-16c0 -8.83203 -7.16797 -16 -16 -16h-480c-8.83203 0 -16 7.16797 -16 16v16c0 8.83203 7.16797 16 16 16h16v186.75v0.00585938c0 38.2256 31.0244 69.25 69.25 69.25 +c15.835 0 37.7734 -9.08789 48.9697 -20.2861l19.2607 -19.2695c29.8994 13.1299 59.1094 7.60938 79.7295 -8.62012l0.169922 0.169922c2.58691 2.58496 7.65332 4.68262 11.3105 4.68262c3.65625 0 8.72266 -2.09766 11.3096 -4.68262l11.3096 -11.3096 +c2.58789 -2.58691 4.68848 -7.65625 4.68848 -11.3154s-2.10059 -8.72852 -4.68848 -11.3154l-105.369 -105.369c-2.58691 -2.58789 -7.65625 -4.68848 -11.3154 -4.68848s-8.72852 2.10059 -11.3154 4.68848l-11.3096 11.3096 +c-2.57617 2.58496 -4.66797 7.64551 -4.66797 11.2949s2.0918 8.70996 4.66797 11.2949l0.169922 0.169922c-16.2295 20.6201 -21.75 49.8506 -8.62012 79.7305l-19.2695 19.2598c-3.43652 3.42969 -10.165 6.21387 -15.0205 6.21387 +c-11.71 0 -21.2344 -9.50391 -21.2598 -21.2139v-186.75h416z" /> - + @@ -2068,6 +2074,14 @@ c22.3008 -10.2002 46.9004 -16 72.9004 -16s50.7002 5.7998 72.9004 16h55.0996z" /> d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM380.4 125.5l-67.1006 66.5l67.1006 66.5c4.7998 4.7998 4.7998 12.5996 0 17.4004l-40.5 40.5 c-4.80078 4.7998 -12.6006 4.7998 -17.4004 0l-66.5 -67.1006l-66.5 67.1006c-4.7998 4.7998 -12.5996 4.7998 -17.4004 0l-40.5 -40.5c-4.7998 -4.80078 -4.7998 -12.6006 0 -17.4004l67.1006 -66.5l-67.1006 -66.5c-4.7998 -4.7998 -4.7998 -12.5996 0 -17.4004 l40.5 -40.5c4.80078 -4.7998 12.6006 -4.7998 17.4004 0l66.5 67.1006l66.5 -67.1006c4.7998 -4.7998 12.5996 -4.7998 17.4004 0l40.5 40.5c4.7998 4.80078 4.7998 12.6006 0 17.4004z" /> + + - + + +d="M32 224h32v-192h-32h-0.0380859c-17.6436 0 -31.9619 14.3184 -31.9619 31.9619v0.0380859v128v0.0380859c0 17.6436 14.3184 31.9619 31.9619 31.9619h0.0380859zM544 272v-272c-0.0351562 -35.293 -28.707 -63.9648 -64 -64h-320 +c-35.293 0.0351562 -63.9648 28.707 -64 64v272v0.0263672c0 44.1455 35.8281 79.9736 79.9736 79.9736h0.0263672h112v64c0 17.6641 14.3359 32 32 32s32 -14.3359 32 -32v-64h112h0.0263672c44.1455 0 79.9736 -35.8281 79.9736 -79.9736v-0.0263672zM264 192 +c0 22.0801 -17.9199 40 -40 40s-40 -17.9199 -40 -40s17.9199 -40 40 -40h0.00292969c22.0781 0 39.9971 17.9189 39.9971 39.9971v0.00292969zM256 64h-64v-32h64v32zM352 64h-64v-32h64v32zM456 192c0 22.0801 -17.9199 40 -40 40s-40 -17.9199 -40 -40 +s17.9199 -40 40 -40h0.00292969c22.0781 0 39.9971 17.9189 39.9971 39.9971v0.00292969zM448 64h-64v-32h64v32zM640 192v-128v-0.0380859c0 -17.6436 -14.3184 -31.9619 -31.9619 -31.9619h-0.0380859h-32v192h32h0.0380859c17.6436 0 31.9619 -14.3184 31.9619 -31.9619 +v-0.0380859z" /> - + - + +d="M223.999 224c17.6328 -0.03125 31.9727 -14.3672 32.0078 -32c0 -17.6641 -14.3359 -32 -32 -32s-32 14.3359 -32 32c0 17.6602 14.333 31.9961 31.9922 32zM438.171 320c16.3789 -29.375 15.0039 -73.125 -25.1309 -128c40.1348 -54.875 41.5098 -98.625 25.1309 -128 +c-29.1309 -52.375 -101.646 -43.625 -116.275 -41.875c-21.5039 -51.25 -54.2617 -86.125 -97.8965 -86.125s-76.3906 34.875 -97.8965 86.125c-14.627 -1.75 -87.1426 -10.5 -116.273 41.875c-16.3789 29.375 -15.0039 73.125 25.1289 128 +c-40.1328 54.875 -41.5078 98.625 -25.1289 128c10.877 19.5 40.5078 50.625 116.273 41.875c21.5059 51.25 54.2617 86.125 97.8965 86.125s76.3926 -34.875 97.8965 -86.125c75.7656 8.875 105.398 -22.375 116.275 -41.875zM63.3389 96 +c3.75195 -6.625 19.0059 -11.875 43.6348 -11c-2.75 13 -5.125 26.375 -6.75 40.125c-7.75195 6.25 -15.0039 12.625 -21.8809 19.125c-15.1289 -23.5 -19.0039 -41 -15.0039 -48.25zM100.224 258.875c1.625 13.5 3.875 26.875 6.75 40.25c-1.875 0 -4 0.375 -5.75 0.375 +c-21.5059 0 -34.5078 -5.375 -37.8848 -11.5c-4 -7.25 -0.125 -24.75 15.0039 -48.25c6.87695 6.5 14.1289 12.875 21.8809 19.125zM223.999 384c-9.50195 0 -22.2539 -13.5 -33.8828 -37.25c11.2539 -3.75 22.5059 -8 33.8828 -12.875 +c11.3789 4.875 22.6309 9.125 33.8828 12.875c-11.627 23.75 -24.3809 37.25 -33.8828 37.25zM223.999 0c9.50195 0 22.2559 13.5 33.8828 37.25c-11.252 3.75 -22.5039 8 -33.8828 12.875c-11.377 -4.875 -22.6289 -9.125 -33.8828 -12.875 +c11.6289 -23.75 24.3809 -37.25 33.8828 -37.25zM223.999 112c44.1602 0 80 35.8398 80 80s-35.8398 80 -80 80s-80 -35.8398 -80 -80s35.8398 -80 80 -80zM384.659 96c4 7.25 0.125 24.75 -15.0039 48.25c-6.875 -6.5 -14.127 -12.875 -21.8789 -19.125 +c-1.625 -13.75 -4 -27.125 -6.75195 -40.125c24.6309 -0.875 40.0098 4.375 43.6348 11zM369.655 239.75c15.1289 23.5 19.0039 41 15.0039 48.25c-3.375 6.125 -16.3789 11.5 -37.8828 11.5c-1.75 0 -3.87695 -0.375 -5.75195 -0.375 +c2.87695 -13.375 5.12695 -26.75 6.75195 -40.25c7.75195 -6.25 15.0039 -12.625 21.8789 -19.125z" /> + +d="M128 192c70.6562 0 128 -57.3438 128 -128s-57.3438 -128 -128 -128s-128 57.3438 -128 128s57.3438 128 128 128zM507 246.86c14.2402 -24.3799 -3.58008 -54.8604 -32.0898 -54.8604h-213.82c-28.5098 0 -46.3301 30.4805 -32.0898 54.8604l106.93 182.85 +c5.97266 10.0967 20.3398 18.291 32.0703 18.291s26.0977 -8.19434 32.0703 -18.291zM480 160c17.6641 0 32 -14.3359 32 -32v-160c0 -17.6641 -14.3359 -32 -32 -32h-160c-17.6641 0 -32 14.3359 -32 32v160c0 17.6641 14.3359 32 32 32h160z" /> +d="M464 320c26.4961 0 48 -21.5039 48 -48v-224c0 -26.4961 -21.5039 -48 -48 -48h-416c-26.4961 0 -48 21.5039 -48 48v288c0 26.4961 21.5039 48 48 48h160l64 -64h192zM359.5 152v16c0 8.83203 -7.16797 16 -16 16h-64v64c0 8.83203 -7.16797 16 -16 16h-16 +c-8.83203 0 -16 -7.16797 -16 -16v-64h-64c-8.83203 0 -16 -7.16797 -16 -16v-16c0 -8.83203 7.16797 -16 16 -16h64v-64c0 -8.83203 7.16797 -16 16 -16h16c8.83203 0 16 7.16797 16 16v64h64c8.83203 0 16 7.16797 16 16z" /> - - + +d="M438.406 70.4062c-3.20312 -12.8125 -3.20312 -57.6094 0 -73.6094c6.39062 -6.39062 9.58887 -12.792 9.59375 -19.2031v-16c0 -16 -12.7969 -25.5938 -25.5938 -25.5938h-326.406c-54.4062 0 -96 41.5938 -96 96v320c0 54.4062 41.5938 96 96 96h326.406 +c16 0 25.5938 -9.59375 25.5938 -25.5938v-332.812c0 -9.59375 -3.19824 -15.9893 -9.59375 -19.1875zM380.797 64h-284.797c-16 0 -32 -12.7969 -32 -32s12.7969 -32 32 -32h284.797v64zM128.016 271.984c0 -0.515625 0.140625 -0.984375 0.140625 -1.5l37.1094 -32.4688 +c1.50488 -1.31934 2.72656 -4.01465 2.72656 -6.01562c0 -4.41211 -3.58008 -7.99609 -7.99219 -8h-0.015625c-1.625 0.0820312 -3.97656 0.97168 -5.25 1.98438l-23.5938 20.6406c11.5469 -49.5781 55.7656 -86.625 108.859 -86.625s97.3125 37.0469 108.875 86.625 +l-23.5938 -20.6406c-1.25 -1.08691 -3.60938 -1.96875 -5.26562 -1.96875v0h-0.015625c-1.9502 0.108398 -4.64551 1.32617 -6.01562 2.71875c-1.01074 1.27832 -1.89941 3.6377 -1.98438 5.26562c0.107422 1.9541 1.33203 4.64941 2.73438 6.01562l37.1094 32.4688 +c0.015625 0.53125 0.15625 1 0.15625 1.51562c0 11.0469 -2.09375 21.5156 -5.0625 31.5938l-21.2656 -21.25c-1.29492 -1.2959 -3.83105 -2.34766 -5.66309 -2.34766c-4.41895 0 -8.00488 3.58594 -8.00488 8.00488c0 1.82812 1.04883 4.36133 2.33984 5.65527 +l26.4219 26.4062c-8.47949 17.6582 -29.249 39.7295 -46.3594 49.2656c5.2959 -8.46484 9.59375 -23.4395 9.59375 -33.4248c0 -16.7217 -10.5977 -38.7705 -23.6562 -49.2158c8.64258 -8.95605 15.6562 -26.3262 15.6562 -38.7725 +c0 -25.0283 -19.8799 -49.5117 -44.375 -54.6494l-1.42188 34.2812l12.6719 -8.625c0.557617 -0.379883 1.55762 -0.6875 2.23242 -0.6875h0.0175781h0.0253906c2.19727 0 3.98145 1.7832 3.98145 3.98047c0 0.609375 -0.254883 1.52832 -0.569336 2.05078l-8.53125 14.3125 +l17.9062 3.71875c1.75977 0.367188 3.1875 2.12402 3.1875 3.92188s-1.42773 3.55469 -3.1875 3.92188l-17.9062 3.71875l8.53125 14.3125c0.314453 0.522461 0.569336 1.44141 0.569336 2.05078c0 2.19727 -1.78418 3.98047 -3.98145 3.98047h-0.0253906 +c-0.668945 -0.0263672 -1.67676 -0.327148 -2.25 -0.671875l-14.1875 -9.65625l-4.6875 112.297c-0.0927734 2.11328 -1.88477 3.82812 -4 3.82812s-3.90723 -1.71484 -4 -3.82812l-4.625 -110.812l-12 8.15625c-0.561523 0.380859 -1.56836 0.69043 -2.24707 0.69043 +c-2.20996 0 -4.00293 -1.79297 -4.00293 -4.00293c0 -0.607422 0.251953 -1.52441 0.5625 -2.04688l8.53125 -14.3125l-17.9062 -3.71875c-1.75977 -0.364258 -3.1875 -2.11719 -3.1875 -3.91406s1.42773 -3.5498 3.1875 -3.91406l17.9062 -3.73438l-8.53125 -14.2969 +c-0.285156 -0.529297 -0.537109 -1.44629 -0.5625 -2.04688c0.0507812 -0.928711 0.611328 -2.23047 1.25 -2.90625c0.639648 -0.603516 1.87109 -1.09277 2.75 -1.09375c0.677734 0.00292969 1.68555 0.311523 2.25 0.6875l10.3594 7.04688l-1.35938 -32.7188 +c-24.4951 5.14746 -44.375 29.6396 -44.375 54.6699c0 12.4482 7.01367 29.8232 15.6562 38.7832c-13.0586 10.4434 -23.6562 32.4893 -23.6562 49.21c0 9.99316 4.30469 24.9775 9.60938 33.4463c-17.1104 -9.53906 -37.8867 -31.6104 -46.375 -49.2656l26.4219 -26.4219 +c1.28516 -1.29199 2.3291 -3.81934 2.3291 -5.64258c0 -4.41504 -3.58398 -7.99902 -7.99902 -7.99902c-1.82324 0 -4.35059 1.04395 -5.64258 2.3291l-21.2656 21.2656c-2.98438 -10.0938 -5.07812 -20.5625 -5.0625 -31.625z" /> d="M422.19 338.05c5.3291 -3.24023 5.2998 -11.2695 -0.0507812 -14.46l-198.14 -118.14l-198.13 118.14c-5.35059 3.19043 -5.37988 11.2305 -0.0605469 14.46l165.971 100.88c19.9102 12.1006 44.5195 12.1006 64.4297 0zM436.03 293.42 c5.33008 3.17969 11.9697 -0.839844 11.9697 -7.25v-197.7c0 -23.7598 -12.1104 -45.7393 -31.79 -57.7002l-152.16 -92.4795c-10.6602 -6.48047 -24.0498 1.5498 -24.0498 14.4297v223.82zM0 286.17c0 6.41016 6.63965 10.4297 11.9697 7.25l196.03 -116.88v-223.81 c0 -12.8906 -13.3799 -20.9102 -24.0498 -14.4307l-152.16 92.4697c-19.6797 11.9609 -31.79 33.9307 -31.79 57.7002v197.7z" /> - + +d="M511.328 427.197c-11.6074 -38.7021 -34.3076 -111.702 -61.3037 -187.701c6.99902 -2.09375 13.4043 -4 18.6074 -5.59277c6.28125 -1.91504 11.3789 -8.79785 11.3789 -15.3643c0 -2.21094 -0.842773 -5.58984 -1.88086 -7.54199 +c-22.1055 -42.2969 -82.6904 -152.795 -142.479 -214.403c-0.999023 -1.09375 -1.99902 -2.5 -2.99902 -3.5c-31.501 -31.5098 -93.2285 -57.083 -137.784 -57.083c-107.546 0 -194.83 87.2842 -194.83 194.831c0 44.5391 25.5566 106.25 57.0469 137.748 +c1 1 2.40625 2 3.49902 3c61.6006 59.9053 171.975 120.405 214.374 142.498c1.95215 1.03809 5.33008 1.88086 7.54102 1.88086c6.56641 0 13.4492 -5.09863 15.3613 -11.3809c1.59375 -5.09375 3.5 -11.5928 5.59277 -18.5928 +c75.8955 26.999 148.978 49.7021 187.675 61.2959c1.26465 0.382812 3.36426 0.692383 4.68555 0.692383c8.93262 0 16.1826 -7.25 16.1826 -16.1826c0 -1.29785 -0.298828 -3.35938 -0.667969 -4.60352zM319.951 127.998 +c-0.00976562 70.6348 -57.3457 127.962 -127.98 127.962c-70.6455 0 -127.98 -57.335 -127.98 -127.98c0 -70.6445 57.335 -127.979 127.98 -127.979h0.00488281c70.6426 0 127.976 57.333 127.976 127.976v0.0224609zM191.971 159.997 +c-0.00292969 -17.6582 -14.3359 -31.9902 -31.9951 -31.9902c-17.6611 0 -31.9951 14.334 -31.9951 31.9951s14.334 31.9951 31.9951 31.9951h0.0361328c17.6416 0 31.959 -14.3174 31.959 -31.959v-0.0410156zM223.966 79.998 +c-0.000976562 -8.8291 -7.16797 -15.9951 -15.998 -15.9951s-15.9971 7.16699 -15.9971 15.998c0 8.83008 7.16699 15.9971 15.9971 15.9971c8.80371 -0.0283203 15.9707 -7.19629 15.998 -16z" /> d="M96 -48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-480zM224 -48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32 c8.7998 0 16 -7.2002 16 -16v-480z" /> +d="M502.63 409c5.15625 -5.1709 9.33984 -15.293 9.33984 -22.5947c0 -7.31543 -4.19727 -17.4521 -9.37012 -22.625l-46.3301 -46.3203c-3.24707 -3.25684 -9.4248 -7.07812 -13.7891 -8.53027l-36.4805 -12.1602l-76.2402 -76.2393 +c8.79004 -12.2002 15.7705 -25.5605 19.1602 -40.2002c7.74023 -33.3896 0.870117 -66.8701 -22 -89.75c-7.87793 -7.8418 -22.877 -16.9141 -33.4795 -20.25c-18.54 -6.00977 -32.6709 -23.29 -34.4307 -42.1396c-2.29004 -23.8105 -11.4502 -45.8301 -28.4502 -62.71 +c-45.5596 -45.4805 -127.5 -37.3809 -182.979 18.0693c-55.4805 55.4502 -63.6904 137.45 -18.0498 182.96c16.8799 16.9902 38.9102 26.1699 62.6094 28.4404c18.9404 1.76953 36.1504 15.8994 42.1504 34.46c3.33105 10.6016 12.3984 25.5957 20.2402 33.4697 +c22.8799 22.8799 56.4297 29.7803 89.8799 22c14.5996 -3.39941 27.9395 -10.3799 40.0996 -19.1396l76.2598 76.2598l12.1602 36.5098c1.45215 4.36426 5.27344 10.542 8.53027 13.79l46.2803 46.3301c5.17383 5.1748 15.3115 9.375 22.6299 9.375 +c7.31738 0 17.4561 -4.2002 22.6299 -9.375zM208 96c26.4961 0 48 21.5039 48 48s-21.5039 48 -48 48s-48 -21.5039 -48 -48s21.5039 -48 48 -48z" /> @@ -4352,16 +4387,20 @@ c14.2998 -1.2002 26.5 -10.7002 29.7998 -24.2002zM336 448c8.7998 0 16 -7.2002 16 c0 -13.2998 -10.7002 -24 -24 -24h-8v-136c0 -13.2998 -10.7002 -24 -24 -24h-80c-13.2998 0 -24 10.7002 -24 24v136h-8c-13.2998 0 -24 10.7002 -24 24v136c0 25.0996 19.2998 45.5 43.9004 47.5996c15 -9.7998 32.8994 -15.5996 52.0996 -15.5996 s37.0996 5.7998 52.0996 15.5996z" /> +d="M502.609 137.958l-96.7041 -96.7168c-5.15039 -5.13184 -15.2324 -9.29785 -22.5029 -9.29785c-7.27148 0 -17.3535 4.16602 -22.5039 9.29785l-80.3262 80.418l-9.89258 -9.9082c9.41016 -20.7256 17.0469 -56.0186 17.0469 -78.7803 +c0 -26.3193 -10.0596 -66.5244 -22.4541 -89.7422c-4.50098 -8.50098 -16.3936 -9.59473 -23.207 -2.79785l-107.519 107.515l-17.7998 -17.7988c0.703125 -2.60938 1.60938 -5.00098 1.60938 -7.79785v-0.000976562c0 -17.667 -14.3379 -32.0059 -32.0049 -32.0059 +s-32.0059 14.3389 -32.0059 32.0059s14.3389 32.0049 32.0059 32.0049c2.79688 0 5.18848 -0.90625 7.79785 -1.60938l17.7998 17.7998l-107.518 107.515c-6.79883 6.8125 -5.7041 18.6113 2.79688 23.2061c23.2197 12.3936 63.4248 22.4531 89.7451 22.4531 +c22.7627 0 58.0576 -7.63672 78.7832 -17.0469l9.79883 9.79883l-80.3105 80.417c-5.13086 5.16602 -9.29395 15.2686 -9.29395 22.5498s4.16309 17.3838 9.29395 22.5498l96.7197 96.7168c5.11621 5.13281 15.1514 9.29785 22.3984 9.29785h0.105469h0.0449219 +c7.28223 0 17.3857 -4.16602 22.5527 -9.29785l80.3262 -80.3076l47.8047 47.8965c5.43262 5.42773 16.0742 9.83398 23.7539 9.83398s18.3213 -4.40625 23.7539 -9.83398l47.5088 -47.5059c5.42188 -5.43555 9.82129 -16.0771 9.82129 -23.7539 +s-4.39941 -18.3184 -9.82129 -23.7529l-47.8057 -47.8975l80.3105 -80.417c5.12305 -5.13672 9.28125 -15.1934 9.28125 -22.4482c0 -7.30469 -4.20703 -17.4111 -9.39062 -22.5576zM219.562 250.567l73.8252 73.8223l-68.918 68.8994l-73.8096 -73.8066zM457.305 160.461 +l-68.9023 68.916l-73.8242 -73.8232l68.918 -68.8994z" /> +d="M305.449 -14.5898c7.3916 -7.29785 6.18848 -20.0967 -3 -25.0039c-77.7129 -41.8027 -176.726 -29.9102 -242.344 35.708c-65.6016 65.6035 -77.5098 164.523 -35.6914 242.332c4.89062 9.09473 17.6895 10.2979 25.0029 3l116.812 -116.813l27.3945 27.3945 +c-0.6875 2.60938 -1.59375 5.00098 -1.59375 7.81348c0 17.666 14.3379 32.0039 32.0039 32.0039s32.0039 -14.3379 32.0039 -32.0039s-14.3379 -32.0039 -32.0039 -32.0039c-2.79785 0 -5.2041 0.890625 -7.79785 1.59375l-27.4102 -27.4102zM511.976 144.933 +c0.0136719 -0.248047 0.0253906 -0.650391 0.0253906 -0.899414c0 -8.84668 -7.18066 -16.0615 -16.0273 -16.1025h-32.1133c-8.27148 0.0244141 -15.3916 6.74512 -15.8926 15.002c-7.50098 129.519 -111.515 234.533 -240.937 241.534 +c-8.28125 0.441406 -15.0029 7.5293 -15.0029 15.8223c0 0.0234375 0 0.0625 0.000976562 0.0859375v31.5986c0.0361328 8.84766 7.24609 16.0273 16.0938 16.0273c0.250977 0 0.657227 -0.0107422 0.908203 -0.0253906c163.224 -8.59473 294.443 -139.816 302.944 -303.043 +zM415.964 145.229c0.0195312 -0.299805 0.0361328 -0.788086 0.0361328 -1.08887c0 -8.91309 -7.23438 -16.1758 -16.1475 -16.21h-32.208c-8.08594 0.0585938 -15.2061 6.64648 -15.8926 14.7051c-6.90625 77.0107 -68.1172 138.91 -144.924 145.224 +c-8.16602 0.585938 -14.7959 7.70605 -14.7988 15.8926v32.1143v0.00390625c0 8.90625 7.22754 16.1338 16.1338 16.1338c0.322266 0 0.84375 -0.0185547 1.16504 -0.0419922c110.123 -8.50098 198.229 -96.6074 206.636 -206.732z" /> + + +d="M319.41 128c71.4902 -3.09961 128.59 -61.5996 128.59 -133.79c0 -32.1318 -26.0781 -58.21 -58.21 -58.21h-331.58c-32.1318 0 -58.21 26.0781 -58.21 58.21c0 72.1904 57.0996 130.69 128.59 133.79l95.4102 -95.3896zM224 144c-70.6562 0 -128 57.3438 -128 128 +v110.18c0 12.2393 9.30078 25.6611 20.7598 29.96l84.7705 31.79c5.99707 2.24902 16.0645 4.07422 22.4697 4.07422s16.4727 -1.8252 22.4697 -4.07422l84.7705 -31.75c11.459 -4.29883 20.7598 -17.7217 20.7598 -29.9609v-0.0390625v-110.18 +c0 -70.6562 -57.3438 -128 -128 -128zM184 376.33v-16.6602c0 -2.75977 2.24023 -5 5 -5h21.6699v-21.6699c0 -2.75977 2.24023 -5 5 -5h16.6602c2.75977 0 5 2.24023 5 5v21.6699h21.6699c2.75977 0 5 2.24023 5 5v16.6602c0 2.75977 -2.24023 5 -5 5h-21.6699v21.6699 +c0 2.75977 -2.24023 5 -5 5h-16.6602c-2.75977 0 -5 -2.24023 -5 -5v-21.6699h-21.6699c-2.75977 0 -5 -2.24023 -5 -5zM144 288v-16c0 -44.1602 35.8398 -80 80 -80s80 35.8398 80 80v16h-160z" /> @@ -4645,5 +4697,242 @@ c2.57324 2.60352 7.63379 4.71777 11.2949 4.71777s8.72168 -2.11426 11.2949 -4.717 d="M496 320c79.4883 0 144 -64.5117 144 -144s-64.5117 -144 -144 -144h-352c-79.4844 0.00390625 -143.993 64.5156 -143.993 144c0 79.4883 64.5117 144 144 144s144 -64.5117 144 -144c0 -24.1113 -10.8711 -59.9512 -24.2666 -80h112.52 c-13.3955 20.0488 -24.2666 55.8887 -24.2666 80c0 79.4883 64.5117 144 144 144h0.00683594zM64 176c0 -44.1602 35.8398 -80 80 -80s80 35.8398 80 80s-35.8398 80 -80 80s-80 -35.8398 -80 -80zM496 96c44.1602 0 80 35.8398 80 80s-35.8398 80 -80 80 s-80 -35.8398 -80 -80s35.8398 -80 80 -80z" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.ttf b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.ttf index 704a2a996eb..5b979039ab2 100644 Binary files a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.ttf and b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.ttf differ diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff index 7adb9d59142..beec7917842 100644 Binary files a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff and b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff differ diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff2 b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff2 index ac6a6e31392..978a681a10f 100644 Binary files a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff2 and b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff2 differ diff --git a/htdocs/theme/common/gmap.png b/htdocs/theme/common/gmap.png index 2d91b463419..511874dd26d 100644 Binary files a/htdocs/theme/common/gmap.png and b/htdocs/theme/common/gmap.png differ diff --git a/htdocs/theme/common/help.png b/htdocs/theme/common/help.png index 12e6cd655d6..58b0619317c 100644 Binary files a/htdocs/theme/common/help.png and b/htdocs/theme/common/help.png differ diff --git a/htdocs/theme/common/login_logo.png b/htdocs/theme/common/login_logo.png index 53cf79da7b4..f519f153177 100644 Binary files a/htdocs/theme/common/login_logo.png and b/htdocs/theme/common/login_logo.png differ diff --git a/htdocs/theme/common/logo_cerfa.png b/htdocs/theme/common/logo_cerfa.png index 0db57c205ab..e228a01873a 100644 Binary files a/htdocs/theme/common/logo_cerfa.png and b/htdocs/theme/common/logo_cerfa.png differ diff --git a/htdocs/theme/common/mime/audio.png b/htdocs/theme/common/mime/audio.png index af4c203416e..1e1b282cf40 100644 Binary files a/htdocs/theme/common/mime/audio.png and b/htdocs/theme/common/mime/audio.png differ diff --git a/htdocs/theme/common/mime/css.png b/htdocs/theme/common/mime/css.png index 21398610778..51bbbfd110e 100644 Binary files a/htdocs/theme/common/mime/css.png and b/htdocs/theme/common/mime/css.png differ diff --git a/htdocs/theme/common/mime/doc.png b/htdocs/theme/common/mime/doc.png index efb194dcfd2..2ee6c40515c 100644 Binary files a/htdocs/theme/common/mime/doc.png and b/htdocs/theme/common/mime/doc.png differ diff --git a/htdocs/theme/common/mime/dotnet.png b/htdocs/theme/common/mime/dotnet.png index 08ec78c2c17..43356b41940 100644 Binary files a/htdocs/theme/common/mime/dotnet.png and b/htdocs/theme/common/mime/dotnet.png differ diff --git a/htdocs/theme/common/mime/encrypt.png b/htdocs/theme/common/mime/encrypt.png index 2ebc4f6f966..55258949069 100644 Binary files a/htdocs/theme/common/mime/encrypt.png and b/htdocs/theme/common/mime/encrypt.png differ diff --git a/htdocs/theme/common/mime/error.png b/htdocs/theme/common/mime/error.png index f41dd8a3bc0..2ba500eea01 100644 Binary files a/htdocs/theme/common/mime/error.png and b/htdocs/theme/common/mime/error.png differ diff --git a/htdocs/theme/common/mime/flash.png b/htdocs/theme/common/mime/flash.png index ac3b89e0aac..9e7baf76670 100644 Binary files a/htdocs/theme/common/mime/flash.png and b/htdocs/theme/common/mime/flash.png differ diff --git a/htdocs/theme/common/mime/glasses.png b/htdocs/theme/common/mime/glasses.png index be153e04d45..bc92524681e 100644 Binary files a/htdocs/theme/common/mime/glasses.png and b/htdocs/theme/common/mime/glasses.png differ diff --git a/htdocs/theme/common/mime/html.png b/htdocs/theme/common/mime/html.png index 70b5e5a31af..77a8f97bdeb 100644 Binary files a/htdocs/theme/common/mime/html.png and b/htdocs/theme/common/mime/html.png differ diff --git a/htdocs/theme/common/mime/image.png b/htdocs/theme/common/mime/image.png index dbb1b823b10..07ec7159eee 100644 Binary files a/htdocs/theme/common/mime/image.png and b/htdocs/theme/common/mime/image.png differ diff --git a/htdocs/theme/common/mime/jnlp.png b/htdocs/theme/common/mime/jnlp.png index d53b7d0cdc7..4714cd13344 100644 Binary files a/htdocs/theme/common/mime/jnlp.png and b/htdocs/theme/common/mime/jnlp.png differ diff --git a/htdocs/theme/common/mime/jscript.png b/htdocs/theme/common/mime/jscript.png index af8f13ccc12..ef1604056dd 100644 Binary files a/htdocs/theme/common/mime/jscript.png and b/htdocs/theme/common/mime/jscript.png differ diff --git a/htdocs/theme/common/mime/library.png b/htdocs/theme/common/mime/library.png index 25f1df113ed..3c8d4aa4ffa 100644 Binary files a/htdocs/theme/common/mime/library.png and b/htdocs/theme/common/mime/library.png differ diff --git a/htdocs/theme/common/mime/lit.png b/htdocs/theme/common/mime/lit.png index 4804e9fbffa..03b1a2f327c 100644 Binary files a/htdocs/theme/common/mime/lit.png and b/htdocs/theme/common/mime/lit.png differ diff --git a/htdocs/theme/common/mime/mdb.png b/htdocs/theme/common/mime/mdb.png index bddba1f98ca..dbeacb6425d 100644 Binary files a/htdocs/theme/common/mime/mdb.png and b/htdocs/theme/common/mime/mdb.png differ diff --git a/htdocs/theme/common/mime/notavailable.png b/htdocs/theme/common/mime/notavailable.png index b1a4d2e47ac..32b66f300ca 100644 Binary files a/htdocs/theme/common/mime/notavailable.png and b/htdocs/theme/common/mime/notavailable.png differ diff --git a/htdocs/theme/common/mime/ooffice.png b/htdocs/theme/common/mime/ooffice.png index d5080edc26c..3d972c78a5b 100644 Binary files a/htdocs/theme/common/mime/ooffice.png and b/htdocs/theme/common/mime/ooffice.png differ diff --git a/htdocs/theme/common/mime/other.png b/htdocs/theme/common/mime/other.png index 6256a7fc753..615afd9417a 100644 Binary files a/htdocs/theme/common/mime/other.png and b/htdocs/theme/common/mime/other.png differ diff --git a/htdocs/theme/common/mime/page.png b/htdocs/theme/common/mime/page.png index 6ed2490ed14..28076870199 100644 Binary files a/htdocs/theme/common/mime/page.png and b/htdocs/theme/common/mime/page.png differ diff --git a/htdocs/theme/common/mime/pdf.png b/htdocs/theme/common/mime/pdf.png index 8c234ade6d5..2ef5d90fe4e 100644 Binary files a/htdocs/theme/common/mime/pdf.png and b/htdocs/theme/common/mime/pdf.png differ diff --git a/htdocs/theme/common/mime/php.png b/htdocs/theme/common/mime/php.png index 45e74486e43..cd0b763f1e4 100644 Binary files a/htdocs/theme/common/mime/php.png and b/htdocs/theme/common/mime/php.png differ diff --git a/htdocs/theme/common/mime/pl.png b/htdocs/theme/common/mime/pl.png index c8460bb2a03..18510183a62 100644 Binary files a/htdocs/theme/common/mime/pl.png and b/htdocs/theme/common/mime/pl.png differ diff --git a/htdocs/theme/common/mime/ppt.png b/htdocs/theme/common/mime/ppt.png index 71a41fa4559..90cdcc29e5c 100644 Binary files a/htdocs/theme/common/mime/ppt.png and b/htdocs/theme/common/mime/ppt.png differ diff --git a/htdocs/theme/common/mime/rss.png b/htdocs/theme/common/mime/rss.png index 6ef8b252969..c2be6ec6fa8 100644 Binary files a/htdocs/theme/common/mime/rss.png and b/htdocs/theme/common/mime/rss.png differ diff --git a/htdocs/theme/common/mime/script.png b/htdocs/theme/common/mime/script.png index 161f7707816..fbe0831cb12 100644 Binary files a/htdocs/theme/common/mime/script.png and b/htdocs/theme/common/mime/script.png differ diff --git a/htdocs/theme/common/mime/svg.png b/htdocs/theme/common/mime/svg.png index 6c627890259..09795f189d4 100644 Binary files a/htdocs/theme/common/mime/svg.png and b/htdocs/theme/common/mime/svg.png differ diff --git a/htdocs/theme/common/mime/text.png b/htdocs/theme/common/mime/text.png index cbefa2a14dc..396855b8ce9 100644 Binary files a/htdocs/theme/common/mime/text.png and b/htdocs/theme/common/mime/text.png differ diff --git a/htdocs/theme/common/mime/ttf.png b/htdocs/theme/common/mime/ttf.png index 4c258eb0b99..20271fb90fe 100644 Binary files a/htdocs/theme/common/mime/ttf.png and b/htdocs/theme/common/mime/ttf.png differ diff --git a/htdocs/theme/common/mime/unknown.png b/htdocs/theme/common/mime/unknown.png index 5c870176d4d..7f1e2d510cc 100644 Binary files a/htdocs/theme/common/mime/unknown.png and b/htdocs/theme/common/mime/unknown.png differ diff --git a/htdocs/theme/common/mime/video.png b/htdocs/theme/common/mime/video.png index eca195f5eba..db045f26f53 100644 Binary files a/htdocs/theme/common/mime/video.png and b/htdocs/theme/common/mime/video.png differ diff --git a/htdocs/theme/common/mime/xls.png b/htdocs/theme/common/mime/xls.png index 211ab0b0904..6a226f9b087 100644 Binary files a/htdocs/theme/common/mime/xls.png and b/htdocs/theme/common/mime/xls.png differ diff --git a/htdocs/theme/common/paypal.png b/htdocs/theme/common/paypal.png index d5705c8bbb9..32cae0ca9eb 100644 Binary files a/htdocs/theme/common/paypal.png and b/htdocs/theme/common/paypal.png differ diff --git a/htdocs/theme/common/redstar.png b/htdocs/theme/common/redstar.png index 486fd6770a2..b1fa6a0a8ed 100644 Binary files a/htdocs/theme/common/redstar.png and b/htdocs/theme/common/redstar.png differ diff --git a/htdocs/theme/common/skype_callbutton.png b/htdocs/theme/common/skype_callbutton.png index ceccf2858d2..3af90678a30 100644 Binary files a/htdocs/theme/common/skype_callbutton.png and b/htdocs/theme/common/skype_callbutton.png differ diff --git a/htdocs/theme/common/skype_chatbutton.png b/htdocs/theme/common/skype_chatbutton.png index d8135bb85a5..201e0e56c62 100644 Binary files a/htdocs/theme/common/skype_chatbutton.png and b/htdocs/theme/common/skype_chatbutton.png differ diff --git a/htdocs/theme/common/star.png b/htdocs/theme/common/star.png index 4b6b4584675..4d319e9e3b3 100644 Binary files a/htdocs/theme/common/star.png and b/htdocs/theme/common/star.png differ diff --git a/htdocs/theme/common/transform-crop-and-resize.png b/htdocs/theme/common/transform-crop-and-resize.png index 72512db6cd7..c32c661d56b 100644 Binary files a/htdocs/theme/common/transform-crop-and-resize.png and b/htdocs/theme/common/transform-crop-and-resize.png differ diff --git a/htdocs/theme/common/transparent.png b/htdocs/theme/common/transparent.png index fc8a9316444..ac576dd6ed1 100644 Binary files a/htdocs/theme/common/transparent.png and b/htdocs/theme/common/transparent.png differ diff --git a/htdocs/theme/common/treemenu/folder2-expanded.png b/htdocs/theme/common/treemenu/folder2-expanded.png index 21b1cda2363..1e37033f2c6 100644 Binary files a/htdocs/theme/common/treemenu/folder2-expanded.png and b/htdocs/theme/common/treemenu/folder2-expanded.png differ diff --git a/htdocs/theme/common/treemenu/folder2.png b/htdocs/theme/common/treemenu/folder2.png index 784e8fa4823..130b6b0c8a7 100644 Binary files a/htdocs/theme/common/treemenu/folder2.png and b/htdocs/theme/common/treemenu/folder2.png differ diff --git a/htdocs/theme/common/view-refresh.png b/htdocs/theme/common/view-refresh.png index 5601cf45857..4556b416708 100644 Binary files a/htdocs/theme/common/view-refresh.png and b/htdocs/theme/common/view-refresh.png differ diff --git a/htdocs/theme/dolibarr.png b/htdocs/theme/dolibarr.png index 691fc3d68a9..1ef6b77d4ca 100644 Binary files a/htdocs/theme/dolibarr.png and b/htdocs/theme/dolibarr.png differ diff --git a/htdocs/theme/dolibarr_logo.png b/htdocs/theme/dolibarr_logo.png old mode 100755 new mode 100644 index 5287d9dcc25..77c21461910 Binary files a/htdocs/theme/dolibarr_logo.png and b/htdocs/theme/dolibarr_logo.png differ diff --git a/htdocs/theme/dolibarr_logo_256x256.png b/htdocs/theme/dolibarr_logo_256x256.png index 970f841001b..3c3c61008ad 100644 Binary files a/htdocs/theme/dolibarr_logo_256x256.png and b/htdocs/theme/dolibarr_logo_256x256.png differ diff --git a/htdocs/theme/dolibarr_logo_bw.png b/htdocs/theme/dolibarr_logo_bw.png index 50b1608847c..1c016cce8bf 100644 Binary files a/htdocs/theme/dolibarr_logo_bw.png and b/htdocs/theme/dolibarr_logo_bw.png differ diff --git a/htdocs/theme/dolibarr_logo_squarred.png b/htdocs/theme/dolibarr_logo_squarred.png index bd8d7ac3bfd..bbe16cbc6db 100644 Binary files a/htdocs/theme/dolibarr_logo_squarred.png and b/htdocs/theme/dolibarr_logo_squarred.png differ diff --git a/htdocs/theme/dolibarr_logo_squarred_alpha.png b/htdocs/theme/dolibarr_logo_squarred_alpha.png index 06e69ad8b7b..f972c98bd04 100644 Binary files a/htdocs/theme/dolibarr_logo_squarred_alpha.png and b/htdocs/theme/dolibarr_logo_squarred_alpha.png differ diff --git a/htdocs/theme/dolibarr_preferred_partner_int.png b/htdocs/theme/dolibarr_preferred_partner_int.png old mode 100755 new mode 100644 index c72d6153ddc..6c705690327 Binary files a/htdocs/theme/dolibarr_preferred_partner_int.png and b/htdocs/theme/dolibarr_preferred_partner_int.png differ diff --git a/htdocs/theme/dolistore_logo.png b/htdocs/theme/dolistore_logo.png index 38642add7b5..adcb0147395 100644 Binary files a/htdocs/theme/dolistore_logo.png and b/htdocs/theme/dolistore_logo.png differ diff --git a/htdocs/theme/eldy/doc/badges.php b/htdocs/theme/eldy/doc/badges.php index 97cc8edb461..52a422a053c 100644 --- a/htdocs/theme/eldy/doc/badges.php +++ b/htdocs/theme/eldy/doc/badges.php @@ -1,11 +1,11 @@ - status- + status-
     
    -<span class="badge badge-status" >status</span>
    +<span class="badge badge-status" >status</span>
     
     		
    @@ -170,7 +170,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; Dark - status + status @@ -187,7 +187,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; <span class="badge badge-pill badge-light">Light</span> <span class="badge badge-pill badge-dark">Dark</span> -<span class="badge badge-pill badge-status" >status</span> +<span class="badge badge-pill badge-status" >status</span> @@ -209,7 +209,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; - + @@ -226,7 +226,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; <span class="badge badge-dot badge-light"></span> <span class="badge badge-dot badge-dark"></span> -<span class="badge badge-dot badge-status" ></span> +<span class="badge badge-dot badge-status" ></span> @@ -255,7 +255,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; Light Dark - status + status @@ -270,7 +270,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; <a href="#" class="badge badge-light">Light</a> <a href="#" class="badge badge-dark">Dark</a> -<a href="#" class="badge badge-status" >status</a> +<a href="#" class="badge badge-status" >status</a> diff --git a/htdocs/theme/eldy/dropdown.inc.php b/htdocs/theme/eldy/dropdown.inc.php index e930eef3f03..49f910f50da 100644 --- a/htdocs/theme/eldy/dropdown.inc.php +++ b/htdocs/theme/eldy/dropdown.inc.php @@ -1,5 +1,5 @@ +if (!defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?> /*
    '; diff --git a/htdocs/support/internet.png b/htdocs/support/internet.png index fa8be92fea2..9f923811baf 100644 Binary files a/htdocs/support/internet.png and b/htdocs/support/internet.png differ diff --git a/htdocs/support/mail.png b/htdocs/support/mail.png index 98c767536d5..95f3a5a050a 100644 Binary files a/htdocs/support/mail.png and b/htdocs/support/mail.png differ diff --git a/htdocs/support/pagemaster.png b/htdocs/support/pagemaster.png index d967fccdca3..f9e6b2b1ea3 100644 Binary files a/htdocs/support/pagemaster.png and b/htdocs/support/pagemaster.png differ diff --git a/htdocs/support/redstar.png b/htdocs/support/redstar.png index 001cde58667..b1fa6a0a8ed 100644 Binary files a/htdocs/support/redstar.png and b/htdocs/support/redstar.png differ diff --git a/htdocs/support/star.png b/htdocs/support/star.png index 4b6b4584675..4d319e9e3b3 100644 Binary files a/htdocs/support/star.png and b/htdocs/support/star.png differ diff --git a/htdocs/support/who.png b/htdocs/support/who.png index 53e59d206d3..34c6b87ff94 100644 Binary files a/htdocs/support/who.png and b/htdocs/support/who.png differ diff --git a/htdocs/takepos/admin/orderprinters.php b/htdocs/takepos/admin/orderprinters.php index 94a4ee8a85e..566f18ac1a4 100644 --- a/htdocs/takepos/admin/orderprinters.php +++ b/htdocs/takepos/admin/orderprinters.php @@ -26,7 +26,7 @@ * \brief Home page of category area */ -require '../../main.inc.php'; // Load $user and permissions +require '../../main.inc.php'; // Load $user and permissions require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; @@ -34,32 +34,32 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; $langs->loadLangs(array("main"), "categories", "takepos", "printing"); -if (! $user->rights->categorie->lire) accessforbidden(); +if (!$user->rights->categorie->lire) accessforbidden(); -$id=GETPOST('id', 'int'); -$type=(GETPOST('type', 'aZ09') ? GETPOST('type', 'aZ09') : Categorie::TYPE_PRODUCT); -$catname=GETPOST('catname', 'alpha'); -$action=GETPOST('action', 'alpha'); -$printer1=GETPOST('printer1', 'alpha'); -$printer2=GETPOST('printer2', 'alpha'); +$id = GETPOST('id', 'int'); +$type = (GETPOST('type', 'aZ09') ? GETPOST('type', 'aZ09') : Categorie::TYPE_PRODUCT); +$catname = GETPOST('catname', 'alpha'); +$action = GETPOST('action', 'alpha'); +$printer1 = GETPOST('printer1', 'alpha'); +$printer2 = GETPOST('printer2', 'alpha'); -if (is_numeric($type)) $type=Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility +if (is_numeric($type)) $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility /* * Actions */ -if ($action=="SavePrinter1"){ - $printedcategories=";"; - if (is_array($printer1)) foreach ($printer1 as $cat){ - $printedcategories=$printedcategories.$cat.";"; +if ($action == "SavePrinter1") { + $printedcategories = ";"; + if (is_array($printer1)) foreach ($printer1 as $cat) { + $printedcategories = $printedcategories.$cat.";"; } dolibarr_set_const($db, "TAKEPOS_PRINTED_CATEGORIES_1", $printedcategories, 'chaine', 0, '', $conf->entity); } -if ($action=="SavePrinter2"){ - $printedcategories=";"; - if (is_array($printer2)) foreach ($printer2 as $cat){ - $printedcategories=$printedcategories.$cat.";"; +if ($action == "SavePrinter2") { + $printedcategories = ";"; + if (is_array($printer2)) foreach ($printer2 as $cat) { + $printedcategories = $printedcategories.$cat.";"; } dolibarr_set_const($db, "TAKEPOS_PRINTED_CATEGORIES_2", $printedcategories, 'chaine', 0, '', $conf->entity); } @@ -72,18 +72,18 @@ if ($action=="SavePrinter2"){ $categstatic = new Categorie($db); $form = new Form($db); -if ($type == Categorie::TYPE_PRODUCT) { $title=$langs->trans("ProductsCategoriesArea"); $typetext='product'; } -elseif ($type == Categorie::TYPE_SUPPLIER) { $title=$langs->trans("SuppliersCategoriesArea"); $typetext='supplier'; } -elseif ($type == Categorie::TYPE_CUSTOMER) { $title=$langs->trans("CustomersCategoriesArea"); $typetext='customer'; } -elseif ($type == Categorie::TYPE_MEMBER) { $title=$langs->trans("MembersCategoriesArea"); $typetext='member'; } -elseif ($type == Categorie::TYPE_CONTACT) { $title=$langs->trans("ContactsCategoriesArea"); $typetext='contact'; } -elseif ($type == Categorie::TYPE_ACCOUNT) { $title=$langs->trans("AccountsCategoriesArea"); $typetext='bank_account'; } -elseif ($type == Categorie::TYPE_PROJECT) { $title=$langs->trans("ProjectsCategoriesArea"); $typetext='project'; } -elseif ($type == Categorie::TYPE_USER) { $title=$langs->trans("UsersCategoriesArea"); $typetext='user'; } -else { $title=$langs->trans("CategoriesArea"); $typetext='unknown'; } +if ($type == Categorie::TYPE_PRODUCT) { $title = $langs->trans("ProductsCategoriesArea"); $typetext = 'product'; } +elseif ($type == Categorie::TYPE_SUPPLIER) { $title = $langs->trans("SuppliersCategoriesArea"); $typetext = 'supplier'; } +elseif ($type == Categorie::TYPE_CUSTOMER) { $title = $langs->trans("CustomersCategoriesArea"); $typetext = 'customer'; } +elseif ($type == Categorie::TYPE_MEMBER) { $title = $langs->trans("MembersCategoriesArea"); $typetext = 'member'; } +elseif ($type == Categorie::TYPE_CONTACT) { $title = $langs->trans("ContactsCategoriesArea"); $typetext = 'contact'; } +elseif ($type == Categorie::TYPE_ACCOUNT) { $title = $langs->trans("AccountsCategoriesArea"); $typetext = 'bank_account'; } +elseif ($type == Categorie::TYPE_PROJECT) { $title = $langs->trans("ProjectsCategoriesArea"); $typetext = 'project'; } +elseif ($type == Categorie::TYPE_USER) { $title = $langs->trans("UsersCategoriesArea"); $typetext = 'user'; } +else { $title = $langs->trans("CategoriesArea"); $typetext = 'unknown'; } -$arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js'); -$arrayofcss=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.css'); +$arrayofjs = array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js'); +$arrayofcss = array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.css'); llxHeader('', $title, '', '', 0, 0, $arrayofjs, $arrayofcss); @@ -109,19 +109,19 @@ print '

    '; $cate_arbo = $categstatic->get_full_arbo($typetext); // Define fulltree array -$fulltree=$cate_arbo; +$fulltree = $cate_arbo; // Define data (format for treeview) -$data=array(); -$data[] = array('rowid'=>0,'fk_menu'=>-1,'title'=>"racine",'mainmenu'=>'','leftmenu'=>'','fk_mainmenu'=>'','fk_leftmenu'=>''); -foreach($fulltree as $key => $val) +$data = array(); +$data[] = array('rowid'=>0, 'fk_menu'=>-1, 'title'=>"racine", 'mainmenu'=>'', 'leftmenu'=>'', 'fk_mainmenu'=>'', 'fk_leftmenu'=>''); +foreach ($fulltree as $key => $val) { - $categstatic->id=$val['id']; - $categstatic->ref=$val['label']; - $categstatic->color=$val['color']; - $categstatic->type=$type; - $li=$categstatic->getNomUrl(1, '', 60); - $desc=dol_htmlcleanlastbr($val['description']); + $categstatic->id = $val['id']; + $categstatic->ref = $val['label']; + $categstatic->color = $val['color']; + $categstatic->type = $type; + $li = $categstatic->getNomUrl(1, '', 60); + $desc = dol_htmlcleanlastbr($val['description']); $data[] = array( 'rowid'=>$val['rowid'], @@ -135,15 +135,15 @@ foreach($fulltree as $key => $val) print ''; print ''; -$nbofentries=(count($data) - 1); +$nbofentries = (count($data) - 1); print ''; if ($nbofentries > 0) { print ''; } @@ -165,15 +165,15 @@ print '

    '; print '
    '.$langs->trans("Printer").' 1'; print '
    '; print ''; foreach ($data as $row) { - if (strpos($conf->global->TAKEPOS_PRINTED_CATEGORIES_1, ';'.$row["rowid"].';') !== false) $checked='checked'; else $checked=''; - if ($row["fk_menu"]==0) print ''.$row["label"].'
    '; + if (strpos($conf->global->TAKEPOS_PRINTED_CATEGORIES_1, ';'.$row["rowid"].';') !== false) $checked = 'checked'; else $checked = ''; + if ($row["fk_menu"] == 0) print ''.$row["label"].'
    '; } print '
    '; print ''; -$nbofentries=(count($data) - 1); +$nbofentries = (count($data) - 1); print ''; if ($nbofentries > 0) { print ''; } diff --git a/htdocs/takepos/admin/other.php b/htdocs/takepos/admin/other.php index 564b637d8e1..cbb22c94f90 100644 --- a/htdocs/takepos/admin/other.php +++ b/htdocs/takepos/admin/other.php @@ -22,11 +22,11 @@ * \brief Setup page for TakePos module */ require '../../main.inc.php'; // Load $user and permissions -require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/pdf.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php'; -require_once DOL_DOCUMENT_ROOT . "/core/lib/takepos.lib.php"; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT."/core/lib/takepos.lib.php"; // If socid provided by ajax company selector if (!empty($_REQUEST['CASHDESK_ID_THIRDPARTY_id'])) { @@ -42,8 +42,8 @@ $langs->loadLangs(array("admin", "cashdesk")); global $db; -$sql = "SELECT code, libelle FROM " . MAIN_DB_PREFIX . "c_paiement"; -$sql .= " WHERE entity IN (" . getEntity('c_paiement') . ")"; +$sql = "SELECT code, libelle FROM ".MAIN_DB_PREFIX."c_paiement"; +$sql .= " WHERE entity IN (".getEntity('c_paiement').")"; $sql .= " AND active = 1"; $sql .= " ORDER BY libelle"; $resql = $db->query($sql); @@ -88,7 +88,7 @@ if (GETPOST('action', 'alpha') == 'set') { $extrafields->addExtraField('order_notes', 'Order notes', 'varchar', 0, 255, 'facturedet', 0, 0, '', '', 0, '', 0, 1); } - dol_syslog("admin/cashdesk: level " . GETPOST('level', 'alpha')); + dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); if (!$res > 0) $error++; @@ -108,16 +108,16 @@ if (GETPOST('action', 'alpha') == 'set') { llxHeader('', $langs->trans("CashDeskSetup")); -$linkback = '' . $langs->trans("BackToModuleList") . ''; -print load_fiche_titre($langs->trans("CashDeskSetup") . ' (TakePOS)', $linkback, 'title_setup'); +$linkback = ''.$langs->trans("BackToModuleList").''; +print load_fiche_titre($langs->trans("CashDeskSetup").' (TakePOS)', $linkback, 'title_setup'); $head = takepos_prepare_head(); dol_fiche_head($head, 'other', 'TakePOS', -1); print '
    '; // Mode -print ''; -print ''; +print ''; +print ''; print ''; @@ -125,17 +125,17 @@ print '
    '; // Marketplace print "
    '.$langs->trans("Printer").' 2'; print '
    '; print ''; foreach ($data as $row) { - if (strpos($conf->global->TAKEPOS_PRINTED_CATEGORIES_2, ';'.$row["rowid"].';') !== false) $checked='checked'; else $checked=''; - if ($row["fk_menu"]==0) print ''.$row["label"].'
    '; + if (strpos($conf->global->TAKEPOS_PRINTED_CATEGORIES_2, ';'.$row["rowid"].';') !== false) $checked = 'checked'; else $checked = ''; + if ($row["fk_menu"] == 0) print ''.$row["label"].'
    '; } print '
    \n"; -print '' . "\n"; -print ''; -print ''; +print ''."\n"; +print ''; +print ''; print ''; $url = 'https://www.dolistore.com/45-pos'; -print '' . "\n"; -print ''; -print ''; -print ''; +print ''."\n"; +print ''; +print ''; +print ''; print ''; print "
    ' . $langs->trans("WebSiteDesc") . '' . $langs->trans("URL") . '
    '.$langs->trans("WebSiteDesc").''.$langs->trans("URL").'
    ' . $langs->trans("DolistorePosCategory") . '' . $url . '
    '.$langs->trans("DolistorePosCategory").''.$url.'
    \n"; @@ -149,17 +149,17 @@ print '
    '; // Support print "\n"; -print '' . "\n"; +print ''."\n"; print ''; -print ''; +print ''; print ''; $url = 'http://www.takepos.com'; -print '' . "\n"; -print ''; +print ''."\n"; +print ''; print ''; -print ''; +print ''; print ''; print "
    TakePOS Support' . $langs->trans("URL") . ''.$langs->trans("URL").'
    TakePOS original developers' . $url . ''.$url.'
    \n"; diff --git a/htdocs/takepos/admin/receipt.php b/htdocs/takepos/admin/receipt.php index d50faa480cb..83b31569a7b 100644 --- a/htdocs/takepos/admin/receipt.php +++ b/htdocs/takepos/admin/receipt.php @@ -153,15 +153,15 @@ print '
    '.$langs->trans("Parameters").''.$langs->trans("Value").'
    '; - print $langs->trans("IPAddress").' ('.$langs->trans("TakeposConnectorNecesary").')'; + print $langs->trans("URL")." / ".$langs->trans("IPAddress").' ('.$langs->trans("TakeposConnectorNecesary").')'; print ''; print ''; print '
    '; - $tmp=$module->getExample(); + $tmp = $module->getExample(); if (preg_match('/^Error/', $tmp)) print '
    '.$langs->trans($tmp).'
    '; - elseif ($tmp=='NotConfigured') print $langs->trans($tmp); + elseif ($tmp == 'NotConfigured') print $langs->trans($tmp); else print $tmp; print '
    '; +print $langs->trans('ControlCashOpening'); +print ''; +print ajax_constantonoff("TAKEPOS_CONTROL_CASH_OPENING", array(), $conf->entity, 0, 0, 1, 0); +print "
    '; //print $langs->trans("BillsNumberingModule"); diff --git a/htdocs/takepos/admin/terminal.php b/htdocs/takepos/admin/terminal.php index fa62aff1bc3..10a679615a9 100644 --- a/htdocs/takepos/admin/terminal.php +++ b/htdocs/takepos/admin/terminal.php @@ -41,7 +41,7 @@ if (!empty($_REQUEST['CASHDESK_ID_THIRDPARTY'.$terminal.'_id'])) // Security check if (!$user->admin) accessforbidden(); -$langs->loadLangs(array("admin", "cashdesk")); +$langs->loadLangs(array("admin", "cashdesk", "printing")); global $db; @@ -85,6 +85,8 @@ if (GETPOST('action', 'alpha') == 'set') $res = dolibarr_set_const($db, "CASHDESK_ID_WAREHOUSE".$terminaltouse, (GETPOST('CASHDESK_ID_WAREHOUSE'.$terminaltouse, 'alpha') > 0 ? GETPOST('CASHDESK_ID_WAREHOUSE'.$terminaltouse, 'alpha') : ''), 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "CASHDESK_NO_DECREASE_STOCK".$terminaltouse, GETPOST('CASHDESK_NO_DECREASE_STOCK'.$terminaltouse, 'alpha'), 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "TAKEPOS_PRINTER_TO_USE".$terminaltouse, GETPOST('TAKEPOS_PRINTER_TO_USE'.$terminaltouse, 'alpha'), 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, "TAKEPOS_ORDER_PRINTER1_TO_USE".$terminaltouse, GETPOST('TAKEPOS_ORDER_PRINTER1_TO_USE'.$terminaltouse, 'alpha'), 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, "TAKEPOS_ORDER_PRINTER2_TO_USE".$terminaltouse, GETPOST('TAKEPOS_ORDER_PRINTER2_TO_USE'.$terminaltouse, 'alpha'), 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES".$terminaltouse, GETPOST('TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminaltouse, 'alpha'), 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS".$terminaltouse, GETPOST('TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminaltouse, 'alpha'), 'chaine', 0, '', $conf->entity); @@ -229,23 +231,35 @@ if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter") { foreach ($printer->listprinters as $key => $value) { $printers[$value['rowid']] = $value['name']; } - print '
    '.$langs->trans("TakeposTerminalPrinterToUse").'
    '.$langs->trans("MainPrinterToUse").''; print $form->selectarray('TAKEPOS_PRINTER_TO_USE'.$terminal, $printers, (empty($conf->global->{'TAKEPOS_PRINTER_TO_USE'.$terminal}) ? '0' : $conf->global->{'TAKEPOS_PRINTER_TO_USE'.$terminal}), 1); print '
    '.$langs->trans("OrderPrinterToUse").' - '.$langs->trans("Printer").' 1'; + print $form->selectarray('TAKEPOS_ORDER_PRINTER1_TO_USE'.$terminal, $printers, (empty($conf->global->{'TAKEPOS_ORDER_PRINTER1_TO_USE'.$terminal}) ? '0' : $conf->global->{'TAKEPOS_ORDER_PRINTER1_TO_USE'.$terminal}), 1); + print '
    '.$langs->trans("OrderPrinterToUse").' - '.$langs->trans("Printer").' 2'; + print $form->selectarray('TAKEPOS_ORDER_PRINTER2_TO_USE'.$terminal, $printers, (empty($conf->global->{'TAKEPOS_ORDER_PRINTER2_TO_USE'.$terminal}) ? '0' : $conf->global->{'TAKEPOS_ORDER_PRINTER2_TO_USE'.$terminal}), 1); + print '
    '.$langs->trans("TakeposTerminalTemplateToUseForInvoicesTicket").'
    '.$langs->trans("MainTemplateToUse").''; print $form->selectarray('TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal, $templates, (empty($conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal}) ? '0' : $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal}), 1); print '
    '.$langs->trans("TakeposTerminalTemplateToUseForOrdersTicket").''; - print $form->selectarray('TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminal, $templates, (empty($conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminal}) ? '0' : $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminal}), 1); - print '
    '.$langs->trans("OrderTemplateToUse").''; + print $form->selectarray('TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminal, $templates, (empty($conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminal}) ? '0' : $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminal}), 1); + print '
    '.$langs->trans('CashDeskReaderKeyCodeForEnter').'
    '.$line->qty; @@ -533,13 +534,15 @@ if ($action == "order" and $placeid != 0) $order_receipt_printer1 .= '
    '.$line->qty; @@ -558,9 +562,10 @@ if ($action == "order" and $placeid != 0) $order_receipt_printer2 .= '