diff --git a/htdocs/admin/boxes.php b/htdocs/admin/boxes.php
index 34e7f48cea8..9354864a174 100644
--- a/htdocs/admin/boxes.php
+++ b/htdocs/admin/boxes.php
@@ -29,8 +29,9 @@ include_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
$langs->load("admin");
-if (!$user->admin)
- accessforbidden();
+$id=GETPOST('rowid','int');
+
+if (!$user->admin) accessforbidden();
// Definition des positions possibles pour les boites
$pos_array = array(0); // Positions possibles pour une boite (0,1,2,...)
@@ -101,7 +102,7 @@ if ($_GET["action"] == 'delete')
$db->begin();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes";
- $sql.= " WHERE rowid=".$_GET["rowid"];
+ $sql.= " WHERE rowid=".$id;
$resql = $db->query($sql);
// Remove all personalized setup when a box is activated or disabled
@@ -288,7 +289,7 @@ if ($resql)
dol_include_once($sourcefile);
$box=new $boxname($db,$obj->note);
-
+
$enabled=true;
if ($box->depends && sizeof($box->depends) > 0)
{
@@ -297,7 +298,7 @@ if ($resql)
if (empty($conf->$module->enabled)) $enabled=false;
}
}
-
+
if ($enabled)
{
//if (in_array($obj->rowid, $actives) && $box->box_multiple <> 1)
@@ -308,7 +309,7 @@ if ($resql)
else
{
$var=!$var;
-
+
if (preg_match('/^([^@]+)@([^@]+)$/i',$box->boximg))
{
$logo = $box->boximg;
@@ -317,14 +318,14 @@ if ($resql)
{
$logo=preg_replace("/^object_/i","",$box->boximg);
}
-
+
print '
';
}
}
-
+
$i++;
}
diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php
index b3f50ac43c7..4bb68c5ac0b 100644
--- a/htdocs/admin/ihm.php
+++ b/htdocs/admin/ihm.php
@@ -38,8 +38,7 @@ $langs->load("companies");
$langs->load("products");
$langs->load("members");
-if (!$user->admin)
- accessforbidden();
+if (!$user->admin) accessforbidden();
if (! defined("MAIN_MOTD")) define("MAIN_MOTD","");
diff --git a/htdocs/admin/tools/purge.php b/htdocs/admin/tools/purge.php
index 414bbbc641e..88db706378f 100644
--- a/htdocs/admin/tools/purge.php
+++ b/htdocs/admin/tools/purge.php
@@ -27,8 +27,11 @@ include_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php');
$langs->load("admin");
-if (! $user->admin)
-accessforbidden();
+$action=GETPOST('action');
+$confirm=GETPOST('confirm');
+$choice=GETPOST('choice');
+
+if (! $user->admin) accessforbidden();
if ($_GET["msg"]) $message=''.$_GET["msg"].'
';
@@ -44,11 +47,11 @@ if ($conf->syslog->enabled)
/*
* Actions
*/
-if ($_REQUEST["action"]=='purge' && ! preg_match('/^confirm/i',$_REQUEST["choice"]) && ($_REQUEST["choice"] != 'allfiles' || $_REQUEST["confirm"] == 'yes') )
+if ($action=='purge' && ! preg_match('/^confirm/i',$choice) && ($choice != 'allfiles' || $confirm == 'yes') )
{
$filesarray=array();
- if ($_REQUEST["choice"]=='tempfiles')
+ if ($choice=='tempfiles')
{
// Delete temporary files
if ($dolibarr_main_data_root)
@@ -57,16 +60,16 @@ if ($_REQUEST["action"]=='purge' && ! preg_match('/^confirm/i',$_REQUEST["choice
}
}
- if ($_REQUEST["choice"]=='allfiles')
+ if ($choice=='allfiles')
{
// Delete all files
if ($dolibarr_main_data_root)
{
- $filesarray=dol_dir_list($dolibarr_main_data_root,"all",0);
+ $filesarray=dol_dir_list($dolibarr_main_data_root,"all",0,'','install\.lock$');
}
}
- if ($_REQUEST["choice"]=='logfile')
+ if ($choice=='logfile')
{
$filesarray[]=array('fullname'=>$filelog,'type'=>'file');
}
@@ -85,7 +88,7 @@ if ($_REQUEST["action"]=='purge' && ! preg_match('/^confirm/i',$_REQUEST["choice
elseif ($filesarray[$key]['type'] == 'file')
{
// If (file that is not logfile) or (if logfile with option logfile)
- if ($filesarray[$key]['fullname'] != $filelog || $_POST["choice"]=='logfile')
+ if ($filesarray[$key]['fullname'] != $filelog || $choice=='logfile')
{
$count+=dol_delete_file($filesarray[$key]['fullname']);
}
@@ -93,7 +96,7 @@ if ($_REQUEST["action"]=='purge' && ! preg_match('/^confirm/i',$_REQUEST["choice
}
// Update cachenbofdoc
- if ($conf->ecm->enabled && $_REQUEST["choice"]=='allfiles')
+ if ($conf->ecm->enabled && $choice=='allfiles')
{
require_once(DOL_DOCUMENT_ROOT."/ecm/class/ecmdirectory.class.php");
$ecmdirstatic = new ECMDirectory($db);
@@ -133,21 +136,21 @@ print '';
if ($conf->syslog->enabled)
{
print ' '.$langs->trans("PurgeDeleteLogFile",$filelog).'
';
}
print ' '.$langs->trans("PurgeDeleteTemporaryFiles").'
';
print ' '.$langs->trans("PurgeDeleteAllFilesInDocumentsDir",$dolibarr_main_data_root).' ';
print ' |
';
-if ($_REQUEST['choice'] != 'confirm_allfiles')
+if ($choice != 'confirm_allfiles')
{
print '
';
print '';
@@ -162,7 +165,7 @@ if ($message)
print "\n";
}
-if (preg_match('/^confirm/i',$_REQUEST["choice"]))
+if (preg_match('/^confirm/i',$choice))
{
print '
';
$formquestion=array();
diff --git a/htdocs/compta/deplacement/index.php b/htdocs/compta/deplacement/index.php
index d6a602663be..7038761ab6d 100644
--- a/htdocs/compta/deplacement/index.php
+++ b/htdocs/compta/deplacement/index.php
@@ -65,6 +65,7 @@ llxHeader('',$langs->trans("ListOfFees"),$help_url);
$totalnb=0;
$sql = "SELECT count(d.rowid) as nb, sum(d.km) as km, d.type";
$sql.= " FROM ".MAIN_DB_PREFIX."deplacement as d";
+$sql.= " WHERE d.entity = ".$conf->entity;
$sql.= " GROUP BY d.type";
$sql.= " ORDER BY d.type";
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index f98efed5e94..58bc36a7328 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -738,6 +738,8 @@ if ($action == 'add' && $user->rights->facture->creer)
for ($i=0;$i<$num;$i++)
{
+ $desc=($lines[$i]->desc?$lines[$i]->desc:$lines[$i]->libelle);
+
if ($lines[$i]->subprice < 0)
{
// Negative line, we create a discount line
@@ -765,7 +767,6 @@ if ($action == 'add' && $user->rights->facture->creer)
else
{
// Positive line
- $desc=($lines[$i]->desc?$lines[$i]->desc:$lines[$i]->libelle);
$product_type=($lines[$i]->product_type?$lines[$i]->product_type:0);
// Date start
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 828c7155912..2bbad2fe9f1 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -1117,10 +1117,11 @@ class Form
function select_produits_fournisseurs($socid,$selected='',$htmlname='productid',$filtertype='',$filtre)
{
global $langs,$conf;
+
if ($conf->global->PRODUIT_USE_SEARCH_TO_SELECT)
{
// mode=2 means suppliers products
- print ajax_autocompleter('', $htmlname, DOL_URL_ROOT.'/product/ajaxproducts.php', 'htmlname='.$htmlname.'&outjson=1&price_level='.$price_level.'&type='.$filtertype.'&mode=2&status='.$status.'&finished='.$finished, $conf->global->PRODUIT_USE_SEARCH_TO_SELECT);
+ print ajax_autocompleter('', $htmlname, DOL_URL_ROOT.'/product/ajaxproducts.php', ($socid > 0?'socid='.$socid.'&':'').'htmlname='.$htmlname.'&outjson=1&price_level='.$price_level.'&type='.$filtertype.'&mode=2&status='.$status.'&finished='.$finished, $conf->global->PRODUIT_USE_SEARCH_TO_SELECT);
print $langs->trans("RefOrLabel").' : ';
print '
';
}
diff --git a/htdocs/core/class/notify.class.php b/htdocs/core/class/notify.class.php
index 6ff624b66ab..167533fc120 100644
--- a/htdocs/core/class/notify.class.php
+++ b/htdocs/core/class/notify.class.php
@@ -98,7 +98,7 @@ class Notify
$sql.= " AND n.fk_soc = s.rowid";
if (is_numeric($action)) $sql.= " AND n.fk_action = ".$action; // Old usage
else $sql.= " AND a.code = '".$action."'"; // New usage
- $sql.= " AND a.entity = ".$conf->entity;
+ //$sql.= " AND n.entity = ".$conf->entity;
$sql.= " AND s.rowid = ".$socid;
dol_syslog("Notify.class::countDefinedNotifications $action, $socid");
diff --git a/htdocs/fichinter/fiche.php b/htdocs/fichinter/fiche.php
index 53045359d42..fd6d52077c5 100644
--- a/htdocs/fichinter/fiche.php
+++ b/htdocs/fichinter/fiche.php
@@ -906,7 +906,7 @@ elseif ($fichinterid)
print '';
print '| ';
print ''; // ancre pour retourner sur la ligne
- print nl2br($objp->description);
+ print dol_htmlentitiesbr($objp->description);
// Date
print ' | '.dol_print_date($db->jdate($objp->date_intervention),'dayhour').' | ';
diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php
index b6453dbba2d..0515c8187c1 100644
--- a/htdocs/fourn/facture/fiche.php
+++ b/htdocs/fourn/facture/fiche.php
@@ -407,8 +407,8 @@ if ($_REQUEST['action'] == 'update_line')
if (trim($_POST['label']) != trim($label)) $label=$_POST['label'];
$type = $prod->type;
- $localtax1_tx = $prod->localtax1_tx;
- $localtax2_tx = $prod->localtax2_tx;
+ $localtax1tx = $prod->localtax1_tx;
+ $localtax2tx = $prod->localtax2_tx;
}
else
{
@@ -468,7 +468,7 @@ if ($_GET['action'] == 'addline')
$type = $product->type;
- $result=$facfou->addline($label, $product->fourn_pu, $tvatx, $localtax2tx, $localtax2tx ,$_POST['qty'], $idprod);
+ $result=$facfou->addline($label, $product->fourn_pu, $tvatx, $localtax1tx, $localtax2tx ,$_POST['qty'], $idprod);
}
if ($idprod == -1)
{
diff --git a/htdocs/fourn/liste.php b/htdocs/fourn/liste.php
index ed3d6fee215..ac8ce018d46 100644
--- a/htdocs/fourn/liste.php
+++ b/htdocs/fourn/liste.php
@@ -40,13 +40,13 @@ $search_compta_fournisseur = GETPOST("search_compta_fournisseur");
$search_datec = GETPOST("search_datec");
// Security check
-$socid = isset($_GET["socid"])?$_GET["socid"]:'';
+$socid = GETPOST('socid');
if ($user->societe_id) $socid=$user->societe_id;
-$result = restrictedArea($user, 'societe',$socid,'');
+$result = restrictedArea($user,'societe',$socid,'');
-$page = isset($_GET["page"])?$_GET["page"]:'';
-$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:'';
-$sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:'';
+$page = GETPOST('page');
+$sortorder = GETPOST('sortorder');
+$sortfield = GETPOST('sortfield');
if ($page == -1) { $page = 0 ; }
$offset = $conf->liste_limit * $page ;
$pageprev = $page - 1;
@@ -55,7 +55,7 @@ if (! $sortorder) $sortorder="ASC";
if (! $sortfield) $sortfield="nom";
// Load categ filters
-$search_categ = isset($_GET["search_categ"])?$_GET["search_categ"]:$_POST["search_categ"];
+$search_categ = GETPOST('search_categ');
/*
@@ -74,12 +74,14 @@ if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.f
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."c_stcomm as st";
if ($search_categ) $sql.= ", ".MAIN_DB_PREFIX."categorie_fournisseur as cf";
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
-$sql.= " WHERE s.fk_stcomm = st.id AND s.fournisseur=1";
+$sql.= " WHERE s.fk_stcomm = st.id AND s.fournisseur = 1";
+$sql.= " AND s.entity = ".$conf->entity;
if ($search_categ) $sql.= " AND s.rowid = cf.fk_societe"; // Join for the needed table to filter by categ
if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
if ($socid) $sql .= " AND s.rowid = ".$socid;
-if ($socname) {
- $sql .= " AND s.nom like '%".$db->escape($socname)."%'";
+if ($socname)
+{
+ $sql .= " AND s.nom LIKE '%".$db->escape($socname)."%'";
$sortfield = "s.nom";
$sortorder = "ASC";
}
diff --git a/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php
index 67f4d1e530b..0093d94826f 100644
--- a/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php
+++ b/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php
@@ -101,7 +101,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
{
$invoice_source->fetch($object->fk_facture_source);
}
- $alreadypayed=price($object->getSommePaiement(),'MT');
+ $alreadypayed=price($object->getSommePaiement(),0,$outputlangs);
return array(
'object_id'=>$object->id,
@@ -117,15 +117,15 @@ class doc_generic_invoice_odt extends ModelePDFFactures
'object_date_validation'=>dol_print_date($object->date_validation,'dayhour'),
'object_payment_mode'=>$object->mode_reglement,
'object_payment_term'=>$object->cond_reglement,
- 'object_total_ht'=>price($object->total_ht),
- 'object_total_vat'=>price($object->total_tva),
- 'object_total_ttc'=>price($object->total_ttc),
+ 'object_total_ht'=>price($object->total_ht,0,$outputlangs),
+ 'object_total_vat'=>price($object->total_tva,0,$outputlangs),
+ 'object_total_ttc'=>price($object->total_ttc,0,$outputlangs),
'object_vatrate'=>vatrate($object->tva),
'object_note_private'=>$object->note,
'object_note'=>$object->note_public,
// Payments
'object_already_payed'=>$alreadypayed,
- 'object_remain_to_pay'=>price($object->total_ttc - $alreadypayed,'MT')
+ 'object_remain_to_pay'=>price($object->total_ttc - $alreadypayed,0,$outputlangs)
);
}
diff --git a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php
index 7af1eb96165..f0508c58592 100644
--- a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php
+++ b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php
@@ -1,8 +1,8 @@
+/* Copyright (C) 2003 Rodolphe Quiedeville
+ * Copyright (C) 2004-2011 Laurent Destailleur
* Copyright (C) 2005-2011 Regis Houssin
* Copyright (C) 2008 Raphael Bertrand
- * Copyright (C) 2010-2011 Juanjo Menent
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,21 +20,20 @@
*/
/**
- * \file htdocs/includes/modules/propale/pdf_propale_jaune.modules.php
+ * \file htdocs/includes/modules/propale/pdf_propale_jaune.modules.php
* \ingroup propale
* \brief Fichier de la classe permettant de generer les propales au modele Jaune
- * \author Laurent Destailleur
+ * \version $Id: pdf_propale_jaune.modules.php,v 1.117 2011/07/31 23:28:16 eldy Exp $
*/
-require_once(DOL_DOCUMENT_ROOT."/includes/modules/propale/modules_propale.php");
-require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
+
+require_once(DOL_DOCUMENT_ROOT ."/includes/modules/propale/modules_propale.php");
require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php");
-require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php");
require_once(DOL_DOCUMENT_ROOT.'/lib/pdf.lib.php');
/**
- * \class pdf_propale_jaune
- * \brief Classe permettant de generer les propales au modele Jaune
+ * \class pdf_propale_jaune
+ * \brief Classe permettant de generer les propales au modele Jaune
*/
class pdf_propale_jaune extends ModelePDFPropales
{
@@ -42,11 +41,10 @@ class pdf_propale_jaune extends ModelePDFPropales
/**
- * Constructor
- *
- * @param DoliDB $DB Database handler
+ * \brief Constructeur
+ * \param db Database access handler
*/
- function pdf_propale_jaune($db)
+ function pdf_propale_jaune($db=0)
{
global $conf,$langs,$mysoc;
@@ -59,60 +57,35 @@ class pdf_propale_jaune extends ModelePDFPropales
// Dimension page pour format A4
$this->type = 'pdf';
- $formatarray=pdf_getFormat();
- $this->page_largeur = $formatarray['width'];
- $this->page_hauteur = $formatarray['height'];
+ $this->page_largeur = 210;
+ $this->page_hauteur = 297;
$this->format = array($this->page_largeur,$this->page_hauteur);
$this->marge_gauche=10;
$this->marge_droite=10;
$this->marge_haute=10;
$this->marge_basse=10;
- $this->option_logo = 1; // Affiche logo
- $this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION
- $this->option_modereg = 1; // Affiche mode reglement
- $this->option_condreg = 1; // Affiche conditions reglement
- $this->option_codeproduitservice = 1; // Affiche code produit-service
- $this->option_multilang = 1; // Dispo en plusieurs langues
- $this->option_escompte = 1; // Affiche si il y a eu escompte
- $this->option_credit_note = 1; // Gere les avoirs
- $this->option_freetext = 1; // Support add of a personalised text
$this->option_draft_watermark = 1; //Support add of a watermark on drafts
- $this->franchise=!$mysoc->tva_assuj;
+ $this->error = "";
// Recupere emetteur
$this->emetteur=$mysoc;
- if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'etait pas defini
-
- // Defini position des colonnes
- $this->posxdesc=$this->marge_gauche+1;
- $this->posxtva=111;
- $this->posxup=126;
- $this->posxqty=145;
- $this->posxdiscount=162;
- $this->postotalht=174;
-
- $this->tva=array();
- $this->localtax1=array();
- $this->localtax2=array();
- $this->atleastoneratenotnull=0;
- $this->atleastonediscount=0;
+ if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si on ne trouve pas
}
+
/**
* Function to build pdf onto disk
- *
- * @param int $object Id of object to generate
- * @param object $outputlangs Lang output object
- * @param string $srctemplatepath Full path of source filename for generator using a template file
- * @param int $hidedetails Do not show line details
- * @param int $hidedesc Do not show desc
- * @param int $hideref Do not show ref
- * @param object $hookmanager Hookmanager object
- * @return int 1=OK, 0=KO
+ * @param object Id of object to generate
+ * @param outputlangs Lang output object
+ * @param srctemplatepath Full path of source filename for generator using a template file
+ * @param hidedetails Do not show line details
+ * @param hidedesc Do not show desc
+ * @param hideref Do not show ref
+ * @return int 1=OK, 0=KO
*/
- function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0,$hookmanager=false)
+ function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
{
global $user,$langs,$conf;
$default_font_size = pdf_getPDFFontSize($outputlangs);
@@ -120,7 +93,7 @@ class pdf_propale_jaune extends ModelePDFPropales
if (! is_object($outputlangs)) $outputlangs=$langs;
// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
$sav_charset_output=$outputlangs->charset_output;
- if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
+ if (!class_exists('TCPDF')) $outputlangs->charset_output='ISO-8859-1';
$outputlangs->load("main");
$outputlangs->load("dict");
@@ -132,7 +105,6 @@ class pdf_propale_jaune extends ModelePDFPropales
if ($conf->propale->dir_output)
{
$object->fetch_thirdparty();
-
$deja_regle = "";
// Definition de $dir et $file
@@ -159,9 +131,6 @@ class pdf_propale_jaune extends ModelePDFPropales
if (file_exists($dir))
{
- $nblignes = count($object->lines);
-
- // Create pdf instance
$pdf=pdf_getInstance($this->format);
if (class_exists('TCPDF'))
@@ -185,128 +154,67 @@ class pdf_propale_jaune extends ModelePDFPropales
$pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right
$pdf->SetAutoPageBreak(1,0);
- // Positionne $this->atleastonediscount si on a au moins une remise
- for ($i = 0 ; $i < $nblignes ; $i++)
- {
- if ($object->lines[$i]->remise_percent)
- {
- $this->atleastonediscount++;
- }
- }
-
// New page
$pdf->AddPage();
$pagenb++;
$this->_pagehead($pdf, $object, 1, $outputlangs);
$pdf->SetFont('','', $default_font_size - 1);
- $pdf->MultiCell(0, 4, ''); // Set interline to 4
+ $pdf->MultiCell(0, 3, ''); // Set interline to 3
$pdf->SetTextColor(0,0,0);
- $tab_top = 90;
- $tab_top_middlepage = 50;
- $tab_top_newpage = 50;
+ $tab_top = 100;
$tab_height = 130;
- $tab_height_middlepage = 200;
- $tab_height_endpage = 170;
- // Affiche notes
- if (! empty($object->note_public))
- {
- $tab_top = 88;
+ $pdf->SetFillColor(242,239,119);
+ $pdf->SetXY (10, $tab_top + 10 );
- $pdf->SetFont('','', $default_font_size - 1); // Dans boucle pour gerer multi-page
- $pdf->SetXY($this->posxdesc-1, $tab_top);
- $pdf->MultiCell(190, 4, $outputlangs->convToOutputCharset($object->note_public), 0, 'L');
- $nexY = $pdf->GetY();
- $height_note=$nexY-$tab_top;
-
- // Rect prend une longueur en 3eme param
- //$pdf->SetDrawColor(192,192,192);
- //$pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note+1);
-
- $tab_height = $tab_height - $height_note;
- $tab_top = $nexY+6;
- }
- else
- {
- $height_note=0;
- }
-
- $iniY = $tab_top + 7;
- $curY = $tab_top + 7;
- $nexY = $tab_top + 7;
+ $iniY = $tab_top + 12;
+ $curY = $tab_top + 12;
+ $nexY = $tab_top + 12;
+ $nblignes = sizeof($object->lines);
// Loop on each lines
for ($i = 0 ; $i < $nblignes ; $i++)
{
$curY = $nexY;
- $pdf->SetFont('','', $default_font_size - 1); // Dans boucle pour gerer multi-page
+ $pdf->SetFont('','', $default_font_size - 1); // Dans boucle pour gerer multi-page
- // Description de la ligne produit
- $curX = $this->posxdesc-1;
- pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc,0,$hookmanager);
+ // Description de la ligne produit
+ pdf_writelinedesc($pdf,$object,$i,$outputlangs,102,4,30,$curY,1,$hidedesc);
$pdf->SetFont('','', $default_font_size - 1); // On repositionne la police par defaut
$nexY = $pdf->GetY();
- // TVA
- if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
- {
- $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails, $hookmanager);
- $pdf->SetXY($this->posxtva, $curY);
- $pdf->MultiCell($this->posxup-$this->posxtva-1, 4, $vat_rate, 0, 'R');
- }
+ $ref = pdf_getlineref($object, $i, $outputlangs);
+ $pdf->SetXY (10, $curY );
+ $pdf->MultiCell(20, 4, $ref, 0, 'L', 0);
- // Prix unitaire HT avant remise
- $up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails, $hookmanager);
- $pdf->SetXY($this->posxup, $curY);
- $pdf->MultiCell($this->posxqty-$this->posxup-1, 4, $up_excl_tax, 0, 'R', 0);
+ $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails);
+ $pdf->SetXY (132, $curY );
+ $pdf->MultiCell(12, 4, $vat_rate, 0, 'R');
- // Quantity
- $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails, $hookmanager);
- $pdf->SetXY($this->posxqty, $curY);
- $pdf->MultiCell($this->posxdiscount-$this->posxqty-1, 4, $qty, 0, 'R');
+ $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails);
+ $pdf->SetXY (144, $curY );
+ $pdf->MultiCell(10, 4, $qty, 0, 'R', 0);
- // Remise sur ligne
- $pdf->SetXY($this->posxdiscount, $curY);
- if ($object->lines[$i]->remise_percent)
- {
- $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails, $hookmanager);
- $pdf->MultiCell($this->postotalht-$this->posxdiscount-1, 4, $remise_percent, 0, 'R');
- }
+ $up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails);
+ $pdf->SetXY (154, $curY );
+ $pdf->MultiCell(22, 4, $up_excl_tax, 0, 'R', 0);
- // Total HT ligne
- $total_excl_tax = pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails, $hookmanager);
- $pdf->SetXY($this->postotalht, $curY);
- $pdf->MultiCell(26, 4, $total_excl_tax, 0, 'R', 0);
+ $total_excl_tax = pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails);
+ $pdf->SetXY (176, $curY );
+ $pdf->MultiCell(24, 4, $total_excl_tax, 0, 'R', 0);
- // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva
- $tvaligne=$object->lines[$i]->total_tva;
- $localtax1ligne=$object->lines[$i]->total_localtax1;
- $localtax2ligne=$object->lines[$i]->total_localtax2;
-
- if ($object->remise_percent) $tvaligne-=($tvaligne*$object->remise_percent)/100;
- if ($object->remise_percent) $localtax1ligne-=($localtax1ligne*$object->remise_percent)/100;
- if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100;
-
- $vatrate=(string) $object->lines[$i]->tva_tx;
- $localtax1rate=(string) $object->lines[$i]->localtax1_tx;
- $localtax2rate=(string) $object->lines[$i]->localtax2_tx;
-
- if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*';
-
- $this->tva[$vatrate] += $tvaligne;
- $this->localtax1[$localtax1rate]+=$localtax1ligne;
- $this->localtax2[$localtax2rate]+=$localtax2ligne;
+ //$pdf->line(10, $curY, 200, $curY );
$nexY+=2; // Passe espace entre les lignes
- // Cherche nombre de lignes a venir pour savoir si place suffisante
- if ($i < ($nblignes - 1) && empty($hidedesc)) // If it's not last line
+ // cherche nombre de lignes a venir pour savoir si place suffisante
+ if ($i < ($nblignes - 1)) // If it's not last line
{
//on recupere la description du produit suivant
- $follow_descproduitservice = $object->lines[$i+1]->desc;
+ $follow_descproduitservice = $outputlangs->convToOutputCharset($object->lines[$i+1]->desc);
//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4);
}
@@ -315,30 +223,13 @@ class pdf_propale_jaune extends ModelePDFPropales
$nblineFollowDesc = 0;
}
- // Test if a new page is required
- if ($pagenb == 1)
+ // test si besoin nouvelle page
+ if (($nexY+$nblineFollowDesc) > ($tab_top+$tab_height) && $i < ($nblignes - 1))
{
- $tab_top_in_current_page=$tab_top;
- $tab_height_in_current_page=$tab_height;
- }
- else
- {
- $tab_top_in_current_page=$tab_top_newpage;
- $tab_height_in_current_page=$tab_height_middlepage;
- }
- if (($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1))
- {
- if ($pagenb == 1)
- {
- $this->_tableau($pdf, $tab_top, $tab_height + 20, $nexY, $outputlangs);
- }
- else
- {
- $this->_tableau($pdf, $tab_top_newpage, $tab_height_middlepage, $nexY, $outputlangs);
- }
-
$this->_pagefoot($pdf,$object,$outputlangs);
+ $this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs);
+
// New page
$pdf->AddPage();
$pagenb++;
@@ -347,34 +238,39 @@ class pdf_propale_jaune extends ModelePDFPropales
$pdf->MultiCell(0, 3, ''); // Set interline to 3
$pdf->SetTextColor(0,0,0);
- $nexY = $tab_top_newpage + 7;
+ $nexY = $tab_top + 8;
}
-
}
- // Show square
- if ($pagenb == 1)
- {
- $this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs);
- $bottomlasttab=$tab_top + $tab_height + 1;
- }
- else
- {
- $this->_tableau($pdf, $tab_top_newpage, $tab_height_endpage, $nexY, $outputlangs);
- $bottomlasttab=$tab_top_newpage + $tab_height_endpage + 1;
- }
+ $this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs);
+
+ $bottomlasttab=$tab_top + $tab_height + 1;
// Affiche zone infos
- $posy=$this->_tableau_info($pdf, $object, $bottomlasttab, $outputlangs);
+ $this->_tableau_info($pdf, $object, $bottomlasttab, $outputlangs);
- // Affiche zone totaux
- $posy=$this->_tableau_tot($pdf, $object, $deja_regle, $bottomlasttab, $outputlangs);
+ $tab2_top = $tab_top + $tab_height;
+ $tab2_lh = 4;
- // Affiche zone versements
- if ($deja_regle)
- {
- $posy=$this->_tableau_versements($pdf, $object, $posy, $outputlangs);
- }
+ $pdf->SetFont('','', $default_font_size);
+
+ $pdf->SetXY (132, $tab2_top + 0);
+ $pdf->MultiCell(42, $tab2_lh, $outputlangs->transnoentities("TotalHT"), 0, 'R', 0);
+
+ $pdf->SetXY (132, $tab2_top + $tab2_lh);
+ $pdf->MultiCell(42, $tab2_lh, $outputlangs->transnoentities("TotalVAT"), 0, 'R', 0);
+
+ $pdf->SetXY (132, $tab2_top + ($tab2_lh*2));
+ $pdf->MultiCell(42, $tab2_lh, $outputlangs->transnoentities("TotalTTC"), 1, 'R', 1);
+
+ $pdf->SetXY (174, $tab2_top + 0);
+ $pdf->MultiCell(26, $tab2_lh, price($object->total_ht), 0, 'R', 0);
+
+ $pdf->SetXY (174, $tab2_top + $tab2_lh);
+ $pdf->MultiCell(26, $tab2_lh, price($object->total_tva), 0, 'R', 0);
+
+ $pdf->SetXY (174, $tab2_top + ($tab2_lh*2));
+ $pdf->MultiCell(26, $tab2_lh, price($object->total_ttc), 1, 'R', 1);
// Pied de page
$this->_pagefoot($pdf,$object,$outputlangs);
@@ -386,52 +282,18 @@ class pdf_propale_jaune extends ModelePDFPropales
if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK));
- // Add external file
- //$pdfConcat = new concat_pdf();
- //$pdfConcat->setFiles(array($file, DOL_DOCUMENT_ROOT."/includes/modules/propale/morefile.pdf"));
- //$pdfConcat->concat();
- //$pdf->AliasNbPages();
- //$pdfConcat->Output($file,'F');
-
- $outputlangs->charset_output=$sav_charset_output;
- return 1; // Pas d'erreur
- }
- else
- {
- $this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
- return 0;
+ return 1;
}
}
- else
- {
- $this->error=$langs->trans("ErrorConstantNotDefined","PROP_OUTPUTDIR");
- return 0;
- }
-
- $this->error=$langs->trans("ErrorUnknown");
- return 0; // Erreur par defaut
}
- /*
- * Affiche tableau des versement
- *
- * @param pdf Objet PDF
- * @param object Objet propale
- */
- function _tableau_versements(&$pdf, $object, $posy, $outputlangs)
- {
-
- }
-
-
/**
- * Affiche infos divers
- *
- * @param pdf Objet PDF
- * @param object Objet facture
- * @param posy Position depart
- * @param outputlangs Objet langs
- * @return y Position pour suite
+ * \brief Affiche infos divers
+ * \param pdf Objet PDF
+ * \param object Objet commande
+ * \param posy Position depart
+ * \param outputlangs Objet langs
+ * \return y Position pour suite
*/
function _tableau_info(&$pdf, $object, $posy, $outputlangs)
{
@@ -440,7 +302,7 @@ class pdf_propale_jaune extends ModelePDFPropales
$pdf->SetFont('','', $default_font_size - 1);
- // If France, show VAT mention if not applicable
+ // If France, show VAT mention if not applicable
if ($this->emetteur->pays_code == 'FR' && $this->franchise == 1)
{
$pdf->SetFont('','B', $default_font_size - 2);
@@ -467,7 +329,7 @@ class pdf_propale_jaune extends ModelePDFPropales
$posy=$pdf->GetY()+1;
}
- // Show payments conditions
+ // Show payments conditions
if ($object->type != 2 && ($object->cond_reglement_code || $object->cond_reglement))
{
$pdf->SetFont('','B', $default_font_size - 2);
@@ -484,558 +346,291 @@ class pdf_propale_jaune extends ModelePDFPropales
$posy=$pdf->GetY()+3;
}
-
if ($object->type != 2)
{
- // Check a payment mode is defined
- if (empty($object->mode_reglement_code)
- && ! $conf->global->FACTURE_CHQ_NUMBER
- && ! $conf->global->FACTURE_RIB_NUMBER)
+ // Check a payment mode is defined
+ /* Not used with orders
+ if (empty($object->mode_reglement_code)
+ && ! $conf->global->FACTURE_CHQ_NUMBER
+ && ! $conf->global->FACTURE_RIB_NUMBER)
{
- $pdf->SetXY($this->marge_gauche, $posy);
- $pdf->SetTextColor(200,0,0);
+ $pdf->SetXY($this->marge_gauche, $posy);
+ $pdf->SetTextColor(200,0,0);
$pdf->SetFont('','B', $default_font_size - 2);
- $pdf->MultiCell(90, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0);
- $pdf->SetTextColor(0,0,0);
+ $pdf->MultiCell(90, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0);
+ $pdf->SetTextColor(0,0,0);
- $posy=$pdf->GetY()+1;
- }
+ $posy=$pdf->GetY()+1;
+ }*/
- // Shown payment mode
- if ($object->mode_reglement_code
- && $object->mode_reglement_code != 'CHQ'
- && $object->mode_reglement_code != 'VIR')
- {
- $pdf->SetFont('','B', $default_font_size - 2);
- $pdf->SetXY($this->marge_gauche, $posy);
- $titre = $outputlangs->transnoentities("PaymentMode").':';
- $pdf->MultiCell(80, 5, $titre, 0, 'L');
- $pdf->SetFont('','', $default_font_size - 2);
- $pdf->SetXY(50, $posy);
- $lib_mode_reg=$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code)!=('PaymentType'.$object->mode_reglement_code)?$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code):$outputlangs->convToOutputCharset($object->mode_reglement);
- $pdf->MultiCell(80, 5, $lib_mode_reg,0,'L');
+ // Show payment mode
+ if ($object->mode_reglement_code
+ && $object->mode_reglement_code != 'CHQ'
+ && $object->mode_reglement_code != 'VIR')
+ {
+ $pdf->SetFont('','B', $default_font_size - 2);
+ $pdf->SetXY($this->marge_gauche, $posy);
+ $titre = $outputlangs->transnoentities("PaymentMode").':';
+ $pdf->MultiCell(80, 5, $titre, 0, 'L');
- $posy=$pdf->GetY()+2;
- }
+ $pdf->SetFont('','', $default_font_size - 2);
+ $pdf->SetXY(50, $posy);
+ //print "xxx".$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code);exit;
+ $lib_mode_reg=$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code)!=('PaymentType'.$object->mode_reglement_code)?$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code):$outputlangs->convToOutputCharset($object->mode_reglement);
+ $pdf->MultiCell(80, 5, $lib_mode_reg,0,'L');
+
+ $posy=$pdf->GetY()+2;
+ }
// Show payment mode CHQ
- if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ')
- {
- // Si mode reglement non force ou si force a CHQ
- if ($conf->global->FACTURE_CHQ_NUMBER)
- {
- if ($conf->global->FACTURE_CHQ_NUMBER > 0)
- {
- $account = new Account($this->db);
- $account->fetch($conf->global->FACTURE_CHQ_NUMBER);
+ if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ')
+ {
+ // Si mode reglement non force ou si force a CHQ
+ if ($conf->global->FACTURE_CHQ_NUMBER)
+ {
+ if ($conf->global->FACTURE_CHQ_NUMBER > 0)
+ {
+ $account = new Account($this->db);
+ $account->fetch($conf->global->FACTURE_CHQ_NUMBER);
- $pdf->SetXY($this->marge_gauche, $posy);
- $pdf->SetFont('','B', $default_font_size - 2);
- $pdf->MultiCell(90, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$account->proprio).':',0,'L',0);
- $posy=$pdf->GetY()+1;
+ $pdf->SetXY($this->marge_gauche, $posy);
+ $pdf->SetFont('','B', $default_font_size - 2);
+ $pdf->MultiCell(90, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$account->proprio).':',0,'L',0);
+ $posy=$pdf->GetY()+1;
- $pdf->SetXY($this->marge_gauche, $posy);
+ $pdf->SetXY($this->marge_gauche, $posy);
$pdf->SetFont('','', $default_font_size - 2);
- $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($account->adresse_proprio), 0, 'L', 0);
- $posy=$pdf->GetY()+2;
- }
- if ($conf->global->FACTURE_CHQ_NUMBER == -1)
- {
- $pdf->SetXY($this->marge_gauche, $posy);
- $pdf->SetFont('','B', $default_font_size - 2);
- $pdf->MultiCell(90, 3, $outputlangs->transnoentities('PaymentByChequeOrderedToShort').' '.$outputlangs->convToOutputCharset($this->emetteur->name).' '.$outputlangs->transnoentities('SendTo').':',0,'L',0);
- $posy=$pdf->GetY()+1;
+ $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($account->adresse_proprio), 0, 'L', 0);
+ $posy=$pdf->GetY()+2;
+ }
+ if ($conf->global->FACTURE_CHQ_NUMBER == -1)
+ {
+ $pdf->SetXY($this->marge_gauche, $posy);
+ $pdf->SetFont('','B',$default_font_size - 2);
+ $pdf->MultiCell(90, 3, $outputlangs->transnoentities('PaymentByChequeOrderedToShort').' '.$outputlangs->convToOutputCharset($this->emetteur->name).' '.$outputlangs->transnoentities('SendTo').':',0,'L',0);
+ $posy=$pdf->GetY()+1;
- $pdf->SetXY($this->marge_gauche, $posy);
+ $pdf->SetXY($this->marge_gauche, $posy);
$pdf->SetFont('','', $default_font_size - 2);
- $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0);
- $posy=$pdf->GetY()+2;
- }
- }
+ $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0);
+ $posy=$pdf->GetY()+2;
+ }
+ }
}
- // If payment mode not forced or forced to VIR, show payment with BAN
- if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR')
- {
- if (! empty($conf->global->FACTURE_RIB_NUMBER))
- {
- $account = new Account($this->db);
- $account->fetch($conf->global->FACTURE_RIB_NUMBER);
+ // If payment mode not forced or forced to VIR, show payment with BAN
+ /* Not enough space
+ if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR')
+ {
+ if (! empty($conf->global->FACTURE_RIB_NUMBER))
+ {
+ $account = new Account($this->db);
+ $account->fetch($conf->global->FACTURE_RIB_NUMBER);
- $curx=$this->marge_gauche;
- $cury=$posy;
+ $curx=$this->marge_gauche;
+ $cury=$posy;
- $posy=pdf_bank($pdf,$outputlangs,$curx,$cury,$account);
+ $posy=pdf_bank($pdf,$outputlangs,$curx,$cury,$account);
- $posy+=2;
- }
+ $posy+=2;
+ }
}
+ */
}
return $posy;
}
-
/**
- * Show total to pay
+ * Enter description here...
*
- * @param pdf Objet PDF
- * @param object Objet propale
- * @param deja_regle Montant deja regle
- * @param posy Position depart
- * @param outputlangs Objet langs
- * @return y Position pour suite
- */
- function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs)
- {
- global $conf,$mysoc;
- $default_font_size = pdf_getPDFFontSize($outputlangs);
-
- $tab2_top = $posy;
- $tab2_hl = 4;
- $pdf->SetFont('','', $default_font_size - 1);
-
- // Tableau total
- $lltot = 200; $col1x = 120; $col2x = 170; $largcol2 = $lltot - $col2x;
-
- // Total HT
- $pdf->SetFillColor(255,255,255);
- $pdf->SetXY($col1x, $tab2_top + 0);
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
-
- $pdf->SetXY($col2x, $tab2_top + 0);
- $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ht + $object->remise), 0, 'R', 1);
-
- $index = 0;
-
- // Show VAT by rates and total
- $pdf->SetFillColor(248,248,248);
-
- $this->atleastoneratenotnull=0;
- if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
- {
- foreach( $this->tva as $tvakey => $tvaval )
- {
- if ($tvakey > 0) // On affiche pas taux 0
- {
- $this->atleastoneratenotnull++;
-
- $index++;
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
-
- $tvacompl='';
- if (preg_match('/\*/',$tvakey))
- {
- $tvakey=str_replace('*','',$tvakey);
- $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
- }
- $totalvat =$outputlangs->transnoentities("TotalVAT").' ';
- $totalvat.=vatrate($tvakey,1).$tvacompl;
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
-
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval), 0, 'R', 1);
- }
- }
-
- if (! $this->atleastoneratenotnull) // If not vat at all
- {
- $index++;
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalVAT"), 0, 'L', 1);
-
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_tva), 0, 'R', 1);
-
- // Total LocalTax1
- if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on' && $object->total_localtax1>0)
- {
- $index++;
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalLT1".$mysoc->pays_code), $useborder, 'L', 1);
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_localtax1), $useborder, 'R', 1);
- }
-
- // Total LocalTax2
- if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on' && $object->total_localtax2>0)
- {
- $index++;
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalLT2".$mysoc->pays_code), $useborder, 'L', 1);
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_localtax2), $useborder, 'R', 1);
- }
- }
- else
- {
- //Local tax 1
- if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on')
- {
- foreach( $this->localtax1 as $tvakey => $tvaval )
- {
- if ($tvakey>0) // On affiche pas taux 0
- {
- //$this->atleastoneratenotnull++;
-
- $index++;
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
-
- $tvacompl='';
- if (preg_match('/\*/',$tvakey))
- {
- $tvakey=str_replace('*','',$tvakey);
- $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
- }
- $totalvat = $outputlangs->transnoentities("TotalLT1".$mysoc->pays_code).' ';
- $totalvat.=vatrate($tvakey,1).$tvacompl;
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
-
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval), 0, 'R', 1);
- }
- }
- }
-
- //Local tax 2
- if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on')
- {
- foreach( $this->localtax2 as $tvakey => $tvaval )
- {
- if ($tvakey>0) // On affiche pas taux 0
- {
- //$this->atleastoneratenotnull++;
-
- $index++;
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
-
- $tvacompl='';
- if (preg_match('/\*/',$tvakey))
- {
- $tvakey=str_replace('*','',$tvakey);
- $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
- }
- $totalvat = $outputlangs->transnoentities("TotalLT2".$mysoc->pays_code).' ';
- $totalvat.=vatrate($tvakey,1).$tvacompl;
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
-
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval), 0, 'R', 1);
-
- }
- }
- }
- }
- }
-
- $useborder=0;
-
- // Total TTC
- if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
- {
- $index++;
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
- $pdf->SetTextColor(0,0,60);
- $pdf->SetFillColor(224,224,124);
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
-
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ttc), $useborder, 'R', 1);
- $pdf->SetTextColor(0,0,0);
- }
-
- if ($deja_regle > 0)
- {
- $index++;
-
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("AlreadyPaid"), 0, 'L', 0);
-
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($deja_regle), 0, 'R', 0);
-
- $resteapayer = $object->total_ttc - $deja_regle;
- if ($object->paye) $resteapayer=0;
-
- if ($object->close_code == 'discount_vat')
- {
- $index++;
- $pdf->SetFillColor(255,255,255);
-
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("EscompteOffered"), $useborder, 'L', 1);
-
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ttc - $deja_regle), $useborder, 'R', 1);
-
- $resteapayer=0;
- }
-
- $index++;
- $pdf->SetTextColor(0,0,60);
- $pdf->SetFillColor(224,224,224);
- $pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RemainderToPay"), $useborder, 'L', 1);
-
- $pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
- $pdf->MultiCell($largcol2, $tab2_hl, price($resteapayer), $useborder, 'R', 1);
-
- // Fin
- $pdf->SetFont('','', $default_font_size - 1);
- $pdf->SetTextColor(0,0,0);
- }
-
- $index++;
- return ($tab2_top + ($tab2_hl * $index));
- }
-
- /**
- * Affiche la grille des lignes de propales
- *
- * @param pdf objet PDF
+ * @param $pdf
+ * @param $tab_top
+ * @param $tab_height
+ * @param $nexY
+ * @param $outputlangs
*/
function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs)
{
- global $conf;
+ global $langs,$conf;
+ $langs->load("main");
+ $langs->load("bills");
+
$default_font_size = pdf_getPDFFontSize($outputlangs);
// Montants exprimes en (en tab_top - 1)
$pdf->SetTextColor(0,0,0);
- $pdf->SetFont('','',$default_font_size - 2);
+ $pdf->SetFont('','', $default_font_size - 2);
$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentitiesnoconv("Currency".$conf->monnaie));
$pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3), $tab_top-4);
$pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre);
- $pdf->SetDrawColor(200,200,128);
+ $pdf->SetFont('','', $default_font_size - 1);
- // Rect prend une longueur en 3eme param
- $pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height);
- // line prend une position y en 3eme param
- $pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5);
+ $haut=6;
- $pdf->SetFont('','',$default_font_size - 1);
+ $pdf->SetXY(10,$tab_top);
+ $pdf->MultiCell(20,$haut,$outputlangs->transnoentities("Ref"),0,'L',1);
- $pdf->SetXY($this->posxdesc-1, $tab_top+1);
- $pdf->MultiCell(108,2, $outputlangs->transnoentities("Designation"),'','L');
+ $pdf->SetXY(30,$tab_top);
+ $pdf->MultiCell(102,$haut,$outputlangs->transnoentities("Designation"),0,'L',1);
- if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
- {
- $pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height);
- $pdf->SetXY($this->posxtva-3, $tab_top+1);
- $pdf->MultiCell($this->posxup-$this->posxtva+3,2, $outputlangs->transnoentities("VAT"),'','C');
- }
+ $pdf->line(132, $tab_top, 132, $tab_top + $tab_height);
+ $pdf->SetXY(132,$tab_top);
+ $pdf->MultiCell(12, $haut,$outputlangs->transnoentities("VAT"),0,'C',1);
- $pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height);
- $pdf->SetXY($this->posxup-1, $tab_top+1);
- $pdf->MultiCell($this->posxqty-$this->posxup-1,2, $outputlangs->transnoentities("PriceUHT"),'','C');
+ $pdf->line(144, $tab_top, 144, $tab_top + $tab_height);
+ $pdf->SetXY(144,$tab_top);
+ $pdf->MultiCell(10,$haut,$outputlangs->transnoentities("Qty"),0,'C',1);
- $pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height);
- $pdf->SetXY($this->posxqty-1, $tab_top+1);
- $pdf->MultiCell($this->posxdiscount-$this->posxqty-1,2, $outputlangs->transnoentities("Qty"),'','C');
+ $pdf->line(154, $tab_top, 154, $tab_top + $tab_height);
+ $pdf->SetXY(154,$tab_top);
+ $pdf->MultiCell(22,$haut,$outputlangs->transnoentities("PriceU"),0,'R',1);
- $pdf->line($this->posxdiscount-1, $tab_top, $this->posxdiscount-1, $tab_top + $tab_height);
- if ($this->atleastonediscount)
- {
- $pdf->SetXY($this->posxdiscount-1, $tab_top+1);
- $pdf->MultiCell($this->postotalht-$this->posxdiscount+1,2, $outputlangs->transnoentities("ReductionShort"),'','C');
- }
+ $pdf->line(176, $tab_top, 176, $tab_top + $tab_height);
+ $pdf->SetXY(176,$tab_top);
+ $pdf->MultiCell(24,$haut,$outputlangs->transnoentities("Total"),0,'R',1);
- if ($this->atleastonediscount)
- {
- $pdf->line($this->postotalht, $tab_top, $this->postotalht, $tab_top + $tab_height);
- }
- $pdf->SetXY($this->postotalht-1, $tab_top+1);
- $pdf->MultiCell(30,2, $outputlangs->transnoentities("TotalHT"),'','C');
+ $pdf->Rect(10, $tab_top, 190, $tab_height);
+ $pdf->SetTextColor(0,0,0);
+ $pdf->SetFont('','', $default_font_size);
}
- /**
- * Show header of document
- *
- * @param pdf Object PDF
- * @param object Object commercial proposal
- * @param showaddress 0=no, 1=yes
- * @param outputlangs Object lang for output
- */
- function _pagehead(&$pdf, $object, $showaddress=1, $outputlangs)
+
+ /**
+ * Show header of document
+ * @param pdf Object PDF
+ * @param object Object commercial proposal
+ * @param showaddress 0=no, 1=yes
+ * @param outputlangs Object lang for output
+ */
+ function _pagehead(&$pdf, $object, $showadress=1, $outputlangs)
{
global $conf,$langs;
$default_font_size = pdf_getPDFFontSize($outputlangs);
- $outputlangs->load("main");
- $outputlangs->load("bills");
- $outputlangs->load("propal");
- $outputlangs->load("companies");
-
pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
//Affiche le filigrane brouillon - Print Draft Watermark
- if($object->statut==0 && (! empty($conf->global->PROPALE_DRAFT_WATERMARK)) )
+ if($object->statut==0 && ! empty($conf->global->PROPALE_DRAFT_WATERMARK))
{
pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->PROPALE_DRAFT_WATERMARK);
}
- //Prepare la suite
- $pdf->SetTextColor(0,0,60);
- $pdf->SetFont('','B', $default_font_size + 3);
+ $posy=42;
- $posx=$this->page_largeur-$this->marge_droite-100;
- $posy=$this->marge_haute;
+ $pdf->SetXY($this->marge_gauche+2,$posy);
- $pdf->SetXY($this->marge_gauche,$posy);
+ // Sender name
+ $pdf->SetTextColor(0,0,00);
+ $pdf->SetFont('','B', $default_font_size);
+ $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L');
- // Logo
- $logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
- if ($this->emetteur->logo)
- {
- if (is_readable($logo))
- {
- $pdf->Image($logo, $this->marge_gauche, $posy, 0, 24);
- }
- else
- {
- $pdf->SetTextColor(200,0,0);
- $pdf->SetFont('','B',$default_font_size - 2);
- $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
- $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
- }
- }
- else
- {
- $text=$this->emetteur->name;
- $pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
- }
+ // Sender properties
+ $carac_emetteur='';
+ // Add internal contact of proposal if defined
+ $arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
+ if (sizeof($arrayidcontact) > 0)
+ {
+ $object->fetch_user($arrayidcontact[0]);
+ $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->transnoentities("Name").": ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";
+ }
- $pdf->SetFont('','B',$default_font_size + 3);
- $pdf->SetXY($posx,$posy);
- $pdf->SetTextColor(0,0,60);
- $title=$outputlangs->transnoentities("CommercialProposal");
- $pdf->MultiCell(100, 4, $title, '', 'R');
+ $carac_emetteur .= pdf_build_address($outputlangs,$this->emetteur);
- $pdf->SetFont('','B',$default_font_size + 2);
+ $pdf->SetFont('','', $default_font_size - 1);
+ $pdf->SetXY($this->marge_gauche+2,$posy+4);
+ $pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L');
+
+
+ $pdf->rect(10, 40, 80, 40);
+
+ $pdf->SetXY(10,5);
+ $pdf->SetFont('','B', $default_font_size + 6);
+ $pdf->SetTextColor(0,0,200);
+ $pdf->MultiCell(200, 20, $outputlangs->transnoentities("CommercialProposal"), '' , 'C');
+
+ // Cadre client destinataire
+ $pdf->rect(100, 40, 100, 40);
+
+ $pdf->SetTextColor(200,0,0);
+ $pdf->SetFont('','B', $default_font_size + 2);
+
+ $pdf->rect(10, 90, 100, 10);
+ $pdf->rect(110, 90, 90, 10);
+
+ $pdf->SetXY(10,90);
+ $pdf->MultiCell(110, 10, $outputlangs->transnoentities("Ref")." : ".$outputlangs->convToOutputCharset($object->ref), 0, 'L');
+ $pdf->SetXY(110,90);
+ $pdf->MultiCell(100, 10, $outputlangs->transnoentities("Date")." : " . dol_print_date($object->date,'day',false,$outputlangs,true), 0, 'L');
+
+ $posy=15;
+ $pdf->SetFont('','', $default_font_size);
$posy+=5;
- $pdf->SetXY($posx,$posy);
+ $pdf->SetXY(100,$posy);
$pdf->SetTextColor(0,0,60);
- $pdf->MultiCell(100, 4, $outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref), '', 'R');
-
- $posy+=1;
- $pdf->SetFont('','', $default_font_size);
+ $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref), '', 'R');
if ($object->ref_client)
{
$posy+=5;
- $pdf->SetXY($posx,$posy);
+ $pdf->SetXY(100,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R');
}
- $posy+=4;
- $pdf->SetXY($posx,$posy);
- $pdf->SetTextColor(0,0,60);
- $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Date")." : " . dol_print_date($object->date,"day",false,$outputlangs,true), '', 'R');
-
- $posy+=4;
- $pdf->SetXY($posx,$posy);
+ $posy+=5;
+ $pdf->SetXY(100,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("DateEndPropal")." : " . dol_print_date($object->fin_validite,"day",false,$outputlangs,true), '', 'R');
if ($object->client->code_client)
{
- $posy+=4;
- $pdf->SetXY($posx,$posy);
+ $posy+=5;
+ $pdf->SetXY(100,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->client->code_client), '', 'R');
}
- if ($showaddress)
+ $posy=39;
+
+ $pdf->SetTextColor(0,0,0);
+
+ // If CUSTOMER contact defined, we use it
+ $usecontact=false;
+ $arrayidcontact=$object->getIdContact('external','CUSTOMER');
+ if (sizeof($arrayidcontact) > 0)
{
- // Sender properties
- $carac_emetteur='';
- // Add internal contact of proposal if defined
- $arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
- if (count($arrayidcontact) > 0)
- {
- $object->fetch_user($arrayidcontact[0]);
- $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->transnoentities("Name").": ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";
- }
-
- $carac_emetteur .= pdf_build_address($outputlangs,$this->emetteur);
-
- // Show sender
- $posy=42;
- $posx=$this->marge_gauche;
- if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80;
- $hautcadre=40;
-
- // Show sender frame
- $pdf->SetTextColor(0,0,0);
- $pdf->SetFont('','', $default_font_size - 2);
- $pdf->SetXY($posx,$posy-5);
- $pdf->MultiCell(66,5, $outputlangs->transnoentities("BillFrom").":", 0, 'L');
- $pdf->SetXY($posx,$posy);
- $pdf->SetFillColor(255,255,255);
- $pdf->MultiCell(82, $hautcadre, "", 0, 'R', 1);
-
- // Show sender name
- $pdf->SetXY($posx+2,$posy+3);
- $pdf->SetTextColor(0,0,60);
- $pdf->SetFont('','B',$default_font_size);
- $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L');
-
- // Show sender information
- $pdf->SetFont('','', $default_font_size - 1);
- $pdf->SetXY($posx+2,$posy+8);
- $pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L');
-
-
- // If CUSTOMER contact defined, we use it
- $usecontact=false;
- $arrayidcontact=$object->getIdContact('external','CUSTOMER');
- if (count($arrayidcontact) > 0)
- {
- $usecontact=true;
- $result=$object->fetch_contact($arrayidcontact[0]);
- }
-
- // Recipient name
- if (! empty($usecontact))
- {
- // 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 = $object->client->nom;
- $carac_client_name=$outputlangs->convToOutputCharset($socname);
- }
- else
- {
- $carac_client_name=$outputlangs->convToOutputCharset($object->client->nom);
- }
-
- $carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->client,$object->contact,$usecontact,'target');
-
- // Show recipient
- $posy=42;
- $posx=$this->page_largeur-$this->marge_droite-100;
- if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche;
-
- // Show recipient frame
- $pdf->SetTextColor(0,0,0);
- $pdf->SetFont('','', $default_font_size - 2);
- $pdf->SetXY($posx,$posy-5);
- $pdf->MultiCell(100, 4, $outputlangs->transnoentities("BillTo").":", 0, 'L');
- $pdf->rect($posx, $posy, 100, $hautcadre);
- $pdf->SetTextColor(0,0,0);
-
- // Show recipient name
- $pdf->SetXY($posx+2,$posy+3);
- $pdf->SetFont('','B', $default_font_size);
- $pdf->MultiCell(100,4, $carac_client_name, 0, 'L');
-
- // Show recipient information
- $pdf->SetFont('','', $default_font_size - 1);
- $pdf->SetXY($posx+2,$posy+8);
- $pdf->MultiCell(100,4, $carac_client, 0, 'L');
+ $usecontact=true;
+ $result=$object->fetch_contact($arrayidcontact[0]);
}
+
+ // Recipient name
+ if (! empty($usecontact))
+ {
+ // 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 = $object->client->nom;
+ $carac_client_name=$outputlangs->convToOutputCharset($socname);
+ }
+ else
+ {
+ $carac_client_name=$outputlangs->convToOutputCharset($object->client->nom);
+ }
+
+ $carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->client,$object->contact,$usecontact,'target');
+
+ // Show recipient
+ $pdf->SetXY(102,$posy+3);
+ $pdf->SetFont('','B', $default_font_size);
+ $pdf->MultiCell(96,4, $carac_client_name, 0, 'L');
+
+ // Show address
+ $pdf->SetFont('','', $default_font_size - 1);
+ $pdf->SetXY(102,$posy+8);
+ $pdf->MultiCell(86,4, $carac_client, 0, 'L');
}
/**
@@ -1051,5 +646,4 @@ class pdf_propale_jaune extends ModelePDFPropales
}
}
-
?>
diff --git a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
index 58441034789..0fe32379ab7 100755
--- a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
+++ b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
@@ -490,3 +490,17 @@ ALTER TABLE llx_element_element MODIFY targettype varchar(32) NOT NULL;
ALTER TABLE llx_societe_prices MODIFY tms timestamp NULL;
-- ALTER TABLE llx_societe_prices ALTER COLUMN tms DROP NOT NULL;
+
+-- Fix: It seems this is missing for some users
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 1, 'AC_TEL', 'system', 'Phone call' ,NULL, 2);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 2, 'AC_FAX', 'system', 'Send Fax' ,NULL, 3);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 3, 'AC_PROP', 'system', 'Send commercial proposal by email' ,'propal', 10);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 4, 'AC_EMAIL', 'system', 'Send Email' ,NULL, 4);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 5, 'AC_RDV', 'system', 'Rendez-vous' ,NULL, 1);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 8, 'AC_COM', 'system', 'Send customer order by email' ,'order', 8);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 9, 'AC_FAC', 'system', 'Send customer invoice by email' ,'invoice', 6);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 10, 'AC_SHIP', 'system', 'Send shipping by email' ,'shipping', 11);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 30, 'AC_SUP_ORD', 'system', 'Send supplier order by email' ,'order_supplier', 9);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values (31, 'AC_SUP_INV', 'system', 'Send supplier invoice by email' ,'invoice_supplier', 7);
+insert into llx_c_actioncomm (id, code, type, libelle, module, position) values ( 50, 'AC_OTH', 'system', 'Other' ,NULL, 5);
+
diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/agenda.lang b/htdocs/langs/ar_SA/agenda.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/banks.lang b/htdocs/langs/ar_SA/banks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/bookmarks.lang b/htdocs/langs/ar_SA/bookmarks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/boxes.lang b/htdocs/langs/ar_SA/boxes.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/categories.lang b/htdocs/langs/ar_SA/categories.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/commercial.lang b/htdocs/langs/ar_SA/commercial.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/companies.lang b/htdocs/langs/ar_SA/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/compta.lang b/htdocs/langs/ar_SA/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/contracts.lang b/htdocs/langs/ar_SA/contracts.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/deliveries.lang b/htdocs/langs/ar_SA/deliveries.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/dict.lang b/htdocs/langs/ar_SA/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/donations.lang b/htdocs/langs/ar_SA/donations.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/ecm.lang b/htdocs/langs/ar_SA/ecm.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/errors.lang b/htdocs/langs/ar_SA/errors.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/exports.lang b/htdocs/langs/ar_SA/exports.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/ftp.lang b/htdocs/langs/ar_SA/ftp.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/help.lang b/htdocs/langs/ar_SA/help.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/interventions.lang b/htdocs/langs/ar_SA/interventions.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/languages.lang b/htdocs/langs/ar_SA/languages.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/ldap.lang b/htdocs/langs/ar_SA/ldap.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/mails.lang b/htdocs/langs/ar_SA/mails.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/members.lang b/htdocs/langs/ar_SA/members.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/orders.lang b/htdocs/langs/ar_SA/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/oscommerce.lang b/htdocs/langs/ar_SA/oscommerce.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/paybox.lang b/htdocs/langs/ar_SA/paybox.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/products.lang b/htdocs/langs/ar_SA/products.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/projects.lang b/htdocs/langs/ar_SA/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/propal.lang b/htdocs/langs/ar_SA/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/sendings.lang b/htdocs/langs/ar_SA/sendings.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/shop.lang b/htdocs/langs/ar_SA/shop.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/stocks.lang b/htdocs/langs/ar_SA/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/suppliers.lang b/htdocs/langs/ar_SA/suppliers.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/trips.lang b/htdocs/langs/ar_SA/trips.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/users.lang b/htdocs/langs/ar_SA/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ar_SA/withdrawals.lang b/htdocs/langs/ar_SA/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ca_ES/cashdesk.lang b/htdocs/langs/ca_ES/cashdesk.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang
index d589f6226c8..b973f34d205 100644
--- a/htdocs/langs/ca_ES/stocks.lang
+++ b/htdocs/langs/ca_ES/stocks.lang
@@ -3,6 +3,7 @@ CHARSET=UTF-8
WarehouseCard=Fitxa magatzem
Warehouse=Magatzem
NewWarehouse=Nou magatzem o zona d'emmagatzematge
+WarehouseEdit=Edició magatzem
MenuNewWarehouse=Nou magatzem
WarehouseOpened=Magatzem obert
WarehouseClosed=Magatzem tancat
diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/agenda.lang b/htdocs/langs/da_DK/agenda.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/banks.lang b/htdocs/langs/da_DK/banks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/bookmarks.lang b/htdocs/langs/da_DK/bookmarks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/boxes.lang b/htdocs/langs/da_DK/boxes.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/categories.lang b/htdocs/langs/da_DK/categories.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/commercial.lang b/htdocs/langs/da_DK/commercial.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/companies.lang b/htdocs/langs/da_DK/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/compta.lang b/htdocs/langs/da_DK/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/contracts.lang b/htdocs/langs/da_DK/contracts.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/deliveries.lang b/htdocs/langs/da_DK/deliveries.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/dict.lang b/htdocs/langs/da_DK/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/donations.lang b/htdocs/langs/da_DK/donations.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/ecm.lang b/htdocs/langs/da_DK/ecm.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/exports.lang b/htdocs/langs/da_DK/exports.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/ftp.lang b/htdocs/langs/da_DK/ftp.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/help.lang b/htdocs/langs/da_DK/help.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/install.lang b/htdocs/langs/da_DK/install.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/interventions.lang b/htdocs/langs/da_DK/interventions.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/languages.lang b/htdocs/langs/da_DK/languages.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/ldap.lang b/htdocs/langs/da_DK/ldap.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/mails.lang b/htdocs/langs/da_DK/mails.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/members.lang b/htdocs/langs/da_DK/members.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/orders.lang b/htdocs/langs/da_DK/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/oscommerce.lang b/htdocs/langs/da_DK/oscommerce.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/paybox.lang b/htdocs/langs/da_DK/paybox.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/products.lang b/htdocs/langs/da_DK/products.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/projects.lang b/htdocs/langs/da_DK/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/propal.lang b/htdocs/langs/da_DK/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/sendings.lang b/htdocs/langs/da_DK/sendings.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/shop.lang b/htdocs/langs/da_DK/shop.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/stocks.lang b/htdocs/langs/da_DK/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/suppliers.lang b/htdocs/langs/da_DK/suppliers.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/trips.lang b/htdocs/langs/da_DK/trips.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/users.lang b/htdocs/langs/da_DK/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/da_DK/withdrawals.lang b/htdocs/langs/da_DK/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/agenda.lang b/htdocs/langs/de_AT/agenda.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/banks.lang b/htdocs/langs/de_AT/banks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/bills.lang b/htdocs/langs/de_AT/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/boxes.lang b/htdocs/langs/de_AT/boxes.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/categories.lang b/htdocs/langs/de_AT/categories.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/commercial.lang b/htdocs/langs/de_AT/commercial.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/companies.lang b/htdocs/langs/de_AT/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/compta.lang b/htdocs/langs/de_AT/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/contracts.lang b/htdocs/langs/de_AT/contracts.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/deliveries.lang b/htdocs/langs/de_AT/deliveries.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/dict.lang b/htdocs/langs/de_AT/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/donations.lang b/htdocs/langs/de_AT/donations.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/ecm.lang b/htdocs/langs/de_AT/ecm.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/errors.lang b/htdocs/langs/de_AT/errors.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/exports.lang b/htdocs/langs/de_AT/exports.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/ftp.lang b/htdocs/langs/de_AT/ftp.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/help.lang b/htdocs/langs/de_AT/help.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/install.lang b/htdocs/langs/de_AT/install.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/interventions.lang b/htdocs/langs/de_AT/interventions.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/languages.lang b/htdocs/langs/de_AT/languages.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/ldap.lang b/htdocs/langs/de_AT/ldap.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/mails.lang b/htdocs/langs/de_AT/mails.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/main.lang b/htdocs/langs/de_AT/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/members.lang b/htdocs/langs/de_AT/members.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/orders.lang b/htdocs/langs/de_AT/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/oscommerce.lang b/htdocs/langs/de_AT/oscommerce.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/other.lang b/htdocs/langs/de_AT/other.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/paybox.lang b/htdocs/langs/de_AT/paybox.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/products.lang b/htdocs/langs/de_AT/products.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/projects.lang b/htdocs/langs/de_AT/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/propal.lang b/htdocs/langs/de_AT/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/sendings.lang b/htdocs/langs/de_AT/sendings.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/shop.lang b/htdocs/langs/de_AT/shop.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/stocks.lang b/htdocs/langs/de_AT/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/suppliers.lang b/htdocs/langs/de_AT/suppliers.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/trips.lang b/htdocs/langs/de_AT/trips.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/users.lang b/htdocs/langs/de_AT/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/de_AT/withdrawals.lang b/htdocs/langs/de_AT/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/agenda.lang b/htdocs/langs/el_GR/agenda.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/bookmarks.lang b/htdocs/langs/el_GR/bookmarks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/boxes.lang b/htdocs/langs/el_GR/boxes.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/cashdesk.lang b/htdocs/langs/el_GR/cashdesk.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/categories.lang b/htdocs/langs/el_GR/categories.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/commercial.lang b/htdocs/langs/el_GR/commercial.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/companies.lang b/htdocs/langs/el_GR/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/compta.lang b/htdocs/langs/el_GR/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/contracts.lang b/htdocs/langs/el_GR/contracts.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/deliveries.lang b/htdocs/langs/el_GR/deliveries.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/dict.lang b/htdocs/langs/el_GR/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/donations.lang b/htdocs/langs/el_GR/donations.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/ecm.lang b/htdocs/langs/el_GR/ecm.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/exports.lang b/htdocs/langs/el_GR/exports.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/ftp.lang b/htdocs/langs/el_GR/ftp.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/help.lang b/htdocs/langs/el_GR/help.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/interventions.lang b/htdocs/langs/el_GR/interventions.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/languages.lang b/htdocs/langs/el_GR/languages.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/ldap.lang b/htdocs/langs/el_GR/ldap.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/mails.lang b/htdocs/langs/el_GR/mails.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/members.lang b/htdocs/langs/el_GR/members.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/orders.lang b/htdocs/langs/el_GR/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/oscommerce.lang b/htdocs/langs/el_GR/oscommerce.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/paybox.lang b/htdocs/langs/el_GR/paybox.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/paypal.lang b/htdocs/langs/el_GR/paypal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/products.lang b/htdocs/langs/el_GR/products.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/projects.lang b/htdocs/langs/el_GR/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/propal.lang b/htdocs/langs/el_GR/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/sendings.lang b/htdocs/langs/el_GR/sendings.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/shop.lang b/htdocs/langs/el_GR/shop.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/sms.lang b/htdocs/langs/el_GR/sms.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/stocks.lang b/htdocs/langs/el_GR/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/suppliers.lang b/htdocs/langs/el_GR/suppliers.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/trips.lang b/htdocs/langs/el_GR/trips.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/users.lang b/htdocs/langs/el_GR/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/withdrawals.lang b/htdocs/langs/el_GR/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/el_GR/workflow.lang b/htdocs/langs/el_GR/workflow.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_AU/bills.lang b/htdocs/langs/en_AU/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_AU/withdrawals.lang b/htdocs/langs/en_AU/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_IN/.cvsignore b/htdocs/langs/en_IN/.cvsignore
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_IN/bills.lang b/htdocs/langs/en_IN/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_IN/main.lang b/htdocs/langs/en_IN/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_IN/other.lang b/htdocs/langs/en_IN/other.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_IN/propal.lang b/htdocs/langs/en_IN/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_NZ/.cvsignore b/htdocs/langs/en_NZ/.cvsignore
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_NZ/companies.lang b/htdocs/langs/en_NZ/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_NZ/compta.lang b/htdocs/langs/en_NZ/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_NZ/main.lang b/htdocs/langs/en_NZ/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/dict.lang b/htdocs/langs/en_US/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/sms.lang b/htdocs/langs/en_US/sms.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/workflow.lang b/htdocs/langs/en_US/workflow.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_AR/admin.lang b/htdocs/langs/es_AR/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_AR/bills.lang b/htdocs/langs/es_AR/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_AR/companies.lang b/htdocs/langs/es_AR/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_AR/stocks.lang b/htdocs/langs/es_AR/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_ES/cashdesk.lang b/htdocs/langs/es_ES/cashdesk.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_ES/stocks.lang b/htdocs/langs/es_ES/stocks.lang
index 08d9869c544..cfa4255d61a 100644
--- a/htdocs/langs/es_ES/stocks.lang
+++ b/htdocs/langs/es_ES/stocks.lang
@@ -3,6 +3,7 @@ CHARSET=UTF-8
WarehouseCard=Ficha almacén
Warehouse=Almacén
NewWarehouse=Nuevo almacén o zona de almacenaje
+WarehouseEdit=Edición almacén
MenuNewWarehouse=Nuevo almacén
WarehouseOpened=almacén abierto
WarehouseClosed=almacén cerrado
diff --git a/htdocs/langs/es_HN/admin.lang b/htdocs/langs/es_HN/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_HN/bills.lang b/htdocs/langs/es_HN/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_HN/companies.lang b/htdocs/langs/es_HN/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_HN/compta.lang b/htdocs/langs/es_HN/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_HN/main.lang b/htdocs/langs/es_HN/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_HN/propal.lang b/htdocs/langs/es_HN/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_MX/bills.lang b/htdocs/langs/es_MX/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_MX/companies.lang b/htdocs/langs/es_MX/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_MX/stocks.lang b/htdocs/langs/es_MX/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_PR/.cvsignore b/htdocs/langs/es_PR/.cvsignore
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_PR/admin.lang b/htdocs/langs/es_PR/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_PR/bills.lang b/htdocs/langs/es_PR/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_PR/companies.lang b/htdocs/langs/es_PR/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_PR/compta.lang b/htdocs/langs/es_PR/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_PR/main.lang b/htdocs/langs/es_PR/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/es_PR/propal.lang b/htdocs/langs/es_PR/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/agenda.lang b/htdocs/langs/fa_IR/agenda.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/banks.lang b/htdocs/langs/fa_IR/banks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/bills.lang b/htdocs/langs/fa_IR/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/bookmarks.lang b/htdocs/langs/fa_IR/bookmarks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/boxes.lang b/htdocs/langs/fa_IR/boxes.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/categories.lang b/htdocs/langs/fa_IR/categories.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/commercial.lang b/htdocs/langs/fa_IR/commercial.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/companies.lang b/htdocs/langs/fa_IR/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/compta.lang b/htdocs/langs/fa_IR/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/contracts.lang b/htdocs/langs/fa_IR/contracts.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/deliveries.lang b/htdocs/langs/fa_IR/deliveries.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/dict.lang b/htdocs/langs/fa_IR/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/domains.lang b/htdocs/langs/fa_IR/domains.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/donations.lang b/htdocs/langs/fa_IR/donations.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/ecm.lang b/htdocs/langs/fa_IR/ecm.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/errors.lang b/htdocs/langs/fa_IR/errors.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/exports.lang b/htdocs/langs/fa_IR/exports.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/ftp.lang b/htdocs/langs/fa_IR/ftp.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/help.lang b/htdocs/langs/fa_IR/help.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/install.lang b/htdocs/langs/fa_IR/install.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/interventions.lang b/htdocs/langs/fa_IR/interventions.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/languages.lang b/htdocs/langs/fa_IR/languages.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/ldap.lang b/htdocs/langs/fa_IR/ldap.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/mails.lang b/htdocs/langs/fa_IR/mails.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/members.lang b/htdocs/langs/fa_IR/members.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/orders.lang b/htdocs/langs/fa_IR/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/oscommerce.lang b/htdocs/langs/fa_IR/oscommerce.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/paybox.lang b/htdocs/langs/fa_IR/paybox.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/products.lang b/htdocs/langs/fa_IR/products.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/projects.lang b/htdocs/langs/fa_IR/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/propal.lang b/htdocs/langs/fa_IR/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/sendings.lang b/htdocs/langs/fa_IR/sendings.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/shop.lang b/htdocs/langs/fa_IR/shop.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/stocks.lang b/htdocs/langs/fa_IR/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/suppliers.lang b/htdocs/langs/fa_IR/suppliers.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/trips.lang b/htdocs/langs/fa_IR/trips.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/users.lang b/htdocs/langs/fa_IR/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fa_IR/withdrawals.lang b/htdocs/langs/fa_IR/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_CH/bills.lang b/htdocs/langs/fr_CH/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/dict.lang b/htdocs/langs/fr_FR/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/externalsite.lang b/htdocs/langs/fr_FR/externalsite.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/sms.lang b/htdocs/langs/fr_FR/sms.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/workflow.lang b/htdocs/langs/fr_FR/workflow.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/it_IT/cashdesk.lang b/htdocs/langs/it_IT/cashdesk.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/it_IT/paypal.lang b/htdocs/langs/it_IT/paypal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/it_IT/sms.lang b/htdocs/langs/it_IT/sms.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/it_IT/workflow.lang b/htdocs/langs/it_IT/workflow.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ja_JP/languages.lang b/htdocs/langs/ja_JP/languages.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/nl_BE/dict.lang b/htdocs/langs/nl_BE/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/agenda.lang b/htdocs/langs/sl_SI/agenda.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/banks.lang b/htdocs/langs/sl_SI/banks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/bills.lang b/htdocs/langs/sl_SI/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/bookmarks.lang b/htdocs/langs/sl_SI/bookmarks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/boxes.lang b/htdocs/langs/sl_SI/boxes.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/cashdesk.lang b/htdocs/langs/sl_SI/cashdesk.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/categories.lang b/htdocs/langs/sl_SI/categories.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/commercial.lang b/htdocs/langs/sl_SI/commercial.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/companies.lang b/htdocs/langs/sl_SI/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/compta.lang b/htdocs/langs/sl_SI/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/contracts.lang b/htdocs/langs/sl_SI/contracts.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/deliveries.lang b/htdocs/langs/sl_SI/deliveries.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/dict.lang b/htdocs/langs/sl_SI/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/donations.lang b/htdocs/langs/sl_SI/donations.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/ecm.lang b/htdocs/langs/sl_SI/ecm.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/errors.lang b/htdocs/langs/sl_SI/errors.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/exports.lang b/htdocs/langs/sl_SI/exports.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/ftp.lang b/htdocs/langs/sl_SI/ftp.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/help.lang b/htdocs/langs/sl_SI/help.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/html/gpl.txt b/htdocs/langs/sl_SI/html/gpl.txt
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/install.lang b/htdocs/langs/sl_SI/install.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/interventions.lang b/htdocs/langs/sl_SI/interventions.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/languages.lang b/htdocs/langs/sl_SI/languages.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/ldap.lang b/htdocs/langs/sl_SI/ldap.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/mails.lang b/htdocs/langs/sl_SI/mails.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/members.lang b/htdocs/langs/sl_SI/members.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/orders.lang b/htdocs/langs/sl_SI/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/oscommerce.lang b/htdocs/langs/sl_SI/oscommerce.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/paybox.lang b/htdocs/langs/sl_SI/paybox.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/paypal.lang b/htdocs/langs/sl_SI/paypal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/products.lang b/htdocs/langs/sl_SI/products.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/products_livre.lang b/htdocs/langs/sl_SI/products_livre.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/projects.lang b/htdocs/langs/sl_SI/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/propal.lang b/htdocs/langs/sl_SI/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/sendings.lang b/htdocs/langs/sl_SI/sendings.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/shop.lang b/htdocs/langs/sl_SI/shop.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/stocks.lang b/htdocs/langs/sl_SI/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/suppliers.lang b/htdocs/langs/sl_SI/suppliers.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/trips.lang b/htdocs/langs/sl_SI/trips.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/users.lang b/htdocs/langs/sl_SI/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sl_SI/withdrawals.lang b/htdocs/langs/sl_SI/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/agenda.lang b/htdocs/langs/sv_SE/agenda.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/boxes.lang b/htdocs/langs/sv_SE/boxes.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/categories.lang b/htdocs/langs/sv_SE/categories.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/commercial.lang b/htdocs/langs/sv_SE/commercial.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/companies.lang b/htdocs/langs/sv_SE/companies.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/compta.lang b/htdocs/langs/sv_SE/compta.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/contracts.lang b/htdocs/langs/sv_SE/contracts.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/deliveries.lang b/htdocs/langs/sv_SE/deliveries.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/dict.lang b/htdocs/langs/sv_SE/dict.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/donations.lang b/htdocs/langs/sv_SE/donations.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/ecm.lang b/htdocs/langs/sv_SE/ecm.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/exports.lang b/htdocs/langs/sv_SE/exports.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/ftp.lang b/htdocs/langs/sv_SE/ftp.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/help.lang b/htdocs/langs/sv_SE/help.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/install.lang b/htdocs/langs/sv_SE/install.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/interventions.lang b/htdocs/langs/sv_SE/interventions.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/languages.lang b/htdocs/langs/sv_SE/languages.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/ldap.lang b/htdocs/langs/sv_SE/ldap.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/mails.lang b/htdocs/langs/sv_SE/mails.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/members.lang b/htdocs/langs/sv_SE/members.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/orders.lang b/htdocs/langs/sv_SE/orders.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/oscommerce.lang b/htdocs/langs/sv_SE/oscommerce.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/paybox.lang b/htdocs/langs/sv_SE/paybox.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/products.lang b/htdocs/langs/sv_SE/products.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/projects.lang b/htdocs/langs/sv_SE/projects.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/sendings.lang b/htdocs/langs/sv_SE/sendings.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/shop.lang b/htdocs/langs/sv_SE/shop.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/stocks.lang b/htdocs/langs/sv_SE/stocks.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/suppliers.lang b/htdocs/langs/sv_SE/suppliers.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/trips.lang b/htdocs/langs/sv_SE/trips.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/users.lang b/htdocs/langs/sv_SE/users.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/sv_SE/withdrawals.lang b/htdocs/langs/sv_SE/withdrawals.lang
old mode 100755
new mode 100644
diff --git a/htdocs/lib/ajax.lib.php b/htdocs/lib/ajax.lib.php
index 55def736688..be9338e54aa 100644
--- a/htdocs/lib/ajax.lib.php
+++ b/htdocs/lib/ajax.lib.php
@@ -93,14 +93,10 @@ function ajax_autocompleter($selected='',$htmlname,$url,$option='',$minLength=2,
*/
function ajax_multiautocompleter($htmlname,$fields,$url,$option='',$minLength=2,$autoselect=0)
{
- $script='';
-
- $fields = php2js($fields);
-
- $script.= ''."\n";
+ $script = ''."\n";
$script.= '