mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-06 01:28:19 +01:00
Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74b67eb6c6 | ||
|
|
c727bbb530 | ||
|
|
34b3113bb7 | ||
|
|
90854dc2bf | ||
|
|
b44ddaa696 | ||
|
|
41a970c90f | ||
|
|
3d9b2a1676 | ||
|
|
b5f887b3e4 | ||
|
|
79371f66b0 | ||
|
|
4569cb82b2 | ||
|
|
04d33f4594 | ||
|
|
af6e95aa79 | ||
|
|
5d942c9d1a | ||
|
|
5ee74d7c07 | ||
|
|
1541e20870 | ||
|
|
53709cf509 | ||
|
|
10e32c056e | ||
|
|
0a72aed3d7 | ||
|
|
ba724204a4 | ||
|
|
e81023c35a | ||
|
|
e8d9e9e697 | ||
|
|
57732d4265 | ||
|
|
2637f9af63 | ||
|
|
56d78cf12a | ||
|
|
b9a91f92ea | ||
|
|
56ae51375d | ||
|
|
c888ce08c1 | ||
|
|
3f862bf43e | ||
|
|
9ef5f26624 | ||
|
|
5bae9db0a8 |
@@ -17,8 +17,6 @@ on Internet on web following sites:<br>
|
|||||||
<br>
|
<br>
|
||||||
* <a href="https://demo.dolibarr.org">Dolibarr demo (online)</a><br>
|
* <a href="https://demo.dolibarr.org">Dolibarr demo (online)</a><br>
|
||||||
<br>
|
<br>
|
||||||
* <a href="https://www.nltechno.com/pages/dolibarrwinbin.php">DoliWamp, the Dolibarr for Windows</a><br>
|
|
||||||
<br>
|
|
||||||
* <a href="https://www.dolistore.com">DoliStore (official addons/plugins market place)</a><br>
|
* <a href="https://www.dolistore.com">DoliStore (official addons/plugins market place)</a><br>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Download
|
|||||||
Install
|
Install
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
* For a Quick guide, take a look at README file into root directory.
|
* For a Quick guide, take a look at README.md file into root directory.
|
||||||
|
|
||||||
* More complete documentations are also available on line on the Dolibarr Wiki:
|
* More complete documentations are also available on line on the Dolibarr Wiki:
|
||||||
https://wiki.dolibarr.org
|
https://wiki.dolibarr.org
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Download / Herunterladen
|
|||||||
Installation
|
Installation
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
* Für eine kurze Einleitung, schau auf die README Datei im Hauptverzeichnis.
|
* Für eine kurze Einleitung, schau auf die README.md Datei im Hauptverzeichnis.
|
||||||
|
|
||||||
* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
|
* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
|
||||||
https://wiki.dolibarr.org/index.php/Hauptseite
|
https://wiki.dolibarr.org/index.php/Hauptseite
|
||||||
|
|||||||
@@ -19,9 +19,7 @@ https://www.dolistore.org
|
|||||||
Documentation utilisateur
|
Documentation utilisateur
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
* Pour une prise en main et installation rapide, consultez le fichier
|
* Pour une prise en main et installation rapide, consultez le fichier README-FR.md à la racine.
|
||||||
README-FR à la racine.
|
|
||||||
|
|
||||||
* Une documentation utilisateur francophone plus consistante est disponible en
|
* Une documentation utilisateur francophone plus consistante est disponible en ligne sur le wiki de Dolibarr à l'adresse:
|
||||||
ligne sur le wiki de Dolibarr à l'adresse:
|
https://wiki.dolibarr.org
|
||||||
https://wiki.dolibarr.org
|
|
||||||
|
|||||||
@@ -4,4 +4,5 @@ User guide
|
|||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
* All Dolibarr guides are available, on line, on the Dolibarr Web site:
|
* All Dolibarr guides are available, on line, on the Dolibarr Web site:
|
||||||
|
|
||||||
https://www.dolibarr.org
|
https://www.dolibarr.org
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ README (french)
|
|||||||
Documentation utilisateur
|
Documentation utilisateur
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
* Pour une prise en main et installation rapide, consultez le fichier
|
La documentation utilisateur francophone est disponible en ligne sur le site Web de Dolibarr à l'adresse:
|
||||||
README-FR à la racine.
|
|
||||||
|
|
||||||
* Une documentation utilisateur francophone plus consistante est disponible en
|
|
||||||
ligne sur le site Web de Dolibarr à l'adresse:
|
|
||||||
https://www.dolibarr.fr
|
https://www.dolibarr.fr
|
||||||
|
|||||||
@@ -42,14 +42,14 @@ $search_mvt_num = GETPOST('search_mvt_num', 'int');
|
|||||||
$search_doc_type = GETPOST("search_doc_type", 'alpha');
|
$search_doc_type = GETPOST("search_doc_type", 'alpha');
|
||||||
$search_doc_ref = GETPOST("search_doc_ref", 'alpha');
|
$search_doc_ref = GETPOST("search_doc_ref", 'alpha');
|
||||||
$search_date_start = dol_mktime(0, 0, 0, GETPOST('search_date_startmonth', 'int'), GETPOST('search_date_startday', 'int'), GETPOST('search_date_startyear', 'int'));
|
$search_date_start = dol_mktime(0, 0, 0, GETPOST('search_date_startmonth', 'int'), GETPOST('search_date_startday', 'int'), GETPOST('search_date_startyear', 'int'));
|
||||||
$search_date_end = dol_mktime(0, 0, 0, GETPOST('search_date_endmonth', 'int'), GETPOST('search_date_endday', 'int'), GETPOST('search_date_endyear', 'int'));
|
$search_date_end = dol_mktime(23, 59, 59, GETPOST('search_date_endmonth', 'int'), GETPOST('search_date_endday', 'int'), GETPOST('search_date_endyear', 'int'));
|
||||||
$search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
|
$search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
|
||||||
$search_date_creation_start = dol_mktime(0, 0, 0, GETPOST('date_creation_startmonth', 'int'), GETPOST('date_creation_startday', 'int'), GETPOST('date_creation_startyear', 'int'));
|
$search_date_creation_start = dol_mktime(0, 0, 0, GETPOST('date_creation_startmonth', 'int'), GETPOST('date_creation_startday', 'int'), GETPOST('date_creation_startyear', 'int'));
|
||||||
$search_date_creation_end = dol_mktime(0, 0, 0, GETPOST('date_creation_endmonth', 'int'), GETPOST('date_creation_endday', 'int'), GETPOST('date_creation_endyear', 'int'));
|
$search_date_creation_end = dol_mktime(23, 59, 59, GETPOST('date_creation_endmonth', 'int'), GETPOST('date_creation_endday', 'int'), GETPOST('date_creation_endyear', 'int'));
|
||||||
$search_date_modification_start = dol_mktime(0, 0, 0, GETPOST('date_modification_startmonth', 'int'), GETPOST('date_modification_startday', 'int'), GETPOST('date_modification_startyear', 'int'));
|
$search_date_modification_start = dol_mktime(0, 0, 0, GETPOST('date_modification_startmonth', 'int'), GETPOST('date_modification_startday', 'int'), GETPOST('date_modification_startyear', 'int'));
|
||||||
$search_date_modification_end = dol_mktime(0, 0, 0, GETPOST('date_modification_endmonth', 'int'), GETPOST('date_modification_endday', 'int'), GETPOST('date_modification_endyear', 'int'));
|
$search_date_modification_end = dol_mktime(23, 59, 59, GETPOST('date_modification_endmonth', 'int'), GETPOST('date_modification_endday', 'int'), GETPOST('date_modification_endyear', 'int'));
|
||||||
$search_date_export_start = dol_mktime(0, 0, 0, GETPOST('date_export_startmonth', 'int'), GETPOST('date_export_startday', 'int'), GETPOST('date_export_startyear', 'int'));
|
$search_date_export_start = dol_mktime(0, 0, 0, GETPOST('date_export_startmonth', 'int'), GETPOST('date_export_startday', 'int'), GETPOST('date_export_startyear', 'int'));
|
||||||
$search_date_export_end = dol_mktime(0, 0, 0, GETPOST('date_export_endmonth', 'int'), GETPOST('date_export_endday', 'int'), GETPOST('date_export_endyear', 'int'));
|
$search_date_export_end = dol_mktime(23, 59, 59, GETPOST('date_export_endmonth', 'int'), GETPOST('date_export_endday', 'int'), GETPOST('date_export_endyear', 'int'));
|
||||||
|
|
||||||
//var_dump($search_date_start);exit;
|
//var_dump($search_date_start);exit;
|
||||||
if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) {
|
if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ $sortorder = GETPOST("sortorder");
|
|||||||
$sortfield = GETPOST("sortfield");
|
$sortfield = GETPOST("sortfield");
|
||||||
$action = GETPOST('action', 'alpha');
|
$action = GETPOST('action', 'alpha');
|
||||||
$search_date_start = dol_mktime(0, 0, 0, GETPOST('search_date_startmonth', 'int'), GETPOST('search_date_startday', 'int'), GETPOST('search_date_startyear', 'int'));
|
$search_date_start = dol_mktime(0, 0, 0, GETPOST('search_date_startmonth', 'int'), GETPOST('search_date_startday', 'int'), GETPOST('search_date_startyear', 'int'));
|
||||||
$search_date_end = dol_mktime(0, 0, 0, GETPOST('search_date_endmonth', 'int'), GETPOST('search_date_endday', 'int'), GETPOST('search_date_endyear', 'int'));
|
$search_date_end = dol_mktime(23, 59, 59, GETPOST('search_date_endmonth', 'int'), GETPOST('search_date_endday', 'int'), GETPOST('search_date_endyear', 'int'));
|
||||||
$search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
|
$search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
|
||||||
|
|
||||||
$search_accountancy_code = GETPOST("search_accountancy_code");
|
$search_accountancy_code = GETPOST("search_accountancy_code");
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ if ($action == 'delete')
|
|||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
$formadmin = new FormAdmin($db);
|
$formadmin = new FormAdmin($db);
|
||||||
|
|
||||||
$wikihelp='EN:Setup|FR:Paramétrage|ES:Configuración';
|
$wikihelp = 'EN:Setup_Translation|FR:Paramétrage_Traduction|ES:Configuración_Traducción';
|
||||||
llxHeader('', $langs->trans("Setup"), $wikihelp);
|
llxHeader('', $langs->trans("Setup"), $wikihelp);
|
||||||
|
|
||||||
$param='&mode='.$mode;
|
$param='&mode='.$mode;
|
||||||
|
|||||||
@@ -85,16 +85,21 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Seems to no be used and replaced with $action == 'infocredit'
|
// Seems to no be used and replaced with $action == 'infocredit'
|
||||||
if ( $action == 'confirm_credite' && GETPOST('confirm', 'alpha') == 'yes')
|
if ( $action == 'confirm_credite' && GETPOST('confirm', 'alpha') == 'yes')
|
||||||
{
|
{
|
||||||
$res=$object->set_credite();
|
if ($object->statut == 2) {
|
||||||
if ($res >= 0)
|
$res = -1;
|
||||||
{
|
setEventMessages('WithdrawalCantBeCreditedTwice', array(), 'errors');
|
||||||
header("Location: card.php?id=".$id);
|
} else {
|
||||||
exit;
|
$res=$object->set_credite();
|
||||||
}
|
}
|
||||||
}
|
if ($res >= 0)
|
||||||
|
{
|
||||||
|
header("Location: card.php?id=".$id);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($action == 'infotrans' && $user->rights->prelevement->bons->send)
|
if ($action == 'infotrans' && $user->rights->prelevement->bons->send)
|
||||||
{
|
{
|
||||||
@@ -135,14 +140,19 @@ if (empty($reshook))
|
|||||||
{
|
{
|
||||||
$dt = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
|
$dt = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
|
||||||
|
|
||||||
$error = $object->set_infocredit($user, $dt);
|
if ($object->statut == 2) {
|
||||||
|
$error = 1;
|
||||||
|
setEventMessages('WithdrawalCantBeCreditedTwice', array(), 'errors');
|
||||||
|
} else {
|
||||||
|
$error = $object->set_infocredit($user, $dt);
|
||||||
|
}
|
||||||
|
|
||||||
if ($error)
|
if ($error)
|
||||||
{
|
{
|
||||||
header("Location: card.php?id=".$id."&error=$error");
|
header("Location: card.php?id=".$id."&error=$error");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ print_liste_field_titre(
|
|||||||
|
|
||||||
// Quantity
|
// Quantity
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
print $qty[$key];
|
print price($qty[$key], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Percent;
|
// Percent;
|
||||||
|
|||||||
@@ -256,6 +256,8 @@ if ($search_email) $sql .= natural_search('s.email', $search_email);
|
|||||||
if ($search_contract) $sql .= natural_search(array('c.rowid', 'c.ref'), $search_contract);
|
if ($search_contract) $sql .= natural_search(array('c.rowid', 'c.ref'), $search_contract);
|
||||||
if (!empty($search_ref_customer)) $sql .= natural_search(array('c.ref_customer'), $search_ref_customer);
|
if (!empty($search_ref_customer)) $sql .= natural_search(array('c.ref_customer'), $search_ref_customer);
|
||||||
if (!empty($search_ref_supplier)) $sql .= natural_search(array('c.ref_supplier'), $search_ref_supplier);
|
if (!empty($search_ref_supplier)) $sql .= natural_search(array('c.ref_supplier'), $search_ref_supplier);
|
||||||
|
if ($search_zip) $sql .= natural_search(array('s.zip'), $search_zip);
|
||||||
|
if ($search_town) $sql .= natural_search(array('s.town'), $search_town);
|
||||||
if ($search_sale > 0)
|
if ($search_sale > 0)
|
||||||
{
|
{
|
||||||
$sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
|
$sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
|
||||||
|
|||||||
@@ -468,7 +468,7 @@ class Translate
|
|||||||
if (! $found && ! empty($conf->global->MAIN_ENABLE_OVERWRITE_TRANSLATION))
|
if (! $found && ! empty($conf->global->MAIN_ENABLE_OVERWRITE_TRANSLATION))
|
||||||
{
|
{
|
||||||
// Overwrite translation with database read
|
// Overwrite translation with database read
|
||||||
$sql ="SELECT transkey, transvalue FROM ".MAIN_DB_PREFIX."overwrite_trans where lang='".$db->escape($this->defaultlang)."' OR lang IS NULL";
|
$sql ="SELECT transkey, transvalue FROM ".MAIN_DB_PREFIX."overwrite_trans where (lang='".$db->escape($this->defaultlang)."' OR lang IS NULL)";
|
||||||
$sql.=" AND entity IN (0, ".getEntity('overwrite_trans').")";
|
$sql.=" AND entity IN (0, ".getEntity('overwrite_trans').")";
|
||||||
$sql.=$db->order("lang", "DESC");
|
$sql.=$db->order("lang", "DESC");
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
|
|||||||
@@ -347,17 +347,19 @@ class Utils
|
|||||||
{
|
{
|
||||||
$handlein = popen($fullcommandclear, 'r');
|
$handlein = popen($fullcommandclear, 'r');
|
||||||
$i=0;
|
$i=0;
|
||||||
while (!feof($handlein))
|
if ($handlein) {
|
||||||
{
|
while (!feof($handlein))
|
||||||
$i++; // output line number
|
{
|
||||||
$read = fgets($handlein);
|
$i++; // output line number
|
||||||
// Exclude warning line we don't want
|
$read = fgets($handlein);
|
||||||
if ($i == 1 && preg_match('/Warning.*Using a password/i', $read)) continue;
|
// Exclude warning line we don't want
|
||||||
fwrite($handle, $read);
|
if ($i == 1 && preg_match('/Warning.*Using a password/i', $read)) continue;
|
||||||
if (preg_match('/'.preg_quote('-- Dump completed').'/i', $read)) $ok=1;
|
fwrite($handle, $read);
|
||||||
elseif (preg_match('/'.preg_quote('SET SQL_NOTES=@OLD_SQL_NOTES').'/i', $read)) $ok=1;
|
if (preg_match('/'.preg_quote('-- Dump completed').'/i', $read)) $ok=1;
|
||||||
|
elseif (preg_match('/'.preg_quote('SET SQL_NOTES=@OLD_SQL_NOTES').'/i', $read)) $ok=1;
|
||||||
|
}
|
||||||
|
pclose($handlein);
|
||||||
}
|
}
|
||||||
pclose($handlein);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -363,7 +363,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_propale['nb'];
|
print $product->stats_propale['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_propale['qty'];
|
print price($product->stats_propale['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -381,7 +381,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_proposal_supplier['nb'];
|
print $product->stats_proposal_supplier['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_proposal_supplier['qty'];
|
print price($product->stats_proposal_supplier['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -399,7 +399,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_commande['nb'];
|
print $product->stats_commande['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_commande['qty'];
|
print price($product->stats_commande['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -417,7 +417,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_commande_fournisseur['nb'];
|
print $product->stats_commande_fournisseur['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_commande_fournisseur['qty'];
|
print price($product->stats_commande_fournisseur['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_facture['nb'];
|
print $product->stats_facture['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_facture['qty'];
|
print price($product->stats_facture['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -453,7 +453,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_facture_fournisseur['nb'];
|
print $product->stats_facture_fournisseur['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_facture_fournisseur['qty'];
|
print price($product->stats_facture_fournisseur['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -472,7 +472,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_contrat['nb'];
|
print $product->stats_contrat['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_contrat['qty'];
|
print price($product->stats_contrat['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1262,12 +1262,12 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
{
|
{
|
||||||
if ($this->emetteur->logo)
|
if ($this->emetteur->logo)
|
||||||
{
|
{
|
||||||
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO))
|
$logodir = $conf->mycompany->dir_output;
|
||||||
{
|
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
||||||
$logo=$conf->mycompany->dir_output.'/logos/thumbs/'.$this->emetteur->logo_small;
|
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) {
|
||||||
}
|
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
||||||
else {
|
} else {
|
||||||
$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
}
|
}
|
||||||
if (is_readable($logo))
|
if (is_readable($logo))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1573,12 +1573,12 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
{
|
{
|
||||||
if ($this->emetteur->logo)
|
if ($this->emetteur->logo)
|
||||||
{
|
{
|
||||||
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO))
|
$logodir = $conf->mycompany->dir_output;
|
||||||
{
|
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
||||||
$logo=$conf->mycompany->dir_output.'/logos/thumbs/'.$this->emetteur->logo_small;
|
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) {
|
||||||
}
|
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
||||||
else {
|
} else {
|
||||||
$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
}
|
}
|
||||||
if (is_readable($logo))
|
if (is_readable($logo))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
if (! $arephoto)
|
if (! $arephoto)
|
||||||
{
|
{
|
||||||
if ($conf->product->entity != $objphoto->entity) {
|
if ($conf->product->entity != $objphoto->entity) {
|
||||||
|
|
||||||
$dir = $conf->product->multidir_output[$objphoto->entity].'/'.$midir; //Check repertories of current entities
|
$dir = $conf->product->multidir_output[$objphoto->entity].'/'.$midir; //Check repertories of current entities
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
@@ -1471,12 +1471,12 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
{
|
{
|
||||||
if ($this->emetteur->logo)
|
if ($this->emetteur->logo)
|
||||||
{
|
{
|
||||||
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO))
|
$logodir = $conf->mycompany->dir_output;
|
||||||
{
|
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
||||||
$logo=$conf->mycompany->dir_output.'/logos/thumbs/'.$this->emetteur->logo_small;
|
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) {
|
||||||
}
|
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
||||||
else {
|
} else {
|
||||||
$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
}
|
}
|
||||||
if (is_readable($logo))
|
if (is_readable($logo))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1509,12 +1509,12 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
{
|
{
|
||||||
if ($this->emetteur->logo)
|
if ($this->emetteur->logo)
|
||||||
{
|
{
|
||||||
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO))
|
$logodir = $conf->mycompany->dir_output;
|
||||||
{
|
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
||||||
$logo=$conf->mycompany->dir_output.'/logos/thumbs/'.$this->emetteur->logo_small;
|
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) {
|
||||||
}
|
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
||||||
else {
|
} else {
|
||||||
$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
}
|
}
|
||||||
if (is_readable($logo))
|
if (is_readable($logo))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -259,11 +259,11 @@ class DataPolicy
|
|||||||
{
|
{
|
||||||
if ($sendtocc)
|
if ($sendtocc)
|
||||||
{
|
{
|
||||||
$actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
|
||||||
}
|
}
|
||||||
$actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
|
||||||
$actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
|
||||||
$actionmsg .= dol_concatdesc($actionmsg, $message);
|
$actionmsg = dol_concatdesc($actionmsg, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send mail
|
// Send mail
|
||||||
@@ -329,11 +329,11 @@ class DataPolicy
|
|||||||
$actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto;
|
$actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto;
|
||||||
if ($message) {
|
if ($message) {
|
||||||
if ($sendtocc) {
|
if ($sendtocc) {
|
||||||
$actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
|
||||||
}
|
}
|
||||||
$actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
|
||||||
$actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
|
||||||
$actionmsg .= dol_concatdesc($actionmsg, $message);
|
$actionmsg = dol_concatdesc($actionmsg, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class DolLogsCollector extends MessagesCollector
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$uselogfile=$conf->global->DEBUGBAR_USE_LOGFILE;
|
$uselogfile=$conf->global->DEBUGBAR_USE_LOG_FILE;
|
||||||
|
|
||||||
if ($uselogfile)
|
if ($uselogfile)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2174,7 +2174,7 @@ class ExpenseReport extends CommonObject
|
|||||||
$sql = "SELECT DISTINCT ur.fk_user";
|
$sql = "SELECT DISTINCT ur.fk_user";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."user_rights as ur, ".MAIN_DB_PREFIX."rights_def as rd";
|
$sql.= " FROM ".MAIN_DB_PREFIX."user_rights as ur, ".MAIN_DB_PREFIX."rights_def as rd";
|
||||||
$sql.= " WHERE ur.fk_id = rd.id and rd.module = 'expensereport' AND rd.perms = 'approve'"; // Permission 'Approve';
|
$sql.= " WHERE ur.fk_id = rd.id and rd.module = 'expensereport' AND rd.perms = 'approve'"; // Permission 'Approve';
|
||||||
$sql.= "UNION";
|
$sql.= " UNION";
|
||||||
$sql.= " SELECT DISTINCT ugu.fk_user";
|
$sql.= " SELECT DISTINCT ugu.fk_user";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."usergroup_user as ugu, ".MAIN_DB_PREFIX."usergroup_rights as ur, ".MAIN_DB_PREFIX."rights_def as rd";
|
$sql.= " FROM ".MAIN_DB_PREFIX."usergroup_user as ugu, ".MAIN_DB_PREFIX."usergroup_rights as ur, ".MAIN_DB_PREFIX."rights_def as rd";
|
||||||
$sql.= " WHERE ugu.fk_usergroup = ur.fk_usergroup AND ur.fk_id = rd.id and rd.module = 'expensereport' AND rd.perms = 'approve'"; // Permission 'Approve';
|
$sql.= " WHERE ugu.fk_usergroup = ur.fk_usergroup AND ur.fk_id = rd.id and rd.module = 'expensereport' AND rd.perms = 'approve'"; // Permission 'Approve';
|
||||||
|
|||||||
@@ -3070,6 +3070,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
{
|
{
|
||||||
if (is_array($supplierorderdispatch->lines) && count($supplierorderdispatch->lines)>0)
|
if (is_array($supplierorderdispatch->lines) && count($supplierorderdispatch->lines)>0)
|
||||||
{
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/htdocs/product/class/product.class.php';
|
||||||
$date_liv = dol_now();
|
$date_liv = dol_now();
|
||||||
|
|
||||||
// Build array with quantity deliverd by product
|
// Build array with quantity deliverd by product
|
||||||
@@ -3077,7 +3078,11 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$qtydelivered[$line->fk_product]+=$line->qty;
|
$qtydelivered[$line->fk_product]+=$line->qty;
|
||||||
}
|
}
|
||||||
foreach($this->lines as $line) {
|
foreach($this->lines as $line) {
|
||||||
$qtywished[$line->fk_product]+=$line->qty;
|
if ($line->product_type == Product::TYPE_PRODUCT ||
|
||||||
|
($line->product_type == Product::TYPE_SERVICE && !empty($conf->global->STOCK_SUPPORTS_SERVICES))
|
||||||
|
) {
|
||||||
|
$qtywished[$line->fk_product] += $line->qty;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//Compare array
|
//Compare array
|
||||||
$diff_array=array_diff_assoc($qtydelivered, $qtywished); // Warning: $diff_array is done only on common keys.
|
$diff_array=array_diff_assoc($qtydelivered, $qtywished); // Warning: $diff_array is done only on common keys.
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ MakeWithdrawRequest=Make a direct debit payment request
|
|||||||
WithdrawRequestsDone=%s direct debit payment requests recorded
|
WithdrawRequestsDone=%s direct debit payment requests recorded
|
||||||
ThirdPartyBankCode=Third-party bank code
|
ThirdPartyBankCode=Third-party bank code
|
||||||
NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode <strong>%s</strong>.
|
NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode <strong>%s</strong>.
|
||||||
|
WithdrawalCantBeCreditedTwice=This withdrawal receipt is already marked as credited; this can't be done twice, as this would potentially create duplicate payments and bank entries.
|
||||||
ClassCredited=Classify credited
|
ClassCredited=Classify credited
|
||||||
ClassCreditedConfirm=Are you sure you want to classify this withdrawal receipt as credited on your bank account?
|
ClassCreditedConfirm=Are you sure you want to classify this withdrawal receipt as credited on your bank account?
|
||||||
TransData=Transmission date
|
TransData=Transmission date
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ MakeWithdrawRequest=Faire une demande de prélèvement
|
|||||||
WithdrawRequestsDone=%s demandes de prélèvements enregistrées
|
WithdrawRequestsDone=%s demandes de prélèvements enregistrées
|
||||||
ThirdPartyBankCode=Code banque du tiers
|
ThirdPartyBankCode=Code banque du tiers
|
||||||
NoInvoiceCouldBeWithdrawed=Aucune facture traitée avec succès. Vérifiez que les factures sont sur les sociétés avec un BAN par défaut valide et que le BAN a un RUM avec le mode <strong> %s </strong>.
|
NoInvoiceCouldBeWithdrawed=Aucune facture traitée avec succès. Vérifiez que les factures sont sur les sociétés avec un BAN par défaut valide et que le BAN a un RUM avec le mode <strong> %s </strong>.
|
||||||
|
WithdrawalCantBeCreditedTwice=Ce bon de prélèvement est déjà classé crédité ; cette opération ne peut pas être réalisée deux fois, car cela pourrait engendrer des doublons dans les paiements et les écritures bancaires.
|
||||||
ClassCredited=Classer crédité
|
ClassCredited=Classer crédité
|
||||||
ClassCreditedConfirm=Êtes-vous sûr de vouloir classer ce bon de prélèvement comme crédité sur votre compte bancaire ?
|
ClassCreditedConfirm=Êtes-vous sûr de vouloir classer ce bon de prélèvement comme crédité sur votre compte bancaire ?
|
||||||
TransData=Date de transmission
|
TransData=Date de transmission
|
||||||
|
|||||||
Reference in New Issue
Block a user