Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch '3.2' of ssh://git@github.com/Dolibarr/dolibarr.git into…

… 3.2
  • Loading branch information...
commit 3870428f1673ec74dffae745c7a3fd9010c6cfcd 2 parents d4cc4b4 + 307c010
@eldy eldy authored
View
2  ChangeLog
@@ -4,7 +4,7 @@ English Dolibarr ChangeLog
***** ChangeLog for 3.2 compared to 3.1 *****
WARNING: PHP lower than 5.x are no more supported.
-WARNING: Because of a major datastructure change onto supplier prices tabkes, be aware
+WARNING: Because of a major datastructure change onto supplier prices tables, be aware
to make a backup of your database before making upgrade.
For users:
View
2  build/debian/changelog
@@ -1,4 +1,4 @@
-dolibarr (3.2.0+nmu1) unstable; urgency=low
+dolibarr (3.3.0+nmu1) unstable; urgency=low
* Non-maintainer upload.
* New upstream release.
View
167 htdocs/admin/expedition.php
@@ -40,6 +40,9 @@
$action=GETPOST('action','alpha');
$value=GETPOST('value','alpha');
+$label = GETPOST('label','alpha');
+$scandir = GETPOST('scandir','alpha');
+$type='shipping';
if (empty($conf->global->EXPEDITION_ADDON_NUMBER))
{
@@ -50,6 +53,59 @@
/*
* Actions
*/
+ if ($action == 'updateMask')
+{
+ $maskconst=GETPOST('maskconstexpedition','alpha');
+ $maskvalue=GETPOST('maskexpedition','alpha');
+ if ($maskconst) $res = dolibarr_set_const($db,$maskconst,$maskvalue,'chaine',0,'',$conf->entity);
+
+ if (! $res > 0) $error++;
+
+ if (! $error)
+ {
+ $mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
+ }
+ else
+ {
+ $mesg = "<font class=\"error\">".$langs->trans("Error")."</font>";
+ }
+}
+
+if ($action == 'set_SHIPPING_FREE_TEXT')
+{
+ $freetext=GETPOST('SHIPPING_FREE_TEXT','alpha');
+ $res = dolibarr_set_const($db, "SHIPPING_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity);
+
+ if (! $res > 0) $error++;
+
+ if (! $error)
+ {
+ $mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
+ }
+ else
+ {
+ $mesg = "<font class=\"error\">".$langs->trans("Error")."</font>";
+ }
+}
+
+if ($action == 'set_SHIPPING_DRAFT_WATERMARK')
+{
+ $draft=GETPOST('SHIPPING_DRAFT_WATERMARK','alpha');
+
+ $res = dolibarr_set_const($db, "SHIPPING_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity);
+
+ if (! $res > 0) $error++;
+
+ if (! $error)
+ {
+ $mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
+ }
+ else
+ {
+ $mesg = "<font class=\"error\">".$langs->trans("Error")."</font>";
+ }
+}
+
if ($action == 'specimen')
{
$modele=GETPOST('module','alpha');
@@ -84,8 +140,8 @@
}
else
{
- $mesg='<font class="error">'.$module->error.'</font>';
- dol_syslog($module->error, LOG_ERR);
+ $mesg='<font class="error">'.$obj->error.'</font>';
+ dol_syslog($obj->error, LOG_ERR);
}
}
else
@@ -98,30 +154,13 @@
// Activate a model
if ($action == 'set')
{
- $label = GETPOST('label','alpha');
- $scandir = GETPOST('scandir','alpha');
-
- $type='shipping';
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
- $sql.= " VALUES ('".$db->escape($value)."','".$type."',".$conf->entity.", ";
- $sql.= ($label?"'".$db->escape($label)."'":'null').", ";
- $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
- $sql.= ")";
- if ($db->query($sql))
- {
-
- }
+ $ret = addDocumentModel($value, $type, $label, $scandir);
}
if ($action == 'del')
{
- $type='shipping';
- $sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
- $sql.= " WHERE nom = '".$db->escape($value)."'";
- $sql.= " AND type = '".$type."'";
- $sql.= " AND entity = ".$conf->entity;
-
- if ($db->query($sql))
+ $ret = delDocumentModel($value, $type);
+ if ($ret > 0)
{
if ($conf->global->EXPEDITION_ADDON_PDF == "$value") dolibarr_del_const($db, 'EXPEDITION_ADDON_PDF',$conf->entity);
}
@@ -130,37 +169,18 @@
// Set default model
if ($action == 'setdoc')
{
- $label = GETPOST('label','alpha');
- $scandir = GETPOST('scandir','alpha');
-
- $db->begin();
-
if (dolibarr_set_const($db, "EXPEDITION_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
{
+ // La constante qui a ete lue en avant du nouveau set
+ // on passe donc par une variable pour avoir un affichage coherent
$conf->global->EXPEDITION_ADDON_PDF = $value;
}
// On active le modele
- $type='shipping';
- $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
- $sql_del.= " WHERE nom = '".$db->escape($value)."'";
- $sql_del.= " AND type = '".$type."'";
- $sql_del.= " AND entity = ".$conf->entity;
- $result1=$db->query($sql_del);
-
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
- $sql.= " VALUES ('".$db->escape($value)."', '".$type."', ".$conf->entity.", ";
- $sql.= ($label?"'".$db->escape($label)."'":'null').", ";
- $sql.= (! empty($scandir)?"'".$db->escape($scandir)."'":"null");
- $sql.= ")";
- $result2=$db->query($sql);
- if ($result1 && $result2)
- {
- $db->commit();
- }
- else
+ $ret = delDocumentModel($value, $type);
+ if ($ret > 0)
{
- $db->rollback();
+ $ret = addDocumentModel($value, $type, $label, $scandir);
}
}
@@ -240,68 +260,15 @@
// TODO Verifier si module numerotation choisi peut etre active
// par appel methode canBeActivated
- $module=GETPOST('module','alpha');
-
- dolibarr_set_const($db, "EXPEDITION_ADDON",$module,'chaine',0,'',$conf->entity);
+ dolibarr_set_const($db, "EXPEDITION_ADDON",$value,'chaine',0,'',$conf->entity);
}
-if ($action == 'updateMask')
-{
- $maskconst=GETPOST('maskconstexpedition','alpha');
- $maskvalue=GETPOST('maskexpedition','alpha');
- if ($maskconst) $res = dolibarr_set_const($db,$maskconst,$maskvalue,'chaine',0,'',$conf->entity);
-
- if (! $res > 0) $error++;
-
- if (! $error)
- {
- $mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
- }
- else
- {
- $mesg = "<font class=\"error\">".$langs->trans("Error")."</font>";
- }
-}
-
if ($action == 'setmodel')
{
dolibarr_set_const($db, "EXPEDITION_ADDON_NUMBER",$value,'chaine',0,'',$conf->entity);
}
-if ($action == 'set_SHIPPING_DRAFT_WATERMARK')
-{
- $draft=GETPOST('SHIPPING_DRAFT_WATERMARK','alpha');
- $res = dolibarr_set_const($db, "SHIPPING_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity);
-
- if (! $res > 0) $error++;
-
- if (! $error)
- {
- $mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
- }
- else
- {
- $mesg = "<font class=\"error\">".$langs->trans("Error")."</font>";
- }
-}
-
-if ($action == 'set_SHIPPING_FREE_TEXT')
-{
- $free=GETPOST('SHIPPING_FREE_TEXT','alpha');
- $res = dolibarr_set_const($db, "SHIPPING_FREE_TEXT",$free,'chaine',0,'',$conf->entity);
- if (! $res > 0) $error++;
-
- if (! $error)
- {
- $mesg = "<font class=\"ok\">".$langs->trans("SetupSaved")."</font>";
- }
- else
- {
- $mesg = "<font class=\"error\">".$langs->trans("Error")."</font>";
- }
-}
-
/*
* View
View
22 htdocs/admin/mailing.php
@@ -44,11 +44,14 @@
$mailfrom = GETPOST('MAILING_EMAIL_FROM','alpha');
$mailerror = GETPOST('MAILING_EMAIL_ERRORSTO','alpha');
+ $checkread = GETPOST('value','alpha');
$res=dolibarr_set_const($db, "MAILING_EMAIL_FROM",$mailfrom,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
$res=dolibarr_set_const($db, "MAILING_EMAIL_ERRORSTO",$mailerror,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
+ $res=dolibarr_set_const($db, "MAIN_SOCIETE_UNSUBSCRIBE",$checkread,'chaine',0,'',$conf->entity);
+ if (! $res > 0) $error++;
if (! $error)
{
@@ -101,6 +104,25 @@
if (!empty($conf->global->MAILING_EMAIL_ERRORSTO) && ! isValidEmail($conf->global->MAILING_EMAIL_ERRORSTO)) print ' '.img_warning($langs->trans("BadEMail"));
print '</td></tr>';
+$var=!$var;
+print '<tr '.$bc[$var].'><td>';
+print $langs->trans("ActivateCheckRead").'</td><td>';
+if ($conf->global->MAIN_SOCIETE_UNSUBSCRIBE==1)
+{
+ print '<a href="'.$_SERVER["PHP_SELF"].'?action=setvalue&value=0">';
+ print img_picto($langs->trans("Enabled"),'switch_on');
+ print '</a>';
+}
+else
+{
+ print '<a href="'.$_SERVER["PHP_SELF"].'?action=setvalue&value=1">';
+ print img_picto($langs->trans("Disabled"),'switch_off');
+ print '</a>';
+}
+print '</td></tr>';
+
+
+
print '<tr><td colspan="3" align="center"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td></tr>';
print '</table></form>';
View
6 htdocs/comm/mailing/fiche.php
@@ -49,6 +49,7 @@
'__EMAIL__' => 'EMail',
'__LASTNAME__' => 'Lastname',
'__FIRSTNAME__' => 'Firstname',
+ '__MAILTOEMAIL__' => 'MailtoEmail',
'__OTHER1__' => 'Other1',
'__OTHER2__' => 'Other2',
'__OTHER3__' => 'Other3',
@@ -73,6 +74,7 @@
'__EMAIL__' => 'TESTEMail',
'__LASTNAME__' => 'TESTLastname',
'__FIRSTNAME__' => 'TESTFirstname',
+ '__MAILTOEMAIL__' => 'TESTMailtoEmail',
'__OTHER1__' => 'TESTOther1',
'__OTHER2__' => 'TESTOther2',
'__OTHER3__' => 'TESTOther3',
@@ -208,8 +210,9 @@
$substitutionarray=array(
'__ID__' => $obj->source_id,
'__EMAIL__' => $obj->email,
- '__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj->tag.'" width="0" height="0" style="width:0px;height:0px" border="0"/>',
+ '__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj->tag.'" width="1" height="1" style="width:1px;height:1px" border="0"/>',
'__UNSUSCRIBE__' => '<a href="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-unsubscribe.php?tag='.$obj->tag.'&unsuscrib=1" target="_blank">'.$langs->trans("MailUnsubcribe").'</a>',
+ '__MAILTOEMAIL__' => '<a href="mailto:'.$obj->email.'">'.$obj->email.'</a>',
'__LASTNAME__' => $obj->nom,
'__FIRSTNAME__' => $obj->prenom,
'__OTHER1__' => $other1,
@@ -1048,6 +1051,7 @@
print '__CHECK_READ__ = '.$langs->trans("CheckRead").'<br>';
print '__UNSUSCRIBE__ = '.$langs->trans("MailUnsubcribe").'<br>';
}
+ print '__MAILTOEMAIL__ = '.$langs->trans("MailtoEMail").'<br>';
print '__LASTNAME__ = '.$langs->trans("Lastname").'<br>';
print '__FIRSTNAME__ = '.$langs->trans("Firstname").'<br>';
print '__OTHER1__ = '.$langs->trans("Other").'1<br>';
View
28 htdocs/core/class/conf.class.php
@@ -94,7 +94,7 @@ function Conf()
$this->syslog = (object) array();
$this->browser = (object) array();
$this->multicompany = (object) array();
-
+
// First level object
$this->expedition_bon = (object) array();
$this->livraison_bon = (object) array();
@@ -111,7 +111,7 @@ function Conf()
$this->bank = (object) array();
$this->notification = (object) array();
$this->mailing = (object) array();
-
+
//! Charset for HTML output and for storing data in memory
$this->file->character_set_client='UTF-8'; // UTF-8, ISO-8859-1
}
@@ -207,12 +207,12 @@ function setValues($db)
}
$i++;
}
-
+
$db->free($resql);
}
//var_dump($this->modules);
//var_dump($this->modules_parts);
-
+
// Object $mc
if (! defined('NOREQUIREMC') && ! empty($this->multicompany->enabled))
{
@@ -220,7 +220,7 @@ function setValues($db)
$ret = @dol_include_once('/multicompany/class/actions_multicompany.class.php');
if ($ret) $mc = new ActionsMulticompany($db);
}
-
+
// Second or others levels object
$this->propal->cloture = (object) array();
$this->propal->facturation = (object) array();
@@ -289,7 +289,7 @@ function setValues($db)
// For backward compatibility
$this->user->dir_output=$rootforuser."/users";
$this->user->dir_temp=$rootforuser."/users/temp";
-
+
// For propal storage
$this->propal->dir_output=$rootforuser."/propale";
$this->propal->dir_temp=$rootforuser."/propale/temp";
@@ -307,7 +307,7 @@ function setValues($db)
$this->fournisseur->commande->dir_temp =$rootfordata."/fournisseur/commande/temp";
$this->fournisseur->facture->dir_output =$rootfordata."/fournisseur/facture";
$this->fournisseur->facture->dir_temp =$rootfordata."/fournisseur/facture/temp";
-
+
// Module product/service
$this->product->multidir_output=array($this->entity => $rootfordata."/produit");
$this->product->multidir_temp =array($this->entity => $rootfordata."/produit/temp");
@@ -318,7 +318,7 @@ function setValues($db)
$this->product->dir_temp =$rootfordata."/produit/temp";
$this->service->dir_output=$rootfordata."/produit";
$this->service->dir_temp =$rootfordata."/produit/temp";
-
+
// Module contrat
$this->contrat->dir_output=$rootfordata."/contracts";
$this->contrat->dir_temp =$rootfordata."/contracts/temp";
@@ -414,11 +414,11 @@ function setValues($db)
$this->bank->cheque->warning_delay=(isset($this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT)?$this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT:0)*24*60*60;
// For backward compatibility
- $this->produit=$this->product;
- $this->invoice=$this->facture;
- $this->order=$this->commande;
- $this->contract=$this->contrat;
- $this->category=$this->categorie;
+ if (isset($this->product)) $this->produit=$this->product;
+ if (isset($this->facture)) $this->invoice=$this->facture;
+ if (isset($this->commande)) $this->order=$this->commande;
+ if (isset($this->contrat)) $this->contract=$this->contrat;
+ if (isset($this->categorie)) $this->category=$this->categorie;
// Define menu manager in setup
@@ -435,7 +435,7 @@ function setValues($db)
// For backward compatibility
if ($this->top_menu == 'eldy.php') $this->top_menu='eldy_backoffice.php';
elseif ($this->top_menu == 'rodolphe.php') $this->top_menu='eldy_backoffice.php';
-
+
// Object $mc
if (! defined('NOREQUIREMC') && ! empty($this->multicompany->enabled))
{
View
2  htdocs/core/lib/pdf.lib.php
@@ -221,7 +221,7 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target
// Tel
if ($sourcecompany->tel) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($sourcecompany->tel);
// Fax
- if ($sourcecompany->fax) $stringaddress .= ($stringaddress ? ($sourcecompany->tel ? " - " : "\n") : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($sourcecompany->fax);
+ if ($sourcecompany->fax) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($sourcecompany->fax);
// EMail
if ($sourcecompany->email) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Email").": ".$outputlangs->convToOutputCharset($sourcecompany->email);
// Web
View
22 htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
@@ -98,8 +98,7 @@ function __construct($db,$object)
$this->franchise=!$mysoc->tva_assuj;
// Get source company
- if (! is_object($object->thirdparty)) $object->fetch_thirdparty();
- $this->emetteur=$object->thirdparty;
+ $this->emetteur=$mysoc;
if (! $this->emetteur->country_code) $this->emetteur->country_code=substr($langs->defaultlang,-2); // By default, if was not defined
// Defini position des colonnes
@@ -902,9 +901,8 @@ function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
$pdf->SetXY($this->marge_gauche,$posy);
// Logo
- /*
- $logo=$conf->mycompany->dir_output.'/logos/'.$mysoc->logo;
- if ($mysoc->logo)
+ $logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
+ if ($this->emetteur->logo)
{
if (is_readable($logo))
{
@@ -920,10 +918,10 @@ function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
}
}
else
- {*/
+ {
$text=$this->emetteur->name;
$pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
- //}
+ }
$pdf->SetFont('', 'B', $default_font_size + 3);
$pdf->SetXY($posx,$posy);
@@ -991,7 +989,7 @@ function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
// If BILLING contact defined on order, we use it
$usecontact=false;
- $arrayidcontact=$object->getIdContact('internal','BILLING');
+ $arrayidcontact=$object->getIdContact('external','BILLING');
if (count($arrayidcontact) > 0)
{
$usecontact=true;
@@ -1003,15 +1001,15 @@ function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
{
// On peut utiliser le nom de la societe du contact
if ($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT) $socname = $object->contact->socname;
- else $socname = $mysoc->nom;
+ else $socname = $object->client->name;
$carac_client_name=$outputlangs->convToOutputCharset($socname);
}
else
{
- $carac_client_name=$outputlangs->convToOutputCharset($mysoc->nom);
+ $carac_client_name=$outputlangs->convToOutputCharset($object->client->name);
}
-
- $carac_client=pdf_build_address($outputlangs,$this->emetteur,$mysoc,$object->contact,$usecontact,'target');
+
+ $carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->client,$object->contact,$usecontact,'target');
// Show recipient
$posy=42;
View
43 htdocs/fourn/class/fournisseur.commande.class.php
@@ -54,6 +54,7 @@ class CommandeFournisseur extends Commande
var $fourn_id;
var $date;
var $date_commande;
+ var $date_livraison; // Date livraison souhaitee
var $total_ht;
var $total_tva;
var $total_localtax1; // Total Local tax 1
@@ -112,7 +113,7 @@ function fetch($id,$ref='')
$sql = "SELECT c.rowid, c.ref, c.date_creation, c.fk_soc, c.fk_user_author, c.fk_statut, c.amount_ht, c.total_ht, c.total_ttc, c.tva,";
$sql.= " c.localtax1, c.localtax2, ";
- $sql.= " c.date_commande as date_commande, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_projet as fk_project, c.remise_percent, c.source, c.fk_methode_commande,";
+ $sql.= " c.date_commande as date_commande, c.date_livraison as date_livraison, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_projet as fk_project, c.remise_percent, c.source, c.fk_methode_commande,";
$sql.= " c.note as note_private, c.note_public, c.model_pdf, c.extraparams,";
$sql.= " cm.libelle as methode_commande,";
$sql.= " cr.code as cond_reglement_code, cr.libelle as cond_reglement_libelle,";
@@ -150,6 +151,7 @@ function fetch($id,$ref='')
$this->total_ttc = $obj->total_ttc;
$this->date_commande = $this->db->jdate($obj->date_commande); // date a laquelle la commande a ete transmise
$this->date = $this->db->jdate($obj->date_creation);
+ $this->date_livraison = $this->db->jdate($obj->date_livraison);
$this->remise_percent = $obj->remise_percent;
$this->methode_commande_id = $obj->fk_methode_commande;
$this->methode_commande = $obj->methode_commande;
@@ -888,6 +890,7 @@ function create($user)
$sql.= ", entity";
$sql.= ", fk_soc";
$sql.= ", date_creation";
+ $sql.= ", date_livraison";
$sql.= ", fk_user_author";
$sql.= ", fk_statut";
$sql.= ", source";
@@ -899,6 +902,7 @@ function create($user)
$sql.= ", ".$conf->entity;
$sql.= ", ".$this->socid;
$sql.= ", ".$this->db->idate($now);
+ $sql.= ", ".$this->db->idate($now);
$sql.= ", ".$user->id;
$sql.= ", 0";
$sql.= ", 0";
@@ -1367,6 +1371,41 @@ function Livraison($user, $date, $type, $comment)
return $result ;
}
+ /**
+ * Set the planned delivery date
+ *
+ * @param User $user Objet utilisateur qui modifie
+ * @param timestamp $date_livraison Date de livraison
+ * @return int <0 si ko, >0 si ok
+ */
+ function set_date_livraison($user, $date_livraison)
+ {
+ if ($user->rights->fournisseur->commande->creer)
+ {
+ $sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur";
+ $sql.= " SET date_livraison = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null');
+ $sql.= " WHERE rowid = ".$this->id;
+
+ dol_syslog("CommandeFournisseur::set_date_livraison sql=".$sql,LOG_DEBUG);
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ $this->date_livraison = $date_livraison;
+ return 1;
+ }
+ else
+ {
+ $this->error=$this->db->error();
+ dol_syslog("CommandeFournisseur::set_date_livraison ".$this->error,LOG_ERR);
+ return -1;
+ }
+ }
+ else
+ {
+ return -2;
+ }
+ }
+
/**
* Update a supplier order from a customer order
*
@@ -1830,4 +1869,4 @@ function update_total()
}
}
-?>
+?>
View
215 htdocs/fourn/commande/fiche.php
@@ -48,12 +48,12 @@
$langs->load('stocks');
$id = GETPOST('id','int');
-$ref = GETPOST("ref");
-$action = GETPOST("action");
-$confirm = GETPOST("confirm");
-$comclientid = GETPOST("comid");
+$ref = GETPOST('ref','alpha');
+$action = GETPOST('action','alpha');
+$confirm = GETPOST('confirm','alpha');
+$comclientid = GETPOST('comid','int');
$socid = GETPOST('socid','int');
-$projectid = GETPOST("projectid");
+$projectid = GETPOST('projectid','int');
// Security check
if ($user->societe_id) $socid=$user->societe_id;
@@ -87,6 +87,19 @@
$result = $object->setPaymentMethods(GETPOST('mode_reglement_id','int'));
}
+// date de livraison
+if ($action == 'setdate_livraison' && $user->rights->fournisseur->commande->creer)
+{
+ $datelivraison=dol_mktime(0, 0, 0, GETPOST('liv_month','int'), GETPOST('liv_day','int'),GETPOST('liv_year','int'));
+
+ $object->fetch($id);
+ $result=$object->set_date_livraison($user,$datelivraison);
+ if ($result < 0)
+ {
+ $mesg='<div class="error">'.$object->error.'</div>';
+ }
+}
+
// Set project
else if ($action == 'classin' && $user->rights->fournisseur->commande->creer)
{
@@ -100,18 +113,18 @@
$result = $object->set_remise($user, $_POST['remise_percent']);
}
-else if ($action == 'setnote_public' && $user->rights->propale->creer)
-{
- $object->fetch($id);
- $result=$object->update_note_public(dol_html_entity_decode(GETPOST('note_public'), ENT_QUOTES));
- if ($result < 0) dol_print_error($db,$object->error);
-}
-
-else if ($action == 'setnote' && $user->rights->propale->creer)
-{
- $object->fetch($id);
- $result=$object->update_note(dol_html_entity_decode(GETPOST('note'), ENT_QUOTES));
- if ($result < 0) dol_print_error($db,$object->error);
+else if ($action == 'setnote_public' && $user->rights->propale->creer)
+{
+ $object->fetch($id);
+ $result=$object->update_note_public(dol_html_entity_decode(GETPOST('note_public'), ENT_QUOTES));
+ if ($result < 0) dol_print_error($db,$object->error);
+}
+
+else if ($action == 'setnote' && $user->rights->propale->creer)
+{
+ $object->fetch($id);
+ $result=$object->update_note(dol_html_entity_decode(GETPOST('note'), ENT_QUOTES));
+ if ($result < 0) dol_print_error($db,$object->error);
}
else if ($action == 'reopen' && $user->rights->fournisseur->commande->approuver)
@@ -812,64 +825,64 @@
}
}
-if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB))
+if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB))
{
- if ($action == 'addcontact' && $user->rights->fournisseur->commande->creer)
- {
- $result = $object->fetch($id);
-
- if ($result > 0 && $id > 0)
+ if ($action == 'addcontact' && $user->rights->fournisseur->commande->creer)
+ {
+ $result = $object->fetch($id);
+
+ if ($result > 0 && $id > 0)
+ {
+ $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'));
+ $result = $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
+ }
+
+ if ($result >= 0)
+ {
+ Header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
+ exit;
+ }
+ else
+ {
+ if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
+ {
+ $langs->load("errors");
+ $mesg = '<div class="error">'.$langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType").'</div>';
+ }
+ else
+ {
+ $mesg = '<div class="error">'.$object->error.'</div>';
+ }
+ }
+ }
+
+ // bascule du statut d'un contact
+ else if ($action == 'swapstatut' && $user->rights->fournisseur->commande->creer)
+ {
+ if ($object->fetch($id))
+ {
+ $result=$object->swapContactStatus(GETPOST('ligne'));
+ }
+ else
+ {
+ dol_print_error($db);
+ }
+ }
+
+ // Efface un contact
+ else if ($action == 'deletecontact' && $user->rights->fournisseur->commande->creer)
+ {
+ $object->fetch($id);
+ $result = $object->delete_contact($_GET["lineid"]);
+
+ if ($result >= 0)
{
- $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'));
- $result = $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
- }
-
- if ($result >= 0)
- {
- Header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
- exit;
- }
- else
- {
- if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
- {
- $langs->load("errors");
- $mesg = '<div class="error">'.$langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType").'</div>';
- }
- else
- {
- $mesg = '<div class="error">'.$object->error.'</div>';
- }
- }
- }
-
- // bascule du statut d'un contact
- else if ($action == 'swapstatut' && $user->rights->fournisseur->commande->creer)
- {
- if ($object->fetch($id))
- {
- $result=$object->swapContactStatus(GETPOST('ligne'));
- }
- else
- {
- dol_print_error($db);
- }
- }
-
- // Efface un contact
- else if ($action == 'deletecontact' && $user->rights->fournisseur->commande->creer)
- {
- $object->fetch($id);
- $result = $object->delete_contact($_GET["lineid"]);
-
- if ($result >= 0)
- {
- Header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
- exit;
- }
- else {
- dol_print_error($db);
- }
+ Header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
+ exit;
+ }
+ else {
+ dol_print_error($db);
+ }
}
}
@@ -1102,6 +1115,30 @@
}
print '</td></tr>';
+ // Delivery date planed
+ print '<tr><td height="10">';
+ print '<table class="nobordernopadding" width="100%"><tr><td>';
+ print $langs->trans('DateDeliveryPlanned');
+ print '</td>';
+
+ if ($action != 'editdate_livraison') print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdate_livraison&amp;id='.$object->id.'">'.img_edit($langs->trans('SetDeliveryDate'),1).'</a></td>';
+ print '</tr></table>';
+ print '</td><td colspan="2">';
+ if ($action == 'editdate_livraison')
+ {
+ print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
+ print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+ print '<input type="hidden" name="action" value="setdate_livraison">';
+ $form->select_date($object->date_livraison?$object->date_livraison:-1,'liv_','','','',"setdate_livraison");
+ print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
+ print '</form>';
+ }
+ else
+ {
+ print $object->date_livraison ? dol_print_date($object->date_livraison,'daytext') : '&nbsp;';
+ }
+ print '</td>';
+
// Project
if ($conf->projet->enabled)
{
@@ -1155,22 +1192,22 @@
print "</table><br>";
- if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB))
- {
+ if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB))
+ {
require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
- require_once(DOL_DOCUMENT_ROOT."/contact/class/contact.class.php");
- $formcompany= new FormCompany($db);
-
- $blocname = 'contacts';
- $title = $langs->trans('ContactsAddresses');
- include(DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php');
- }
-
- if (! empty($conf->global->MAIN_DISABLE_NOTES_TAB))
- {
- $blocname = 'notes';
- $title = $langs->trans('Notes');
- include(DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php');
+ require_once(DOL_DOCUMENT_ROOT."/contact/class/contact.class.php");
+ $formcompany= new FormCompany($db);
+
+ $blocname = 'contacts';
+ $title = $langs->trans('ContactsAddresses');
+ include(DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php');
+ }
+
+ if (! empty($conf->global->MAIN_DISABLE_NOTES_TAB))
+ {
+ $blocname = 'notes';
+ $title = $langs->trans('Notes');
+ include(DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php');
}
dol_htmloutput_mesg($mesg);
@@ -1722,4 +1759,4 @@
// End of page
llxFooter();
$db->close();
-?>
+?>
View
8 htdocs/install/check.php
@@ -35,11 +35,11 @@
$langs->load("install");
-// Init "forced values" to nothing. "forced values" are used after an doliwamp install wizard.
-if (! isset($force_install_dolibarrlogin)) $force_install_dolibarrlogin='';
+// Now we load forced value from install.forced.php file.
$useforcedwizard=false;
-if (@file_exists("./install.forced.php")) { $useforcedwizard=true; include_once("./install.forced.php"); }
-else if (@file_exists("/etc/dolibarr/install.forced.php")) { $useforcedwizard=include_once("/etc/dolibarr/install.forced.php"); }
+$forcedfile="./install.forced.php";
+if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
+if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once($forcedfile); }
dolibarr_install_syslog("Dolibarr install/upgrade process started");
View
7 htdocs/install/etape1.php
@@ -43,10 +43,11 @@
// Repertoire des pages dolibarr
$main_dir=isset($_POST["main_dir"])?trim($_POST["main_dir"]):'';
-// Init "forced values" to nothing. "forced values" are used after an doliwamp install wizard.
+// Now we load forced value from install.forced.php file.
$useforcedwizard=false;
-if (file_exists("./install.forced.php")) { $useforcedwizard=true; include_once("./install.forced.php"); }
-else if (file_exists("/etc/dolibarr/install.forced.php")) { $useforcedwizard=include_once("/etc/dolibarr/install.forced.php"); }
+$forcedfile="./install.forced.php";
+if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
+if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once($forcedfile); }
dolibarr_install_syslog("--- etape1: Entering etape1.php page");
View
7 htdocs/install/etape2.php
@@ -52,10 +52,11 @@
if ($dolibarr_main_db_type == "mssql") $choix=3;
//if (empty($choix)) dol_print_error('','Database type '.$dolibarr_main_db_type.' not supported into etape2.php page');
-// Init "forced values" to nothing. "forced values" are used after a Doliwamp install wizard.
+// Now we load forced value from install.forced.php file.
$useforcedwizard=false;
-if (file_exists("./install.forced.php")) { $useforcedwizard=true; include_once("./install.forced.php"); }
-else if (file_exists("/etc/dolibarr/install.forced.php")) { $useforcedwizard=include_once("/etc/dolibarr/install.forced.php"); }
+$forcedfile="./install.forced.php";
+if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
+if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once($forcedfile); }
dolibarr_install_syslog("--- etape2: Entering etape2.php page");
View
14 htdocs/install/etape4.php
@@ -36,11 +36,11 @@
$langs->load("admin");
$langs->load("install");
-// Init "forced values" to nothing. "forced values" are used after an doliwamp install wizard.
-if (! isset($force_install_dolibarrlogin)) $force_install_dolibarrlogin='';
+// Now we load forced value from install.forced.php file.
$useforcedwizard=false;
-if (file_exists("./install.forced.php")) { $useforcedwizard=true; include_once("./install.forced.php"); }
-else if (file_exists("/etc/dolibarr/install.forced.php")) { $useforcedwizard=include_once("/etc/dolibarr/install.forced.php"); }
+$forcedfile="./install.forced.php";
+if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
+if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once($forcedfile); }
dolibarr_install_syslog("--- etape4: Entering etape4.php page");
@@ -74,7 +74,7 @@
if ($db->ok == 1)
{
print '<tr><td>'.$langs->trans("DolibarrAdminLogin").' :</td><td>';
- print '<input name="login" value="'.(! empty($_GET["login"])?$_GET["login"]:$force_install_dolibarrlogin).'"></td></tr>';
+ print '<input name="login" value="'.(! empty($_GET["login"])?$_GET["login"]:(isset($force_install_dolibarrlogin)?$force_install_dolibarrlogin:'')).'"></td></tr>';
print '<tr><td>'.$langs->trans("Password").' :</td><td>';
print '<input type="password" name="pass"></td></tr>';
print '<tr><td>'.$langs->trans("PasswordAgain").' :</td><td>';
@@ -106,9 +106,9 @@
}
-$db->close();
-
dolibarr_install_syslog("--- install/etape4.php end", LOG_INFO);
pFooter($err,$setuplang);
+
+$db->close();
?>
View
6 htdocs/install/etape5.php
@@ -61,9 +61,11 @@
if (! isset($force_install_databaserootlogin)) $force_install_databaserootlogin='';
if (! isset($force_install_databaserootpass)) $force_install_databaserootpass='';
if (! isset($force_install_lockinstall)) $force_install_lockinstall='';
+// Now we load forced value from install.forced.php file.
$useforcedwizard=false;
-if (file_exists("./install.forced.php")) { $useforcedwizard=true; include_once("./install.forced.php"); }
-else if (file_exists("/etc/dolibarr/install.forced.php")) { $useforcedwizard=include_once("/etc/dolibarr/install.forced.php"); }
+$forcedfile="./install.forced.php";
+if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
+if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once($forcedfile); }
dolibarr_install_syslog("--- etape5: Entering etape5.php page", LOG_INFO);
View
6 htdocs/install/fileconf.php
@@ -53,14 +53,14 @@
if (! isset($force_install_databaserootpass)) $force_install_databaserootpass='';
// Now we load forced value from install.forced.php file.
$useforcedwizard=false;
-if (file_exists("./install.forced.php")) { $useforcedwizard=true; include_once("./install.forced.php"); }
-else if (file_exists("/etc/dolibarr/install.forced.php")) { $useforcedwizard=include_once("/etc/dolibarr/install.forced.php"); }
+$forcedfile="./install.forced.php";
+if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
+if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once($forcedfile); }
dolibarr_install_syslog("Fileconf: Entering fileconf.php page");
-
/*
* View
*/
View
2  htdocs/install/mysql/migration/3.1.0-3.2.0.sql
@@ -451,3 +451,5 @@ ALTER TABLE llx_commande_fournisseur ADD COLUMN extraparams varchar(255) AFTER i
ALTER TABLE llx_facture_fourn ADD COLUMN extraparams varchar(255) AFTER import_key;
ALTER TABLE llx_boxes ADD COLUMN maxline integer NULL;
+
+ALTER TABLE llx_commande_fournisseur ADD COLUMN date_livraison date NULL;
View
5 htdocs/install/mysql/tables/llx_commande_fournisseur.sql
@@ -53,11 +53,12 @@ create table llx_commande_fournisseur
note text,
note_public text,
model_pdf varchar(255),
-
+
+ date_livraison date default NULL,
fk_cond_reglement integer, -- condition de reglement
fk_mode_reglement integer, -- mode de reglement
fk_methode_commande integer default 0, -- should be named fk_input_method
import_key varchar(14),
extraparams varchar(255) -- for stock other parameters with json format
-)ENGINE=innodb;
+)ENGINE=innodb;
View
2  htdocs/langs/en_US/mails.lang
@@ -75,6 +75,8 @@ SentTo=Sent to <b>%s</b>
MailingStatusRead=Read
CheckRead=Read Receipt
YourMailUnsubcribeOK=The email <b>%s</b> is correctly unsubcribe from mailing list
+MailtoEMail=Hyper link to email
+ActivateCheckRead=Activate Read receipt and unsubcribe tag
# Libelle des modules de liste de destinataires mailing
MailingModuleDescContactCompanies=Contacts of all third parties (customer, prospect, supplier, ...)
View
2  htdocs/langs/fr_FR/mails.lang
@@ -75,6 +75,8 @@ SentTo=Envoyés à <b>%s</b>
MailingStatusRead=Lu
CheckRead=Accusé de lecture
YourMailUnsubcribeOK=L'adresse e-mail <b>%s</b> est bien désincrite de la liste.
+MailtoEMail=Ecrire a e-mail (lien)
+ActivateCheckRead=Activer les tag d'accusé de lecture et de désincription
# Libelle des modules de liste de destinataires mailing
MailingModuleDescContactCompanies=Contacts de tiers (prospects, clients, fournisseurs...)
View
3  scripts/emailings/mailing-send.php
@@ -139,8 +139,9 @@
$substitutionarray=array(
'__ID__' => $obj->source_id,
'__EMAIL__' => $obj->email,
- '__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj->tag.'" width="0" height="0" style="width:0px;height:0px" border="0"/>',
+ '__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj->tag.'" width="1" height="1" style="width:1px;height:1px" border="0"/>',
'__UNSUSCRIBE__' => '<a href="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-unsubscribe.php?tag='.$obj->tag.'&unsuscrib=1" target="_blank">'.$langs->trans("MailUnsubcribe").'</a>',
+ '__MAILTOEMAIL__' => '<a href="mailto:'.$obj->email.'">'.$obj->email.'</a>',
'__LASTNAME__' => $obj->lastname,
'__FIRSTNAME__' => $obj->firstname,
'__OTHER1__' => $other1,
Please sign in to comment.
Something went wrong with that request. Please try again.