Merge remote-tracking branch 'origin/3.5' into develop

Conflicts:
	htdocs/core/lib/functions2.lib.php
	htdocs/install/mysql/migration/repair.sql
	htdocs/langs/en_US/errors.lang
	htdocs/product/fiche.php
	htdocs/projet/tasks/task.php
This commit is contained in:
Laurent Destailleur 2014-04-26 22:35:35 +02:00
commit 97fce71218
18 changed files with 110 additions and 89 deletions

View File

@ -92,6 +92,10 @@ removed. You must now use the 6 parameters way. See file modMyModule.class.php f
***** ChangeLog for 3.5.3 compared to 3.5.2 ***** ***** ChangeLog for 3.5.3 compared to 3.5.2 *****
Fix: Error on field accountancy code for export profile of invoices. Fix: Error on field accountancy code for export profile of invoices.
Fix: [ bug #1351 ] VIES verification link broken.
Fix: [ bug #1352 ] Removing a shipping does not remove the delivery.
Fix: Option MAIN_INVERT_SENDER_RECIPIENT broken with typhon template.
***** ChangeLog for 3.5.2 compared to 3.5.1 ***** ***** ChangeLog for 3.5.2 compared to 3.5.1 *****
Fix: Can't add user for a task. Fix: Can't add user for a task.

View File

@ -47,8 +47,8 @@ abstract class CommonObject
public $array_options=array(); public $array_options=array();
public $linkedObjectsIds; public $linkedObjectsIds; // Loaded by ->fetchObjectLinked
public $linkedObjects; public $linkedObjects; // Loaded by ->fetchObjectLinked
// No constructor as it is an abstract class // No constructor as it is an abstract class
@ -1718,7 +1718,7 @@ abstract class CommonObject
* @param string $sourcetype Object source type * @param string $sourcetype Object source type
* @param int $targetid Object target id * @param int $targetid Object target id
* @param string $targettype Object target type * @param string $targettype Object target type
* @param string $clause OR, AND clause * @param string $clause 'OR' or 'AND' clause used when both source id and target id are provided
* @return void * @return void
*/ */
function fetchObjectLinked($sourceid='',$sourcetype='',$targetid='',$targettype='',$clause='OR') function fetchObjectLinked($sourceid='',$sourcetype='',$targetid='',$targettype='',$clause='OR')
@ -2392,7 +2392,8 @@ abstract class CommonObject
/** /**
* Function to check if an object is used by others * Function to check if an object is used by others.
* Check is done into this->childtables. There is no check into llx_element_element.
* *
* @param int $id Id of object * @param int $id Id of object
* @return int <0 if KO, 0 if not used, >0 if already used * @return int <0 if KO, 0 if not used, >0 if already used

View File

@ -1055,7 +1055,7 @@ class FormOther
$emptybox->showBox(array(),array()); $emptybox->showBox(array(),array());
} }
print "</div>\n"; print "</div>\n";
print "<!-- End box container -->\n"; print "<!-- End box left container -->\n";
print '</div><div class="fichehalfright"><div class="ficheaddleft">'; print '</div><div class="fichehalfright"><div class="ficheaddleft">';
@ -1086,7 +1086,7 @@ class FormOther
$emptybox->showBox(array(),array()); $emptybox->showBox(array(),array());
} }
print "</div>\n"; print "</div>\n";
print "<!-- End box container -->\n"; print "<!-- End box right container -->\n";
print '</div></div>'; print '</div></div>';
print "\n"; print "\n";

View File

@ -1537,6 +1537,7 @@ function dolGetElementUrl($objectid,$objecttype,$withpicto=0,$option='')
/** /**
* Clean corrupted tree (orphelins linked to a not existing parent), record linked to themself and child-parent loop * Clean corrupted tree (orphelins linked to a not existing parent), record linked to themself and child-parent loop
* *
* @param DoliDB $db Database handler
* @param string $tabletocleantree Table to clean * @param string $tabletocleantree Table to clean
* @param string $fieldfkparent Field name that contains id of parent * @param string $fieldfkparent Field name that contains id of parent
* @return int Nb of records fixed/deleted * @return int Nb of records fixed/deleted

View File

@ -780,9 +780,11 @@ class pdf_typhon extends ModelePDFDeliveryOrder
// Client destinataire // Client destinataire
$posy=42; $posy=42;
$posx=102;
if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche;
$pdf->SetTextColor(0,0,0); $pdf->SetTextColor(0,0,0);
$pdf->SetFont('','', $default_font_size - 2); $pdf->SetFont('','', $default_font_size - 2);
$pdf->SetXY(102,$posy-5); $pdf->SetXY($posx,$posy-5);
$pdf->MultiCell(80,5, $outputlangs->transnoentities("DeliveryAddress").":", 0, 'L'); $pdf->MultiCell(80,5, $outputlangs->transnoentities("DeliveryAddress").":", 0, 'L');
// If SHIPPING contact defined on order, we use it // If SHIPPING contact defined on order, we use it
@ -814,7 +816,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
if ($this->page_largeur < 210) $widthrecbox=84; // To work with US executive format if ($this->page_largeur < 210) $widthrecbox=84; // To work with US executive format
$posy=42; $posy=42;
$posx=$this->page_largeur-$this->marge_droite-$widthrecbox; $posx=$this->page_largeur-$this->marge_droite-$widthrecbox;
//if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche; if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche;
// Show recipient frame // Show recipient frame
$pdf->SetTextColor(0,0,0); $pdf->SetTextColor(0,0,0);

View File

@ -882,9 +882,10 @@ class Expedition extends CommonObject
} }
/** /**
* Delete shipment * Delete shipment.
* Warning, do not delete a shipment if a delivery is linked to (with table llx_element_element)
* *
* @return int >0 if OK otherwise if KO * @return int >0 if OK, 0 if deletion done but failed to delete files, <0 if KO
*/ */
function delete() function delete()
{ {
@ -893,6 +894,14 @@ class Expedition extends CommonObject
$error=0; $error=0;
// Add a protection to refuse deleting if shipment has at least one delivery
$this->fetchObjectLinked($this->id, 'shipping', 0, 'delivery'); // Get deliveries linked to this shipment
if (count($this->linkedObjectsIds) > 0)
{
$this->error='ErrorThereIsSomeDeliveries';
return -1;
}
$this->db->begin(); $this->db->begin();
if ($conf->productbatch->enabled) { if ($conf->productbatch->enabled) {
@ -942,7 +951,7 @@ class Expedition extends CommonObject
} }
} }
if(! $error) if (! $error)
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet";
$sql.= " WHERE fk_expedition = ".$this->id; $sql.= " WHERE fk_expedition = ".$this->id;
@ -960,31 +969,6 @@ class Expedition extends CommonObject
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
$this->db->commit();
// On efface le repertoire de pdf provisoire
$ref = dol_sanitizeFileName($this->ref);
if (! empty($conf->expedition->dir_output))
{
$dir = $conf->expedition->dir_output . '/sending/' . $ref ;
$file = $dir . '/' . $ref . '.pdf';
if (file_exists($file))
{
if (! dol_delete_file($file))
{
return 0;
}
}
if (file_exists($dir))
{
if (!dol_delete_dir($dir))
{
$this->error=$langs->trans("ErrorCanNotDeleteDir",$dir);
return 0;
}
}
}
// Call triggers // Call triggers
include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php';
$interface=new Interfaces($this->db); $interface=new Interfaces($this->db);
@ -992,7 +976,40 @@ class Expedition extends CommonObject
if ($result < 0) { $error++; $this->errors=$interface->errors; } if ($result < 0) { $error++; $this->errors=$interface->errors; }
// End call triggers // End call triggers
return 1; if (! $error)
{
$this->db->commit();
// We delete PDFs
$ref = dol_sanitizeFileName($this->ref);
if (! empty($conf->expedition->dir_output))
{
$dir = $conf->expedition->dir_output . '/sending/' . $ref ;
$file = $dir . '/' . $ref . '.pdf';
if (file_exists($file))
{
if (! dol_delete_file($file))
{
return 0;
}
}
if (file_exists($dir))
{
if (!dol_delete_dir($dir))
{
$this->error=$langs->trans("ErrorCanNotDeleteDir",$dir);
return 0;
}
}
}
return 1;
}
else
{
$this->db->rollback();
return -1;
}
} }
else else
{ {

View File

@ -221,7 +221,7 @@ if ($action == 'add')
/* /*
* Build a receiving receipt * Build a receiving receipt
*/ */
else if ($action == 'create_delivery' && $conf->livraison_bon->enabled && $user->rights->expedition->livraison->creer) else if ($action == 'create_delivery' && $conf->livraison_bon->enabled && $user->rights->expedition->livraison->creer)
{ {
$result = $object->create_delivery($user); $result = $object->create_delivery($user);
@ -273,8 +273,9 @@ else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->expe
exit; exit;
} }
else else
{ {
$mesg = $object->error; $langs->load("errors");
setEventMessage($langs->trans($object->error),'errors');
} }
} }

