diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php
index 931b5e6420c..0c55b9e608e 100644
--- a/htdocs/accountancy/customer/lines.php
+++ b/htdocs/accountancy/customer/lines.php
@@ -137,9 +137,9 @@ if (is_array($changeaccount) && count($changeaccount) > 0 && $user->rights->acco
if (!$error) {
$db->begin();
- $sql1 = "UPDATE ".MAIN_DB_PREFIX."facturedet as l";
- $sql1 .= " SET l.fk_code_ventilation=".(GETPOST('account_parent', 'int') > 0 ? GETPOST('account_parent', 'int') : '0');
- $sql1 .= ' WHERE l.rowid IN ('.$db->sanitize(implode(',', $changeaccount)).')';
+ $sql1 = "UPDATE ".MAIN_DB_PREFIX."facturedet";
+ $sql1 .= " SET fk_code_ventilation=".(GETPOST('account_parent', 'int') > 0 ? GETPOST('account_parent', 'int') : '0');
+ $sql1 .= ' WHERE rowid IN ('.$db->sanitize(implode(',', $changeaccount)).')';
dol_syslog('accountancy/customer/lines.php::changeaccount sql= '.$sql1);
$resql1 = $db->query($sql1);
diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php
index 925ab8c9ae3..7adb2a6f787 100644
--- a/htdocs/accountancy/index.php
+++ b/htdocs/accountancy/index.php
@@ -117,77 +117,80 @@ if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_S
print '
'; // hideobject is to start hidden
print "
\n";
print '
'.$langs->trans("AccountancyAreaDescIntro")."\n";
- print "
\n"; print "
\n";
+ if (!empty($user->rights->accounting->chartofaccount)) {
+ print "
\n"; print "
\n";
- print load_fiche_titre('
'.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."\n";
- print '
';
- print "
\n";
+ print load_fiche_titre('
'.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."\n";
+ print '
';
+ print "
\n";
- // STEPS
- $step++;
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescJournalSetup", $step, '{s}');
- $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("AccountingJournals").'', $s);
- print $s;
- print "
\n";
- $step++;
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChartModel", $step, '{s}');
- $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("Pcg_version").'', $s);
- print $s;
- print "
\n";
- $step++;
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChart", $step, '{s}');
- $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("Chartofaccounts").'', $s);
- print $s;
- print "
\n";
-
- print "
\n";
- print $langs->trans("AccountancyAreaDescActionOnceBis");
- print "
\n";
- print "
\n";
-
- $step++;
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDefault", $step, '{s}');
- $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").'', $s);
- print $s;
- print "
\n";
-
- $step++;
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBank", $step, '{s}')."\n";
- $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuBankAccounts").'', $s);
- print $s;
- print "
\n";
-
- $step++;
- $textlink = '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuVatAccounts").'';
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescVat", $step, '{s}');
- $s = str_replace('{s}', $textlink, $s);
- print $s;
- print "
\n";
- if (!empty($conf->tax->enabled)) {
- $textlink = '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuTaxAccounts").'';
+ // STEPS
$step++;
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, '{s}');
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescJournalSetup", $step, '{s}');
+ $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("AccountingJournals").'', $s);
+ print $s;
+ print "
\n";
+ $step++;
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChartModel", $step, '{s}');
+ $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("Pcg_version").'', $s);
+ print $s;
+ print "
\n";
+ $step++;
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChart", $step, '{s}');
+ $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("Chartofaccounts").'', $s);
+ print $s;
+ print "
\n";
+
+ print "
\n";
+ print $langs->trans("AccountancyAreaDescActionOnceBis");
+ print "
\n";
+ print "
\n";
+
+ $step++;
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDefault", $step, '{s}');
+ $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").'', $s);
+ print $s;
+ print "
\n";
+
+ $step++;
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBank", $step, '{s}')."\n";
+ $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuBankAccounts").'', $s);
+ print $s;
+ print "
\n";
+
+ $step++;
+ $textlink = '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuVatAccounts").'';
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescVat", $step, '{s}');
$s = str_replace('{s}', $textlink, $s);
print $s;
print "
\n";
- }
- if (!empty($conf->expensereport->enabled)) {
+
+ if (!empty($conf->tax->enabled)) {
+ $textlink = '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuTaxAccounts").'';
+ $step++;
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, '{s}');
+ $s = str_replace('{s}', $textlink, $s);
+ print $s;
+ print "
\n";
+ }
+ if (!empty($conf->expensereport->enabled)) { // TODO Move this in the default account page because this is only one accounting account per purpose, not several.
+ $step++;
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '{s}');
+ $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'', $s);
+ print $s;
+ print "
\n";
+ }
+
$step++;
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '{s}');
- $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'', $s);
+ $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, '{s}');
+ $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("ProductsBinding").'', $s);
print $s;
print "
\n";
+
+
+ print '
';
}
- $step++;
- $s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, '{s}');
- $s = str_replace('{s}', '
'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("ProductsBinding").'', $s);
- print $s;
- print "
\n";
-
-
- print '
';
-
// Step A - E
print "
\n";
diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php
index 9f769ae13b4..cb6a4e203b4 100644
--- a/htdocs/accountancy/supplier/lines.php
+++ b/htdocs/accountancy/supplier/lines.php
@@ -140,9 +140,9 @@ if (is_array($changeaccount) && count($changeaccount) > 0 && $user->rights->acco
if (!$error) {
$db->begin();
- $sql1 = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det as l";
- $sql1 .= " SET l.fk_code_ventilation=".(GETPOST('account_parent', 'int') > 0 ? GETPOST('account_parent', 'int') : '0');
- $sql1 .= ' WHERE l.rowid IN ('.$db->sanitize(implode(',', $changeaccount)).')';
+ $sql1 = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det";
+ $sql1 .= " SET fk_code_ventilation=".(GETPOST('account_parent', 'int') > 0 ? GETPOST('account_parent', 'int') : '0');
+ $sql1 .= ' WHERE rowid IN ('.$db->sanitize(implode(',', $changeaccount)).')';
dol_syslog('accountancy/supplier/lines.php::changeaccount sql= '.$sql1);
$resql1 = $db->query($sql1);
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index 48a3c294b26..519e9c0e6a9 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -338,7 +338,7 @@ if ($action == 'shipped' && $permissiontoadd) {
$error = 0;
foreach ($toselect as $checked) {
if ($objecttmp->fetch($checked)) {
- if ($objecttmp->statut == 1) {
+ if ($objecttmp->statut == 1 || $objecttmp->statut == 2) {
if ($objecttmp->cloture($user)) {
setEventMessage($langs->trans('PassedInClosedStatus', $objecttmp->ref), 'mesgs');
} else {
diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php
index 0003570fd02..ab4b24e3889 100644
--- a/htdocs/compta/bank/various_payment/card.php
+++ b/htdocs/compta/bank/various_payment/card.php
@@ -179,7 +179,7 @@ if (empty($reshook)) {
$action = 'create';
}
- if ($action == 'delete') {
+ if ($action == 'confirm_delete' && $confirm == 'yes') {
$result = $object->fetch($id);
if ($object->rappro == 0) {
@@ -543,6 +543,12 @@ if ($id) {
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneVariousPayment', $object->ref), 'confirm_clone', $formquestion, 'yes', 1, 350);
}
+ // Confirmation of the removal of the Various Payment
+ if ($action == 'delete') {
+ $text = $langs->trans('ConfirmDeleteVariousPayment');
+ print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans('DeleteVariousPayment'), $text, 'confirm_delete', '', '', 2);
+ }
+
print dol_get_fiche_head($head, 'card', $langs->trans("VariousPayment"), -1, $object->picto);
$morehtmlref = '
';
diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index a6aa30504e6..803ad488d9d 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -606,40 +606,6 @@ if (empty($reshook)) {
$object->fetch($id);
$object->fetch_thirdparty();
- // Check parameters
-
- // Check for mandatory fields in thirdparty (defined into setup)
- $array_to_check = array('IDPROF1', 'IDPROF2', 'IDPROF3', 'IDPROF4', 'IDPROF5', 'IDPROF6', 'EMAIL');
- foreach ($array_to_check as $key) {
- $keymin = strtolower($key);
- $i = (int) preg_replace('/[^0-9]/', '', $key);
- $vallabel = $object->thirdparty->$keymin;
-
- if ($i > 0) {
- if ($object->thirdparty->isACompany()) {
- // Check for mandatory prof id (but only if country is other than ours)
- if ($mysoc->country_id > 0 && $object->thirdparty->country_id == $mysoc->country_id) {
- $idprof_mandatory = 'SOCIETE_'.$key.'_INVOICE_MANDATORY';
- if (!$vallabel && !empty($conf->global->$idprof_mandatory)) {
- $langs->load("errors");
- $error++;
- setEventMessages($langs->trans('ErrorProdIdIsMandatory', $langs->transcountry('ProfId'.$i, $object->thirdparty->country_code)).' ('.$langs->trans("ForbiddenBySetupRules").')', null, 'errors');
- }
- }
- }
- } else {
- //var_dump($conf->global->SOCIETE_EMAIL_MANDATORY);
- if ($key == 'EMAIL') {
- // Check for mandatory
- if (!empty($conf->global->SOCIETE_EMAIL_INVOICE_MANDATORY) && !isValidEMail($object->thirdparty->email)) {
- $langs->load("errors");
- $error++;
- setEventMessages($langs->trans("ErrorBadEMail", $object->thirdparty->email).' ('.$langs->trans("ForbiddenBySetupRules").')', null, 'errors');
- }
- }
- }
- }
-
// Check for mandatory fields in invoice
$array_to_check = array('REF_CLIENT'=>'RefCustomer');
foreach ($array_to_check as $key => $val) {
diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
index 55fa26d3c6b..ebec301e89c 100644
--- a/htdocs/compta/facture/class/facture.class.php
+++ b/htdocs/compta/facture/class/facture.class.php
@@ -2630,7 +2630,7 @@ class Facture extends CommonInvoice
*/
public function validate($user, $force_number = '', $idwarehouse = 0, $notrigger = 0, $batch_rule = 0)
{
- global $conf, $langs;
+ global $conf, $langs, $mysoc;
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$productStatic = null;
@@ -2669,6 +2669,53 @@ class Facture extends CommonInvoice
return -1;
}
+ // Check for mandatory fields in thirdparty (defined into setup)
+ $array_to_check = array('IDPROF1', 'IDPROF2', 'IDPROF3', 'IDPROF4', 'IDPROF5', 'IDPROF6', 'EMAIL');
+ foreach ($array_to_check as $key) {
+ $keymin = strtolower($key);
+ $i = (int) preg_replace('/[^0-9]/', '', $key);
+ if ($i == 1) {
+ if (!is_object($this->thirdparty)) {
+ $langs->load('errors');
+ $this->error = $langs->trans('ErrorInvoiceLoadThirdParty', $this->ref);
+ dol_syslog(__METHOD__.' '.$this->error, LOG_ERR);
+ return -1;
+ }
+ }
+ if (!property_exists($this->thirdparty, $keymin)) {
+ $langs->load('errors');
+ $this->error = $langs->trans('ErrorInvoiceLoadThirdPartyKey', $keymin, $this->ref);
+ dol_syslog(__METHOD__.' '.$this->error, LOG_ERR);
+ return -1;
+ }
+ $vallabel = $this->thirdparty->$keymin;
+
+ if ($i > 0) {
+ if ($this->thirdparty->isACompany()) {
+ // Check for mandatory prof id (but only if country is other than ours)
+ if ($mysoc->country_id > 0 && $this->thirdparty->country_id == $mysoc->country_id) {
+ $idprof_mandatory = 'SOCIETE_'.$key.'_INVOICE_MANDATORY';
+ if (!$vallabel && !empty($conf->global->$idprof_mandatory)) {
+ $langs->load("errors");
+ $this->error = $langs->trans('ErrorProdIdIsMandatory', $langs->transcountry('ProfId'.$i, $this->thirdparty->country_code)).' ('.$langs->trans("ForbiddenBySetupRules").') ['.$langs->trans('Company').' : '.$this->thirdparty->name.']';
+ dol_syslog(__METHOD__.' '.$this->error, LOG_ERR);
+ return -1;
+ }
+ }
+ }
+ } else {
+ if ($key == 'EMAIL') {
+ // Check for mandatory
+ if (!empty($conf->global->SOCIETE_EMAIL_INVOICE_MANDATORY) && !isValidEMail($this->thirdparty->email)) {
+ $langs->load("errors");
+ $this->error = $langs->trans("ErrorBadEMail", $this->thirdparty->email).' ('.$langs->trans("ForbiddenBySetupRules").') ['.$langs->trans('Company').' : '.$this->thirdparty->name.']';
+ dol_syslog(__METHOD__.' '.$this->error, LOG_ERR);
+ return -1;
+ }
+ }
+ }
+ }
+
$this->db->begin();
// Check parameters
diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php
index bd0d694eb57..229bfc0530b 100644
--- a/htdocs/contact/card.php
+++ b/htdocs/contact/card.php
@@ -520,6 +520,29 @@ if (empty($reshook)) {
}
}
+ // Update extrafields
+ if ($action == 'update_extras' && ! empty($user->rights->societe->contact->creer)) {
+ $object->oldcopy = dol_clone($object);
+
+ // Fill array 'array_options' with data from update form
+ $ret = $extrafields->setOptionalsFromPost(null, $object, GETPOST('attribute', 'restricthtml'));
+ if ($ret < 0) {
+ $error++;
+ }
+
+ if (!$error) {
+ $result = $object->insertExtraFields('CONTACT_MODIFY');
+ if ($result < 0) {
+ setEventMessages($object->error, $object->errors, 'errors');
+ $error++;
+ }
+ }
+
+ if ($error) {
+ $action = 'edit_extras';
+ }
+ }
+
// Actions to send emails
$triggersendname = 'CONTACT_SENTBYMAIL';
$paramname = 'id';
diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php
index b5656c89339..912dbe20113 100644
--- a/htdocs/core/tpl/extrafields_view.tpl.php
+++ b/htdocs/core/tpl/extrafields_view.tpl.php
@@ -156,6 +156,7 @@ if (empty($reshook) && isset($extrafields->attributes[$object->table_element]['l
//var_dump($user->rights);
$permok = false;
$keyforperm = $object->element;
+
if ($object->element == 'fichinter') {
$keyforperm = 'ficheinter';
}
diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang
index 640a229b7f2..c02e3f70205 100644
--- a/htdocs/langs/en_US/compta.lang
+++ b/htdocs/langs/en_US/compta.lang
@@ -146,9 +146,11 @@ ConfirmPaySalary=Are you sure you want to classify this salary card as paid?
DeleteSocialContribution=Delete a social or fiscal tax payment
DeleteVAT=Delete a VAT declaration
DeleteSalary=Delete a salary card
+DeleteVariousPayment=Delete a various payment
ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment ?
ConfirmDeleteVAT=Are you sure you want to delete this VAT declaration ?
-ConfirmDeleteSalary=Are you sure you want to delete this salary?
+ConfirmDeleteSalary=Are you sure you want to delete this salary ?
+ConfirmDeleteVariousPayment=Are you sure you want to delete this various payment ?
ExportDataset_tax_1=Social and fiscal taxes and payments
CalcModeVATDebt=Mode %sVAT on commitment accounting%s.
CalcModeVATEngagement=Mode %sVAT on incomes-expenses%s.
diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
index a3a3b7e5d4f..61ac7d42e05 100644
--- a/htdocs/langs/en_US/errors.lang
+++ b/htdocs/langs/en_US/errors.lang
@@ -275,6 +275,8 @@ ErrorIsNotADraft=%s is not a draft
ErrorExecIdFailed=Can't execute command "id"
ErrorBadCharIntoLoginName=Unauthorized character in the login name
ErrorNotApproverForHoliday=You are not the approver for leave %s
+ErrorInvoiceLoadThirdParty=Can't load third-party object for invoice "%s"
+ErrorInvoiceLoadThirdPartyKey=Third-party key "%s" no set for invoice "%s"
# Warnings
WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup.
@@ -308,8 +310,10 @@ WarningTheHiddenOptionIsOn=Warning, the hidden option %s is on.
WarningCreateSubAccounts=Warning, you can't create directly a sub account, you must create a third party or an user and assign them an accounting code to find them in this list
WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connection.
WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here.
+<<<<<<< HEAD
WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead.
+<<<<<<< HEAD
# Validate
RequireValidValue = Value not valid
RequireAtLeastXString = Requires at least %s character(s)
@@ -330,3 +334,7 @@ BadSetupOfField = Error bad setup of field
BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation
BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion
BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class
+=======
+=======
+>>>>>>> branch '13.0' of git@github.com:Dolibarr/dolibarr.git
+>>>>>>> branch '14.0' of git@github.com:Dolibarr/dolibarr.git
diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang
index 11220633d61..3785c459834 100644
--- a/htdocs/langs/en_US/orders.lang
+++ b/htdocs/langs/en_US/orders.lang
@@ -102,6 +102,9 @@ ConfirmCancelOrder=Are you sure you want to cancel this order?
ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s?
GenerateBill=Generate invoice
ClassifyShipped=Classify delivered
+PassedInShippedStatus=classified delivered
+YouCantShipThis=I can't classify this. Please check user permissions
+MustBeValidatedBefore=must be Validated or In process in order to be classified as shipped
DraftOrders=Draft orders
DraftSuppliersOrders=Draft purchase orders
OnProcessOrders=In process orders
diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang
index dc883e26c4d..fbe4884f44c 100644
--- a/htdocs/langs/fr_FR/compta.lang
+++ b/htdocs/langs/fr_FR/compta.lang
@@ -146,9 +146,11 @@ ConfirmPaySalary=Voulez-vous vraiment classer ce salaire comme payé ?
DeleteSocialContribution=Effacer une charge fiscale ou sociale
DeleteVAT=Supprimer une déclaration de TVA
DeleteSalary=Supprimer un salaire
+DeleteVariousPayment=Supprimer un paiement divers
ConfirmDeleteSocialContribution=Voulez-vous vraiment supprimer ce paiement de taxe sociale / fiscale?
ConfirmDeleteVAT=Voulez-vous vraiment supprimer cette déclaration de TVA ?
ConfirmDeleteSalary=Êtes-vous sûr de vouloir supprimer ce salaire ?
+ConfirmDeleteVariousPayment=Voulez-vous vraiment supprimer ce paiement divers ?
ExportDataset_tax_1=Taxes sociales et fiscales et paiements
CalcModeVATDebt=Mode %sTVA sur débit%s.
CalcModeVATEngagement=Mode %sTVA sur encaissement%s.
diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang
index 16d1ecc2b27..3b0a3e38a7d 100644
--- a/htdocs/langs/fr_FR/orders.lang
+++ b/htdocs/langs/fr_FR/orders.lang
@@ -102,6 +102,9 @@ ConfirmCancelOrder=Êtes-vous sûr de vouloir annuler cette commande ?
ConfirmMakeOrder=Êtes-vous sûr de vouloir confirmer cette commande en date du %s ?
GenerateBill=Facturer
ClassifyShipped=Classer livrée
+PassedInShippedStatus=classée livrée
+YouCantShipThis=Classement impossible : veuillez vérifier les droits utilisateur
+MustBeValidatedBefore=doit être Validée ou En cours de livraison pour pouvoir être classée livrée
DraftOrders=Commandes brouillons
DraftSuppliersOrders=Commandes fournisseurs brouillons
OnProcessOrders=Commandes en cours de traitement
diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php
index 3eeb1bb1e4c..c57586d13a7 100644
--- a/htdocs/projet/class/task.class.php
+++ b/htdocs/projet/class/task.class.php
@@ -1676,23 +1676,23 @@ class Task extends CommonObjectLine
$this->db->begin();
- $sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task_time";
- $sql .= " WHERE rowid = ".((int) $this->timespent_id);
-
- dol_syslog(get_class($this)."::delTimeSpent", LOG_DEBUG);
- $resql = $this->db->query($sql);
- if (!$resql) {
- $error++; $this->errors[] = "Error ".$this->db->lasterror();
+ if (!$notrigger) {
+ // Call trigger
+ $result = $this->call_trigger('TASK_TIMESPENT_DELETE', $user);
+ if ($result < 0) {
+ $error++;
+ }
+ // End call triggers
}
if (!$error) {
- if (!$notrigger) {
- // Call trigger
- $result = $this->call_trigger('TASK_TIMESPENT_DELETE', $user);
- if ($result < 0) {
- $error++;
- }
- // End call triggers
+ $sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task_time";
+ $sql .= " WHERE rowid = ".((int) $this->timespent_id);
+
+ dol_syslog(get_class($this)."::delTimeSpent", LOG_DEBUG);
+ $resql = $this->db->query($sql);
+ if (!$resql) {
+ $error++; $this->errors[] = "Error ".$this->db->lasterror();
}
}