Merge remote-tracking branch 'Dolibarr/12.0' into 12

This commit is contained in:
Francis Appels 2020-05-27 11:07:56 +02:00
commit 479de9a7d3
66 changed files with 688 additions and 412 deletions

255
ChangeLog
View File

@ -2,6 +2,234 @@
English Dolibarr ChangeLog
--------------------------------------------------------------
***** ChangeLog for 12.0 compared to 11.0 *****
For users:
NEW: Module MO (Manufacturing Order) is available as stable module.
NEW: Receipt printer module moved from 'development' to 'experimental'
NEW: Add option MAIN_VIEW_LINE_NUMBER_IN_LIST for some lists.
NEW: add numbering module for TakePOS module
NEW: 2 new options when creating an invoice from time spent on a project : by period or by task
NEW: Accountancy add column thirdparty on binding page
NEW: Accountancy - Add Export for Fiducial Winfic eWinfic WinSis Compta
NEW: Accountancy - Add Export LD compta version 10
NEW: Accountancy - Add mode intra & export for product or service bought
NEW: Accountancy - Add possibility to manage a short alternative label for account - Use to simplify accountancy
NEW: Accountancy - General ledger - Add an option to search not reconciled lines
NEW: Add accountancy code of thirdparty in contact and supplier export
NEW: add a link to notes in members list
NEW: add a parameter to group same products in TakePOS
NEW: add a parameter to sort product by label in TakePOS
NEW: Add a profil to import contact categories
NEW: Add company extrafields into order export
NEW: add const CASHDESK_FORCE_DECREASE_STOCK to force batch decrementation
NEW: add const TAKEPOS_NUMPAD_USE_PAYMENT_ICON to use icons on payment buttons
NEW: add csv separator setup in module admin
NEW: add dedicated substitutions keys for extrafields of type date and datetime
NEW: add default warehouse for dispatch
NEW: Add due date in feature "Export accounting documents"
NEW: Add duration information for fichinter
NEW: Start support of Dark theme into ELDY theme
NEW: Add field author public alias for blog post on website module
NEW: Add "finished" field on product list
NEW: Add French association chart of accounts 2018
NEW: Add French farm chart of accounts 2014
NEW: Add French foundation chart of accounts 2018
NEW: add global reduction in cash desk
NEW: Add graph type 'piesemicircle'
NEW: Add hook getInputIdProf. Better solution for #13228
NEW: Add hook on margin list page
NEW: add icon on payment buttons in cash desk
NEW: Add include various payments and loans in accounting report with simplfified accountancy
NEW: Add invoice stat graph and categ search
NEW: Addition of delivery times in substitution variables
NEW: add member to validate on dashboard
NEW: Add method to add social network sharing buttons on blog posts
NEW: add multicurrency columns to document lists
NEW: add numbering module for cash desk
NEW: add Opening Balance column to balance.php
NEW: add opportunity status in project stats
NEW: Add option PDF_USE_ALSO_LANGUAGE_CODE to generate PDF in 2 languages
NEW: Add option to hide all inactive users into combo list of users.
NEW: add PDF certificate if present on document folder
NEW: add product if only one found
NEW: Add product on key "Enter" in search bar
NEW: add professional ID 1 in sepamandate document
NEW: Add Project Ref Column on list of social/fiscal contributions
NEW: add Project Ref in events export
NEW: add public and private notes in propal list
NEW: Add social networks of the company
NEW: Add sorting for contacts of ... pages
NEW: Add subtitution variables for url of document in backoffice
NEW: Add tel and fax in warehouse card
NEW: add total of value in product stat
NEW: add total weighted amount in project list
NEW: add units in product list
NEW: add VAT ID in sepamandate document
NEW: add VAT rates in free zone for product/service in TakePOS
NEW: add weighted amount on project/opportunity
NEW: add width and height measures in product list
NEW: add WYSiWYG on member type's description
NEW: [Allow constants values to be overridden by environment variables]
NEW: Allow custom module class origine type in Mouvementstock
NEW: allow display extrafields on pdf
NEW: Allow extrafields on pdf : extend to line desc
NEW: allow time consumed to be linked to another task
NEW: Another way to navigate between pages for some lists
NEW: Add author column in the client/supplier invoice lists and into order list
NEW: bank account tags for invoice ODT template
NEW: Bar Restaurant tab and Auto order
NEW: better filter on shipment list as other list
NEW: Better php module view admin
NEW: Bookkeeping - Add link to document & pdf
NEW: Bookmarks are now in top menu bar
NEW: Can check all events in one click in setup of audited events
NEW: Can create an deposit from order using a percentage of qty.
NEW: Can edit option PDF_USE_ALSO_LANGUAGE_CODE from PDF setup page
NEW: Can enter and edit stripe credit card using the Stripe card ID
NEW: Can filter on donation status in list
NEW: Can replace a string into all pages in website module
NEW: Can select several fields to personalize list before submit.
NEW: Can select which element to export in export accounting documents.
NEW: can update contact in import model
NEW: Cash Fence in TakePOS
NEW: Categories and subcategories sorted by label in TakePOS
NEW: Categories for actioncomm
NEW: Category filter for bank and warehouse list
NEW: Chart of accounts to Ecuador
NEW: class tool for converting units
NEW: Close #13011 Add button create thirdparty when creating intervention
NEW: Colorful theme for TakePOS
NEW: columns units in product list
NEW: compatibility of translabel with more dict
NEW: Confirm file delete on fracture card
NEW: "contact_civility" for ODT templates
NEW: CUPS printing compatibility for TakePOS
NEW: Customer command list - Add date start & date end
NEW: display weight in shipment list
NEW: Documentation about PHP support in Dolibarr
NEW: Donation - Update FR CERFA to 11580*04
NEW: Easier way to setup the different types of tax. Better visibility.
NEW: enable put for agendaevents api
NEW: Expedition list - Add date start & date end
NEW: Experiment supplier packaging with option PRODUCT_USE_SUPPLIER_PACKAGING: Using price according to the minimum quantity
NEW: Export module, add extrafields for Contract and Contract line
NEW: Extend retained warranty to be available for all invoices
NEW: filter by product on supplier order API
NEW: French new regions
NEW: get documents for categories with RESP API
NEW: get proposal by ref with API
NEW: Hidden option MAIN_TEMP_DIR
NEW: hook and data id
NEW: hook on ics generation to add more events in eventarray
NEW: hook on product load stats
NEW: If $dolibarr_main_force_https is set, the flag 'secure' on session
NEW: ignore dir for apple pay with stripe
NEW: Invoice list - Add date start & date end
NEW: invoice list: enable multicurrency columns
NEW: labels on reduction buttons in cash desk
NEW: Minimum sell prices taking into account in TakePOS
NEW: monthly view to enter time
NEW: Multiple sales in TakePOS
NEW: multiselect categorie client stats facturation
NEW: no confirm discard ticket if paid
NEW: not show linked table on add message action
NEW: only auto print paid ticket in cash desk
NEW: only show units columns in product list (not in service list)
NEW: order list: enable multicurrency columns
NEW: Overwrite tpl with module_part['tpl'] is deprecated. USe hooks
NEW: possibility to defined rounding rules by currency
NEW: possibility to show society info when print page
NEW: Povide a RSS Feed for blogposts
NEW: PRODUCT_SHOW_ORIGIN_IN_COMBO
NEW: Project task list, add column selector and extrafields
NEW: Propal list - Add date start & date end
NEW: propal list: enable multicurrency columns
NEW: RECEIPT_PRINTER_NB_CHARACT_BY_LINE and FIX: product label
NEW: Restore version of application on main screen (for screenshots)
NEW: Salaries list - Add date start & date end
NEW: search on key code "enter" if defined in TakePOS
NEW: set payment method on paid ticket in TakePOS
NEW: Show active widget state of a RSS feed
NEW: Show count of each category elements in category card
NEW: Show creator, last update user of category/tag in the information tab
NEW: Show list of users in the user category card
NEW: show messages on ticket card
NEW: show "New category" button in top of sub categories list
NEW: show project label in project index
NEW: Show units of products in stocks and hide total units if content is of diffents units
NEW: sorting elements on project overview
NEW: special option MAIN_CREATEFROM_KEEP_LINE_ORIGIN_INFORMATION to store in document line created form other documents lines the id of original lines and origin class line rather than origin object id and origin object type
NEW: stats invoice graph with 3 bars (3 years instead of 2)
NEW: supplier invoice list: enable multicurrency columns
NEW: supplier order list: enable multicurrency columns
NEW: supplier proposal list: enable multicurrency columns
NEW: Support of tag {line_pos} for line numbers for tables in ODT templates
NEW: Support some HTML contents into ODT documents
NEW: Parameters for Bar Restaurant are grouped in same tab
NEW: Takepos : Sort products by reference
NEW: Takepos supplements are supported.
NEW: The info_admin() can show text after click on other text
NEW: The module selection uses a KanBan view by default.
NEW: tooltip for Unit_type and scale in "Dictionary setup - Measuring Units"
NEW: tooltip notes with first public note and then private note
NEW: Tree view for sub-categories
NEW: Truncate columns names when too long and show full title as popup
NEW: upload odt models for invoices, order, proposal, thirdparties and shipments.
NEW: Use native --convert-to feature to convert to pdf
NEW: Add user on order list
NEW: Various payment list - Add search date start & date end & subledger account
NEW: visu FROM day TO day in permonth view
NEW: Website logs are now into a separated log file.
NEW: X-Axis on graph are shown verticaly when there is a lot of values.
NEW: Can force ref of a variant product
For developers or integrators:
NEW: Add a method $form->widgetForTranslation to allow any field of a form to be entered into different languages.
NEW: Add API to get types of expense reports
NEW: API filter bankaccounts by category
NEW: API filter contacts by category
NEW: API filter members by category
NEW: API filter projects by category
NEW: API filter thirdpartie by category
NEW: API filter thirdparty by category
NEW: API filter user by category
NEW: API filter warehouses by categorie
NEW: api for get user's documents
NEW: api invoice get by ref
NEW: API to update purchase price.
NEW: Move engine to build charts from jflot to chart.js
NEW: Upgrade ace to 1.4.8 - Upgrade select2 to 4.0.13
NEW: Upgrade Stripe library to 6.43.1
NEW: Bookkeeping by account - Add selectfields & hook
NEW: Can force position of legend of graph on right (instead of top)
NEW: Can change destination of "Back to list" using a "backtolist" parameter
NEW: add more category types from hook
WARNING:
Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
* PHP 5.5 is no more supported. Minimum PHP is now 5.6+.
* Default mode for GETPOST function is now 'alphanohtml' instead of 'none'. So check when you make POST or GET requests with
HTML content that you make a GETPOST('myparam', 'restricthtml') or GETPOST('myparam', 'none') if you really need posted content without sanitizing
the HTML code of content (in such a case, sanitize data later)
* 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) was removed.
* Library geoip (replaced with geoip2) was removed.
* Hidden constant COMMANDE_VALID_AFTER_CLOSE_PROPAL was renamed into ORDER_VALID_AFTER_CLOSE_PROPAL.
* Object field ref_int is deprecated and set to 'not used', method to fetch object by only ref_int is not supported anymore.
* UserGroup class has been refactored with new architecture. Triggers of class UserGroup are now USERGROUP_CREATE, USERGROUP_MODIFY, USERGROUP_DELETE
* A new way to navigate between pages in list is available. To use it (not mandatory), you must:
- replace line $page = GETPOST('page', 'int') with $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
- remove input field in form '<input type="hidden" name="page" value="'.$page.'">';'
- add parameter $pagenavastextinput to value 1 when calling print_barre_liste()
***** ChangeLog for 11.0.4 compared to 11.0.3 *****
FIX: #13749
FIX: #7594 Expense report multi pagebreak
@ -80,33 +308,6 @@ FIX: Wrong Sql on getListOfTowns api method
FIX: wrong user right's name to top menu "commercial"
FIX: XSS Vulnerability reported by Mehmet Kelepçe / Gais Cyber Security
***** 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
- replace $page = GETPOST('page', 'int') with $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
- remove input field in form '<input type="hidden" name="page" value="'.$page.'">';'
- add parameter $pagenavastextinput to value 1 when calling print_barre_liste
* UserGroup class has been refactored with new architecture. Triggers of class UserGroup are now USERGROUP_CREATE, USERGROUP_MODIFY, USERGROUP_DELETE
WARNING:
Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
* PHP 5.5 is no more supported. Minimum PHP is now 5.6+.
* Default mode for GETPOST function is now 'alphanohtml' instead of 'none'. So check when you make POST or GET requests
with HTML content that you make a GETPOST('myparam', 'restricthtml') or GETPOST('myparam', 'none') if you really need posted content without sanitizing
the HTML into content (in such a case, sanitize data later)
* 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.
* Object field ref_int is deprecated and set to not used, object fetch by only ref_int is not supported anymore.
***** ChangeLog for 11.0.3 compared to 11.0.2 *****
FIX: unit price for selected supplier products not set. NaN was used.
FIX: use bad var to check if total is positive for each VAT rate when validating an invoice