View File

@ -824,7 +824,7 @@ if ($step == 4 && $datatoimport)
} }
print "</div>\n"; print "</div>\n";
print "<!-- End box container -->\n"; print "<!-- End box left container -->\n";
print '</td><td width="50%">'; print '</td><td width="50%">';

View File

@ -112,6 +112,7 @@ UPDATE llx_product p SET p.stock= (SELECT SUM(ps.reel) FROM llx_product_stock ps
-- ALTER TABLE llx_product_fournisseur_price DROP COLUMN fk_product_fournisseur; -- ALTER TABLE llx_product_fournisseur_price DROP COLUMN fk_product_fournisseur;
ALTER TABLE llx_product_fournisseur_price DROP FOREIGN KEY fk_product_fournisseur; ALTER TABLE llx_product_fournisseur_price DROP FOREIGN KEY fk_product_fournisseur;
-- Fix: deprecated tag to new one -- Fix: deprecated tag to new one
update llx_opensurvey_sondage set format = 'D' where format = 'D+'; update llx_opensurvey_sondage set format = 'D' where format = 'D+';
update llx_opensurvey_sondage set format = 'A' where format = 'A+'; update llx_opensurvey_sondage set format = 'A' where format = 'A+';
@ -143,4 +144,3 @@ drop table tmp_societe_double;
UPDATE llx_projet_task SET fk_task_parent = 0 WHERE fk_task_parent = rowid UPDATE llx_projet_task SET fk_task_parent = 0 WHERE fk_task_parent = rowid

View File

@ -313,7 +313,6 @@ EditDeliveryAddress=Modificar adreça d'enviament
ThisUserIsNot=Aquest usuari no és ni un client potencial, ni un client, ni un proveïdor ThisUserIsNot=Aquest usuari no és ni un client potencial, ni un client, ni un proveïdor
VATIntraCheck=Verificar VATIntraCheck=Verificar
VATIntraCheckDesc=El link <b>%s</b> permet consultar al servei europeu de control de números d'IVA intracomunitari. Es requereix accés a internet per a que el servei funcioni VATIntraCheckDesc=El link <b>%s</b> permet consultar al servei europeu de control de números d'IVA intracomunitari. Es requereix accés a internet per a que el servei funcioni
VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/lang.do?fromWhichPage=vieshome&selectedLanguage=ES
VATIntraCheckableOnEUSite=Verificar a la web de la Comissió Europea VATIntraCheckableOnEUSite=Verificar a la web de la Comissió Europea
VATIntraManualCheck=Podeu també fer una verificació manual a la web europea <a href="%s" target="_blank">%s</a> VATIntraManualCheck=Podeu també fer una verificació manual a la web europea <a href="%s" target="_blank">%s</a>
ErrorVATCheckMS_UNAVAILABLE=Comprovació impossible. El servei de comprovació no és prestat pel país membre (%s). ErrorVATCheckMS_UNAVAILABLE=Comprovació impossible. El servei de comprovació no és prestat pel país membre (%s).

View File

@ -135,6 +135,8 @@ ErrorWarehouseMustDiffers=Source and target warehouses must differs
ErrorBadFormat=Bad format! ErrorBadFormat=Bad format!
ErrorPaymentDateLowerThanInvoiceDate=Payment date (%s) cant' be before invoice date (%s) for invoice %s. ErrorPaymentDateLowerThanInvoiceDate=Payment date (%s) cant' be before invoice date (%s) for invoice %s.
ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any thirdparty. Link member to an existing third party or create a new thirdparty before creating subscription with invoice. ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any thirdparty. Link member to an existing third party or create a new thirdparty before creating subscription with invoice.
ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
# Warnings # Warnings
WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
WarningSafeModeOnCheckExecDir=Warning, PHP option <b>safe_mode</b> is on so command must be stored inside a directory declared by php parameter <b>safe_mode_exec_dir</b>. WarningSafeModeOnCheckExecDir=Warning, PHP option <b>safe_mode</b> is on so command must be stored inside a directory declared by php parameter <b>safe_mode_exec_dir</b>.

View File

@ -313,7 +313,6 @@ EditDeliveryAddress=Modificar dirección de envío
ThisUserIsNot=Este usuario no es ni un cliente potencial, ni un cliente, ni un proveedor ThisUserIsNot=Este usuario no es ni un cliente potencial, ni un cliente, ni un proveedor
VATIntraCheck=Verificar VATIntraCheck=Verificar
VATIntraCheckDesc=El link <b>%s</b> permite consultar al servicio europeo de control de números de IVA intracomunitario. Se requiere acceso a internet para que el servicio funcione VATIntraCheckDesc=El link <b>%s</b> permite consultar al servicio europeo de control de números de IVA intracomunitario. Se requiere acceso a internet para que el servicio funcione
VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/lang.do?fromWhichPage=vieshome&selectedLanguage=ES
VATIntraCheckableOnEUSite=Verificar en la web de la Comisión Europea VATIntraCheckableOnEUSite=Verificar en la web de la Comisión Europea
VATIntraManualCheck=Puede también realizar una verificación manual en la web europea <a href="%s" target="_blank">%s</a> VATIntraManualCheck=Puede también realizar una verificación manual en la web europea <a href="%s" target="_blank">%s</a>
ErrorVATCheckMS_UNAVAILABLE=Comprobación imposible. El servicio de comprobación no es prestado por el país país miembro (%s). ErrorVATCheckMS_UNAVAILABLE=Comprobación imposible. El servicio de comprobación no es prestado por el país país miembro (%s).

View File

@ -18,10 +18,10 @@ ErrorFailToCreateFile=Echec de la création du fichier '<b>%s</b>'.
ErrorFailToRenameDir=Echec du renommage du répertoire '<b>%s</b>' en '<b>%s</b>'. ErrorFailToRenameDir=Echec du renommage du répertoire '<b>%s</b>' en '<b>%s</b>'.
ErrorFailToCreateDir=Echec de création du répertoire '<b>%s</b>'. ErrorFailToCreateDir=Echec de création du répertoire '<b>%s</b>'.
ErrorFailToDeleteDir=Echec de la suppression du répertoire '<b>%s</b>'. ErrorFailToDeleteDir=Echec de la suppression du répertoire '<b>%s</b>'.
ErrorFailedToDeleteJoinedFiles=Impossible de supprimer l'entité car il existe des pièces jointes. Supprimer d'abord les pièces jointes. ErrorFailedToDeleteJoinedFiles=Impossible de supprimer l'entité car il existe des pièces jointes. Supprimez d'abord les pièces jointes.
ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est déjà défini comme contact pour ce type. ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est déjà défini comme contact pour ce type.
ErrorCashAccountAcceptsOnlyCashMoney=Ce compte bancaire est de type caisse et n'accepte que les mode de règlement de type <b>espèce</b>. ErrorCashAccountAcceptsOnlyCashMoney=Ce compte bancaire est de type caisse et n'accepte que le mode de règlement de type <b>espèce</b>.
ErrorFromToAccountsMustDiffers=Le compte source et destination doivent être différents. ErrorFromToAccountsMustDiffers=Les comptes source et destination doivent être différents.
ErrorBadThirdPartyName=Nom de tiers incorrect ErrorBadThirdPartyName=Nom de tiers incorrect
ErrorProdIdIsMandatory=Le %s est obligatoire ErrorProdIdIsMandatory=Le %s est obligatoire
ErrorBadCustomerCodeSyntax=La syntaxe du code client est incorrecte ErrorBadCustomerCodeSyntax=La syntaxe du code client est incorrecte
@ -44,9 +44,9 @@ ErrorFailedToWriteInDir=Impossible d'écrire dans le répertoire %s
ErrorFoundBadEmailInFile=Syntaxe de mail incorrecte trouvée pour %s lignes dans le fichier (exemple ligne %s avec email=%s) ErrorFoundBadEmailInFile=Syntaxe de mail incorrecte trouvée pour %s lignes dans le fichier (exemple ligne %s avec email=%s)
ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être est-il associé à des éléments de Dolibarr. ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être est-il associé à des éléments de Dolibarr.
ErrorFieldsRequired=Des champs obligatoires n'ont pas été renseignés ErrorFieldsRequired=Des champs obligatoires n'ont pas été renseignés
ErrorFailedToCreateDir=Echec à la création d'un répertoire. Vérifiez que le user du serveur Web a bien les droits d'écriture dans les répertoires documents de Dolibarr. Si le paramètre <b>safe_mode</b> a été activé sur ce PHP, vérifier que les fichiers php dolibarr appartiennent à l'utilisateur du serveur Web. ErrorFailedToCreateDir=Echec à la création d'un répertoire. Vérifiez que le user du serveur Web a bien les droits d'écriture dans les répertoires documents de Dolibarr. Si le paramètre <b>safe_mode</b> a été activé sur ce PHP, vérifiez que les fichiers php dolibarr appartiennent à l'utilisateur du serveur Web.
ErrorNoMailDefinedForThisUser=EMail non défini pour cet utilisateur ErrorNoMailDefinedForThisUser=EMail non défini pour cet utilisateur
ErrorFeatureNeedJavascript=Cette fonctionnalité a besoin de javascript activé pour fonctionner. Modifier dans configuration - affichage. ErrorFeatureNeedJavascript=Cette fonctionnalité a besoin de javascript activé pour fonctionner. Modifiez dans configuration - affichage.
ErrorTopMenuMustHaveAParentWithId0=Un menu de type 'Top' ne peut avoir de menu père. Mettre 0 dans l'id père ou choisir un menu de type 'Left'. ErrorTopMenuMustHaveAParentWithId0=Un menu de type 'Top' ne peut avoir de menu père. Mettre 0 dans l'id père ou choisir un menu de type 'Left'.
ErrorLeftMenuMustHaveAParentId=Un menu de type 'Left' doit avoir un id de père. ErrorLeftMenuMustHaveAParentId=Un menu de type 'Left' doit avoir un id de père.
ErrorFileNotFound=Fichier <b>%s</b> introuvable (Mauvais chemin, permissions incorrectes ou accès interdit par le paramètre PHP openbasedir ou safe_mode) ErrorFileNotFound=Fichier <b>%s</b> introuvable (Mauvais chemin, permissions incorrectes ou accès interdit par le paramètre PHP openbasedir ou safe_mode)
@ -60,8 +60,8 @@ ErrorUploadBlockedByAddon=Upload bloqué par un plugin PHP/Apache.
ErrorFileSizeTooLarge=La taille du fichier est trop grande. ErrorFileSizeTooLarge=La taille du fichier est trop grande.
ErrorSizeTooLongForIntType=Longueur de champ trop longue pour le type int (%s chiffres maximum) ErrorSizeTooLongForIntType=Longueur de champ trop longue pour le type int (%s chiffres maximum)
ErrorSizeTooLongForVarcharType=Longueur de champ trop longue pour le type chaine (%s caractères maximum) ErrorSizeTooLongForVarcharType=Longueur de champ trop longue pour le type chaine (%s caractères maximum)
ErrorNoValueForSelectType=Les valeurs de la liste de selection doivent être renseignées ErrorNoValueForSelectType=Les valeurs de la liste de sélection doivent être renseignées
ErrorNoValueForCheckBoxType=Les valeurs de la liste de case a cochées doivent être renseignées ErrorNoValueForCheckBoxType=Les valeurs de la liste de cases à cocher doivent être renseignées
ErrorNoValueForRadioType=Les valeurs de la liste d'options doivent être renseignées ErrorNoValueForRadioType=Les valeurs de la liste d'options doivent être renseignées
ErrorBadFormatValueList=Les valeurs de la liste ne peuvent pas contenir plus d'une virgule : <b>%s</b>, mais doivent en avoir au moins une: clef,valeur ErrorBadFormatValueList=Les valeurs de la liste ne peuvent pas contenir plus d'une virgule : <b>%s</b>, mais doivent en avoir au moins une: clef,valeur
ErrorFieldCanNotContainSpecialCharacters=Le champ <b>%s</b> ne peut contenir de caractères spéciaux. ErrorFieldCanNotContainSpecialCharacters=Le champ <b>%s</b> ne peut contenir de caractères spéciaux.
@ -69,7 +69,7 @@ ErrorFieldCanNotContainSpecialNorUpperCharacters=Le champ <b>%s</b> ne doit pas
ErrorNoAccountancyModuleLoaded=Aucun module de comptabilité activé ErrorNoAccountancyModuleLoaded=Aucun module de comptabilité activé
ErrorExportDuplicateProfil=Ce nom de profil existe déjà pour ce lot d'export. ErrorExportDuplicateProfil=Ce nom de profil existe déjà pour ce lot d'export.
ErrorLDAPSetupNotComplete=Le matching Dolibarr-LDAP est incomplet. ErrorLDAPSetupNotComplete=Le matching Dolibarr-LDAP est incomplet.
ErrorLDAPMakeManualTest=Un fichier .ldif a été généré dans le répertoire %s. Essayez de charger ce fichier en manuel depuis la ligne de commande pour plus de détail sur l'erreur. ErrorLDAPMakeManualTest=Un fichier .ldif a été généré dans le répertoire %s. Essayez de charger ce fichier manuellement depuis la ligne de commande pour plus de détail sur l'erreur.
ErrorCantSaveADoneUserWithZeroPercentage=Impossible de sauver une action à l'état non commencé avec un utilisateur défini comme ayant fait l'action. ErrorCantSaveADoneUserWithZeroPercentage=Impossible de sauver une action à l'état non commencé avec un utilisateur défini comme ayant fait l'action.
ErrorRefAlreadyExists=La référence utilisée pour la création existe déjà ErrorRefAlreadyExists=La référence utilisée pour la création existe déjà
ErrorPleaseTypeBankTransactionReportName=Veuillez saisir le nom de relevé bancaire sur lequel l'écriture est constatée (Format AAAAMM de préférence ou AAAAMMJJ) ErrorPleaseTypeBankTransactionReportName=Veuillez saisir le nom de relevé bancaire sur lequel l'écriture est constatée (Format AAAAMM de préférence ou AAAAMMJJ)
@ -84,7 +84,7 @@ ErrorFieldRefNotIn=Mauvaise valeur pour le champ numéro <b>%s</b> (la valeur '<
ErrorsOnXLines=Erreurs sur <b>%s</b> enregistrement(s) source ErrorsOnXLines=Erreurs sur <b>%s</b> enregistrement(s) source
ErrorFileIsInfectedWithAVirus=L'antivirus n'a pas pu valider ce fichier (il est probablement infecté par un virus) ! ErrorFileIsInfectedWithAVirus=L'antivirus n'a pas pu valider ce fichier (il est probablement infecté par un virus) !
ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis pour le champ "%s" ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis pour le champ "%s"
ErrorDatabaseParameterWrong=Le paramètre de configuration de la base de donnée '<b>%s</b>' a une valeur non compatible pour une utilisation de Dolibarr (doit avoir la valeur '<b>%s</b>'). ErrorDatabaseParameterWrong=Le paramètre de configuration de la base de données '<b>%s</b>' a une valeur non compatible pour une utilisation de Dolibarr (doit avoir la valeur '<b>%s</b>').
ErrorNumRefModel=Une référence existe en base (%s) et est incompatible avec cette numérotation. Supprimez la ligne ou renommez la référence pour activer ce module. ErrorNumRefModel=Une référence existe en base (%s) et est incompatible avec cette numérotation. Supprimez la ligne ou renommez la référence pour activer ce module.
ErrorQtyTooLowForThisSupplier=Quantité insuffisante pour ce fournisseur ou aucun tarif défini sur ce produit pour ce fournisseur ErrorQtyTooLowForThisSupplier=Quantité insuffisante pour ce fournisseur ou aucun tarif défini sur ce produit pour ce fournisseur
ErrorModuleSetupNotComplete=La configuration du module semble incomplète. Aller dans l'espace Configuration - Modules pour corriger. ErrorModuleSetupNotComplete=La configuration du module semble incomplète. Aller dans l'espace Configuration - Modules pour corriger.
@ -96,7 +96,7 @@ ErrorProductWithRefNotExist=La référence produit '<i>%s</i>' n'existe pas
ErrorDeleteNotPossibleLineIsConsolidated=Suppression impossible car l'enregistrement porte sur au moins une transaction bancaire rapprochée ErrorDeleteNotPossibleLineIsConsolidated=Suppression impossible car l'enregistrement porte sur au moins une transaction bancaire rapprochée
ErrorProdIdAlreadyExist=%s est attribué à un autre tiers ErrorProdIdAlreadyExist=%s est attribué à un autre tiers
ErrorFailedToSendPassword=Échec de l'envoi du mot de passe ErrorFailedToSendPassword=Échec de l'envoi du mot de passe
ErrorFailedToLoadRSSFile=Echec de la récupération du flux RSS. Ajouter la constante MAIN_SIMPLEXMLLOAD_DEBUG si le message d'erreur n'est pas assez explicite. ErrorFailedToLoadRSSFile=Echec de la récupération du flux RSS. Ajoutez la constante MAIN_SIMPLEXMLLOAD_DEBUG si le message d'erreur n'est pas assez explicite.
ErrorPasswordDiffers=Les mots de passe ne sont pas identiques, veuillez les saisir à nouveau ErrorPasswordDiffers=Les mots de passe ne sont pas identiques, veuillez les saisir à nouveau
ErrorForbidden=Accès non autorisé.<br>Vous essayez d'accéder à une page, zone ou fonction sans être au sein d'une session authentifiée ou qui n'est pas autorisée pour votre compte utilisateur. ErrorForbidden=Accès non autorisé.<br>Vous essayez d'accéder à une page, zone ou fonction sans être au sein d'une session authentifiée ou qui n'est pas autorisée pour votre compte utilisateur.
ErrorForbidden2=Les permissions pour ce login peuvent être attribuées par l'administrateur Dolibarr via le menu %s -> %s. ErrorForbidden2=Les permissions pour ce login peuvent être attribuées par l'administrateur Dolibarr via le menu %s -> %s.
@ -106,16 +106,16 @@ ErrorRecordAlreadyExists=Enregistrement déjà existant
ErrorCantReadFile=Échec de lecture du fichier '%s' ErrorCantReadFile=Échec de lecture du fichier '%s'
ErrorCantReadDir=Échec de lecture du répertoire '%s' ErrorCantReadDir=Échec de lecture du répertoire '%s'
ErrorFailedToFindEntity=Échec de lecture de l'environnement '%s' ErrorFailedToFindEntity=Échec de lecture de l'environnement '%s'
ErrorBadLoginPassword=Identifiants login ou mot de passe incorrects ErrorBadLoginPassword=Identifiants login ou mot de passe incorrect
ErrorLoginDisabled=Votre compte est désactivé ErrorLoginDisabled=Votre compte est désactivé
ErrorFailedToRunExternalCommand=Échec de l'exécution de la commande externe. Vérifiez qu'elle est disponible et exécutable par votre serveur PHP. Si le <b>Safe Mode</b> PHP est actif, vérifiez que la commande se trouve dans un répertoire définie dans le paramètre <b>safe_mode_exec_dir</b>. ErrorFailedToRunExternalCommand=Échec de l'exécution de la commande externe. Vérifiez qu'elle est disponible et exécutable par votre serveur PHP. Si le <b>Safe Mode</b> PHP est actif, vérifiez que la commande se trouve dans un répertoire défini dans le paramètre <b>safe_mode_exec_dir</b>.
ErrorFailedToChangePassword=Échec de modification du mot de passe ErrorFailedToChangePassword=Échec de modification du mot de passe
ErrorLoginDoesNotExists=Le compte utilisateur de login <b>%s</b> n'a pu être trouvé. ErrorLoginDoesNotExists=Le compte utilisateur de login <b>%s</b> n'a pu être trouvé.
ErrorLoginHasNoEmail=Cet utilisateur n'a pas d'email. Impossible de continuer. ErrorLoginHasNoEmail=Cet utilisateur n'a pas d'email. Impossible de continuer.
ErrorBadValueForCode=Mauvaise valeur saisie pour le code. Réessayez avec une nouvelle valeur... ErrorBadValueForCode=Mauvaise valeur saisie pour le code. Réessayez avec une nouvelle valeur...
ErrorBothFieldCantBeNegative=Les champs %s et %s ne peuvent être tous deux négatifs ErrorBothFieldCantBeNegative=Les champs %s et %s ne peuvent être tous deux négatifs
ErrorWebServerUserHasNotPermission=Le compte d'execution du serveur web <b>%s</b> n'a pas les permissions pour cela ErrorWebServerUserHasNotPermission=Le compte d'exécution du serveur web <b>%s</b> n'a pas les permissions pour cela
ErrorNoActivatedBarcode=Aucun type de code bar activé ErrorNoActivatedBarcode=Aucun type de code-barres activé
ErrUnzipFails=Impossible de décompresser le fichier %s avec ZipArchive ErrUnzipFails=Impossible de décompresser le fichier %s avec ZipArchive
ErrNoZipEngine=Pas de moteur pour décompresser le fichier %s dans ce PHP ErrNoZipEngine=Pas de moteur pour décompresser le fichier %s dans ce PHP
ErrorFileMustBeADolibarrPackage=Le fichier doit être un package Dolibarr ErrorFileMustBeADolibarrPackage=Le fichier doit être un package Dolibarr
@ -124,11 +124,11 @@ ErrorPhpCurlNotInstalled=L'extension PHP CURL n'est pas installée, ceci est ind
ErrorFailedToAddToMailmanList=Echec de l'ajout de %s à la liste Mailman %s ou base SPIP ErrorFailedToAddToMailmanList=Echec de l'ajout de %s à la liste Mailman %s ou base SPIP
ErrorFailedToRemoveToMailmanList=Echec de la suppression de %s de la liste Mailman %s ou base SPIP ErrorFailedToRemoveToMailmanList=Echec de la suppression de %s de la liste Mailman %s ou base SPIP
ErrorNewValueCantMatchOldValue=La nouvelle valeur ne peut être égale à l'ancienne ErrorNewValueCantMatchOldValue=La nouvelle valeur ne peut être égale à l'ancienne
ErrorFailedToValidatePasswordReset=Echec de la réinitialisation du mot de passe. Il est possible que ce lien ait déjà été utilisé (l'utilisation de ce lien ne fonctionne qu'une fois). Si ce n'est pas le cas, essayer de recommencer le processus de réinit de mot de passe depuis le début. ErrorFailedToValidatePasswordReset=Echec de la réinitialisation du mot de passe. Il est possible que ce lien ait déjà été utilisé (l'utilisation de ce lien ne fonctionne qu'une fois). Si ce n'est pas le cas, essayer de recommencer le processus de réinitialisation de mot de passe depuis le début.
ErrorToConnectToMysqlCheckInstance=Echec de la connection au serveur de base de donnée. Vérifier que Mysql est bien lancé (dans la plupart des cas, vous pouvez le lancer depuis la ligne de commande par la commande 'sudo /etc/init.d/mysql start'). ErrorToConnectToMysqlCheckInstance=Echec de la connection au serveur de base de données. Vérifiez que Mysql est bien lancé (dans la plupart des cas, vous pouvez le lancer depuis la ligne de commande par la commande 'sudo /etc/init.d/mysql start').
ErrorFailedToAddContact=Echec à l'ajout du contact ErrorFailedToAddContact=Echec à l'ajout du contact
ErrorDateMustBeBeforeToday=La date ne peut pas être supérieure à aujourd'hui ErrorDateMustBeBeforeToday=La date ne peut pas être supérieure à aujourd'hui
ErrorPaymentModeDefinedToWithoutSetup=Un mode de paiement a été défini de type %s mais la configuration du module Facture n'a pas été complété pour définir les informations afficher pour ce mode de paiment. ErrorPaymentModeDefinedToWithoutSetup=Un mode de paiement a été défini de type %s mais la configuration du module Facture n'a pas été complétée pour définir les informations affichées pour ce mode de paiment.
ErrorPHPNeedModule=Erreur, votre PHP doit avoir le module <b>%s</b> installé pour utiliser cette fonctionnalité. ErrorPHPNeedModule=Erreur, votre PHP doit avoir le module <b>%s</b> installé pour utiliser cette fonctionnalité.
ErrorOpenIDSetupNotComplete=Vous avez configuré Dolibarr pour accepter l'authentication OpenID, mais l'URL du service OpenID n'est pas défini dans la constante %s ErrorOpenIDSetupNotComplete=Vous avez configuré Dolibarr pour accepter l'authentication OpenID, mais l'URL du service OpenID n'est pas défini dans la constante %s
ErrorWarehouseMustDiffers=Les entrepôts source et destination doivent être différents ErrorWarehouseMustDiffers=Les entrepôts source et destination doivent être différents

View File

@ -313,7 +313,6 @@ EditDeliveryAddress=Modificar Direcção de Envío
ThisUserIsNot=Este utilizador nem é um cliente potencial, nem um cliente, nem um fornecedor ThisUserIsNot=Este utilizador nem é um cliente potencial, nem um cliente, nem um fornecedor
VATIntraCheck=Verificar VATIntraCheck=Verificar
VATIntraCheckDesc=o link <b>%s</b> permite consultar à serviço europeu de control de números de IVA intracomunitario. Requer acesso á internet para que o serviço funcione VATIntraCheckDesc=o link <b>%s</b> permite consultar à serviço europeu de control de números de IVA intracomunitario. Requer acesso á internet para que o serviço funcione
VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/lang.do?fromWhichPage=vieshome&selectedLanguage=é
VATIntraCheckableOnEUSite=Verificar na web da Comissão Europeia VATIntraCheckableOnEUSite=Verificar na web da Comissão Europeia
VATIntraManualCheck=Pode também realizar uma verificação manual na web europea <a href="%s" target="_blank">%s</a> VATIntraManualCheck=Pode também realizar uma verificação manual na web europea <a href="%s" target="_blank">%s</a>
ErrorVATCheckMS_UNAVAILABLE=Verificação Impossivel. O serviço de verificação não é prestado pelo país membro (%s). ErrorVATCheckMS_UNAVAILABLE=Verificação Impossivel. O serviço de verificação não é prestado pelo país membro (%s).

View File

@ -1492,7 +1492,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
print '<div style="clear: both;"></div>'; print '<div style="clear: both;"></div>';
print "<!-- End top horizontal menu -->\n\n"; print "<!-- End top horizontal menu -->\n\n";
if (empty($conf->dol_hide_leftmenu) && (empty($conf->use_javascript_ajax) || ! empty($conf->dol_use_jmobile) || empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT))) print '<div id="id-container">'; if (empty($conf->dol_hide_leftmenu) && empty($conf->dol_use_jmobile) && empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '<div id="id-container">';
} }
@ -1523,7 +1523,7 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me
$hookmanager->initHooks(array('searchform','leftblock')); $hookmanager->initHooks(array('searchform','leftblock'));
if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print "\n".'<div class="ui-layout-west"> <!-- Begin left layout -->'."\n"; if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print "\n".'<div class="ui-layout-west"> <!-- Begin left layout -->'."\n";
else print '<div id="id-left">'; else print '<div id="id-left"> <!-- Begin id-left -->';
print "\n"; print "\n";
@ -1701,7 +1701,7 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me
print $leftblock; print $leftblock;
if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '</div> <!-- End left layout -->'."\n"; if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '</div> <!-- End left layout -->'."\n";
else print '</div>'; // End div id="id-left" else print '</div> <!-- end id-left -->'; // End div id="id-left"
} }
print "\n"; print "\n";
@ -1722,10 +1722,7 @@ function main_area($title='')
{ {
global $conf, $langs; global $conf, $langs;
if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '<div id="mainContent"><div class="ui-layout-center"> <!-- begin main layout -->'."\n";
{
print '<div id="mainContent"><div class="ui-layout-center"> <!-- begin main layout -->'."\n";
}
if (empty($conf->dol_hide_leftmenu)) print '<div id="id-right">'; if (empty($conf->dol_hide_leftmenu)) print '<div id="id-right">';
print "\n"; print "\n";
@ -1850,18 +1847,18 @@ if (! function_exists("llxFooter"))
} }
print "\n\n"; print "\n\n";
print '</div> <!-- end div class="fiche" -->'."\n"; print '</div> <!-- End div class="fiche" -->'."\n";
if (! empty($conf->dol_use_jmobile)) print '</div>'; // end data-role="page" if (! empty($conf->dol_use_jmobile)) print '</div>'; // end data-role="page"
if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '</div></div> <!-- end main layout -->'."\n"; if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '</div></div> <!-- end main layout -->'."\n";
if (empty($conf->dol_hide_leftmenu)) print '</div>'; // End div id-right if (empty($conf->dol_hide_leftmenu)) print '</div> <!-- End div id-right -->'; // End div id-right
print "\n"; print "\n";
if ($comment) print '<!-- '.$comment.' -->'."\n"; if ($comment) print '<!-- '.$comment.' -->'."\n";
printCommonFooter($zone); printCommonFooter($zone);
if (empty($conf->dol_hide_leftmenu)) print '</div>'; // End div container if (empty($conf->dol_hide_leftmenu) && empty($conf->dol_use_jmobile) && empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '</div> <!-- End div id-container -->'."\n"; // End div container
print "</body>\n"; print "</body>\n";
print "</html>\n"; print "</html>\n";

