Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2020-05-17 20:03:09 +02:00
commit bd564486ff
63 changed files with 772 additions and 116 deletions

View File

@ -438,7 +438,7 @@ if ($action == 'create')
print $langs->trans('Docdate');
print '</td>';
if ($action != 'editdate')
print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=editdate&amp;piece_num='.$object->piece_num.'&amp;mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('SetDate'), 1).'</a></td>';
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editdate&amp;piece_num='.$object->piece_num.'&amp;mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('SetDate'), 1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="3">';
if ($action == 'editdate') {
@ -462,7 +462,7 @@ if ($action == 'create')
print $langs->trans('Codejournal');
print '</td>';
if ($action != 'editjournal')
print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=editjournal&amp;piece_num='.$object->piece_num.'&amp;mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'</a></td>';
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editjournal&amp;piece_num='.$object->piece_num.'&amp;mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'</a></td>';
print '</tr></table>';
print '</td><td>';
if ($action == 'editjournal') {
@ -486,7 +486,7 @@ if ($action == 'create')
print $langs->trans('Piece');
print '</td>';
if ($action != 'editdocref')
print '<td class="right"><a class="editfielda" href="'.$_SERVER["PHP_SELF"].'?action=editdocref&amp;piece_num='.$object->piece_num.'&amp;mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'</a></td>';
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editdocref&amp;piece_num='.$object->piece_num.'&amp;mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'</a></td>';
print '</tr></table>';
print '</td><td>';
if ($action == 'editdocref') {
@ -650,8 +650,8 @@ if ($action == 'create')
print '<td class="nowrap right">'.price($line->credit).'</td>';
print '<td class="center">';
print '<a href="'.$_SERVER["PHP_SELF"].'?action=update&id='.$line->id.'&piece_num='.$line->piece_num.'&mode='.$mode.'">';
print img_edit();
print '<a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=update&id='.$line->id.'&piece_num='.$line->piece_num.'&mode='.$mode.'">';
print img_edit('', 0, 'class="marginrightonly"');
print '</a> &nbsp;';
$actiontodelete = 'delete';

View File

@ -135,7 +135,7 @@ elseif (in_array($compression, array('gz', 'bz')))
$file .= '.tar';
// We also exclude '/temp/' dir and 'documents/admin/documents'
$cmd = "tar -cf ".$outputdir."/".$file." --exclude-vcs --exclude 'temp' --exclude 'dolibarr.log' --exclude='documents/admin/documents' -C ".dirname(DOL_DATA_ROOT)." ".basename(DOL_DATA_ROOT);
$cmd = "tar -cf ".$outputdir."/".$file." --exclude-vcs --exclude 'temp' --exclude 'dolibarr.log' --exclude 'dolibarr_*.log' --exclude 'documents/admin/documents' -C ".dirname(DOL_DATA_ROOT)." ".basename(DOL_DATA_ROOT);
$result = $utils->executeCLI($cmd, $outputfile);

View File

@ -79,7 +79,7 @@ function bomPrepareHead($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT."/bom/bom_card.php?id=".$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("BOM");
$head[$h][2] = 'card';
$h++;

View File

@ -135,7 +135,7 @@ $head = array();
$h = 1;
$head[$h][0] = $_SERVER["PHP_SELF"].($object->id ? 'id='.$object->id : '');
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Bookmark");
$head[$h][2] = 'card';
$h++;

View File

@ -735,7 +735,7 @@ if ($type == Categorie::TYPE_CONTACT)
$num = count($contacts);
$nbtotalofrecords = '';
$newcardbutton = '';
print_barre_liste($langs->trans("Contact"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'contacts', 0, $newcardbutton, '', $limit);
print_barre_liste($langs->trans("Contact"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'contact', 0, $newcardbutton, '', $limit);
print '<table class="noborder centpercent">'."\n";
print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Ref").'</td></tr>'."\n";
@ -989,7 +989,7 @@ if ($type == Categorie::TYPE_WAREHOUSE)
print '<br>';
$param = '&limit='.$limit.'&id='.$id.'&type='.$type; $num = count($objects); $nbtotalofrecords = ''; $newcardbutton = '';
print_barre_liste($langs->trans("Warehouses"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'generic', 0, $newcardbutton, '', $limit);
print_barre_liste($langs->trans("Warehouses"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'stock', 0, $newcardbutton, '', $limit);
print "<table class='noborder' width='100%'>\n";
print '<tr class="liste_titre"><td colspan="4">'.$langs->trans("Ref").'</td></tr>'."\n";

View File

@ -131,15 +131,14 @@ if ($result)
print '<input type="hidden" name="categid" value="'.$objp->rowid.'">';
print '<input name="label" type="text" size=45 value="'.$objp->label.'">';
print '<input type="submit" name="update" class="button" value="'.$langs->trans("Edit").'">';
print "</td>";
}
else
{
print "<td >".$objp->label."</td>";
print '<td style="text-align: center;">';
print '<a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?categid='.$objp->rowid.'&amp;action=edit">'.img_edit().'</a>&nbsp;&nbsp;';
print '<a href="'.$_SERVER["PHP_SELF"].'?categid='.$objp->rowid.'&amp;action=delete">'.img_delete().'</a>';
print '<td class="center">';
print '<a class="editfielda reposition marginleftonly marginrightonly" href="'.$_SERVER["PHP_SELF"].'?categid='.$objp->rowid.'&amp;action=edit">'.img_edit().'</a>';
print '<a class="marginleftonly" href="'.$_SERVER["PHP_SELF"].'?categid='.$objp->rowid.'&amp;action=delete">'.img_delete().'</a>';
print '</td>';
}
print "</tr>";

View File

@ -46,7 +46,7 @@ $object->info($id);
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/compta/bank/line.php?rowid='.$id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("BankTransaction");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/bank/info.php?rowid='.$id;

View File

@ -257,7 +257,7 @@ foreach ($cats as $cat) {
$tabs = array(
array(
DOL_URL_ROOT.'/compta/bank/line.php?rowid='.$rowid,
$langs->trans('Card')
$langs->trans('BankTransaction')
),
array(
DOL_URL_ROOT.'/compta/bank/info.php?rowid='.$rowid,

View File

@ -612,7 +612,7 @@ if (empty($action) || $action == "view" || $action == "close")
else {
$head = array();
$head[0][0] = DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?id='.$object->id;
$head[0][1] = $langs->trans("Card");
$head[0][1] = $langs->trans("CashControl");
$head[0][2] = 'cashcontrol';
dol_fiche_head($head, 'cashcontrol', $langs->trans("CashControl"), -1, 'account');

View File

@ -128,7 +128,7 @@ $form = new Form($db);
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/compta/payment_sc/card.php?id='.$id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("PaymentSocialContribution");
$hselected = $h;
$h++;

View File

@ -0,0 +1,234 @@
<?php
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2005-2020 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/**
* \file htdocs/compta/paymentbybanktransfer/index.php
* \ingroup paymentbybanktransfer
* \brief Payment by bank transfer index page
*/
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php';
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
// Load translation files required by the page
$langs->loadLangs(array('banks', 'categories', 'withdrawals'));
// Security check
$socid = GETPOST('socid', 'int');
if ($user->socid) $socid = $user->socid;
$result = restrictedArea($user, 'paymentbybanktransfer', '', '');
/*
* Actions
*/
/*
* View
*/
llxHeader('', $langs->trans("SuppliersStandingOrdersArea"));
if (prelevement_check_config() < 0)
{
$langs->load("errors");
setEventMessages($langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Withdraw")), null, 'errors');
}
print load_fiche_titre($langs->trans("SuppliersStandingOrdersArea"));
print '<div class="fichecenter"><div class="fichethirdleft">';
$thirdpartystatic = new Societe($db);
$invoicestatic = new Facture($db);
$bprev = new BonPrelevement($db);
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder centpercent">';
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</th></tr>';
print '<tr class="oddeven"><td>'.$langs->trans("NbOfInvoiceToWithdraw").'</td>';
print '<td class="right">';
print '<a href="'.DOL_URL_ROOT.'/compta/prelevement/demandes.php?status=0">';
print $bprev->NbFactureAPrelever();
print '</a>';
print '</td></tr>';
print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>';
print '<td class="right">';
print price($bprev->SommeAPrelever(), '', '', 1, -1, -1, 'auto');
print '</td></tr></table></div><br>';
/*
* Invoices waiting for withdraw
*/
$sql = "SELECT f.ref, f.rowid, f.total_ttc, f.fk_statut, f.paye, f.type,";
$sql .= " pfd.date_demande, pfd.amount,";
$sql .= " s.nom as name, s.rowid as socid";
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f,";
$sql .= " ".MAIN_DB_PREFIX."societe as s";
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql .= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
$sql .= " WHERE s.rowid = f.fk_soc";
$sql .= " AND f.entity IN (".getEntity('invoice').")";
$sql .= " AND f.total_ttc > 0";
if (empty($conf->global->WITHDRAWAL_ALLOW_ANY_INVOICE_STATUS))
{
$sql .= " AND f.fk_statut = ".Facture::STATUS_VALIDATED;
}
$sql .= " AND pfd.traite = 0 AND pfd.fk_facture_fourn = f.rowid";
if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
if ($socid) $sql .= " AND f.fk_soc = ".$socid;
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder centpercent">';
print '<tr class="liste_titre">';
print '<th colspan="5">'.$langs->trans("SupplierInvoiceWaitingWithdraw").' ('.$num.')</th></tr>';
if ($num)
{
while ($i < $num && $i < 20)
{
$obj = $db->fetch_object($resql);
$invoicestatic->id = $obj->rowid;
$invoicestatic->ref = $obj->ref;
$invoicestatic->statut = $obj->fk_statut;
$invoicestatic->paye = $obj->paye;
$invoicestatic->type = $obj->type;
$alreadypayed = $invoicestatic->getSommePaiement();
print '<tr class="oddeven"><td>';
print $invoicestatic->getNomUrl(1, 'withdraw');
print '</td>';
print '<td>';
$thirdpartystatic->id = $obj->socid;
$thirdpartystatic->name = $obj->name;
print $thirdpartystatic->getNomUrl(1, 'customer');
print '</td>';
print '<td class="right">';
print price($obj->amount);
print '</td>';
print '<td class="right">';
print dol_print_date($db->jdate($obj->date_demande), 'day');
print '</td>';
print '<td class="right">';
print $invoicestatic->getLibStatut(3, $alreadypayed);
print '</td>';
print '</tr>';
$i++;
}
}
else
{
print '<tr class="oddeven"><td colspan="5" class="opacitymedium">'.$langs->trans("NoSupplierInvoiceToWithdraw", $langs->transnoentitiesnoconv("BankTransfer")).'</td></tr>';
}
print "</table></div><br>";
}
else
{
dol_print_error($db);
}
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
/*
* Withdraw receipts
*/
$limit = 5;
$sql = "SELECT p.rowid, p.ref, p.amount, p.datec, p.statut";
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
$sql .= " ORDER BY datec DESC";
$sql .= $db->plimit($limit);
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
print"\n<!-- debut table -->\n";
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder centpercent">';
print '<tr class="liste_titre"><th>'.$langs->trans("LatestBankTransferReceipts", $limit).'</th>';
print '<th>'.$langs->trans("Date").'</th>';
print '<th class="right">'.$langs->trans("Amount").'</th>';
print '<th class="right">'.$langs->trans("Status").'</th>';
print '</tr>';
while ($i < min($num, $limit))
{
$obj = $db->fetch_object($result);
print '<tr class="oddeven">';
print "<td>";
$bprev->id = $obj->rowid;
$bprev->ref = $obj->ref;
$bprev->statut = $obj->statut;
print $bprev->getNomUrl(1);
print "</td>\n";
print '<td>'.dol_print_date($db->jdate($obj->datec), "dayhour")."</td>\n";
print '<td class="right">'.price($obj->amount)."</td>\n";
print '<td class="right">'.$bprev->getLibStatut(3)."</td>\n";
print "</tr>\n";
$i++;
}
print "</table></div><br>";
$db->free($result);
}
else
{
dol_print_error($db);
}
print '</div></div></div>';
// End of page
llxFooter();
$db->close();

View File

@ -65,6 +65,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be includ
$hookmanager->initHooks(array('directdebitprevcard', 'globalcard', 'directdebitprevlist'));
/*
* Actions
*/

View File

@ -126,7 +126,7 @@ llxHeader('', $langs->trans("StandingOrder"));
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/line.php?id='.$id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("StandingOrder");
$hselected = $h;
$h++;

View File

@ -1454,7 +1454,7 @@ else
print '<tr><td>';
print $langs->trans("VCard").'</td><td colspan="3">';
print '<a href="'.DOL_URL_ROOT.'/contact/vcard.php?id='.$object->id.'">';
print img_picto($langs->trans("Download"), 'vcard.png').' ';
print img_picto($langs->trans("Download"), 'vcard.png', 'class="paddingrightonly"');
print $langs->trans("Download");
print '</a>';
print '</td></tr>';

View File

@ -56,7 +56,7 @@ function accounting_prepare_head(AccountingAccount $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/accountancy/admin/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Asset");
$head[$h][2] = 'card';
$h++;

View File

@ -39,7 +39,7 @@ function bank_prepare_head(Account $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/compta/bank/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("BankAccount");
$head[$h][2] = 'bankname';
$h++;
@ -211,7 +211,7 @@ function various_payment_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/compta/bank/various_payment/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("VariousPayment");
$head[$h][2] = 'card';
$h++;

View File

@ -40,7 +40,7 @@ function categories_prepare_head(Categorie $object, $type)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/categories/viewcat.php?id='.$object->id.'&amp;type='.$type;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Category");
$head[$h][2] = 'card';
$h++;

View File

@ -46,7 +46,7 @@ function societe_prepare_head(Societe $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/societe/card.php?socid='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("ThirdParty");
$head[$h][2] = 'card';
$h++;
@ -367,7 +367,7 @@ function societe_prepare_head2($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/societe/card.php?socid='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("ThirdParty");
$head[$h][2] = 'company';
$h++;

View File

@ -38,7 +38,7 @@ function contact_prepare_head(Contact $object)
$head = array();
$head[$tab][0] = DOL_URL_ROOT.'/contact/card.php?id='.$object->id;
$head[$tab][1] = $langs->trans("Card");
$head[$tab][1] = $langs->trans("Contact");
$head[$tab][2] = 'card';
$tab++;

View File

@ -68,7 +68,7 @@ function donation_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/don/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Donation");
$head[$h][2] = 'card';
$h++;

View File

@ -81,14 +81,14 @@ function ecm_prepare_head($object, $module = 'ecm', $section = '')
if ($module == 'ecm')
{
$head[$h][0] = DOL_URL_ROOT.'/ecm/dir_card.php?section='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Directory");
$head[$h][2] = 'card';
$h++;
}
else
{
$head[$h][0] = DOL_URL_ROOT.'/ecm/dir_card.php?section='.$section.'&module='.$module;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Directory");
$head[$h][2] = 'card';
$h++;
}
@ -109,7 +109,7 @@ function ecm_file_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/ecm/file_card.php?section='.$object->section_id.'&urlfile='.urlencode($object->label);
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("File");
$head[$h][2] = 'card';
$h++;

View File

@ -35,7 +35,7 @@ function expensereport_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/expensereport/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("ExpenseReport");
$head[$h][2] = 'card';
$h++;
@ -94,7 +94,7 @@ function payment_expensereport_prepare_head(PaymentExpenseReport $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/expensereport/payment/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("ExpenseReport");
$head[$h][2] = 'payment';
$h++;

View File

@ -42,7 +42,7 @@ function fichinter_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/fichinter/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Intervention");
$head[$h][2] = 'card';
$h++;

View File

@ -35,7 +35,7 @@ function fiscalyear_prepare_head(Fiscalyear $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/accountancy/admin/fiscalyear_card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("FiscalPeriod");
$head[$h][2] = 'card';
$h++;

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', 'wrench',
'setup', 'sign-out', 'split', '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',
@ -3178,7 +3178,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
$fakey = $pictowithouttext;
$facolor = ''; $fasize = '';
$fa = 'fas';
if (in_array($pictowithouttext, array('object_generic', 'note', 'off', 'on', 'object_bookmark', 'bookmark'))) {
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'))) {
@ -3212,7 +3212,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
'shipment'=>'dolly', 'stock'=>'box-open', 'stats' => 'chart-bar', 'split'=>'code-branch', 'supplier_invoice'=>'file-invoice-dollar', 'technic'=>'cogs', 'ticket'=>'ticket-alt',
'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'university', 'title_hrm'=>'umbrella-beach',
'title_agenda'=>'calendar-alt',
'uparrow'=>'mail-forward',
'uparrow'=>'mail-forward', 'vcard'=>'address-card',
'jabber'=>'comment-o',
'website'=>'globe-americas'
);

View File

@ -35,7 +35,7 @@ function holiday_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/holiday/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Holiday");
$head[$h][2] = 'card';
$h++;

View File

@ -37,7 +37,7 @@ function establishment_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/hrm/establishment/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Establishment");
$head[$h][2] = 'card';
$h++;

View File

@ -38,7 +38,7 @@ function member_prepare_head(Adherent $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/adherents/card.php?rowid='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Member");
$head[$h][2] = 'general';
$h++;
@ -124,7 +124,7 @@ function member_type_prepare_head(AdherentType $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/adherents/type.php?rowid='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("MemberType");
$head[$h][2] = 'card';
$h++;
@ -276,7 +276,7 @@ function subscription_prepare_head(Subscription $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/adherents/subscription/card.php?rowid='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Subscription");
$head[$h][2] = 'general';
$h++;

View File

@ -34,7 +34,7 @@ function payment_prepare_head(Paiement $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/compta/paiement/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Payment");
$head[$h][2] = 'payment';
$h++;
@ -69,7 +69,7 @@ function payment_supplier_prepare_head(Paiement $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/fourn/paiement/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Payment");
$head[$h][2] = 'payment';
$h++;

View File

@ -40,7 +40,7 @@ function prelevement_prepare_head(BonPrelevement $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("WithdrawalsReceipts");
$head[$h][2] = 'prelevement';
$h++;

View File

@ -41,7 +41,7 @@ function product_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT."/product/card.php?id=".$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("ProductOrService");
$head[$h][2] = 'card';
$h++;
@ -216,7 +216,7 @@ function productlot_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT."/product/stock/productlot_card.php?id=".$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Lot");
$head[$h][2] = 'card';
$h++;

View File

@ -168,7 +168,7 @@ function task_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/projet/tasks/task.php?id='.$object->id.(GETPOST('withproject') ? '&withproject=1' : '');
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Project");
$head[$h][2] = 'task_task';
$h++;

View File

@ -34,7 +34,7 @@ function salaries_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/salaries/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("SalaryPayment");
$head[$h][2] = 'card';
$h++;

View File

@ -35,7 +35,7 @@ function stock_prepare_head($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/product/stock/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Warehouse");
$head[$h][2] = 'card';
$h++;

View File

@ -78,7 +78,7 @@ function ticket_prepare_head($object)
$h = 0;
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/ticket/card.php?action=view&track_id='.$object->track_id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Ticket");
$head[$h][2] = 'tabTicket';
$h++;

View File

@ -35,7 +35,7 @@ function trip_prepare_head(Deplacement $object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/compta/deplacement/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("Trip");
$head[$h][2] = 'card';
$h++;

View File

@ -540,7 +540,7 @@ function includeContainer($containerref)
*/
function getStructuredData($type, $data = array())
{
global $conf, $db, $hookmanager, $langs, $mysoc, $user, $website, $websitepage, $weblangs; // Very important. Required to have var available when running inluded containers.
global $conf, $db, $hookmanager, $langs, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs; // Very important. Required to have var available when running inluded containers.
if ($type == 'software')
{
@ -565,6 +565,41 @@ function getStructuredData($type, $data = array())
}'."\n";
$ret .= '</script>'."\n";
}
elseif ($type == 'organization')
{
$companyname = $mysoc->name;
$url = $mysoc->url;
$ret = '<!-- Add structured data for blog post -->'."\n";
$ret .= '<script type="application/ld+json">'."\n";
$ret .= '{
"@context": "https://schema.org",
"@type": "Organization",
"name": "'.dol_escape_json($companyname).'",
"url": "'.$url.'",
"logo": "/wrapper.php?modulepart=mycompany&file=logos%2F'.urlencode($mysoc->logo).'",
"contactPoint": {
"@type": "ContactPoint",
"contactType": "Contact",
"email": "'.dol_escape_json($mysoc->email).'"
},';
if (is_array($mysoc->socialnetworks) && count($mysoc->socialnetworks) > 0) {
$ret .= '"sameAs": [';
$i = 0;
foreach($mysoc->socialnetworks as $key => $value) {
if ($key == 'linkedin') {
$ret.= '"https://www.'.$key.'.com/company/'.dol_escape_json($value).'"';
} else {
$ret.= '"https://www.'.$key.'.com/'.dol_escape_json($value).'"';
}
$i++;
if ($i < count($mysoc->socialnetworks)) $ret .= ', ';
}
$ret .= '],'."\n";
}
$ret .= "\n".'}'."\n";
$ret .= '</script>'."\n";
}
elseif ($type == 'blogpost')
{
if (!empty($websitepage->author_alias))
@ -581,7 +616,7 @@ function getStructuredData($type, $data = array())
$pageurl = str_replace('__WEBSITE_KEY__', $website->ref, $pageurl);
$title = str_replace('__WEBSITE_KEY__', $website->ref, $title);
$image = str_replace('__WEBSITE_KEY__', $website->ref, $image);
$image = 'medias/'.str_replace('__WEBSITE_KEY__', $website->ref, $image);
$companyname = str_replace('__WEBSITE_KEY__', $website->ref, $companyname);
$description = str_replace('__WEBSITE_KEY__', $website->ref, $description);
@ -598,6 +633,7 @@ function getStructuredData($type, $data = array())
"image": [
"'.dol_escape_json($image).'"
],
"dateCreated": "'.dol_print_date($websitepage->date_creation, 'dayhourrfc').'",
"datePublished": "'.dol_print_date($websitepage->date_creation, 'dayhourrfc').'",
"dateModified": "'.dol_print_date($websitepage->date_modification, 'dayhourrfc').'",
"author": {
@ -609,11 +645,22 @@ function getStructuredData($type, $data = array())
"name": "'.dol_escape_json($companyname).'",
"logo": {
"@type": "ImageObject",
"url": "/viewimage.php?modulepart=mycompany&file=logos%2F'.urlencode($mysoc->logo).'"
"url": "/wrapper.php?modulepart=mycompany&file=logos%2F'.urlencode($mysoc->logo).'"
}
},
"description": "'.dol_escape_json($description).'"
}'."\n";
},'."\n";
if ($websitepage->keywords) {
$ret .= '"keywords": [';
$i = 0;
$arrayofkeywords = explode(',', $websitepage->keywords);
foreach($arrayofkeywords as $keyword) {
$ret.= '"'.dol_escape_json($keyword).'"';
$i++;
if ($i < count($arrayofkeywords)) $ret .= ', ';
}
$ret .= '],'."\n";
}
$ret .= '"description": "'.dol_escape_json($description).'"';
$ret .= "\n".'}'."\n";
$ret .= '</script>'."\n";
}
}

View File

@ -308,8 +308,8 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
// Bank
$tmpentry = array(
'enabled'=>(!empty($conf->banque->enabled) || !empty($conf->prelevement->enabled)),
'perms'=>(!empty($user->rights->banque->lire) || !empty($user->rights->prelevement->lire)),
'module'=>'banque|prelevement'
'perms'=>(!empty($user->rights->banque->lire) || !empty($user->rights->prelevement->lire) || !empty($user->rights->paymentbybanktransfer->read)),
'module'=>'banque|prelevement|paymentbybanktransfer'
);
$menu_arr[] = array(
'name' => 'Bank',
@ -1464,7 +1464,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM
// Load translation files required by the page
$langs->loadLangs(array("withdrawals", "banks", "bills", "categories"));
// Bank-Caisse
// Bank-Cash account
if (!empty($conf->banque->enabled))
{
$newmenu->add("/compta/bank/list.php?leftmenu=bank&amp;mainmenu=bank", $langs->trans("MenuBankCash"), 0, $user->rights->banque->lire, '', $mainmenu, 'bank');
@ -1484,14 +1484,12 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM
$newmenu->add("/compta/bank/categ.php", $langs->trans("RubriquesTransactions"), 1, $user->rights->categorie->creer, '', $mainmenu, 'tags');
}
// Prelevements
// Direct debit order
if (!empty($conf->prelevement->enabled))
{
$newmenu->add("/compta/prelevement/index.php?leftmenu=withdraw&amp;mainmenu=bank", $langs->trans("StandingOrders"), 0, $user->rights->prelevement->bons->lire, '', $mainmenu, 'withdraw');
if ($usemenuhider || empty($leftmenu) || $leftmenu == "withdraw") {
//$newmenu->add("/compta/prelevement/demandes.php?status=0&amp;mainmenu=bank",$langs->trans("StandingOrderToProcess"),1,$user->rights->prelevement->bons->lire);
$newmenu->add("/compta/prelevement/create.php?mainmenu=bank", $langs->trans("NewStandingOrder"), 1, $user->rights->prelevement->bons->creer);
$newmenu->add("/compta/prelevement/bons.php?mainmenu=bank", $langs->trans("WithdrawalsReceipts"), 1, $user->rights->prelevement->bons->lire);
@ -1503,7 +1501,22 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM
}
}
// Gestion cheques
// Bank transfer order
if (!empty($conf->paymentbybanktransfer->enabled))
{
$newmenu->add("/compta/paymentbybanktransfer/index.php?leftmenu=banktransfer&amp;mainmenu=bank", $langs->trans("PaymentByBankTransfer"), 0, $user->rights->paymentbybanktransfer->read, '', $mainmenu, 'banktransfer');
if ($usemenuhider || empty($leftmenu) || $leftmenu == "banktransfer") {
$newmenu->add("/compta/paymentbybanktransfer/create.php?mainmenu=bank", $langs->trans("NewPaymentByBankTransfer"), 1, $user->rights->paymentbybanktransfer->create);
$newmenu->add("/compta/paymentbybanktransfer/bons.php?mainmenu=bank", $langs->trans("PaymentByBankTransferReceipts"), 1, $user->rights->paymentbybanktransfer->read);
$newmenu->add("/compta/paymentbybanktransfer/list.php?mainmenu=bank", $langs->trans("PaymentByBankTransferLines"), 1, $user->rights->paymentbybanktransfer->read);
$newmenu->add("/compta/paymentbybanktransfer/rejets.php?mainmenu=bank", $langs->trans("Rejects"), 1, $user->rights->paymentbybanktransfer->read);
$newmenu->add("/compta/paymentbybanktransfer/stats.php?mainmenu=bank", $langs->trans("Statistics"), 1, $user->rights->paymentbybanktransfer->read);
}
}
// Management of checks
if (empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && !empty($conf->banque->enabled) && (!empty($conf->facture->enabled) || !empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON)))
{
$newmenu->add("/compta/paiement/cheque/index.php?leftmenu=checks&amp;mainmenu=bank", $langs->trans("MenuChequeDeposits"), 0, $user->rights->banque->cheque, '', $mainmenu, 'checks');

View File

@ -0,0 +1,148 @@
<?php
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/**
* \defgroup paymentbybanktransfer Module paymentbybanktransfer
* \brief Module to manage payment by bank transfer
* \file htdocs/core/modules/modPaymentByBankTransfer.class.php
* \ingroup paymentbybanktransfer
* \brief File to describe and activate the module PaymentByBankTransfer
*/
include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
/**
* Class to describe and enable module of payment by Bank transfer
*/
class modPaymentByBankTransfer extends DolibarrModules
{
/**
* Constructor. Define names, constants, directories, boxes, permissions
*
* @param DoliDB $db Database handler
*/
public function __construct($db)
{
global $conf;
$this->db = $db;
$this->numero = 56;
$this->family = "financial";
$this->module_position = '52';
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
$this->name = preg_replace('/^mod/i', '', get_class($this));
$this->description = "Management of payment by bank transfer";
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
$this->version = 'development';
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
// Name of png file (without png) used for this module
$this->picto = 'payment';
// Data directories to create when module is enabled
$this->dirs = array("/paymentbybanktransfer/temp", "/paymentbybanktransfer/receipts");
// Dependencies
$this->hidden = false; // A condition to hide module
$this->depends = array("modFournisseur", "modBanque"); // List of module class names as string that must be enabled if this module is enabled
$this->requiredby = array(); // List of module ids to disable if this one is disabled
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
$this->phpmin = array(5, 4); // Minimum version of PHP required by module
// Config pages
$this->config_page_url = array("paymentbybanktransfer.php");
// Constants
$this->const = array();
$r = 0;
/*$this->const[$r][0] = "BANK_ADDON_PDF";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "sepamandate";
$this->const[$r][3] = 'Name of manager to generate SEPA mandate';
$this->const[$r][4] = 0;
$r++;*/
// Boxes
$this->boxes = array();
// Permissions
$this->rights = array();
$this->rights_class = 'paymentbybanktransfer';
$r = 0;
$r++;
$this->rights[$r][0] = 561;
$this->rights[$r][1] = 'Read bank transfer payment orders';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'read';
$r++;
$this->rights[$r][0] = 562;
$this->rights[$r][1] = 'Create/modify a bank transfer payment order';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'create';
$r++;
$this->rights[$r][0] = 563;
$this->rights[$r][1] = 'Send/Transmit bank transfer payment order';
$this->rights[$r][2] = 'a';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'send';
$r++;
$this->rights[$r][0] = 564;
$this->rights[$r][1] = 'Record Debits/Rejects of bank transfer payment order';
$this->rights[$r][2] = 'a';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'debit';
// Menus
//-------
$this->menu = 1; // This module add menu entries. They are coded into menu manager.
}
/**
* Function called when module is enabled.
* The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
* It also creates data directories
*
* @param string $options Options when enabling module ('', 'noboxes')
* @return int 1 if OK, 0 if KO
*/
public function init($options = '')
{
global $conf;
// Permissions
$this->remove($options);
$sql = array();
return $this->_init($sql, $options);
}
}

View File

@ -20,17 +20,17 @@
/**
* \defgroup prelevement Module prelevement
* \brief Module de gestion des prelevements bancaires
* \brief Module to manage Direct debit orders
* \file htdocs/core/modules/modPrelevement.class.php
* \ingroup prelevement
* \brief Fichier de description et activation du module Prelevement
* \brief File to describe and enable the module Prelevement
*/
include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
/**
* Class to describe and enable module Prelevement
* Class to describe and enable module of payment by Direct Debit
*/
class modPrelevement extends DolibarrModules
{
@ -51,7 +51,7 @@ class modPrelevement extends DolibarrModules
$this->module_position = '52';
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
$this->name = preg_replace('/^mod/i', '', get_class($this));
$this->description = "Gestion des Prelevements";
$this->description = "Management of Direct Debit orders";
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
$this->version = 'dolibarr';
@ -124,15 +124,6 @@ class modPrelevement extends DolibarrModules
$this->rights[$r][4] = 'bons';
$this->rights[$r][5] = 'credit';
/*
$this->rights[2][0] = 154;
$this->rights[2][1] = 'Setup withdraw account';
$this->rights[2][2] = 'w';
$this->rights[2][3] = 0;
$this->rights[2][4] = 'bons';
$this->rights[2][5] = 'configurer';
*/
// Menus
//-------
$this->menu = 1; // This module add menu entries. They are coded into menu manager.

View File

@ -68,7 +68,7 @@ if ($pageid > 0)
{
$websitepage->fetch($pageid);
$weblangs->setDefaultLang(empty($_COOKIE['weblangs-shortcode']) ? 'auto' : $_COOKIE['weblangs-shortcode']);
$weblangs->setDefaultLang(GETPOSTISSET('lang') ? GETPOST('lang', 'aZ09') : (empty($_COOKIE['weblangs-shortcode']) ? 'auto' : $_COOKIE['weblangs-shortcode']));
$pagelangs->setDefaultLang($websitepage->lang ? $websitepage->lang : $weblangs->shortlang);
if (!defined('USEDOLIBARREDITOR') && in_array($websitepage->type_container, array('menu', 'other')))

View File

@ -122,7 +122,7 @@ $form = new Form($db);
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/don/payment/card.php?id='.$id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("DonationPayment");
$hselected = $h;
$h++;

View File

@ -26,7 +26,7 @@
* Prepare array of tabs for EmailCollector
*
* @param EmailCollector $object EmailCollector
* @return array Array of tabs
* @return array Array of tabs
*/
function emailcollectorPrepareHead($object)
{
@ -38,7 +38,7 @@ function emailcollectorPrepareHead($object)
$head = array();
$head[$h][0] = dol_buildpath("/admin/emailcollector_card.php", 1).'?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("EmailCollector");
$head[$h][2] = 'card';
$h++;

View File

@ -541,8 +541,8 @@ Module54Name=Contracts/Subscriptions
Module54Desc=Management of contracts (services or recurring subscriptions)
Module55Name=Barcodes
Module55Desc=Barcode management
Module56Name=Telephony
Module56Desc=Telephony integration
Module56Name=Payment by bank transfer
Module56Desc=Management of payment by bank transfer orders. It includes generation of SEPA file for European countries.
Module57Name=Bank Direct Debit payments
Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
Module58Name=ClickToDial

View File

@ -37,6 +37,8 @@ IbanValid=BAN valid
IbanNotValid=BAN not valid
StandingOrders=Direct Debit orders
StandingOrder=Direct debit order
PaymentByBankTransfers=Payments by bank transfer
PaymentByBankTransfer=Payment by bank transfer
AccountStatement=Account statement
AccountStatementShort=Statement
AccountStatements=Account statements

View File

@ -243,6 +243,8 @@ SendBillRef=Submission of invoice %s
SendReminderBillRef=Submission of invoice %s (reminder)
StandingOrders=Direct debit orders
StandingOrder=Direct debit order
PaymentByBankTransfers=Payments by bank transfer
PaymentByBankTransfer=Payment by bank transfer
NoDraftBills=No draft invoices
NoOtherDraftBills=No other draft invoices
NoDraftInvoices=No draft invoices

View File

@ -19,7 +19,6 @@ ProspectionArea=Prospection area
IdThirdParty=Id third party
IdCompany=Company Id
IdContact=Contact Id
Contacts=Contacts/Addresses
ThirdPartyContacts=Third-party contacts
ThirdPartyContact=Third-party contact/address
Company=Company
@ -298,7 +297,8 @@ AddContact=Create contact
AddContactAddress=Create contact/address
EditContact=Edit contact
EditContactAddress=Edit contact/address
Contact=Contact
Contact=Contact/Address
Contacts=Contacts/Addresses
ContactId=Contact id
ContactsAddresses=Contacts/Addresses
FromContactName=Name:

View File

@ -27,7 +27,7 @@ DangerZone=Danger zone
BuildPackage=Build package
BuildPackageDesc=You can generate a zip package of your application so your are ready to distribute it on any Dolibarr. You can also distribute it or sell it on marketplace like <a href="https://www.dolistore.com">DoliStore.com</a>.
BuildDocumentation=Build documentation
ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here:
ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here
ModuleIsLive=This module has been activated. Any change may break a current live feature.
DescriptionLong=Long description
EditorName=Name of editor

View File

@ -4,9 +4,13 @@ SuppliersStandingOrdersArea=Direct credit payment orders area
StandingOrdersPayment=Direct debit payment orders
StandingOrderPayment=Direct debit payment order
NewStandingOrder=New direct debit order
NewPaymentByBankTransfer=New payment by bank transfer
StandingOrderToProcess=To process
PaymentByBankTransferReceipts=Bank transfer orders
PaymentByBankTransferLines=Bank transfer order lines
WithdrawalsReceipts=Direct debit orders
WithdrawalReceipt=Direct debit order
LatestBankTransferReceipts=Latest %s bank transfer orders
LastWithdrawalReceipts=Latest %s direct debit files
WithdrawalsLines=Direct debit order lines
RequestStandingOrderToTreat=Request for direct debit payment order to process
@ -14,10 +18,12 @@ RequestStandingOrderTreated=Request for direct debit payment order processed
NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines.
NbOfInvoiceToWithdraw=No. of qualified invoice with waiting direct debit order
NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information
SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by bank transfer
InvoiceWaitingWithdraw=Invoice waiting for direct debit
AmountToWithdraw=Amount to withdraw
WithdrawsRefused=Direct debit refused
NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request.
NoSupplierInvoiceToWithdraw=No supplier invoice with open 'Direct credit requests' is waiting. Go on tab '%s' on invoice card to make a request.
ResponsibleUser=User Responsible
WithdrawalsSetup=Direct debit payment setup
WithdrawStatistics=Direct debit payment statistics

View File

@ -122,7 +122,7 @@ $form = new Form($db);
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/loan/payment/card.php?id='.$id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("PaymentLoan");
$hselected = $h;
$h++;

View File

@ -37,7 +37,7 @@ function moPrepareHead($object)
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/mrp/mo_card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("MO");
$head[$h][2] = 'card';
$h++;

View File

@ -38,7 +38,7 @@ function opensurvey_prepare_head(Opensurveysondage $object)
$head = array();
$head[0][0] = 'card.php?id='.$object->id_sondage;
$head[0][1] = $langs->trans("Card");
$head[0][1] = $langs->trans("Survey");
$head[0][2] = 'general';
$h++;

View File

@ -580,7 +580,7 @@ if ($action == 'create' && $user->rights->projet->creer)
print $form->textwithpicto($langs->trans("ProjectFollowTasks"), $htmltext);
print '<br>';
}
if (!empty($conf->global->PROJECT_BILL_TIME_SPENT))
if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT))
{
print '<input type="checkbox" id="usage_bill_time" name="usage_bill_time"'.(GETPOST('usage_bill_time', 'alpha') != '' ? ' checked="checked"' : '').'"> ';
$htmltext = $langs->trans("ProjectBillTimeDescription");
@ -871,7 +871,7 @@ elseif ($object->id > 0)
print $form->textwithpicto($langs->trans("ProjectFollowTasks"), $htmltext);
print '<br>';
}
if (!empty($conf->global->PROJECT_BILL_TIME_SPENT))
if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT))
{
print '<input type="checkbox" name="usage_bill_time"'.(GETPOSTISSET('usage_bill_time') ? (GETPOST('usage_bill_time', 'alpha') != '' ? ' checked="checked"' : '') : ($object->usage_bill_time ? ' checked="checked"' : '')).'"> ';
$htmltext = $langs->trans("ProjectBillTimeDescription");

View File

@ -3745,6 +3745,13 @@ class Societe extends CommonObject
$this->instagram_url = empty($conf->global->MAIN_INFO_SOCIETE_INSTAGRAM_URL) ? '' : $conf->global->MAIN_INFO_SOCIETE_INSTAGRAM_URL;
$this->youtube_url = empty($conf->global->MAIN_INFO_SOCIETE_YOUTUBE_URL) ? '' : $conf->global->MAIN_INFO_SOCIETE_YOUTUBE_URL;
$this->github_url = empty($conf->global->MAIN_INFO_SOCIETE_GITHUB_URL) ? '' : $conf->global->MAIN_INFO_SOCIETE_GITHUB_URL;
$this->socialnetworks = array();
if (! empty($this->facebook_url)) $this->socialnetworks['facebook'] = $this->facebook_url;
if (! empty($this->twitter_url)) $this->socialnetworks['twitter'] = $this->twitter_url;
if (! empty($this->linkedin_url)) $this->socialnetworks['linkedin'] = $this->linkedin_url;
if (! empty($this->instagram_url)) $this->socialnetworks['instagram'] = $this->instagram_url;
if (! empty($this->youtube_url)) $this->socialnetworks['youtube'] = $this->youtube_url;
if (! empty($this->github_url)) $this->socialnetworks['github'] = $this->github_url;
// Id prof generiques
$this->idprof1 = empty($conf->global->MAIN_INFO_SIREN) ? '' : $conf->global->MAIN_INFO_SIREN;

View File

@ -772,15 +772,17 @@ if (empty($conf->global->TAKEPOS_HIDE_HEAD_BAR)) {
<div class="inline-block valignmiddle" id="customerandsales">
</div>
<!-- More info about customer -->
<div class="inline-block valignmiddle" id="moreinfo"></div>
<div class="inline-block valignmiddle" id="infowarehouse"></div>
<div class="inline-block valignmiddle tdoverflowmax150onsmartphone" id="moreinfo"></div>
<div class="inline-block valignmiddle tdoverflowmax150onsmartphone" id="infowarehouse"></div>
</div>
<div class="topnav-right">
<div class="login_block_other">
<input type="text" id="search" name="search" onkeyup="Search2(<?php echo $keyCodeForEnter; ?>);" placeholder="<?php echo $langs->trans("Search"); ?>" autofocus>
<a onclick="ClearSearch();"><span class="fa fa-backspace"></span></a>
<a onclick="window.location.href='<?php echo DOL_URL_ROOT; ?>';"><span class="fas fa-home"></span></a>
<?php if (empty($conf->dol_use_jmobile)) { ?>
<a onclick="FullScreen();"><span class="fa fa-expand-arrows-alt"></span></a>
<?php } ?>
</div>
<div class="login_block_user">
<?php

View File

@ -1189,6 +1189,18 @@ table[summary="list_of_modules"] .fa-cog {
text-overflow: ellipsis;
white-space: nowrap;
}
.tdoverflowmax100onsmartphone { /* For tdoverflow, the max-midth become a minimum ! */
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.tdoverflowmax150onsmartphone { /* For tdoverflow, the max-midth become a minimum ! */
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.border tbody tr, .border tbody tr td, div.tabBar table.border tr, div.tabBar table.border tr td, div.tabBar div.border .table-border-row, div.tabBar div.border .table-key-border-col, div.tabBar div.border .table-val-border-col {
height: 40px !important;
}
@ -1624,6 +1636,13 @@ td.nobordernopadding.widthpictotitle.col-picto {
width: unset;
color: #999;
}
span.widthpictotitle.pictotitle {
/* background: var(--colortexttitlenotab);
color: #fff;
padding: 10px;
border-radius: 2px;*/
}
.pictotitle {
margin-<?php echo $right; ?>: 8px;
/* margin-bottom: 4px; */
@ -2724,9 +2743,15 @@ a.tabTitle {
text-decoration: none;
white-space: nowrap;
}
.tabTitleText {
display: none;
}
.imgTabTitle {
max-height: 14px;
}
div.tabs div.tabsElem:first-of-type a.tab {
margin-left: 0px !important;
}
a.tabunactive {
color: var(--colortextlink) !important;
@ -3601,8 +3626,19 @@ ul.noborder li:nth-child(even):not(.liste_titre) {
margin-right: 8px;
}
@media only screen and (max-width: 767px)
{
div.tabs {
padding-left: 0 !important;
padding-right: 0!important;
margin-left: 0 !important;
margin-right: 0 !important;
}
a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
padding: 12px 12px 13px;
}
a.tmenu:link, a.tmenu:visited, a.tmenu:hover, a.tmenu:active {
padding: 0px 0px 0px 0px;
}
@ -6369,7 +6405,6 @@ div.tabsElem a.tab {
word-break: break-word;
}
.badge {
line-height: 1.2em;
min-width: auto;
font-size: 12px;
}

View File

@ -76,8 +76,11 @@ if (!defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
font-size: 25px;
line-height: 100px;
}
.opened-dash-board-wrap .info-box-sm .info-box-icon {
line-height: 80px;
}
.info-box-module .info-box-icon {
height: 106px;
height: 107px;
}
.info-box-icon > img {
max-width: 100%;
@ -172,6 +175,7 @@ if (!defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
.info-box-title{
text-transform: uppercase;
font-weight: bold;
padding-bottom: 4px;
}
.info-box-text{
font-size: 0.92em;
@ -200,6 +204,7 @@ if (!empty($conf->global->THEME_INFOBOX_COLOR_ON_BACKGROUND)) $prefix = 'backgro
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);
?>
.info-box-icon {
<?php if ($prefix) { ?>

View File

@ -2,27 +2,68 @@
if (!defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
/* <style type="text/css" > */
/*
* Component: Info Box
* -------------------
*/
.info-box-module-external span.info-box-icon-version {
background: #999;
/* ICONS INFO BOX */
<?php
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
$prefix = '';
//$prefix = 'background-';
if (!empty($conf->global->THEME_INFOBOX_COLOR_ON_BACKGROUND)) $prefix = 'background-';
?>
.bg-infobox-project{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#6c6aa8', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
}
.bg-infobox-action{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#a47080', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
}
.bg-infobox-propal,
.bg-infobox-facture,
.bg-infobox-commande{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#99a17d', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !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;
}
.bg-infobox-contrat, .bg-infobox-ticket{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#46a676', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
}
.bg-infobox-bank_account{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#b0a53e', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
}
.bg-infobox-adherent{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#79633f', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
}
.bg-infobox-expensereport{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#79633f', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
}
.bg-infobox-holiday{
<?php echo $prefix; ?>color: <?php print colorAgressiveness('#755114', $conf->global->THEME_AGRESSIVENESS_RATIO); ?> !important;
}
span.info-box-icon-text { /* hide box text number due to problems */
display: none;
.info-box-module-external span.info-box-icon-version {
background: #bbb;
}
.info-box {
display: block;
position: relative;
min-height: 90px;
background: #fff;
width: 100%;
/* box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); */
border-radius: 2px;
margin-bottom: 15px;
border: 1px solid #ddd;
}
.info-box.info-box-sm{
min-height: 80px;
margin-bottom: 10px;
}
.info-box small {
font-size: 14px;
}
@ -53,14 +94,26 @@ span.info-box-icon-text { /* hide box text number due to problems */
}
.info-box-icon {
display: block;
overflow: hidden;
float: left;
height: 90px;
/* height: 90px; */
width: 90px;
text-align: center;
font-size: 45px;
line-height: 90px;
background: #eee;
}
.info-box-sm .info-box-icon {
width: 80px;
font-size: 25px;
line-height: 100px;
}
.opened-dash-board-wrap .info-box-sm .info-box-icon {
line-height: 80px;
}
.info-box-module .info-box-icon {
height: 108px;
}
.info-box-icon > img {
max-width: 100%;
}
@ -71,6 +124,74 @@ span.info-box-icon-text { /* hide box text number due to problems */
padding: 5px 10px;
margin-left: 90px;
}
.info-box-icon-text{
box-sizing: border-box;
display: block;
position: absolute;
width: 90px;
bottom: 0px;
color: #ffffff;
background-color: rgba(0,0,0,0.1);
cursor: default;
font-size: 10px;
line-height: 15px;
padding: 0px 3px;
text-align: center;
opacity: 0;
-webkit-transition: opacity 0.5s, visibility 0s 0.5s;
transition: opacity 0.5s, visibility 0s 0.5s;
}
.info-box-icon-version {
box-sizing: border-box;
display: block;
position: absolute;
width: 90px;
bottom: 0px;
color: #ffffff;
background-color: rgba(0,0,0,0.1);
cursor: default;
font-size: 10px;
line-height: 22px;
padding: 0px 3px;
text-align: center;
opacity: 1;
-webkit-transition: opacity 0.5s, visibility 0s 0.5s;
transition: opacity 0.5s, visibility 0s 0.5s;
}
.box-flex-item.info-box-module.info-box-module-disabled {
/* opacity: 0.6; */
}
.info-box-actions {
position: absolute;
right: 0;
bottom: 0;
}
<?php if (empty($conf->global->MAIN_DISABLE_GLOBAL_BOXSTATS) && !empty($conf->global->MAIN_INCLUDE_GLOBAL_STATS_IN_OPENED_DASHBOARD)) { ?>
.info-box-icon-text{
opacity: 1;
}
<?php } ?>
.info-box-sm .info-box-icon-text, .info-box-sm .info-box-icon-version{
overflow: hidden;
width: 80px;
}
.info-box:hover .info-box-icon-text{
opacity: 1;
}
.info-box-content {
padding: 5px 10px;
margin-left: 90px;
}
.info-box-number {
display: block;
font-weight: bold;
@ -88,6 +209,7 @@ span.info-box-icon-text { /* hide box text number due to problems */
.info-box-title{
text-transform: uppercase;
font-weight: bold;
padding-bottom: 5px;
}
.info-box-text{
font-size: 12px;
@ -152,7 +274,7 @@ if (GETPOSTISSET('THEME_AGRESSIVENESS_RATIO')) $conf->global->THEME_AGRESSIVENES
}
.fa-dol-propal:before,
.fa-dol-supplier_proposal:before {
content: "\f2b5";
content: "\f573";
}
.fa-dol-facture:before,
.fa-dol-invoice_supplier:before {
@ -168,6 +290,9 @@ if (GETPOSTISSET('THEME_AGRESSIVENESS_RATIO')) $conf->global->THEME_AGRESSIVENES
.fa-dol-contrat:before {
content: "\f1e6";
}
.fa-dol-ticket:before {
content: "\f3ff";
}
.fa-dol-bank_account:before {
content: "\f19c";
}
@ -261,3 +386,10 @@ if (GETPOSTISSET('THEME_AGRESSIVENESS_RATIO')) $conf->global->THEME_AGRESSIVENES
height: 0;
}
.info-box-module {
min-width: 350px;
max-width: 350px;
}
.info-box-module .info-box-content {
height: 7em;
}

View File

@ -1251,6 +1251,19 @@ table[summary="list_of_modules"] .fa-cog {
text-overflow: ellipsis;
white-space: nowrap;
}
.tdoverflowmax100onsmartphone { /* For tdoverflow, the max-midth become a minimum ! */
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.tdoverflowmax150onsmartphone { /* For tdoverflow, the max-midth become a minimum ! */
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
div.fiche {
margin-top: <?php print ($dol_hide_topmenu ? '12' : '6'); ?>px !important;
}
@ -2058,8 +2071,8 @@ div.mainmenu.members {
div.mainmenu.menu {
background-image: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/menus/menu.png', 1) ?>);
top: 7px;
left: 5px;
top: 10px;
left: 1px;
}
div.mainmenu.products {
@ -2756,9 +2769,15 @@ a.tabTitle {
text-decoration: none;
white-space: nowrap;
}
.tabTitleText {
display: hidden;
}
.imgTabTitle {
max-height: 14px;
}
div.tabs div.tabsElem:first-of-type a.tab {
margin-left: 0px !important;
}
a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
font-family: <?php print $fontlist ?>;
@ -3588,6 +3607,12 @@ ul.noborder li:nth-child(even):not(.liste_titre) {
}
@media only screen and (max-width: 767px)
{
div.tabs {
padding-left: 0 !important;
margin-left: 0 !important;
margin-right: 0 !important;
}
.boxstats, .boxstats130 {
margin: 3px;
border: 1px solid #ddd;

View File

@ -133,7 +133,7 @@ llxHeader('', $title);
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/variants/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("ProductAttributeName");
$head[$h][2] = 'variant';
$h++;

View File

@ -83,7 +83,7 @@ llxHeader('', $title);
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/variants/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("ProductAttributeName");
$head[$h][2] = 'variant';
$h++;

View File

@ -2207,17 +2207,24 @@ if (!GETPOST('hide_websitemenu'))
print '<input type="submit" class="button bordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("EditCss")).'" name="editcss">';
$importlabel = $langs->trans("ImportSite");
$exportlabel = $langs->trans("ExportSite");
if (! empty($conf->dol_optimize_smallscreen)) {
$importlabel = $langs->trans("Import");
$exportlabel = $langs->trans("Export");
}
if ($atleastonepage)
{
print '<input type="submit" class="button bordertransp" disabled="disabled" value="'.dol_escape_htmltag($langs->trans("ImportSite")).'" name="importsite">';
print '<input type="submit" class="button bordertransp" disabled="disabled" value="'.dol_escape_htmltag($importlabel).'" name="importsite">';
}
else
{
print '<input type="submit" class="button bordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("ImportSite")).'" name="importsite">';
print '<input type="submit" class="button bordertransp"'.$disabled.' value="'.dol_escape_htmltag($importlabel).'" name="importsite">';
}
//print '<input type="submit" class="button"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("EditMenu")).'" name="editmenu">';
print '<input type="submit" class="button bordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("ExportSite")).'" name="exportsite">';
print '<input type="submit" class="button bordertransp"'.$disabled.' value="'.dol_escape_htmltag($exportlabel).'" name="exportsite">';
print '<input type="submit" class="button bordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("CloneSite")).'" name="createfromclone">';
print '<input type="submit" class="buttonDelete bordertransp" name="deletesite" value="'.$langs->trans("Delete").'"'.($atleastonepage ? ' disabled="disabled"' : '').'>';
@ -2261,7 +2268,7 @@ if (!GETPOST('hide_websitemenu'))
print '<span class="websiteinputurl valignmiddle" id="websiteinputurl">';
$linktotestonwebserver = '<a href="'.($virtualurl ? $virtualurl : '#').'" class="valignmiddle">';
$linktotestonwebserver .= $langs->trans("TestDeployOnWeb", $virtualurl).' '.img_picto('', 'globe');
$linktotestonwebserver .= '<span class="hideonsmartphone">'.$langs->trans("TestDeployOnWeb", $virtualurl).' </span>'.img_picto('', 'globe');
$linktotestonwebserver .= '</a>';
$htmltext = '';
if (empty($object->fk_default_home))

View File

@ -35,7 +35,7 @@ function websiteaccountPrepareHead($object)
$head = array();
$head[$h][0] = dol_buildpath("/website/websiteaccount_card.php", 1).'?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][1] = $langs->trans("WebsiteAccount");
$head[$h][2] = 'card';
$h++;