View File

@ -301,6 +301,9 @@ 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);
if ($search_state) $sql .= natural_search("state.nom", $search_state);
if ($search_phone) $sql .= natural_search("d.phone", $search_phone);
if ($search_phone_perso) $sql .= natural_search("d.phone_perso", $search_phone_perso);
if ($search_phone_mobile) $sql .= natural_search("d.phone_mobile", $search_phone_mobile);
if ($search_country) $sql .= " AND d.country IN (".$search_country.')';
if ($filter == 'uptodate') $sql .= " AND (datefin >= '".$db->idate($now)."' OR t.subscription = 0)";
if ($filter == 'outofdate') $sql .= " AND ((datefin IS NULL OR datefin < '".$db->idate($now)."') AND t.subscription = 1)";

View File

@ -1198,7 +1198,7 @@ if ($mode == 'develop')
print '<tr class="oddeven" height="80">'."\n";
print '<td class="left">';
//span class="fa fa-bug"></span>
//print '<img border="0" class="imgautosize imgmaxwidth180" src="'.DOL_URL_ROOT.'/theme/dolibarr_preferred_partner_int.png">';
//print '<img border="0" class="imgautosize imgmaxwidth180" src="'.DOL_URL_ROOT.'/theme/dolibarr_preferred_partner.png">';
print '<div class="imgmaxheight50 logo_setup"></div>';
print '</td>';
print '<td>'.$langs->trans("TryToUseTheModuleBuilder", $langs->transnoentitiesnoconv("ModuleBuilder")).'</td>';
@ -1208,7 +1208,7 @@ if ($mode == 'develop')
print '<tr class="oddeven" height="80">'."\n";
$url = 'https://partners.dolibarr.org';
print '<td class="left">';
print'<a href="'.$url.'" target="_blank" rel="external"><img border="0" class="imgautosize imgmaxwidth180" src="'.DOL_URL_ROOT.'/theme/dolibarr_preferred_partner_int.png"></a>';
print'<a href="'.$url.'" target="_blank" rel="external"><img border="0" class="imgautosize imgmaxwidth180" src="'.DOL_URL_ROOT.'/theme/dolibarr_preferred_partner.png"></a>';
print '</td>';
print '<td>'.$langs->trans("DoliPartnersDesc").'</td>';
print '<td><a href="'.$url.'" target="_blank" rel="external">'.$url.'</a></td>';

View File

@ -82,7 +82,7 @@ class Asset extends CommonObject
'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'notnull'=>-1, 'searchall'=>1),
'amount_ht' => array('type'=>'double(24,8)', 'label'=>'AmountHTShort', 'visible'=>1, 'enabled'=>1, 'position'=>40, 'notnull'=>-1, 'isameasure'=>'1', 'help'=>"Help text",),
'amount_vat' => array('type'=>'double(24,8)', 'label'=>'AmountVAT', 'visible'=>1, 'enabled'=>1, 'position'=>40, 'notnull'=>-1, 'isameasure'=>'1', 'help'=>"Help text",),
'fk_asset_type' => array('type'=>'integer:AssetType:asset/class/asset_type.class.php', 'label'=>'AssetsType', 'visible'=>1, 'enabled'=>1, 'position'=>50, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'help'=>"LinkToThirparty",),
'fk_asset_type' => array('type'=>'integer:AssetType:asset/class/asset_type.class.php', 'label'=>'AssetsType', 'visible'=>1, 'enabled'=>1, 'position'=>50, 'notnull'=>1, 'index'=>1, 'searchall'=>1),
'description' => array('type'=>'text', 'label'=>'Description', 'visible'=>-1, 'enabled'=>1, 'position'=>90, 'notnull'=>-1,),
'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'visible'=>-1, 'enabled'=>1, 'position'=>91, 'notnull'=>-1,),
'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'visible'=>-1, 'enabled'=>1, 'position'=>92, 'notnull'=>-1,),

View File

@ -91,7 +91,7 @@ class BOM extends CommonObject
'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id",),
'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=> 1, 'default'=>1, 'index'=>1, 'position'=>5),
'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'noteditable'=>1, 'visible'=>4, 'position'=>10, 'notnull'=>1, 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of BOM", 'showoncombobox'=>'1',),
'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'notnull'=>1, 'searchall'=>1, 'showoncombobox'=>'1',),
'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'notnull'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'autofocusoncreate'=>1),
'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-1, 'position'=>60, 'notnull'=>-1,),
'fk_product' => array('type'=>'integer:Product:product/class/product.class.php:1:(finished IS NULL or finished <> 0)', 'label'=>'Product', 'enabled'=>1, 'visible'=>1, 'position'=>35, 'notnull'=>1, 'index'=>1, 'help'=>'ProductBOMHelp'),
'qty' => array('type'=>'real', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>1, 'default'=>1, 'position'=>55, 'notnull'=>1, 'isameasure'=>'1', 'css'=>'maxwidth75imp'),

View File

@ -60,10 +60,10 @@ llxHeader('', $langs->trans('Categories'), '');
//$object->info($object->id);
$head = categories_prepare_head($object, $type);
$title = Categorie::$MAP_TYPE_TITLE_AREA[$type];
$head = categories_prepare_head($object, $type);
dol_fiche_head($head, 'info', $langs->trans($title), -1, 'category');
$backtolist = (GETPOST('backtolist') ? GETPOST('backtolist') : DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type);
$linkback = '<a href="'.$backtolist.'">'.$langs->trans("BackToList").'</a>';
@ -78,14 +78,21 @@ $morehtmlref .= '</div>';
dol_banner_tab($object, 'label', $linkback, ($user->socid ? 0 : 1), 'label', 'label', $morehtmlref, '&type='.$type, 0, '', '', 1);
print '<br>';
print '<div class="fichecenter">';
print '<div class="underbanner clearboth"></div>';
print '<br>';
print '<table width="100%"><tr><td>';
print '<table "border centpercent tableforfield">';
print '<tr><td>';
dol_print_object_info($object);
print '</td></tr></table>';
print '</td></tr>';
print '</table>';
print '</div>';
dol_fiche_end();

View File

@ -144,7 +144,7 @@ if ($object->id)
print '<div class="fichecenter">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent">';
print '<table class="border centpercent tableforfield">';
// Description
print '<tr><td class="titlefield notopnoleft">';

View File

@ -22,7 +22,7 @@
/**
* \file htdocs/product/traduction.php
* \ingroup product
* \brief Page de traduction des produits
* \brief Page of translation of products
*/
require '../main.inc.php';
@ -167,12 +167,12 @@ $cancel != $langs->trans("Cancel") &&
* View
*/
llxHeader("", "", $langs->trans("Translation"));
$form = new Form($db);
$formadmin = new FormAdmin($db);
$formother = new FormOther($db);
llxHeader("", "", $langs->trans("Translation"));
$title = Categorie::$MAP_TYPE_TITLE_AREA[$type];
$head = categories_prepare_head($object, $type);
@ -194,8 +194,7 @@ $object->next_prev_filter = ' type = '.$object->type;
$object->ref = $object->label;
$morehtmlref = '<br><div class="refidno"><a href="'.DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type.'">'.$langs->trans("Root").'</a> >> ';
$ways = $object->print_all_ways(" &gt;&gt; ", '', 1);
foreach ($ways as $way)
{
foreach ($ways as $way) {
$morehtmlref .= $way."<br>\n";
}
$morehtmlref .= '</div>';
@ -207,7 +206,7 @@ print '<br>';
print '<div class="fichecenter">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent">';
print '<table class="border centpercent tableforfield">';
// Description
print '<tr><td class="titlefield notopnoleft">';

View File

@ -241,7 +241,7 @@ print '<br>';
print '<div class="fichecenter">';
print '<div class="underbanner clearboth"></div>';
print '<table width="100%" class="border">';
print '<table class="border centpercent tableforfield">';
// Description
print '<tr><td class="titlefield notopnoleft tdtop">';

View File

@ -20,7 +20,7 @@
/**
* \file htdocs/commande/info.php
* \ingroup commande
* \brief Page des informations d'une commande
* \brief Sale Order info page
*/
require '../main.inc.php';

View File

@ -89,6 +89,8 @@ if ($mode == 'sconly') $param = '&mode=sconly';
if ($sortfield) $param .= '&sortfield='.$sortfield;
if ($sortorder) $param .= '&sortorder='.$sortorder;
$totalnboflines = 0;
$num = 0;
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
@ -99,14 +101,15 @@ print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
print '<input type="hidden" name="page" value="'.$page.'">';
print '<input type="hidden" name="mode" value="'.$mode.'">';
$nav = '';
if ($mode != 'sconly')
{
$center = ($year ? '<a href="index.php?year='.($year - 1).$param.'">'.img_previous($langs->trans("Previous"), 'class="valignbottom"')."</a> ".$langs->trans("Year").' '.$year.' <a href="index.php?year='.($year + 1).$param.'">'.img_next($langs->trans("Next"), 'class="valignbottom"')."</a>" : "");
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $center, $num, $totalnboflines, 'object_payment', 0, '', '', $limit, 1);
$nav = ($year ? '<a href="index.php?year='.($year - 1).$param.'">'.img_previous($langs->trans("Previous"), 'class="valignbottom"')."</a> ".$langs->trans("Year").' '.$year.' <a href="index.php?year='.($year + 1).$param.'">'.img_next($langs->trans("Next"), 'class="valignbottom"')."</a>" : "");
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'object_payment', 0, $nav, '', $limit, 1);
}
else
{
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $center, $num, $totalnboflines, 'object_payment', 0, '', '', $limit, 0);
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'object_payment', 0, $nav, '', $limit, 0);
}
if ($year) $param .= '&year='.$year;