View File

@ -1008,10 +1008,10 @@ else
print '<table class="border allwidth">'; print '<table class="border allwidth">';
// Ref // Ref
print '<tr><td width="20%" class="fieldrequired">'.$langs->trans("Ref").'</td><td colspan="3"><input name="ref" size="20" maxlength="128" value="'.$object->ref.'"></td></tr>'; print '<tr><td width="20%" class="fieldrequired">'.$langs->trans("Ref").'</td><td colspan="3"><input name="ref" size="20" maxlength="128" value="'.dol_escape_htmltag($object->ref).'"></td></tr>';
// Label // Label
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td colspan="3"><input name="libelle" size="40" maxlength="255" value="'.$object->libelle.'"></td></tr>'; print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td colspan="3"><input name="libelle" size="40" maxlength="255" value="'.dol_escape_htmltag($object->libelle).'"></td></tr>';
// Status To sell // Status To sell
print '<tr><td class="fieldrequired">'.$langs->trans("Status").' ('.$langs->trans("Sell").')</td><td colspan="3">'; print '<tr><td class="fieldrequired">'.$langs->trans("Status").' ('.$langs->trans("Sell").')</td><td colspan="3">';

View File

@ -317,8 +317,7 @@ if ($id > 0 || ! empty($ref))
// Task parent // Task parent
print '<tr><td>'.$langs->trans("ChildOfTask").'</td><td>'; print '<tr><td>'.$langs->trans("ChildOfTask").'</td><td>';
// print $formother->selectProjectTasks($object->fk_task_parent, $projectstatic->id, 'task_parent', ($user->admin?0:1), 0, 0, 0, $object->id); print $formother->selectProjectTasks($object->fk_task_parent, $projectstatic->id, 'task_parent', ($user->admin?0:1), 0, 0, 0, $object->id);
print $formother->selectProjectTasks($object->fk_task_parent, $projectstatic->id, 'task_parent', ($user->admin?0:1), 0, 0, 0, 0);
print '</td></tr>'; print '</td></tr>';
// Date start // Date start

