diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php
index 84d4ddc3679..85a45e9ff45 100644
--- a/htdocs/api/class/api_setup.class.php
+++ b/htdocs/api/class/api_setup.class.php
@@ -643,7 +643,7 @@ class Setup extends DolibarrApi
public function getListOfShipmentMethods($sortfield = "rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $active = 1, $sqlfilters = '')
{
$list = array();
- $sql = "SELECT t.rowid, t.code, t.libelle, t.description, t.tracking";
+ $sql = "SELECT t.rowid, t.code, t.libelle as label, t.description, t.tracking";
$sql .= " FROM ".MAIN_DB_PREFIX."c_shipment_mode as t";
$sql .= " WHERE t.active = ".$active;
// Add sql filters
diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php
index 93b162e4f28..187691293e4 100644
--- a/htdocs/categories/viewcat.php
+++ b/htdocs/categories/viewcat.php
@@ -287,16 +287,19 @@ print dol_get_fiche_end();
*/
print "
';
+ print $langs->trans("NbInsert", empty($obj->nbinsert) ? 0 : $obj->nbinsert).'
';
+ print $langs->trans("NbUpdate", empty($obj->nbupdate) ? 0 : $obj->nbupdate).'
';
+ print '
';
} else print $langs->trans("NbOfLinesOK", $nbok).'';
+ print '
';
print $langs->trans("NbOfLinesImported", $nbok).'
';
- print $langs->trans("NbInsert", $obj->nbinsert).'
';
- print $langs->trans("NbUpdate", $obj->nbupdate).'
';
+ print $langs->trans("NbInsert", empty($obj->nbinsert) ? 0 : $obj->nbinsert).'
';
+ print $langs->trans("NbUpdate", empty($obj->nbupdate) ? 0 : $obj->nbupdate).'
';
+ print '
';
+ print '
';
print $langs->trans("FileWasImported", $importid).'
';
- print $langs->trans("YouCanUseImportIdToFindRecord", $importid).'
';
+ print ''.$langs->trans("YouCanUseImportIdToFindRecord", $importid).'
';
print '
';
}
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index b4733934fc6..35ba0390ad5 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -444,8 +444,8 @@ ExtrafieldParamHelpPassword=Leaving this field blank means this value will be st
ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')
for example:
1,value1
2,value2
code3,value3
...
In order to have the list depending on another complementary attribute list:
1,value1|options_
parent_list_code:parent_key
2,value2|options_
parent_list_code:parent_key
In order to have the list depending on another list:
1,value1|
parent_list_code:parent_key
2,value2|
parent_list_code:parent_key
ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')
for example:
1,value1
2,value2
3,value3
...
ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')
for example:
1,value1
2,value2
3,value3
...
-ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter
- id_field is necessarly a primary int key
- filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter which is the current id of current object
To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_
parent_list_code|parent_column:filter
In order to have the list depending on another list:
c_typent:libelle:id:
parent_list_code|parent_column:filter
-ExtrafieldParamHelpchkbxlst=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter
filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_
parent_list_code|parent_column:filter
In order to have the list depending on another list:
c_typent:libelle:id:
parent_list_code|parent_column:filter
+ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filtersql
Example: c_typent:libelle:id::filtersql
- id_field is necessarly a primary int key
- filtersql is a SQL condition. It can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter which is the current id of current object
To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_
parent_list_code|parent_column:filter
In order to have the list depending on another list:
c_typent:libelle:id:
parent_list_code|parent_column:filter
+ExtrafieldParamHelpchkbxlst=List of values comes from a table
Syntax: table_name:label_field:id_field::filtersql
Example: c_typent:libelle:id::filtersql
filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_
parent_list_code|parent_column:filter
In order to have the list depending on another list:
c_typent:libelle:id:
parent_list_code|parent_column:filter
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax: ObjectName:Classpath
ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)
Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session)
LibraryToBuildPDF=Library used for PDF generation
diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang
index 059b3451c11..7d5b57f7da9 100644
--- a/htdocs/langs/en_US/withdrawals.lang
+++ b/htdocs/langs/en_US/withdrawals.lang
@@ -45,6 +45,7 @@ WithdrawRequestsDone=%s direct debit payment requests recorded
BankTransferRequestsDone=%s credit transfer requests recorded
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
%s.
+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
ClassCreditedConfirm=Are you sure you want to classify this withdrawal receipt as credited on your bank account?
TransData=Transmission date
diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang
index e20eca0c75f..771fcfbcc83 100644
--- a/htdocs/langs/fr_FR/withdrawals.lang
+++ b/htdocs/langs/fr_FR/withdrawals.lang
@@ -45,6 +45,7 @@ WithdrawRequestsDone=%s demandes de prélèvements enregistrées
BankTransferRequestsDone=%s demande de prélèvement enregistrée
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
%s .
+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é
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
diff --git a/htdocs/modulebuilder/template/class/api_mymodule.class.php b/htdocs/modulebuilder/template/class/api_mymodule.class.php
index 05ca7f27d16..2e04e34dcac 100644
--- a/htdocs/modulebuilder/template/class/api_mymodule.class.php
+++ b/htdocs/modulebuilder/template/class/api_mymodule.class.php
@@ -203,7 +203,7 @@ class MyModuleApi extends DolibarrApi
foreach ($request_data as $field => $value) {
$this->myobject->$field = $value;
}
- if (!$this->myobject->create(DolibarrApiAccess::$user)) {
+ if ($this->myobject->create(DolibarrApiAccess::$user)<0) {
throw new RestException(500, "Error creating MyObject", array_merge(array($this->myobject->error), $this->myobject->errors));
}
return $this->myobject->id;
diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php
index 8d9965c1a0d..57f9aa630f4 100644
--- a/htdocs/societe/list.php
+++ b/htdocs/societe/list.php
@@ -1358,6 +1358,14 @@ while ($i < min($num, $limit))
$i++;
}
+// If no record found
+if ($num == 0)
+{
+ $colspan = 1;
+ foreach ($arrayfields as $key => $val) { if (!empty($val['checked'])) $colspan++; }
+ print '
| '.$langs->trans("NoRecordFound").' |
';
+}
+
$db->free($resql);
$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql);
diff --git a/htdocs/takepos/index.php b/htdocs/takepos/index.php
index 01bf74972fe..a08df6d2b43 100644
--- a/htdocs/takepos/index.php
+++ b/htdocs/takepos/index.php
@@ -40,6 +40,7 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
$place = (GETPOST('place', 'aZ09') ? GETPOST('place', 'aZ09') : 0); // $place is id of table for Bar or Restaurant or multiple sales
$action = GETPOST('action', 'aZ09');