View File

@ -88,7 +88,9 @@ class box_produits_alerte_stock extends ModeleBoxes
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 = "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.barcode, p.seuil_stock_alerte, p.entity,";
$sql .= " p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export,";
$sql .= " p.accountancy_code_buy, p.accountancy_code_buy_intra, p.accountancy_code_buy_export,";
$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";
@ -103,8 +105,10 @@ class box_produits_alerte_stock extends ModeleBoxes
$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 .= " 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.barcode, p.seuil_stock_alerte, p.entity,";
$sql .= " p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export,";
$sql .= " p.accountancy_code_buy, p.accountancy_code_buy_intra, p.accountancy_code_buy_export";
$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);
@ -142,6 +146,15 @@ class box_produits_alerte_stock extends ModeleBoxes
$productstatic->type = $objp->fk_product_type;
$productstatic->label = $objp->label;
$productstatic->entity = $objp->entity;
$productstatic->barcode = $objp->barcode;
$productstatic->status = $objp->tosell;
$productstatic->status_buy = $objp->tobuy;
$productstatic->accountancy_code_sell = $objp->accountancy_code_sell;
$productstatic->accountancy_code_sell_intra = $objp->accountancy_code_sell_intra;
$productstatic->accountancy_code_sell_export = $objp->accountancy_code_sell_export;
$productstatic->accountancy_code_buy = $objp->accountancy_code_buy;
$productstatic->accountancy_code_buy_intra = $objp->accountancy_code_buy_intra;
$productstatic->accountancy_code_buy_export = $objp->accountancy_code_buy_export;
$this->info_box_contents[$line][] = array(
'td' => '',

View File

@ -133,7 +133,7 @@ class box_shipments extends ModeleBoxes
$societestatic->logo = $objp->logo;
$this->info_box_contents[$line][] = array(
'td' => '',
'td' => 'class="nowraponall"',
'text' => $shipmentstatic->getNomUrl(1),
'asis' => 1,
);
@ -145,7 +145,7 @@ class box_shipments extends ModeleBoxes
);
$this->info_box_contents[$line][] = array(
'td' => '',
'td' => 'class="nowraponall"',
'text' => $orderstatic->getNomUrl(1),
'asis' => 1,
);

View File

@ -218,8 +218,8 @@ abstract class CommonDocGenerator
'company_idprof6'=>$object->idprof6,
'company_note_public'=>$object->note_public,
'company_note_private'=>$object->note_private,
'company_default_bank_iban'=>$object->bank_account->iban,
'company_default_bank_bic'=>$object->bank_account->bic
'company_default_bank_iban'=>(is_object($object->bank_account) ? $object->bank_account->iban : ''),
'company_default_bank_bic'=>(is_object($object->bank_account) ? $object->bank_account->bic : '')
);
// Retrieve extrafields

View File

@ -6046,6 +6046,7 @@ abstract class CommonObject
$computed = $this->fields[$key]['computed'];
$unique = $this->fields[$key]['unique'];
$required = $this->fields[$key]['required'];
$autofocusoncreate = $this->fields[$key]['autofocusoncreate'];
$langfile = $this->fields[$key]['langfile'];
$list = $this->fields[$key]['list'];
@ -6122,19 +6123,19 @@ abstract class CommonObject
{
$tmp = explode(',', $size);
$newsize = $tmp[0];
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$newsize.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').'>';
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$newsize.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
}
elseif (in_array($type, array('real')))
{
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').'>';
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
}
elseif (preg_match('/varchar/', $type))
{
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$size.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').'>';
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$size.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
}
elseif (in_array($type, array('mail', 'phone', 'url')))
{
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam ? $moreparam : '').'>';
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
}
elseif ($type == 'text')
{

View File

@ -1,9 +1,7 @@
<?php
use Splash\Tests\WsObjects\O00ObjectBaseTest;
/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Xavier Dutoit <doli@sydesy.com>
* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2020 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2017 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2006 Jean Heimburger <jean@tiaris.info>
*

View File

@ -175,7 +175,7 @@ class FormTicket
print '</td></tr>';
}
// Si origin du ticket
// If ticket created from another object
if (isset($this->param['origin']) && $this->param['originid'] > 0) {
// Parse element/subelement (ex: project_task)
$element = $subelement = $this->param['origin'];
@ -225,7 +225,7 @@ class FormTicket
if ($this->withthreadid > 0) {
$subject = $langs->trans('SubjectAnswerToTicket').' '.$this->withthreadid.' : '.$this->topic_title.'';
}
print '<input class="text minwidth300" id="subject" name="subject" value="'.(GETPOST('subject', 'alpha') ? GETPOST('subject', 'alpha') : $subject).'" />';
print '<input class="text minwidth500" id="subject" name="subject" value="'.(GETPOST('subject', 'alpha') ? GETPOST('subject', 'alpha') : $subject).'" autofocus />';
print '</td></tr>';
}
}

View File

@ -802,7 +802,10 @@ function show_projects($conf, $langs, $db, $object, $backtopage = '', $nocreatel
print '<tr class="oddeven">';
// Ref
print '<td><a href="'.DOL_URL_ROOT.'/projet/card.php?id='.$projecttmp->id.'">'.img_object($langs->trans("ShowProject"), ($obj->public ? 'projectpub' : 'project'))." ".$obj->ref.'</a></td>';
print '<td>';
print $projecttmp->getNomUrl(1);
print '</td>';
// Label
print '<td>'.$obj->title.'</td>';
// Date start

View File

@ -3167,7 +3167,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
'object_phoning', 'object_phoning_mobile', 'object_phoning_fax', 'object_email', 'object_website',
'off', 'on', 'order',
'paiment', 'play', 'playdisabled', 'poll', 'printer', 'product', 'propal', 'projecttask', 'stock', 'resize', 'service', 'stats', 'trip',
'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'vcard', 'wrench',
'setup', 'sign-out', 'split', 'stripe-s', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'vcard', 'wrench',
'jabber', 'skype', 'twitter', 'facebook', 'linkedin', 'instagram', 'snapchat', 'youtube', 'google-plus-g', 'whatsapp',
'chevron-left', 'chevron-right', 'chevron-down', 'chevron-top',
'home', 'companies', 'products', 'commercial', 'invoicing', 'preview', 'project', 'projectpub', 'supplier_invoice', 'hrm', 'members', 'ticket', 'generic',
@ -3181,7 +3181,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
if (in_array($pictowithouttext, array('object_generic', 'note', 'off', 'on', 'object_bookmark', 'bookmark', 'vcard'))) {
$fa = 'far';
}
if (in_array($pictowithouttext, array('skype', 'twitter', 'facebook', 'linkedin', 'instagram', 'snapchat', 'youtube', 'google-plus-g', 'whatsapp'))) {
if (in_array($pictowithouttext, array('skype', 'twitter', 'facebook', 'linkedin', 'instagram', 'snapchat', 'stripe-s', 'youtube', 'google-plus-g', 'whatsapp'))) {
$fa = 'fab';
}
@ -3262,24 +3262,24 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
// Add CSS
$arrayconvpictotomorcess = array(
'action'=>'bg-infobox-action', 'account'=>'bg-infobox-bank_account', 'accountancy'=>'bg-infobox-bank_account',
'action'=>'infobox-action', 'account'=>'infobox-bank_account', 'accountancy'=>'infobox-bank_account',
'bank_account'=>'bg-infobox-bank_account',
'bill'=>'bg-infobox-commande', 'billa'=>'bg-infobox-commande', 'billd'=>'bg-infobox-commande',
'cash-register'=>'bg-infobox-bank_account', 'contract'=>'bg-infobox-contrat', 'check'=>'font-status4', 'conversation'=>'bg-infobox-contrat',
'donation'=>'bg-infobox-commande', 'dollyrevert'=>'flip', 'ecm'=>'bg-infobox-action',
'hrm'=>'bg-infobox-adherent', 'group'=>'bg-infobox-adherent', 'intervention'=>'bg-infobox-contrat',
'multicurrency'=>'bg-infobox-bank_account',
'members'=>'bg-infobox-adherent', 'member'=>'bg-infobox-adherent', 'money-bill-alt'=>'bg-infobox-bank_account',
'order'=>'bg-infobox-commande',
'user'=>'bg-infobox-adherent', 'users'=>'bg-infobox-adherent',
'bill'=>'infobox-commande', 'billa'=>'infobox-commande', 'billd'=>'infobox-commande',
'cash-register'=>'infobox-bank_account', 'contract'=>'infobox-contrat', 'check'=>'font-status4', 'conversation'=>'infobox-contrat',
'donation'=>'infobox-commande', 'dollyrevert'=>'flip', 'ecm'=>'infobox-action',
'hrm'=>'infobox-adherent', 'group'=>'infobox-adherent', 'intervention'=>'infobox-contrat',
'multicurrency'=>'infobox-bank_account',
'members'=>'infobox-adherent', 'member'=>'infobox-adherent', 'money-bill-alt'=>'infobox-bank_account',
'order'=>'infobox-commande',
'user'=>'infobox-adherent', 'users'=>'infobox-adherent',
'error'=>'pictoerror', 'warning'=>'pictowarning', 'switch_on'=>'font-status4',
'holiday'=>'bg-infobox-holiday', 'invoice'=>'bg-infobox-commande',
'payment'=>'bg-infobox-bank_account', 'poll'=>'bg-infobox-adherent', 'project'=>'bg-infobox-project', 'projecttask'=>'bg-infobox-project', 'propal'=>'bg-infobox-propal',
'resource'=>'bg-infobox-action',
'supplier_invoice'=>'bg-infobox-order_supplier', 'supplier_invoicea'=>'bg-infobox-order_supplier', 'supplier_invoiced'=>'bg-infobox-order_supplier',
'supplier_order'=>'bg-infobox-order_supplier', 'supplier_proposal'=>'bg-infobox-supplier_proposal',
'ticket'=>'bg-infobox-contrat', 'title_accountancy'=>'bg-infobox-bank_account', 'title_hrm'=>'bg-infobox-holiday', 'trip'=>'bg-infobox-expensereport', 'title_agenda'=>'bg-infobox-action',
//'title_setup'=>'bg-infobox-action', 'tools'=>'bg-infobox-action',
'holiday'=>'infobox-holiday', 'invoice'=>'infobox-commande',
'payment'=>'infobox-bank_account', 'poll'=>'infobox-adherent', 'project'=>'infobox-project', 'projecttask'=>'infobox-project', 'propal'=>'infobox-propal',
'resource'=>'infobox-action',
'supplier_invoice'=>'infobox-order_supplier', 'supplier_invoicea'=>'infobox-order_supplier', 'supplier_invoiced'=>'infobox-order_supplier',
'supplier_order'=>'infobox-order_supplier', 'supplier_proposal'=>'infobox-supplier_proposal',
'ticket'=>'infobox-contrat', 'title_accountancy'=>'infobox-bank_account', 'title_hrm'=>'infobox-holiday', 'trip'=>'infobox-expensereport', 'title_agenda'=>'infobox-action',
//'title_setup'=>'infobox-action', 'tools'=>'infobox-action',
'list-alt'=>'imgforviewmode', 'calendar'=>'imgforviewmode', 'calendarweek'=>'imgforviewmode', 'calendarmonth'=>'imgforviewmode', 'calendarday'=>'imgforviewmode', 'calendarperuser'=>'imgforviewmode'
);
if (!empty($arrayconvpictotomorcess[$pictowithouttext])) {

View File

@ -279,7 +279,7 @@ if (!function_exists('dol_loginfunction'))
// Set jquery theme
$dol_loginmesg = (!empty($_SESSION["dol_loginmesg"]) ? $_SESSION["dol_loginmesg"] : '');
$favicon = DOL_URL_ROOT.'/theme/dolibarr_logo_256x256.png';
$favicon = DOL_URL_ROOT.'/theme/dolibarr_256x256_color.png';
if (!empty($mysoc->logo_squarred_mini)) $favicon = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini);
if (!empty($conf->global->MAIN_FAVICON_URL)) $favicon = $conf->global->MAIN_FAVICON_URL;

View File

@ -559,7 +559,7 @@ function getStructuredData($type, $data = array())
if ($type == 'software')
{
$ret = '<!-- Add structured data for blog post -->'."\n";
$ret = '<!-- Add structured data for software post -->'."\n";
$ret .= '<script type="application/ld+json">'."\n";
$ret .= '{
"@context": "https://schema.org",
@ -585,7 +585,7 @@ function getStructuredData($type, $data = array())
$companyname = $mysoc->name;
$url = $mysoc->url;
$ret = '<!-- Add structured data for blog post -->'."\n";
$ret = '<!-- Add structured data for organization -->'."\n";
$ret .= '<script type="application/ld+json">'."\n";
$ret .= '{
"@context": "https://schema.org",
@ -597,8 +597,9 @@ function getStructuredData($type, $data = array())
"@type": "ContactPoint",
"contactType": "Contact",
"email": "'.dol_escape_json($data['email'] ? $data['email'] : $mysoc->email).'"
},'."\n";
}'."\n";
if (is_array($mysoc->socialnetworks) && count($mysoc->socialnetworks) > 0) {
$ret .= ",\n";
$ret .= '"sameAs": [';
$i = 0;
foreach($mysoc->socialnetworks as $key => $value) {
@ -613,9 +614,9 @@ function getStructuredData($type, $data = array())
$i++;
if ($i < count($mysoc->socialnetworks)) $ret .= ', ';
}
$ret .= '],'."\n";
$ret .= ']'."\n";
}
$ret .= "\n".'}'."\n";
$ret .= '}'."\n";
$ret .= '</script>'."\n";
}
elseif ($type == 'blogpost')
@ -684,7 +685,7 @@ function getStructuredData($type, $data = array())
}
elseif ($type == 'product')
{
$ret = '<!-- Add structured data for blog post -->'."\n";
$ret = '<!-- Add structured data for product -->'."\n";
$ret .= '<script type="application/ld+json">'."\n";
$ret .= '{
"@context": "https://schema.org/",

View File

@ -147,7 +147,7 @@ function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout
}*/
else
{
$urllogo = DOL_URL_ROOT.'/theme/dolibarr_logo_squarred_alpha.png';
$urllogo = DOL_URL_ROOT.'/theme/dolibarr_512x512_white.png';
$logoContainerAdditionalClass = '';
}

