diff --git a/README b/README
index 342035579b4..2eebec8c5f8 100644
--- a/README
+++ b/README
@@ -53,20 +53,13 @@ To upgrade Dolibarr from an old version to this one:
- If you came from a beta version or from any version x.y.z to any
other where x or y number differs, you must call the Dolibarr "install/"
- page in your browser.
- Url might be for example:
+ page in your browser (this should be done automatically at first dolibarr
+ access).
+ This URL should looks like:
http://localhost/dolibarr/htdocs/install/
or
http://yourdolibarrhost/install/index.php
- To know what is exactly correct URL for "install/" page, take URL you use
- to go on login page. It it ends with "index.php", remove it. Then add
- "install/" at the end.
- For example, if your login page is:
- http://yourdolibarrhost/something/index.php
- Then, your "install/" pages will be
- http://yourdolibarrhost/something/install/
-
Then choose the "update" option according to your case.
Note: Migrate process can be ran safely several times.
diff --git a/README-FR b/README-FR
index 404d3f1a521..75962578d1d 100644
--- a/README-FR
+++ b/README-FR
@@ -53,19 +53,13 @@ Pour mettre a jour Dolibarr depuis une vieille version vers celle ci:
il n'y a pas besoin de migration de données.
- Si vous venez d'une beta ou d'un version x.y.z vers une autre ou les numeros x
- ou y varient, vous devez appelez la page de migration dans votre navigateur:
+ ou y varient, vous devez appelez la page "install/" de migration dans votre
+ navigateur (ceci doit se faire automatiquement au premier accès de l'application).
+ Ce sera une URL du genre:
http://localhost/dolibarr/htdocs/install/index.php
ou
http://yourdolibarrhost/install/index.php
- Pour savoir quelle est l'URL exactement de la page "install/", prenez l'URL que
- vous utilisez pour vous loguer. Si elle se termine par "index.php", enlevez le.
- Dans tous les cas, ajouter ensuite "install/" à la fin.
- Par exemple, si votre page de connexion est:
- http://yourdolibarrhost/something/index.php
- Alors la page "install/" sera
- http://yourdolibarrhost/something/install/
-
Ensuite, choisir l'option de "mise a jour" en rapport avec votre cas.
Note: Le processus de migration peut etre lance plusieurs fois sans risque.
diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index e9ae1ea7e05..a6c93758797 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -22,7 +22,7 @@
* \file htdocs/core/class/commonobject.class.php
* \ingroup core
* \brief File of parent class of all other business classes (invoices, contracts, proposals, orders, ...)
- * \version $Id: commonobject.class.php,v 1.145 2011/07/10 16:50:40 eldy Exp $
+ * \version $Id: commonobject.class.php,v 1.146 2011/07/13 16:55:25 eldy Exp $
*/
@@ -365,9 +365,10 @@ class CommonObject
* Return array with list of possible values for type of contacts
* @param source internal, external or all if not defined
* @param order Sort order by : code or rowid
- * @return array List of type of contacts
+ * @param option 0=Return array id->label, 1=Return array code->label
+ * @return array Array list of type of contacts (id->label if option=0, code->label if option=1)
*/
- function liste_type_contact($source='internal', $order='code')
+ function liste_type_contact($source='internal', $order='code', $option=0)
{
global $langs;
@@ -390,7 +391,8 @@ class CommonObject
$transkey="TypeContact_".$this->element."_".$source."_".$obj->code;
$libelle_type=($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle);
- $tab[$obj->rowid]=$libelle_type;
+ if (empty($option)) $tab[$obj->rowid]=$libelle_type;
+ else $tab[$obj->code]=$libelle_type;
$i++;
}
return $tab;
diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php
index e9e0a507b7e..bd15e21b0ab 100644
--- a/htdocs/core/class/conf.class.php
+++ b/htdocs/core/class/conf.class.php
@@ -25,7 +25,7 @@
* \ingroup core
* \brief Fichier de la classe de stockage de la config courante
* \remarks La config est stockee dans le fichier conf/conf.php
- * \version $Id: conf.class.php,v 1.60 2011/07/09 05:28:42 hregis Exp $
+ * \version $Id: conf.class.php,v 1.61 2011/07/13 18:04:25 eldy Exp $
*/
@@ -145,13 +145,13 @@ class Conf
elseif (preg_match('/^MAIN_MODULE_([A-Z_]+)_TRIGGERS$/i',$key,$reg))
{
$modulename = strtolower($reg[1]);
- $this->triggers_modules[] = '/'.$modulename.'/inc/triggers/';
+ $this->triggers_modules[] = '/'.$modulename.'/inc/triggers/'; // TODO Replace inc by includes to have same path than standard
}
// If this is constant for login method activated by a module
elseif (preg_match('/^MAIN_MODULE_([A-Z_]+)_LOGIN_METHOD$/i',$key,$reg))
{
$modulename = strtolower($reg[1]);
- $this->login_method_modules[] = DOL_DOCUMENT_ROOT.'/'.$modulename.'/inc/login/';
+ $this->login_method_modules[] = DOL_DOCUMENT_ROOT.'/'.$modulename.'/inc/login/'; // TODO Replace inc by includes to have same path than standard
}
// If this is constant for hook activated by a module. Value is list of hooked tabs separated with :
elseif (preg_match('/^MAIN_MODULE_([A-Z_]+)_HOOKS$/i',$key,$reg))
diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php
index 3164f86d8e1..6ca8f1e007f 100644
--- a/htdocs/core/class/html.formmail.class.php
+++ b/htdocs/core/class/html.formmail.class.php
@@ -22,7 +22,7 @@
* \file htdocs/core/class/html.formmail.class.php
* \ingroup core
* \brief Fichier de la classe permettant la generation du formulaire html d'envoi de mail unitaire
- * \version $Id: html.formmail.class.php,v 1.31 2011/07/10 20:03:41 eldy Exp $
+ * \version $Id: html.formmail.class.php,v 1.32 2011/07/13 16:55:25 eldy Exp $
*/
require_once(DOL_DOCUMENT_ROOT ."/core/class/html.form.class.php");
@@ -519,7 +519,7 @@ class FormMail
foreach($listofpaths as $key => $val)
{
$out.= '
';
- $out.= img_mime($listofnames[$key]).' '.$listofnames[$key];
+ $out.= img_mime($listofnames[$key]).' '.$listofnames[$key];
if (! $this->withfilereadonly)
{
$out.= ' ';
@@ -547,15 +547,15 @@ class FormMail
$defaultmessage="";
// TODO A partir du type, proposer liste de messages dans table llx_models
- if ($this->param["models"]=='body') { $defaultmessage=$this->withbody; }
- if ($this->param["models"]=='facture_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoice"); }
- if ($this->param["models"]=='facture_relance') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoiceReminder"); }
- if ($this->param["models"]=='propal_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendProposal"); }
- if ($this->param["models"]=='order_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendOrder"); }
- if ($this->param["models"]=='order_supplier_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendSupplierOrder"); }
- if ($this->param["models"]=='invoice_supplier_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendSupplierInvoice"); }
- if ($this->param["models"]=='shipping_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendShipping"); }
- if ($this->param["models"]=='fichinter_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendFichInter"); }
+ if ($this->param["models"]=='facture_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoice"); }
+ elseif ($this->param["models"]=='facture_relance') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoiceReminder"); }
+ elseif ($this->param["models"]=='propal_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendProposal"); }
+ elseif ($this->param["models"]=='order_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendOrder"); }
+ elseif ($this->param["models"]=='order_supplier_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendSupplierOrder"); }
+ elseif ($this->param["models"]=='invoice_supplier_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendSupplierInvoice"); }
+ elseif ($this->param["models"]=='shipping_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendShipping"); }
+ elseif ($this->param["models"]=='fichinter_send') { $defaultmessage=$langs->transnoentities("PredefinedMailContentSendFichInter"); }
+ elseif (! is_numeric($this->withbody)) { $defaultmessage=$this->withbody; }
if ($conf->paypal->enabled && $conf->global->PAYPAL_ADD_PAYMENT_URL)
{
@@ -565,12 +565,12 @@ class FormMail
if ($this->param["models"]=='order_send')
{
- $url=getPaymentUrl('order',$this->substit['__ORDERREF__']);
+ $url=getPaypalPaymentUrl('order',$this->substit['__ORDERREF__']);
$defaultmessage=$langs->transnoentities("PredefinedMailContentSendOrderWithPaypalLink",$url);
}
if ($this->param["models"]=='facture_send')
{
- $url=getPaymentUrl('invoice',$this->substit['__FACREF__']);
+ $url=getPaypalPaymentUrl('invoice',$this->substit['__FACREF__']);
$defaultmessage=$langs->transnoentities("PredefinedMailContentSendInvoiceWithPaypalLink",$url);
}
}
diff --git a/htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php b/htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php
index 2ff7b4003b3..e2987f224ee 100644
--- a/htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php
+++ b/htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php
@@ -22,7 +22,7 @@
* \file htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php
* \ingroup agenda
* \brief Trigger file for agenda module
- * \version $Id: interface_modAgenda_ActionsAuto.class.php,v 1.33 2011/07/07 09:18:27 simnandez Exp $
+ * \version $Id: interface_modAgenda_ActionsAuto.class.php,v 1.34 2011/07/13 18:05:27 eldy Exp $
*/
@@ -550,8 +550,14 @@ class InterfaceActionsAuto
{
$now=dol_now();
+ require_once(DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php');
+ require_once(DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php');
+ $contactforaction=new Contact($this->db);
+ $societeforaction=new Societe($this->db);
+ if ($object->sendtoid > 0) $contactforaction->fetch($object->sendtoid);
+ if ($object->socid > 0) $societeforaction->fetch($object->socid);
+
// Insertion action
- require_once(DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php');
require_once(DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php');
$actioncomm = new ActionComm($this->db);
$actioncomm->type_code = $object->actiontypecode;
@@ -562,8 +568,8 @@ class InterfaceActionsAuto
$actioncomm->durationp = 0;
$actioncomm->punctual = 1;
$actioncomm->percentage = -1; // Not applicable
- $actioncomm->contact = new Contact($this->db,$object->sendtoid);
- $actioncomm->societe = new Societe($this->db,$object->socid);
+ $actioncomm->contact = $contactforaction;
+ $actioncomm->societe = $societeforaction;
$actioncomm->author = $user; // User saving action
//$actioncomm->usertodo = $user; // User affected to action
$actioncomm->userdone = $user; // User doing action
diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang
index 1967e26eb00..96292683296 100644
--- a/htdocs/langs/zh_CN/main.lang
+++ b/htdocs/langs/zh_CN/main.lang
@@ -9,8 +9,8 @@
// Reference language: en_US
CHARSET=UTF-8
DIRECTION=ltr
-FONTFORPDF=chinese
-#FONTFORPDF=stsongstdlight
+#FONTFORPDF=chinese
+FONTFORPDF=stsongstdlight
#FONTSIZEFORPDF=9
SeparatorDecimal=.
SeparatorThousand=None
diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php
index 0e846c9e9a7..82ec9a15c2e 100755
--- a/htdocs/paypal/lib/paypal.lib.php
+++ b/htdocs/paypal/lib/paypal.lib.php
@@ -22,7 +22,7 @@
* \file htdocs/paypal/lib/paypal.lib.php
* \ingroup paypal
* \brief Library for common paypal functions
- * \version $Id$
+ * \version $Id: paypal.lib.php,v 1.25 2011/07/13 16:55:34 eldy Exp $
*/
function llxHeaderPaypal($title, $head = "")
{
@@ -132,7 +132,7 @@ function html_print_paypal_footer($fromcompany,$langs)
function paypaladmin_prepare_head()
{
global $langs, $conf;
-
+
$h = 0;
$head = array();
@@ -140,7 +140,7 @@ function paypaladmin_prepare_head()
$head[$h][1] = $langs->trans("Account");
$head[$h][2] = 'paypalaccount';
$h++;
-
+
// Show more tabs from modules
// Entries must be declared in modules descriptor with line
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
@@ -151,24 +151,24 @@ function paypaladmin_prepare_head()
}
/**
- *
+ *
*/
-function getPaymentUrl($source='',$ref='',$amount=0,$freetag='')
+function getPaypalPaymentUrl($source='',$ref='',$amount=0,$freetag='')
{
global $conf;
-
+
require_once(DOL_DOCUMENT_ROOT."/lib/security.lib.php");
-
+
if (! empty($source) && ! empty($ref))
{
$token='';
if (! empty($conf->global->PAYPAL_SECURITY_TOKEN)) $token='&securekey='.dol_hash($conf->global->PAYPAL_SECURITY_TOKEN.$source.$ref, 2);
-
+
if ($source == 'commande') $source = 'order';
if ($source == 'facture') $source = 'invoice';
-
+
$url = DOL_MAIN_URL_ROOT.'/public/paypal/newpayment.php?source='.$source.'&ref='.$ref.$token;
-
+
return $url;
}
}
@@ -482,7 +482,7 @@ function hash_call($methodName,$nvpStr)
global $conf, $langs;
global $API_Endpoint, $API_Url, $API_version, $USE_PROXY, $PROXY_HOST, $PROXY_PORT, $PROXY_USER, $PROXY_PASS;
global $PAYPAL_API_USER, $PAYPAL_API_PASSWORD, $PAYPAL_API_SIGNATURE;
-
+
// TODO problem with triggers
$API_version="56";
if ($conf->global->PAYPAL_API_SANDBOX)
@@ -495,7 +495,7 @@ function hash_call($methodName,$nvpStr)
$API_Endpoint = "https://api-3t.paypal.com/nvp";
$API_Url = "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=";
}
-
+
// Clean parameters
$PAYPAL_API_USER="";
if ($conf->global->PAYPAL_API_USER) $PAYPAL_API_USER=$conf->global->PAYPAL_API_USER;
@@ -506,7 +506,7 @@ function hash_call($methodName,$nvpStr)
$PAYPAL_API_SANDBOX="";
if ($conf->global->PAYPAL_API_SANDBOX) $PAYPAL_API_SANDBOX=$conf->global->PAYPAL_API_SANDBOX;
// TODO END problem with triggers
-
+
dol_syslog("Paypal API endpoint ".$API_Endpoint);
//setting the curl parameters.
@@ -580,19 +580,19 @@ function hash_call($methodName,$nvpStr)
function GetApiError()
{
$errors=array();
-
+
$resArray=$_SESSION['reshash'];
-
+
if(isset($_SESSION['curl_error_no']))
{
$errors[] = $_SESSION['curl_error_no'].'-'.$_SESSION['curl_error_msg'];
}
-
+
foreach($resArray as $key => $value)
{
$errors[] = $key.'-'.$value;
}
-
+
return $errors;
}
diff --git a/htdocs/societe/socnote.php b/htdocs/societe/socnote.php
index 6385d48e759..e0a849af112 100644
--- a/htdocs/societe/socnote.php
+++ b/htdocs/societe/socnote.php
@@ -23,7 +23,7 @@
* \file htdocs/societe/socnote.php
* \brief Tab for notes on third party
* \ingroup societe
- * \version $Id$
+ * \version $Id: socnote.php,v 1.22 2011/07/13 16:24:57 eldy Exp $
*/
require("../main.inc.php");
@@ -44,13 +44,13 @@ $result = restrictedArea($user, 'societe', $socid);
* Actions
*/
-if ($action == 'add')
+if ($action == 'add' && ! GETPOST('cancel'))
{
- $sql = "UPDATE ".MAIN_DB_PREFIX."societe SET note='".$db->escape($_POST["note"])."' WHERE rowid=".$_POST["socid"];
- $result = $db->query($sql);
+ $sql = "UPDATE ".MAIN_DB_PREFIX."societe SET note='".$db->escape($_POST["note"])."' WHERE rowid=".$_POST["socid"];
+ $result = $db->query($sql);
- $_GET["socid"]=$_POST["socid"]; // Pour retour sur fiche
- $socid = $_GET["socid"];
+ $_GET["socid"]=$_POST["socid"]; // Pour retour sur fiche
+ $socid = $_GET["socid"];
}
@@ -70,25 +70,25 @@ if ($socid > 0)
$societe = new Societe($db, $socid);
$societe->fetch($socid);
- /*
- * Affichage onglets
- */
+ /*
+ * Affichage onglets
+ */
if ($conf->notification->enabled) $langs->load("mails");
- $head = societe_prepare_head($societe);
+ $head = societe_prepare_head($societe);
- dol_fiche_head($head, 'note', $langs->trans("ThirdParty"),0,'company');
+ dol_fiche_head($head, 'note', $langs->trans("ThirdParty"),0,'company');
- print "';
+ print '';
}
print '