View File

@ -179,7 +179,7 @@ if ($tmpval <= 360) { $colortextbackvmenu='FFF'; }
else { $colortextbackvmenu='444'; } else { $colortextbackvmenu='444'; }
$tmppart=explode(',',$colorbacktitle1); $tmppart=explode(',',$colorbacktitle1);
$tmpval=(! empty($tmppart[1]) ? $tmppart[1] : '')+(! empty($tmppart[2]) ? $tmppart[2] : '')+(! empty($tmppart[3]) ? $tmppart[3] : ''); $tmpval=(! empty($tmppart[1]) ? $tmppart[1] : '')+(! empty($tmppart[2]) ? $tmppart[2] : '')+(! empty($tmppart[3]) ? $tmppart[3] : '');
if ($tmpval <= 360) { $colortexttitle='FFF'; $colorshadowtitle='000'; } if ($tmpval <= 360) { $colortexttitle='FFF'; $colorshadowtitle='888'; }
else { $colortexttitle='444'; $colorshadowtitle='FFF'; } else { $colortexttitle='444'; $colorshadowtitle='FFF'; }
$tmppart=explode(',',$colorbacktabcard1); $tmppart=explode(',',$colorbacktabcard1);
$tmpval=(! empty($tmppart[1]) ? $tmppart[1] : '')+(! empty($tmppart[2]) ? $tmppart[2] : '')+(! empty($tmppart[3]) ? $tmppart[3] : ''); $tmpval=(! empty($tmppart[1]) ? $tmppart[1] : '')+(! empty($tmppart[2]) ? $tmppart[2] : '')+(! empty($tmppart[3]) ? $tmppart[3] : '');