View File

@ -514,7 +514,7 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
}*/
else
{
$urllogo = DOL_URL_ROOT.'/theme/dolibarr_logo_squarred_alpha.png';
$urllogo = DOL_URL_ROOT.'/theme/dolibarr_512x512_white.png';
$logoContainerAdditionalClass = '';
}
$title = $langs->trans("GoIntoSetupToChangeLogo");

View File

@ -241,7 +241,7 @@ if ($action == 'create')
print '<table class="border centpercent">';
// Label
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" class="minwidth100" maxlength="32" value="'.$ecmdir->label.'"></td></tr>'."\n";
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" class="minwidth100" maxlength="32" value="'.$ecmdir->label.'" autofocus></td></tr>'."\n";
print '<tr><td>'.$langs->trans("AddIn").'</td><td>';
print $formecm->selectAllSections((GETPOST("catParent", 'alpha') ? GETPOST("catParent", 'alpha') : $ecmdir->fk_parent), 'catParent', $module);

View File

@ -430,7 +430,7 @@ else
{
$choice .= '<br>';
//print $langs->trans("InstallChoiceRecommanded",DOL_VERSION,$conf->global->MAIN_VERSION_LAST_UPGRADE);
$choice .= '<div class="center"><div class="ok">'.$langs->trans("InstallChoiceSuggested").'</div></div>';
$choice .= '<div class="center"><div class="ok suggestedchoice">'.$langs->trans("InstallChoiceSuggested").'</div></div>';
// <img src="../theme/eldy/img/tick.png" alt="Ok"> ';
}
@ -534,7 +534,7 @@ else
$choice .= '<br>';
//print $langs->trans("InstallChoiceRecommanded",DOL_VERSION,$conf->global->MAIN_VERSION_LAST_UPGRADE);
$choice .= '<div class="center">';
$choice .= '<div class="ok">'.$langs->trans("InstallChoiceSuggested").'</div>';
$choice .= '<div class="ok suggestedchoice">'.$langs->trans("InstallChoiceSuggested").'</div>';
if ($count < count($migarray)) // There are other choices after
{
print $langs->trans("MigrateIsDoneStepByStep", DOL_VERSION);

View File

@ -361,7 +361,7 @@ a.button:link,a.button:visited,a.button:active {
background: #ddd;
color: #fff;
/* border: 1px solid #e0e0e0; */
padding: 0.3em 0.7em;
padding: 0.5em 0.7em;
margin: 0 0.5em;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
@ -374,6 +374,13 @@ a.button:hover {
text-decoration:none;
}
.suggestedchoice {
color: rgba(70, 3, 62, 0.6) !important;
/* background-color: rgba(70, 3, 62, 0.3); */
padding: 2px 4px;
border-radius: 4px;
white-space: nowrap;
}
.choiceselected {
background-color: #f4f6f4;
background-repeat: repeat-x;

View File

@ -64,6 +64,8 @@ create table llx_facturedet_rec_extrafields
ALTER TABLE llx_facturedet_rec_extrafields ADD INDEX idx_facturedet_rec_extrafields (fk_object);
ALTER TABLE llx_facture_rec MODIFY COLUMN titre varchar(200) NOT NULL;
-- This var is per entity now, so we remove const if global if exists
delete from llx_const where name = 'PROJECT_HIDE_TASKS' and entity = 0;

View File

@ -495,8 +495,8 @@ UPDATE llx_accounting_bookkeeping set date_creation = tms where date_creation IS
UPDATE llx_facturedet SET situation_percent = 100 WHERE situation_percent IS NULL AND fk_prev_id IS NULL;
-- Test inconsistency of data into situation invoices: If it differs, it may be the total_ht that is wrong and situation_percent that is good.
-- select f.rowid, f.type, qty, subprice, situation_percent, total_ht, total_ttc, total_tva, multicurrency_total_ht, multicurrency_total_tva, multicurrency_total_ttc, (situation_percent / 100 * subprice * qty * (1 - (fd.remise_percent / 100)))
-- from llx_facturedet as fd, llx_facture as f where fd.fk_facture = f.rowid AND (total_ht - situation_percent / 100 * subprice * qty * (1 - (fd.remise_percent / 100))) > 0.01 and f.type = 5;
-- select f.rowid, f.type, qty, subprice, situation_percent, fd.total_ht, fd.total_ttc, fd.total_tva, fd.multicurrency_total_ht, fd.multicurrency_total_tva, fd.multicurrency_total_ttc, (situation_percent / 100 * subprice * qty * (1 - (fd.remise_percent / 100)))
-- from llx_facturedet as fd, llx_facture as f where fd.fk_facture = f.rowid AND (fd.total_ht - situation_percent / 100 * subprice * qty * (1 - (fd.remise_percent / 100))) > 0.01 and f.type = 5;
-- Note to make all deposit as payed when there is already a discount generated from it.

View File

@ -22,7 +22,7 @@
create table llx_facture_rec
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
titre varchar(100) NOT NULL,
titre varchar(200) NOT NULL,
entity integer DEFAULT 1 NOT NULL, -- multi company id
fk_soc integer NOT NULL,
datec datetime, -- date de creation

View File

@ -1209,7 +1209,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr
print '<meta name="author" content="Dolibarr Development Team">'."\n";
// Favicon
$favicon = DOL_URL_ROOT.'/theme/dolibarr_logo_256x256.png';
$favicon = DOL_URL_ROOT.'/theme/dolibarr_256x256_color.png';
if (!empty($mysoc->logo_squarred_mini)) $favicon = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini);
if (!empty($conf->global->MAIN_FAVICON_URL)) $favicon = $conf->global->MAIN_FAVICON_URL;
if (empty($conf->dol_use_jmobile)) print '<link rel="shortcut icon" type="image/x-icon" href="'.$favicon.'"/>'."\n"; // Not required into an Android webview
@ -1262,7 +1262,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr
if (GETPOSTISSET('dol_optimize_smallscreen')) { $themeparam .= '&amp;dol_optimize_smallscreen='.GETPOST('dol_optimize_smallscreen', 'int'); }
if (GETPOSTISSET('dol_no_mouse_hover')) { $themeparam .= '&amp;dol_no_mouse_hover='.GETPOST('dol_no_mouse_hover', 'int'); }
if (GETPOSTISSET('dol_use_jmobile')) { $themeparam .= '&amp;dol_use_jmobile='.GETPOST('dol_use_jmobile', 'int'); $conf->dol_use_jmobile = GETPOST('dol_use_jmobile', 'int'); }
if (GETPOSTISSET('THEME_AGRESSIVENESS_RATIO')) { $themeparam .= '&amp;THEME_AGRESSIVENESS_RATIO='.GETPOST('THEME_AGRESSIVENESS_RATIO', 'int'); }
if (GETPOSTISSET('THEME_SATURATE_RATIO')) { $themeparam .= '&amp;THEME_SATURATE_RATIO='.GETPOST('THEME_SATURATE_RATIO', 'int'); }
if (!defined('DISABLE_JQUERY') && !$disablejs && $conf->use_javascript_ajax)
{

View File

@ -83,6 +83,7 @@ class MyObject extends CommonObject
* '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")
* 'autofocusoncreate' to have field having the focus on a create form. Only 1 field should have this property set to 1.
* '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.

View File

@ -214,7 +214,7 @@ print '<input type="hidden" name="action" value="update">';
$head = opensurvey_prepare_head($object);
dol_fiche_head($head, 'general', $langs->trans("Survey"), -1, DOL_URL_ROOT.'/opensurvey/img/object_opensurvey.png', 1);
dol_fiche_head($head, 'general', $langs->trans("Survey"), -1, 'poll');
$morehtmlref = '';

View File

@ -367,8 +367,8 @@ div.cadre td.vide {
/*Case de tableau contenant les noms dans affichage de sondage*/
div.cadre td.nom {
background-color: #DDDDDD;
font-size:12px;
text-align:center;
padding: 8px;
}
div.cadre td.casevide {
background-color: white;

View File

@ -421,10 +421,11 @@ $toutsujet = str_replace("°", "'", $toutsujet);
print '<form name="formulaire4" action="#" method="POST">'."\n";
print '<input type="hidden" name="token" value="'.newToken().'">';
$head = opensurvey_prepare_head($object);
dol_fiche_head($head, 'preview', $langs->trans("Survey"), -1, DOL_URL_ROOT.'/opensurvey/img/object_opensurvey.png', 1);
dol_fiche_head($head, 'preview', $langs->trans("Survey"), -1, 'poll');
$morehtmlref = '';
@ -519,6 +520,7 @@ if (GETPOST('ajoutsujet'))
if (!$user->rights->opensurvey->write) accessforbidden();
print '<form name="formulaire" action="" method="POST">'."\n";
print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="backtopage" value="'.GETPOST('backtopage', 'alpha').'">';
print '<div class="center">'."\n";
@ -605,6 +607,7 @@ if ($user->rights->opensurvey->write) {
$nbcolonnes = substr_count($object->sujet, ',') + 1;
print '<form name="formulaire" action="" method="POST">'."\n";
print '<input type="hidden" name="token" value="'.newToken().'">';
print '<div class="cadre"> '."\n";
@ -766,7 +769,7 @@ else
print '<td class="sujet">'.dol_htmlentities($tmp[0]).'</td>'."\n";
}
print '<td class="sujet"><a href="'.$_SERVER["PHP_SELF"].'?id='.$numsondage.'&ajoutsujet=1&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_picto('', dol_buildpath('/opensurvey/img/add-16.png', 1), '', 1).'</a></td>'."\n";
print '<td class="sujet"><a href="'.$_SERVER["PHP_SELF"].'?id='.$numsondage.'&ajoutsujet=1&backtopage='.urlencode($_SERVER["PHP_SELF"]).'"><span class="fa fa-plus-circle valignmiddle btnTitle-icon"></span></a></td>'."\n";
print '</tr>'."\n";
}

View File

@ -711,6 +711,12 @@ class Societe extends CommonObject
public $multicurrency_code;
/**
* @var Account Default BAN account
*/
public $bank_account;
/**
* Constructor
*
@ -4271,6 +4277,17 @@ class Societe extends CommonObject
}
}
if (! isset($this->bank_account)) {
require_once DOL_DOCUMENT_ROOT.'/societe/class/companybankaccount.class.php';
$bac = new CompanyBankAccount($this->db);
$result = $bac->fetch(0, $this->id);
if ($result > 0) {
$this->bank_account = $bac;
} else {
$this->bank_account = '';
}
}
$modelpath = "core/modules/societe/doc/";
$result = $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);

View File

@ -31,6 +31,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php';
$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'thirdpartylist';
// Security check
$socid = GETPOST('socid', 'int');
if ($user->socid) $socid = $user->socid;
@ -147,6 +149,7 @@ if ($conf->ficheinter->enabled && $user->rights->ficheinter->lire) $elementTypeA
if ($object->fournisseur)
{
$langs->load("supplier_proposal");
print '<tr><td class="titlefield">';
print $langs->trans('SupplierCode').'</td><td colspan="3">';
print $object->code_fournisseur;
@ -352,14 +355,14 @@ if ($sql_select)
$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;
$param = "&socid=".urlencode($socid)."&type_element=".urlencode($type_element);
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($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;
if ($month) $param .= "&month=".urlencode($month);
if ($year) $param .= "&year=".urlencode($year);
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss);
print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, '', 0, '', '', $limit);

View File

@ -963,7 +963,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
{
$morehtmlright .= dolGetButtonTitle($langs->trans('Add'), '', 'fa fa-plus-circle', $_SERVER["PHP_SELF"].'?socid='.$object->id.'&amp;action=createcard');
}
print load_fiche_titre($langs->trans('StripePaymentModes').($stripeacc ? ' (Stripe connection with StripeConnect account '.$stripeacc.')' : ' (Stripe connection with keys from Stripe module setup)'), $morehtmlright, '');
print load_fiche_titre($langs->trans('StripePaymentModes').($stripeacc ? ' (Stripe connection with StripeConnect account '.$stripeacc.')' : ' (Stripe connection with keys from Stripe module setup)'), $morehtmlright, 'stripe-s');
$listofsources = array();
if (is_object($stripe))

View File

@ -111,7 +111,7 @@ llxHeader('', $langs->trans("CashDeskSetup"));
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print load_fiche_titre($langs->trans("CashDeskSetup").' (TakePOS)', $linkback, 'title_setup');
$head = takepos_prepare_head();
dol_fiche_head($head, 'other', 'TakePOS', -1);
dol_fiche_head($head, 'other', 'TakePOS', -1, 'cash-register');
print '<br>';

View File

@ -82,7 +82,7 @@ llxHeader('', $langs->trans("CashDeskSetup"));
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print load_fiche_titre($langs->trans("CashDeskSetup").' (TakePOS)', $linkback, 'title_setup');
$head = takepos_prepare_head();
dol_fiche_head($head, 'receipt', 'TakePOS', -1);
dol_fiche_head($head, 'receipt', 'TakePOS', -1, 'cash-register');
print '<form action="'.$_SERVER["PHP_SELF"].'?terminal='.(empty($terminal) ? 1 : $terminal).'" method="post">';
print '<input type="hidden" name="token" value="'.newToken().'">';

View File

@ -133,7 +133,7 @@ llxHeader('', $langs->trans("CashDeskSetup"));
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print load_fiche_titre($langs->trans("CashDeskSetup").' (TakePOS)', $linkback, 'title_setup');
$head = takepos_prepare_head();
dol_fiche_head($head, 'setup', 'TakePOS', -1);
dol_fiche_head($head, 'setup', 'TakePOS', -1, 'cash-register');
// Numbering modules
$now = dol_now();

View File

@ -123,7 +123,7 @@ llxHeader('', $langs->trans("CashDeskSetup"));
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print load_fiche_titre($langs->trans("CashDeskSetup").' (TakePOS)', $linkback, 'title_setup');
$head = takepos_prepare_head();
dol_fiche_head($head, 'terminal'.$terminal, 'TakePOS', -1);
dol_fiche_head($head, 'terminal'.$terminal, 'TakePOS', -1, 'cash-register');
print '<br>';

Binary file not shown.

Before

Width:  |  Height:  |  Size: 794 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
htdocs/theme/dolibarr_logo.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -23,94 +23,6 @@
id="title3072">Logo Dolibarr ERP-CRM</title>
<defs
id="defs3452">
<linearGradient
id="linearGradient888">
<stop
style="stop-color:#373d5f;stop-opacity:1"
offset="0"
id="stop884" />
<stop
style="stop-color:#373d5a;stop-opacity:1"
offset="1"
id="stop886" />
</linearGradient>
<linearGradient
id="linearGradient5378">
<stop
id="stop5374"
offset="0"
style="stop-color:#373d5f;stop-opacity:1" />
<stop
id="stop5376"
offset="1"
style="stop-color:#373d5a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5372">
<stop
id="stop5368"
offset="0"
style="stop-color:#373d5f;stop-opacity:1" />
<stop
id="stop5370"
offset="1"
style="stop-color:#373d5a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5366">
<stop
id="stop5362"
offset="0"
style="stop-color:#373d5f;stop-opacity:1" />
<stop
id="stop5364"
offset="1"
style="stop-color:#373d5a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5360">
<stop
id="stop5356"
offset="0"
style="stop-color:#373d5f;stop-opacity:1" />
<stop
id="stop5358"
offset="1"
style="stop-color:#373d5a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4730">
<stop
id="stop4726"
offset="0"
style="stop-color:#373d5f;stop-opacity:1" />
<stop
id="stop4728"
offset="1"
style="stop-color:#373d5a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="5360">
<stop
id="stop4720"
offset="0"
style="stop-color:#373d5f;stop-opacity:1" />
<stop
id="stop4722"
offset="1"
style="stop-color:#373d5a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4718">
<stop
id="stop4714"
offset="0"
style="stop-color:#373d55;stop-opacity:1" />
<stop
id="stop4716"
offset="1"
style="stop-color:#373d5a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient3734-3-6">
<stop
@ -122,23 +34,6 @@
offset="1"
id="stop3738" />
</linearGradient>
<filter
inkscape:collect="always"
id="filter3775"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="11.473048"
id="feGaussianBlur3777" />
</filter>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath922">
<g
style="fill:url(#linearGradient884);fill-opacity:1"
inkscape:label="Clip"
id="use924" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3734-3-6"
@ -148,92 +43,6 @@
y1="310.53391"
x2="742.98004"
y2="310.53391" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient888"
id="linearGradient4650"
gradientUnits="userSpaceOnUse"
x1="385.41022"
y1="210.12474"
x2="386.59824"
y2="386.90143"
gradientTransform="translate(0,-0.08891)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4718"
id="linearGradient4652"
gradientUnits="userSpaceOnUse"
x1="385.41022"
y1="210.12474"
x2="386.59824"
y2="386.90143"
gradientTransform="translate(0,-1.60543)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4730"
id="linearGradient4654"
gradientUnits="userSpaceOnUse"
x1="385.41022"
y1="210.12474"
x2="386.59824"
y2="386.90143" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5360"
id="linearGradient4658"
gradientUnits="userSpaceOnUse"
x1="385.41022"
y1="210.12474"
x2="386.59824"
y2="386.90143"
gradientTransform="translate(0,-1.0682839)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5366"
id="linearGradient4660"
gradientUnits="userSpaceOnUse"
x1="385.41022"
y1="210.12474"
x2="386.59824"
y2="386.90143" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5372"
id="linearGradient4662"
gradientUnits="userSpaceOnUse"
x1="385.41022"
y1="210.12474"
x2="386.59824"
y2="386.90143" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5378"
id="linearGradient4664"
gradientUnits="userSpaceOnUse"
x1="385.41022"
y1="210.12474"
x2="386.59824"
y2="386.90143" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath880">
<g
inkscape:label="Clip"
id="use882">
<text
transform="matrix(0.35661275,0,0,0.39656343,-125.67134,110.19296)"
id="text889"
y="887.85065"
x="537.1402"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';opacity:0.17204303;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter3775)"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:518.16009521px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
y="887.85065"
x="537.1402"
id="tspan887"
sodipodi:role="line">Dolibarr</tspan></text>
</g>
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3734-3-6"
@ -243,45 +52,6 @@
y1="310.53391"
x2="742.98004"
y2="310.53391" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath923">
<g
inkscape:label="Clip"
id="use925">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';opacity:0.17204303;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter3775)"
x="537.1402"
y="887.85065"
id="text932"
transform="matrix(0.35661275,0,0,0.39656343,-121.4287,154.03358)"><tspan
sodipodi:role="line"
id="tspan930"
x="537.1402"
y="887.85065"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:518.16009521px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none">Dolibarr</tspan></text>
</g>
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3734-3-6"
id="linearGradient884"
gradientUnits="userSpaceOnUse"
x1="75.697441"
y1="310.53391"
x2="742.98004"
y2="310.53391" />
<linearGradient
gradientTransform="matrix(1,0,0,0.74259216,53.441098,97.405596)"
inkscape:collect="always"
xlink:href="#linearGradient888"
id="linearGradient4654-3"
gradientUnits="userSpaceOnUse"
x1="385.41022"
y1="210.12474"
x2="386.59824"
y2="386.90143" />
</defs>
<sodipodi:namedview
id="base"
@ -290,9 +60,9 @@
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568544"
inkscape:cx="318.01609"
inkscape:cy="106.45631"
inkscape:zoom="1.4142136"
inkscape:cx="391.6782"
inkscape:cy="-50.366015"
inkscape:current-layer="g4648"
inkscape:document-units="px"
showgrid="false"
@ -369,48 +139,48 @@
<path
sodipodi:nodetypes="cccccscsssccsssc"
d="m 112.32913,280.29476 v 98.02589 l -36.631688,-0.40123 v 0.40123 -137.35672 h 47.729468 c 20.93239,0 37.32341,5.28424 49.17307,15.85272 14.07523,12.64204 21.11285,29.7991 21.11285,51.47117 0,20.73563 -6.01506,37.65857 -18.04517,50.76884 -12.03011,13.11027 -27.20637,19.35291 -46.1538,19.35291 -2.22557,0 -6.23968,-0.0713 -11.22982,-0.0888 v -40.23379 l 10.08954,-0.0542 c 21.35314,-0.11469 27.8053,-9.87885 27.8053,-29.74492 0,-18.66206 -10.49627,-27.99309 -31.48881,-27.99309 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient4650);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8463"
inkscape:connector-curvature="0" />
<path
d="m 251.18669,274.26322 q 19.12787,0 32.75197,15.35106 13.71432,15.25071 13.71432,36.62179 0,21.67206 -13.89478,36.92279 -13.80455,15.25071 -33.38356,15.25071 -19.57899,0 -33.47377,-15.25071 -13.89479,-15.35105 -13.89479,-36.92279 0,-21.97308 13.89479,-36.9228 13.89478,-15.05005 34.28582,-15.05005 z m -0.90227,37.02313 q -5.41355,0 -9.20303,4.41468 -3.78949,4.31435 -3.78949,10.63537 0,6.22068 3.78949,10.63537 3.87971,4.41468 9.20303,4.41468 5.41356,0 9.20304,-4.41468 3.8797,-4.41469 3.8797,-10.63537 0,-6.32102 -3.78947,-10.63537 -3.78949,-4.41468 -9.29327,-4.41468 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient4652);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8465"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
d="M 345.47268,241.05287 V 378.40956 H 311.72822 V 241.05287 Z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient4654);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8467"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="csscscsccscsssccscc"
d="m 450.676,239.98458 v 81.97261 c 0,13.31093 4.30076,19.9664 12.90229,19.9664 3.66918,0 6.76693,-1.37123 9.29326,-4.11368 2.58647,-2.80935 3.87971,-6.18725 3.87971,-10.1337 0,-4.08023 -1.20301,-7.49158 -3.60903,-10.23403 -2.40603,-2.80935 -5.3534,-4.21402 -8.84213,-4.21402 -2.46617,0 -8.23123,-0.013 -8.23123,-0.013 l -0.25,-38.08747 c 0,0 6.97747,-0.22701 9.02258,-0.22701 12.69177,0 23.54895,5.08358 32.57153,15.25073 9.08273,10.16714 13.6241,22.40785 13.6241,36.72212 0,14.64872 -5.14562,26.5166 -13.80455,37.02313 -8.57803,10.40836 -22.98621,14.59993 -33.92491,14.51154 -6.73664,-0.0544 -13.32335,-1.10024 -19.75947,-4.37784 -6.37595,-3.27757 -11.63912,-7.69225 -15.78951,-13.24404 -7.21807,-9.63203 -10.8271,-22.10686 -10.8271,-37.42447 v -83.37728 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient4658);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8471"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccssscscsccscscscscc"
d="m 575.66649,342.98354 -0.15625,35.42602 c 0,0 -5.0745,0 -7.36022,0 -13.53387,0 -24.8121,-3.24403 -33.83468,-13.14362 -9.02259,-9.89959 -13.53388,-22.30753 -13.53388,-37.2238 0,-14.51494 4.54137,-26.82254 13.6241,-36.92279 9.14289,-10.10026 20.24066,-15.15039 33.29333,-15.15039 14.55643,0 26.01511,4.74913 34.37604,14.24739 8.42108,9.43136 12.63162,22.34096 12.63162,38.72879 l -0.0625,49.46442 h -33.80696 l 0.125,-46.75541 c 0.0141,-5.28421 -1.17293,-9.49824 -3.5188,-12.64203 -2.28573,-3.14379 -5.38348,-4.71569 -9.29327,-4.71569 -3.54889,0 -6.61657,1.43811 -9.20304,4.31434 -2.58647,2.87623 -3.87971,6.28758 -3.87971,10.23405 0,4.14712 1.17294,7.55846 3.51881,10.23403 2.34587,2.67556 5.32333,4.01334 8.93236,4.01334 2.94737,0 8.14805,-0.10867 8.14805,-0.10867 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient4660);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8473"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccssccscsc"
d="m 683.66305,275.87667 0.004,38.91662 c 0,0 -4.41872,0.10517 -6.34353,0.10517 -6.13535,0 -9.20303,5.21735 -9.20303,15.65204 v 47.85906 h -33.74447 v -55.08308 c 0,-14.44805 3.54888,-25.95298 10.64665,-34.51479 7.09777,-8.62869 16.57148,-12.94304 28.42114,-12.94304 2.64662,0 10.21945,0.008 10.21945,0.008 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient4662);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8475"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccssccscscc"
d="m 742.97999,275.87857 -0.0312,38.94597 c 0,0 -4.51247,0.0739 -6.43728,0.0739 -6.13537,0 -9.20305,5.21735 -9.20305,15.65204 v 47.85906 h -33.74445 v -55.08308 c 0,-14.44805 3.54888,-25.95298 10.64664,-34.51479 7.09777,-8.62869 16.57149,-12.94304 28.42114,-12.94304 2.64663,0 10.34825,0.01 10.34825,0.01 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient4664);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8477"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
d="m 398.91378,276.40957 v 102 h -33.74446 v -102 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:url(#linearGradient4654-3);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.47124052;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.47124052;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8467-5"
inkscape:connector-curvature="0" />
</g>
@ -418,18 +188,18 @@
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#007179;fill-opacity:1;fill-rule:nonzero;stroke:none"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#007b8c;fill-opacity:1;fill-rule:nonzero;stroke:none;"
x="643.31146"
y="229.77211"
id="text5484"
transform="scale(0.88533213,1.1295196)"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.95219803px;line-height:100%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#007179;fill-opacity:1;fill-rule:nonzero;stroke:none"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.95219803px;line-height:100%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#007b8c;fill-opacity:1;fill-rule:nonzero;stroke:none;"
sodipodi:role="line"
id="tspan5486"
x="643.31146"
y="229.77211">ERP/CRM</tspan></text>
<ellipse
style="fill:#007179;fill-opacity:1;stroke:none;stroke-width:1.02999127;stroke-opacity:1"
style="fill:#007b8c;fill-opacity:1;stroke:none;stroke-width:1.02999127;stroke-opacity:1"
id="path957"
cx="381.94193"
cy="247.58162"

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 13 KiB

146
htdocs/theme/dolistore_logo.svg Executable file
View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="260"
height="70"
id="svg3450"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="dolistore_logo.svg"
inkscape:export-filename="/home/ldestailleur/git/dolibarr-foundation/logo-cliparts/dolistore_logo.png"
inkscape:export-xdpi="192"
inkscape:export-ydpi="192">
<title
id="title3072">Logo Dolibarr ERP-CRM</title>
<defs
id="defs3452">
<linearGradient
id="linearGradient3734">
<stop
style="stop-color:#a1590c;stop-opacity:1;"
offset="0"
id="stop3736" />
<stop
style="stop-color:#d3a768;stop-opacity:1;"
offset="1"
id="stop3738" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="2.8284271"
inkscape:cx="43.791163"
inkscape:cy="30.424404"
inkscape:current-layer="layer1"
inkscape:document-units="px"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:showpageshadow="false"
showborder="true"
borderlayer="false" />
<metadata
id="metadata3455">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Logo Dolibarr ERP-CRM</dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
<dc:creator>
<cc:Agent>
<dc:title>Laurent Destailleur</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>Laurent Destailleur</dc:title>
</cc:Agent>
</dc:rights>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
style="display:inline"
transform="translate(0,-530)">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#525252;fill-opacity:1;stroke:none"
x="188.29013"
y="440.52631"
id="text3763"
transform="scale(0.74258923,1.3466395)"><tspan
sodipodi:role="line"
id="tspan3765"
x="188.29013"
y="440.52631"
style="font-size:58.11785507px;line-height:1.25;font-family:sans-serif">Store</tspan></text>
<path
sodipodi:nodetypes="cccccscsssccsssc"
d="m 24.436019,555.72292 v 38.45934 l -14.106106,-0.15741 v 0.15741 -53.89033 h 18.379631 c 8.060629,0 14.372471,2.07321 18.93553,6.21963 5.420081,4.95996 8.130122,11.69133 8.130122,20.19412 0,8.13538 -2.316275,14.77491 -6.948822,19.91857 -4.632547,5.14366 -10.476609,7.5929 -17.772872,7.5929 -0.857021,0 -2.402771,-0.028 -4.324371,-0.0348 v -15.78527 l 3.885273,-0.0213 c 8.222652,-0.045 10.707244,-3.87586 10.707244,-11.67008 0,-7.32185 -4.041895,-10.98277 -12.125687,-10.98277 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.66361171;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8463"
inkscape:connector-curvature="0" />
<path
d="m 77.907188,553.35652 q 7.365748,0 12.612105,6.02282 5.281101,5.98343 5.281101,14.36813 0,8.50278 -5.350592,14.48624 -5.315846,5.98344 -12.855317,5.98344 -7.539464,0 -12.890055,-5.98344 -5.350596,-6.02281 -5.350596,-14.48624 0,-8.62088 5.350596,-14.48624 5.350591,-5.90471 13.202758,-5.90471 z m -0.347444,14.5256 q -2.084646,0 -3.543897,1.73205 -1.459254,1.69269 -1.459254,4.17266 0,2.44062 1.459254,4.17267 1.493996,1.73205 3.543897,1.73205 2.084649,0 3.5439,-1.73205 1.493991,-1.73205 1.493991,-4.17267 0,-2.47997 -1.459246,-4.17266 -1.459254,-1.73205 -3.578645,-1.73205 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.66361171;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8465"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
d="m 114.21477,540.32682 v 53.89033 h -12.99429 v -53.89033 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.66361171;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8467"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
d="m 134.79383,554.19861 v 40.01854 h -12.9943 v -40.01854 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.57185936;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
id="path8467-5"
inkscape:connector-curvature="0" />
<ellipse
style="display:inline;fill:#a05a2c;fill-opacity:1;stroke:none;stroke-width:0.40034935;stroke-opacity:1"
id="path957"
cx="128.25832"
cy="542.88831"
rx="6.7222133"
ry="7.1090221" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -20,6 +20,7 @@
--colorbacklinebreak: rgb(<?php print $colorbacklinebreak; ?>);
--colorbackbody: rgb(<?php print $colorbackbody; ?>);
--colortexttitlenotab: rgb(<?php print $colortexttitlenotab; ?>);
--colortexttitlenotab2: rgb(<?php print $colortexttitlenotab2; ?>);
--colortexttitle: rgb(<?php print $colortexttitle; ?>);
--colortext: rgb(<?php print $colortext; ?>);
--colortextlink: rgb(<?php print $colortextlink; ?>);
@ -31,7 +32,7 @@
--tooltipbgcolor: <?php print $toolTipBgColor; ?>;
--tooltipfontcolor : <?php print $toolTipFontColor; ?>;
--oddevencolor: #202020;
--colorboxstatsborder: #ddd;
--colorboxstatsborder: #e0e0e0;
--dolgraphbg: rgba(255,255,255,0);
--fieldrequiredcolor: #000055;
--colortextbacktab: #<?php print $colortextbacktab; ?>;
@ -62,6 +63,7 @@ if (!empty($conf->global->MAIN_THEME_DARKMODEENABLED)) {
--colorbackbody: #1d1e20;
--tooltipbgcolor: #2b2d2f;
--colortexttitlenotab: rgb(220,220,220);
--colortexttitlenotab2: rgb(220,220,220);
--colortexttitle: rgb(220,220,220);
--colortext: rgb(220,220,220);
--colortextlink: #4390dc;
@ -1961,6 +1963,9 @@ div.mainmenu {
margin-left: 0px;
min-width: 40px;
}
a.tmenuimage:focus, .mainmenu.topmenuimage:focus {
outline: none;
}
/* For mainmenu, we always load the img */
@ -2688,7 +2693,7 @@ div.tabBar.tabBarNoTop {
/* tabBar used for creation/update/send forms */
div.tabBarWithBottom {
padding-bottom: 18px;
border-bottom: 1px solid #aaa;
border-bottom: 1px solid #bbb;
}
div.tabBarWithBottom tr {
background: unset !important;
@ -3588,7 +3593,7 @@ ul.noborder li:nth-child(even):not(.liste_titre) {
background: var(--colorbackbody);
border: 1px solid var(--colorboxstatsborder);
border-left: 6px solid var(--colorboxstatsborder);
box-shadow: 1px 1px 8px var(--colorboxstatsborder);
/* box-shadow: 1px 1px 8px var(--colorboxstatsborder); */
border-radius: 0px;
}
.boxstats, .boxstats130, .boxstatscontent {
@ -3841,7 +3846,7 @@ div.info {
padding-bottom: 8px;
margin: 1em 0em 1em 0em;
background: #eff8fc;
color: #668;
color: #558;
}
/* Warning message */
@ -3981,9 +3986,14 @@ div.titre {
padding-top: 5px;
padding-bottom: 5px;
}
div.titre, .secondary {
font-family: <?php print $fontlist ?>;
color: var(--colortexttitlenotab);
.secondary, div.titre {
color: var(--colortexttitlenotab);
}
.tertiary {
color: var(--colortexttitlenotab2);
}
table.table-fiche-title:first-of-type div {
color: var(--colortexttitlenotab);
}
table.table-fiche-title .col-title div.titre{

View File

@ -198,12 +198,10 @@ a.info-box-text{ text-decoration: none;}
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
$prefix = '';
//$prefix = 'background-';
if (!empty($conf->global->THEME_INFOBOX_COLOR_ON_BACKGROUND)) $prefix = 'background-';
if (!isset($conf->global->THEME_AGRESSIVENESS_RATIO) && $prefix) $conf->global->THEME_AGRESSIVENESS_RATIO = -50;
if (GETPOSTISSET('THEME_AGRESSIVENESS_RATIO')) $conf->global->THEME_AGRESSIVENESS_RATIO = GETPOST('THEME_AGRESSIVENESS_RATIO', 'int');
//var_dump($conf->global->THEME_AGRESSIVENESS_RATIO);
if (!isset($conf->global->THEME_SATURATE_RATIO)) $conf->global->THEME_SATURATE_RATIO = 0.7;
if (GETPOSTISSET('THEME_SATURATE_RATIO')) $conf->global->THEME_SATURATE_RATIO = GETPOST('THEME_SATURATE_RATIO', 'int');
?>
.info-box-icon {
@ -211,38 +209,76 @@ if (GETPOSTISSET('THEME_AGRESSIVENESS_RATIO')) $conf->global->THEME_AGRESSIVENES
color: #fff !important;
<?php } ?>
opacity: 0.95;
<?php if (isset($conf->global->THEME_SATURATE_RATIO)) { ?>
filter: saturate(<?php echo $conf->global->THEME_SATURATE_RATIO; ?>);
<?php } ?>
}
.bg-infobox-project{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#6c6aa8', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #6c6aa8 !important;
}
.bg-infobox-action{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#a47080', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #a47080 !important;
}
.bg-infobox-propal,
.bg-infobox-facture,
.bg-infobox-commande{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#99a17d', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #99a17d !important;
}
.bg-infobox-supplier_proposal,
.bg-infobox-invoice_supplier,
.bg-infobox-order_supplier{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#599caf', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #599caf !important;
}
.bg-infobox-contrat, .bg-infobox-ticket{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#46a676', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #46a676 !important;
}
.bg-infobox-bank_account{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#b0a53e', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #b0a53e !important;
}
.bg-infobox-adherent, .bg-infobox-member {
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#79633f', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #79633f !important;
}
.bg-infobox-expensereport{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#79633f', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #79633f !important;
}
.bg-infobox-holiday{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#755114', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #755114 !important;
}
.infobox-adherent, .infobox-member {
color: #79633f !important;
}
.infobox-project{
color: #6c6aa8 !important;
}
.infobox-action{
color: #a47080 !important;
}
.infobox-propal,
.infobox-facture,
.infobox-commande{
color: #99a17d !important;
}
.infobox-supplier_proposal,
.infobox-invoice_supplier,
.infobox-order_supplier{
color: #599caf !important;
}
.infobox-contrat, .infobox-ticket{
color: #46a676 !important;
}
.infobox-bank_account{
color: #b0a53e !important;
}
.infobox-adherent, .infobox-member {
color: #79633f !important;
}
.infobox-expensereport{
color: #79633f !important;
}
.infobox-holiday{
color: #755114 !important;
}

View File

@ -46,7 +46,7 @@ if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli = $conf->global->MAIN_
"name": "<?php echo $appli; ?>",
"icons": [
{
"src": "<?php echo DOL_URL_ROOT.'/theme/dolibarr_logo_256x256.png'; ?>",
"src": "<?php echo DOL_URL_ROOT.'/theme/dolibarr_256x256_color.png'; ?>",
"sizes": "256x256",
"type": "image/png"
}

View File

@ -237,7 +237,7 @@ print 'fontsizesmaller='.$fontsizesmaller."\n";
print 'topMenuFontSize='.$topMenuFontSize."\n";
print 'toolTipBgColor='.$toolTipBgColor."\n";
print 'toolTipFontColor='.$toolTipFontColor."\n";
print 'conf->global->THEME_AGRESSIVENESS_RATIO='.$conf->global->THEME_AGRESSIVENESS_RATIO." (must be between -100 and +100)\n";
print 'conf->global->THEME_SATURATE_RATIO='.$conf->global->THEME_SATURATE_RATIO." (must be between 0 and 1)\n";
print '*/'."\n";

View File

@ -53,7 +53,7 @@ $theme_bgcolor = array(hexdec('F4'), hexdec('F4'), hexdec('F4'));
$theme_bgcoloronglet = array(hexdec('DE'), hexdec('E7'), hexdec('EC'));
// Colors
$colorbackhmenu1 = '55,61,90'; // topmenu
$colorbackhmenu1 = '38,60,92'; // topmenu
$colorbackvmenu1 = '250,250,250'; // vmenu
$colortopbordertitle1 = '215,215,215'; // top border of title
$colorbacktitle1 = '233,234,237'; // title of tables,list
@ -67,21 +67,22 @@ $colorbacklinepairhover = '230,237,244'; // line hover
$colorbacklinepairchecked = '230,237,244'; // line checked
$colorbacklinebreak = '248,247,244'; // line break
$colorbackbody = '255,255,255';
$colortexttitlenotab = '0,113,120'; // 150,90,121 140,80,10 or 10,140,80 #875a7b green=0,113,120, violet: 0,50,120
$colortexttitlenotab = '0,123,140'; // 150,90,121 140,80,10 or 10,140,80 #875a7b green=0,113,120, violet: 0,50,120
$colortexttitlenotab2 = '100,0,100'; // 150,90,121 140,80,10 or 10,140,80 #875a7b green=0,113,120, violet: 0,50,120
$colortexttitle = '0,0,0';
$colortexttitlelink = '10, 20, 100';
$colortext = '0,0,0';
$colortextlink = '10, 20, 100';
$fontsize = '0.86em';
$fontsizesmaller = '0.75em';
$topMenuFontSize = '1.2em';
$topMenuFontSize = '1.1em';
$toolTipBgColor = 'rgba(255, 255, 255, 0.96)';
$toolTipFontColor = '#333';
// text color
$textSuccess = '#28a745';
$colorblind_deuteranopes_textSuccess = '#37de5d';
$textWarning = '#a37c0d'; // See $badgeWarning
$textWarning = '#bc9526'; // See $badgeWarning
$textDanger = '#9f4705'; // See $badgeDanger
$colorblind_deuteranopes_textWarning = $textWarning; // currently not tested with a color blind people so use default color
@ -90,7 +91,7 @@ $colorblind_deuteranopes_textWarning = $textWarning; // currently not tested wit
$badgePrimary = '#007bff';
$badgeSecondary = '#cccccc';
$badgeSuccess = '#55a580';
$badgeWarning = '#a37c0d'; // See $textDanger bc9526
$badgeWarning = '#bc9526'; // See $textWarning bc9526
$badgeDanger = '#9f4705'; // See $textDanger
$badgeInfo = '#aaaabb';
$badgeDark = '#343a40';

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -8,42 +8,82 @@ if (!defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
$prefix = '';
//$prefix = 'background-';
if (!empty($conf->global->THEME_INFOBOX_COLOR_ON_BACKGROUND)) $prefix = 'background-';
if (!isset($conf->global->THEME_SATURATE_RATIO)) $conf->global->THEME_SATURATE_RATIO = 0.5;
if (GETPOSTISSET('THEME_SATURATE_RATIO')) $conf->global->THEME_SATURATE_RATIO = GETPOST('THEME_SATURATE_RATIO', 'int');
?>
.bg-infobox-project{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#6c6aa8', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #6c6aa8 !important;
}
.bg-infobox-action{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#a47080', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #a47080 !important;
}
.bg-infobox-propal,
.bg-infobox-facture,
.bg-infobox-commande{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#99a17d', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #99a17d !important;
}
.bg-infobox-supplier_proposal,
.bg-infobox-invoice_supplier,
.bg-infobox-order_supplier{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#599caf', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #599caf !important;
}
.bg-infobox-contrat, .bg-infobox-ticket{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#46a676', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #46a676 !important;
}
.bg-infobox-bank_account{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#b0a53e', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #b0a53e !important;
}
.bg-infobox-adherent, .bg-infobox-member{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#79633f', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #79633f !important;
}
.bg-infobox-expensereport{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#79633f', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #79633f !important;
}
.bg-infobox-holiday{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#755114', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
<?php echo $prefix; ?>color: #755114 !important;
}
.infobox-adherent, .infobox-member {
color: #79633f !important;
}
.infobox-project{
color: #6c6aa8 !important;
}
.infobox-action{
color: #a47080 !important;
}
.infobox-propal,
.infobox-facture,
.infobox-commande{
color: #99a17d !important;
}
.infobox-supplier_proposal,
.infobox-invoice_supplier,
.infobox-order_supplier{
color: #599caf !important;
}
.infobox-contrat, .infobox-ticket{
color: #46a676 !important;
}
.infobox-bank_account{
color: #b0a53e !important;
}
.infobox-adherent, .infobox-member {
color: #79633f !important;
}
.infobox-expensereport{
color: #79633f !important;
}
.infobox-holiday{
color: #755114 !important;
}
.info-box-module-external span.info-box-icon-version {
background: #bbb;
}
@ -102,6 +142,9 @@ if (!empty($conf->global->THEME_INFOBOX_COLOR_ON_BACKGROUND)) $prefix = 'backgro
font-size: 45px;
line-height: 90px;
background: #eee;
<?php if (isset($conf->global->THEME_SATURATE_RATIO)) { ?>
filter: saturate(<?php echo $conf->global->THEME_SATURATE_RATIO; ?>);
<?php } ?>
}
.info-box-sm .info-box-icon {
width: 80px;
@ -233,39 +276,39 @@ a.info-box-text{ text-decoration: none;}
}
<?php
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
if (!isset($conf->global->THEME_AGRESSIVENESS_RATIO)) $conf->global->THEME_AGRESSIVENESS_RATIO = -100;
if (GETPOSTISSET('THEME_AGRESSIVENESS_RATIO')) $conf->global->THEME_AGRESSIVENESS_RATIO = GETPOST('THEME_AGRESSIVENESS_RATIO', 'int');
if (!isset($conf->global->THEME_SATURATE_RATIO)) $conf->global->THEME_SATURATE_RATIO = 0.7;
if (GETPOSTISSET('THEME_SATURATE_RATIO')) $conf->global->THEME_SATURATE_RATIO = GETPOST('THEME_SATURATE_RATIO', 'int');
?>
.bg-infobox-project i.fa{
color: <?php print colorAgressiveness('#605ca8', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #605ca8 !important;
}
.bg-infobox-action i.fa{
color: <?php print colorAgressiveness('#d84b80', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #d84b80 !important;
}
.bg-infobox-propal i.fa,
.bg-infobox-facture i.fa,
.bg-infobox-commande i.fa{
color: <?php print colorAgressiveness('#abb87b', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #abb87b !important;
}
.bg-infobox-supplier_proposal i.fa,
.bg-infobox-invoice_supplier i.fa,
.bg-infobox-order_supplier i.fa{
color: <?php print colorAgressiveness('#40b0cf', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #40b0cf !important;
}
.bg-infobox-contrat i.fa, .bg-infobox-ticket i.fa{
color: <?php print colorAgressiveness('#20a68a', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #20a68a !important;
}
.bg-infobox-bank_account i.fa{
color: <?php print colorAgressiveness('#b0a53e', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #b0a53e !important;
}
.bg-infobox-adherent i.fa, .bg-infobox-member i.fa{
color: <?php print colorAgressiveness('#f39c12', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #755114 !important;
}
.bg-infobox-expensereport i.fa{
color: <?php print colorAgressiveness('#755114', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #755114 !important;
}
.bg-infobox-holiday i.fa{
color: <?php print colorAgressiveness('#755114', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
color: #755114 !important;
}

View File

@ -46,7 +46,7 @@ if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_AP
"name": "<?php echo $appli; ?>",
"icons": [
{
"src": "<?php echo DOL_URL_ROOT.'/theme/dolibarr_logo_256x256.png'; ?>",
"src": "<?php echo DOL_URL_ROOT.'/theme/dolibarr_256x256_color.png'; ?>",
"sizes": "256x256",
"type": "image/png"
}

View File

@ -2005,6 +2005,9 @@ div.mainmenu {
margin-left: 0px;
min-width: 40px;
}
a.tmenuimage:focus, .mainmenu.topmenuimage:focus {
outline: none;
}
/* Do not load menu img if hidden to save bandwidth */
<?php if (empty($dol_hide_topmenu)) { ?>
@ -3921,8 +3924,10 @@ div.titre {
/* text-shadow: 1px 1px 2px #FFFFFF; */
<?php print (empty($conf->dol_optimize_smallscreen) ? '' : 'margin-top: 4px;'); ?>
}
div.titre, .secondary {
font-family: <?php print $fontlist ?>;
.secondary, div.titre {
color: var(--colortexttitlenotab);
}
.tertiary {
color: var(--colortexttitlenotab);
}

View File

@ -184,7 +184,7 @@ class Ticket extends CommonObject
'track_id' => array('type'=>'varchar(255)', 'label'=>'TicketTrackId', 'visible'=>-2, 'enabled'=>1, 'position'=>11, 'notnull'=>-1, 'searchall'=>1, 'help'=>"Help text"),
'fk_user_create' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Author', 'visible'=>1, 'enabled'=>1, 'position'=>15, 'notnull'=>1, 'css'=>'tdoverflowmax150 maxwidth150onsmartphone'),
'origin_email' => array('type'=>'mail', 'label'=>'OriginEmail', 'visible'=>-2, 'enabled'=>1, 'position'=>16, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", 'css'=>'tdoverflowmax150'),
'subject' => array('type'=>'varchar(255)', 'label'=>'Subject', 'visible'=>1, 'enabled'=>1, 'position'=>18, 'notnull'=>-1, 'searchall'=>1, 'help'=>"", 'css'=>'maxwidth75'),
'subject' => array('type'=>'varchar(255)', 'label'=>'Subject', 'visible'=>1, 'enabled'=>1, 'position'=>18, 'notnull'=>-1, 'searchall'=>1, 'help'=>"", 'css'=>'maxwidth75', 'autofocusoncreate'=>1),
'type_code' => array('type'=>'varchar(32)', 'label'=>'Type', 'visible'=>1, 'enabled'=>1, 'position'=>20, 'notnull'=>-1, 'searchall'=>1, 'help'=>"", 'css'=>'maxwidth100'),
'category_code' => array('type'=>'varchar(32)', 'label'=>'TicketGroup', 'visible'=>-1, 'enabled'=>1, 'position'=>21, 'notnull'=>-1, 'help'=>"", 'css'=>'maxwidth100'),
'severity_code' => array('type'=>'varchar(32)', 'label'=>'Severity', 'visible'=>1, 'enabled'=>1, 'position'=>22, 'notnull'=>-1, 'help'=>"", 'css'=>'maxwidth100'),

View File

@ -43,6 +43,8 @@ $joomlaserverinfo = empty($argv[3]) ? '' : $argv[3];
$image = 'image/__WEBSITE_KEY__/images/stories/dolibarr.png';
$max = (!isset($argv[4]) || (empty($argv[4]) && $argv[4] !== '0')) ? '10' : $argv[4];
$excludeid = (empty($argv[5]) ? '' : $argv[5]);
$forcelang = (empty($argv[6]) ? '' : $argv[6]);
if (empty($argv[3]) || !in_array($argv[1], array('test', 'confirm')) || empty($websiteref)) {
print '***** '.$script_file.' *****'."\n";
@ -87,6 +89,7 @@ if ($dbjoomla->error)
$sql = 'SELECT c.id, c.title, c.alias, c.created, c.introtext, `fulltext`, c.metadesc, c.metakey, c.language, c.created, c.publish_up, u.username FROM '.$joomlaprefix.'_content as c';
$sql .= ' LEFT JOIN '.$joomlaprefix.'_users as u ON u.id = c.created_by';
$sql .= ' WHERE featured = 1';
$sql .= ' AND c.id NOT IN ('.$excludeid.')';
$sql .= ' ORDER BY publish_up ASC';
$resql = $dbjoomla->query($sql);
@ -134,7 +137,7 @@ while ($obj = $dbjoomla->fetch_object($resql)) {
}
if ($blogpostfooter) $htmltext .= "\n".$blogpostfooter;
$language = ($obj->language && $obj->language != '*' ? $obj->language : 'en');
$language = ($forcelang ? $forcelang : ($obj->language && $obj->language != '*' ? $obj->language : 'en'));
$keywords = $obj->metakey;
$author_alias = $obj->username;