Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2015-05-15 11:16:29 +02:00
commit c33cbefad2
45 changed files with 710 additions and 572 deletions

View File

@ -18,20 +18,7 @@
echo "<html>"; echo "<html>";
echo "<head>"; echo "<head>";
echo "<STYLE type=\"text/css\"> echo "<STYLE type=\"text/css\">
body {
color: #444;
font: 100%/30px 'Helvetica Neue', helvetica, arial, sans-serif;
text-shadow: 0 1px 0 #fff;
}
strong {
font-weight: bold;
}
em {
font-style: italic;
}
table { table {
background: #f5f5f5; background: #f5f5f5;
@ -42,7 +29,7 @@ table {
margin: 30px auto; margin: 30px auto;
text-align: left; text-align: left;
width: 800px; width: 800px;
} }
th { th {
background-color: #777; background-color: #777;
@ -50,33 +37,11 @@ th {
border-right: 1px solid #777; border-right: 1px solid #777;
border-top: 1px solid #555; border-top: 1px solid #555;
border-bottom: 1px solid #333; border-bottom: 1px solid #333;
box-shadow: inset 0 1px 0 #999;
color: #fff; color: #fff;
font-weight: bold; font-weight: bold;
padding: 10px 15px; padding: 10px 15px;
position: relative; position: relative;
text-shadow: 0 1px 0 #000; text-shadow: 0 1px 0 #000;
}
th:after {
background: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,.08));
content: '';
display: block;
height: 25%;
left: 0;
margin: 1px 0 0 0;
position: absolute;
top: 25%;
width: 100%;
}
th:first-child {
border-left: 1px solid #777;
box-shadow: inset 1px 1px 0 #999;
}
th:last-child {
box-shadow: inset -1px 1px 0 #999;
} }
td { td {
@ -86,17 +51,8 @@ td {
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
padding: 10px 15px; padding: 10px 15px;
position: relative; position: relative;
transition: all 300ms;
} }
td:first-child {
box-shadow: inset 1px 0 0 #fff;
}
td:last-child {
border-right: 1px solid #e8e8e8;
box-shadow: inset -1px 0 0 #fff;
}
tr { tr {
background-color: #f1f1f1; background-color: #f1f1f1;
@ -104,42 +60,35 @@ tr {
} }
tr:nth-child(odd) td { tr:nth-child(odd) td {
background-color: #f1f1f1; background-color: #f1f1f1;
} }
tr:last-of-type td { </STYLE>";
box-shadow: inset 0 -1px 0 #fff;
}
tr:last-of-type td:first-child {
box-shadow: inset 1px -1px 0 #fff;
}
tr:last-of-type td:last-child {
box-shadow: inset -1px -1px 0 #fff;
}
tbody:hover td {
color: transparent;
text-shadow: 0 0 3px #aaa;
}
tbody:hover tr:hover td {
color: #444;
text-shadow: 0 1px 0 #fff;
} </STYLE>";
echo "<body>"; echo "<body>";
echo "<h3>If you call this file with the argument \"?unused=true\" it searches for the translation strings that exist in en_US but are never used</h3>";
echo "<h2>IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly</h2>";
echo "<h3>Happy translating :)</h3>";
// directory containing the php and lang files echo "If you call this file with the argument \"?unused=true\" it searches for the translation strings that exist in en_US but are never used.<br>";
$htdocs = "../../htdocs/"; echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.<br>";
echo "Happy translating :)<br>";
// STEP 1 - Search duplicates keys
// directory containing the php and lang files
$htdocs = "../../htdocs/";
// directory containing the english lang files // directory containing the english lang files
$workdir = $htdocs."langs/en_US/"; $workdir = $htdocs."langs/en_US/";
$files = scandir($workdir); $files = scandir($workdir);
if (empty($files))
{
echo "Can't scan workdir = ".$workdir;
exit;
}
$exludefiles = array('.','..','README'); $exludefiles = array('.','..','README');
$files = array_diff($files,$exludefiles); $files = array_diff($files,$exludefiles);
$langstrings_3d = array(); $langstrings_3d = array();
@ -154,11 +103,12 @@ foreach ($files AS $file) {
if (substr($row,0,1) !== '#') { if (substr($row,0,1) !== '#') {
// don't want lines without the separator (why should those even be here, anyway...) // don't want lines without the separator (why should those even be here, anyway...)
if (strpos($row,'=')!==false) { if (strpos($row,'=')!==false) {
$row_array = explode('=',$row); $row_array = explode('=',$row); // $row_array[0] = key
$langstrings_3d[$path_file['basename']][$line+1]=$row_array[0]; $langstrings_3d[$path_file['basename']][$line+1]=$row_array[0];
$langstrings_3dtrans[$path_file['basename']][$line+1]=$row_array[1];
$langstrings_full[]=$row_array[0]; $langstrings_full[]=$row_array[0];
$langstrings_dist[$row_array[0]]=$row_array[0]; $langstrings_dist[$row_array[0]]=$row_array[0];
} }
} }
} }
} }
@ -167,16 +117,16 @@ foreach ($files AS $file) {
foreach ($langstrings_3d AS $filename => $file) { foreach ($langstrings_3d AS $filename => $file) {
foreach ($file AS $linenum => $value) { foreach ($file AS $linenum => $value) {
$keys = array_keys($langstrings_full, $value); $keys = array_keys($langstrings_full, $value);
if (count($keys)>1) { if (count($keys)>1)
{
foreach ($keys AS $key) { foreach ($keys AS $key) {
$dups[$value][$filename][$linenum] = ''; $dups[$value][$filename][$linenum] = trim($langstrings_3dtrans[$filename][$linenum]);
} }
} }
} }
} }
echo "<h2>Duplicate strings in lang files in $workdir - ".count($dups)." found</h2>"; echo "<h2>Duplicate strings in lang files in $workdir - ".count($dups)." found</h2>";
echo "<pre>";
echo "<table border_bottom=1> "; echo "<table border_bottom=1> ";
echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>"; echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>";
@ -190,22 +140,27 @@ foreach ($dups as $string => $pages) {
echo "<td>"; echo "<td>";
foreach ($pages AS $page => $lines ) { foreach ($pages AS $page => $lines ) {
echo "$page "; echo "$page ";
foreach ($lines as $line => $nothing) { foreach ($lines as $line => $translatedvalue) {
echo "($line) "; //echo "($line - ".(substr($translatedvalue,0,20)).") ";
echo "($line - ".htmlentities($translatedvalue).") ";
} }
echo "<br>"; echo "<br>";
} }
echo "</td></tr>"; echo "</td></tr>\n";
} }
echo "</tbody>"; echo "</tbody>";
echo "</table>"; echo "</table>";
if ($_REQUEST['unused'] == 'true') { // STEP 2 - Search key not used
foreach ($langstrings_dist AS $value){
if (! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true')
{
foreach ($langstrings_dist AS $value)
{
$search = '\'trans("'.$value.'")\''; $search = '\'trans("'.$value.'")\'';
$string = 'grep -R -m 1 -F --include=*.php '.$search.' '.$htdocs.'*'; $string = 'grep -R -m 1 -F --exclude=includes/* --include=*.php '.$search.' '.$htdocs.'*';
exec($string,$output); exec($string,$output);
if (empty($output)) { if (empty($output)) {
$unused[$value] = true; $unused[$value] = true;
@ -216,6 +171,9 @@ if ($_REQUEST['unused'] == 'true') {
echo "<h2>Strings in en_US that are never used</h2>"; echo "<h2>Strings in en_US that are never used</h2>";
echo "<pre>"; echo "<pre>";
print_r($unused); print_r($unused);
echo "</pre>";
} }
echo "\n";
echo "</body>"; echo "</body>";
echo "</html>"; echo "</html>";

View File

@ -547,7 +547,7 @@ $now=dol_now();
llxHeader('',$langs->trans("Subscriptions"),'EN:Module_Foundations|FR:Module_Adh&eacute;rents|ES:M&oacute;dulo_Miembros'); llxHeader('',$langs->trans("Subscriptions"),'EN:Module_Foundations|FR:Module_Adh&eacute;rents|ES:M&oacute;dulo_Miembros');
if ($rowid) if ($rowid > 0)
{ {
$res=$object->fetch($rowid); $res=$object->fetch($rowid);
if ($res < 0) { dol_print_error($db,$object->error); exit; } if ($res < 0) { dol_print_error($db,$object->error); exit; }
@ -556,8 +556,6 @@ if ($rowid)
$head = member_prepare_head($object); $head = member_prepare_head($object);
dol_fiche_head($head, 'subscription', $langs->trans("Member"), 0, 'user');
$rowspan=10; $rowspan=10;
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++; if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++;
if (! empty($conf->societe->enabled)) $rowspan++; if (! empty($conf->societe->enabled)) $rowspan++;
@ -565,6 +563,9 @@ if ($rowid)
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'; print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="rowid" value="'.$object->id.'">'; print '<input type="hidden" name="rowid" value="'.$object->id.'">';
dol_fiche_head($head, 'subscription', $langs->trans("Member"), 0, 'user');
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
@ -696,10 +697,11 @@ if ($rowid)
print '</td></tr>'; print '</td></tr>';
print "</table>\n"; print "</table>\n";
print '</form>';
dol_fiche_end(); dol_fiche_end();
print '</form>';
dol_htmloutput_errors($errmsg,$errmsgs); dol_htmloutput_errors($errmsg,$errmsgs);
@ -1008,7 +1010,7 @@ if ($rowid)
{ {
$prodtmp=new Product($db); $prodtmp=new Product($db);
$prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS); $prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS);
print '. '.$langs->trans("ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS", $prodtmp->getNomUrl(0)); print '. '.$langs->transnoentitiesnoconv("ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS", $prodtmp->getNomUrl(1)); // must use noentitiesnoconv to avoid to encode html into getNomUrl of product
} }
print '<br>'; print '<br>';
} }
@ -1033,7 +1035,7 @@ if ($rowid)
{ {
$prodtmp=new Product($db); $prodtmp=new Product($db);
$prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS); $prodtmp->fetch($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS);
print '. '.$langs->trans("ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS", $prodtmp->getNomUrl(0)); print '. '.$langs->transnoentitiesnoconv("ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS", $prodtmp->getNomUrl(1)); // must use noentitiesnoconv to avoid to encode html into getNomUrl of product
} }
print '<br>'; print '<br>';
} }

View File

@ -32,7 +32,8 @@
include '../master.inc.php'; include '../master.inc.php';
$phone = GETPOST('phone'); $phone = GETPOST('phone');
$notfound = "Not found";
$error = "Error"
// Security check // Security check
if (empty($conf->clicktodial->enabled)) { if (empty($conf->clicktodial->enabled)) {
@ -64,13 +65,15 @@ if ($resql)
if ($obj) if ($obj)
{ {
$found = $obj->name; $found = $obj->name;
} else {
$found = $notfound;
} }
$db->free($resql); $db->free($resql);
} }
else else
{ {
dol_print_error($db,'Error'); dol_print_error($db,'Error');
$found = $error;
} }
echo $found; echo $found;

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2014 Jean-François Ferry <jfefe@aternatik.fr> * Copyright (C) 2014 Jean-François Ferry <jfefe@aternatik.fr>
@ -128,7 +128,7 @@ if ($object->id)
// Description // Description
print '<tr><td width="20%" class="notopnoleft">'; print '<tr><td width="20%" class="notopnoleft">';
print $langs->trans("Description").'</td><td>'; print $langs->trans("Description").'</td><td>';
print nl2br($object->description); print dol_htmlentitiesbr($object->description);
print '</td></tr>'; print '</td></tr>';
// Visibility // Visibility

View File

@ -166,6 +166,7 @@ elseif ($type == 4) $title=$langs->trans("ContactCategoriesShort");
else $title=$langs->trans("Category"); else $title=$langs->trans("Category");
$head = categories_prepare_head($object,$type); $head = categories_prepare_head($object,$type);
dol_fiche_head($head, 'card', $title, 0, 'category'); dol_fiche_head($head, 'card', $title, 0, 'category');
@ -194,7 +195,7 @@ print '</td></tr>';
// Description // Description
print '<tr><td width="20%" class="notopnoleft">'; print '<tr><td width="20%" class="notopnoleft">';
print $langs->trans("Description").'</td><td>'; print $langs->trans("Description").'</td><td>';
print nl2br($object->description); print dol_htmlentitiesbr($object->description);
print '</td></tr>'; print '</td></tr>';
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
@ -205,12 +206,13 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
print '</table>'; print '</table>';
print '</div>'; dol_fiche_end();
/* /*
* Boutons actions * Boutons actions
*/ */
print "<div class='tabsAction'>\n"; print "<div class='tabsAction'>\n";
if ($user->rights->categorie->creer) if ($user->rights->categorie->creer)

View File

@ -313,13 +313,13 @@ if ($id > 0 || ! empty($ref))
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
// Ref // Ref
print '<tr><td valign="top" width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref'); print $form->showrefnav($object, 'ref', $linkback, 1, 'ref');
print '</td></tr>'; print '</td></tr>';
// Label // Label
print '<tr><td valign="top">'.$langs->trans("Label").'</td>'; print '<tr><td>'.$langs->trans("Label").'</td>';
print '<td colspan="3">'.$object->label.'</td></tr>'; print '<td colspan="3">'.$object->label.'</td></tr>';
print '</table>'; print '</table>';

View File

@ -144,7 +144,7 @@ print '<table class="border" width="100%">';
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
// Ref // Ref
print '<tr><td valign="top" width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
if ($_GET["account"]) if ($_GET["account"])
{ {
@ -172,7 +172,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Label // Label
print '<tr><td valign="top">'.$langs->trans("Label").'</td>'; print '<tr><td>'.$langs->trans("Label").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
if (! empty($id)) if (! empty($id))
{ {

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org> * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2014-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com> * Copyright (C) 2014-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr> * Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
@ -266,24 +266,26 @@ if ($action == 'create')
print '<input type="hidden" name="action" value="add">'; print '<input type="hidden" name="action" value="add">';
print '<input type="hidden" name="clos" value="0">'; print '<input type="hidden" name="clos" value="0">';
dol_fiche_head('');
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Ref // Ref
print '<tr><td valign="top" class="fieldrequired" width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td class="fieldrequired" width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3"><input size="8" type="text" class="flat" name="ref" value="'.($_POST["ref"]?$_POST["ref"]:$account->ref).'" maxlength="12"></td></tr>'; print '<td colspan="3"><input size="8" type="text" class="flat" name="ref" value="'.($_POST["ref"]?$_POST["ref"]:$account->ref).'" maxlength="12"></td></tr>';
// Label // Label
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("LabelBankCashAccount").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("LabelBankCashAccount").'</td>';
print '<td colspan="3"><input size="30" type="text" class="flat" name="label" value="'.GETPOST("label").'"></td></tr>'; print '<td colspan="3"><input size="30" type="text" class="flat" name="label" value="'.GETPOST("label").'"></td></tr>';
// Type // Type
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("AccountType").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("AccountType").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
$formbank->select_type_comptes_financiers(isset($_POST["type"])?$_POST["type"]:1,"type"); $formbank->select_type_comptes_financiers(isset($_POST["type"])?$_POST["type"]:1,"type");
print '</td></tr>'; print '</td></tr>';
// Currency // Currency
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Currency").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("Currency").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
$selectedcode=$account->account_currency_code; $selectedcode=$account->account_currency_code;
if (! $selectedcode) $selectedcode=$conf->currency; if (! $selectedcode) $selectedcode=$conf->currency;
@ -293,7 +295,7 @@ if ($action == 'create')
print '</td></tr>'; print '</td></tr>';
// Status // Status
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Status").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("Status").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->selectarray("clos",array(0=>$account->status[0],1=>$account->status[1]),(isset($_POST["clos"])?$_POST["clos"]:$account->clos)); print $form->selectarray("clos",array(0=>$account->status[0],1=>$account->status[1]),(isset($_POST["clos"])?$_POST["clos"]:$account->clos));
print '</td></tr>'; print '</td></tr>';
@ -307,7 +309,7 @@ if ($action == 'create')
else if (empty($selectedcode)) $selectedcode=$mysoc->country_code; else if (empty($selectedcode)) $selectedcode=$mysoc->country_code;
$account->country_code = getCountry($selectedcode, 2); // Force country code on account to have following field on bank fields matching country rules $account->country_code = getCountry($selectedcode, 2); // Force country code on account to have following field on bank fields matching country rules
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("BankAccountCountry").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("BankAccountCountry").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->select_country($selectedcode,'account_country_id'); print $form->select_country($selectedcode,'account_country_id');
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
@ -326,11 +328,11 @@ if ($action == 'create')
print '</td></tr>'; print '</td></tr>';
// Web // Web
print '<tr><td valign="top">'.$langs->trans("Web").'</td>'; print '<tr><td>'.$langs->trans("Web").'</td>';
print '<td colspan="3"><input size="50" type="text" class="flat" name="url" value="'.$_POST["url"].'"></td></tr>'; print '<td colspan="3"><input size="50" type="text" class="flat" name="url" value="'.$_POST["url"].'"></td></tr>';
// Comment // Comment
print '<tr><td valign="top">'.$langs->trans("Comment").'</td>'; print '<tr><td class="tdtop">'.$langs->trans("Comment").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
// Editor wysiwyg // Editor wysiwyg
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
@ -353,18 +355,18 @@ if ($action == 'create')
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Sold // Sold
print '<tr><td valign="top" width="25%">'.$langs->trans("InitialBankBalance").'</td>'; print '<tr><td width="25%">'.$langs->trans("InitialBankBalance").'</td>';
print '<td colspan="3"><input size="12" type="text" class="flat" name="solde" value="'.(GETPOST("solde")?GETPOST("solde"):price2num($account->solde)).'"></td></tr>'; print '<td colspan="3"><input size="12" type="text" class="flat" name="solde" value="'.(GETPOST("solde")?GETPOST("solde"):price2num($account->solde)).'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("Date").'</td>'; print '<tr><td>'.$langs->trans("Date").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
$form->select_date('', 're', 0, 0, 0, 'formsoc'); $form->select_date('', 're', 0, 0, 0, 'formsoc');
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("BalanceMinimalAllowed").'</td>'; print '<tr><td>'.$langs->trans("BalanceMinimalAllowed").'</td>';
print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_allowed" value="'.($_POST["account_min_allowed"]?$_POST["account_min_allowed"]:$account->account_min_allowed).'"></td></tr>'; print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_allowed" value="'.($_POST["account_min_allowed"]?$_POST["account_min_allowed"]:$account->account_min_allowed).'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("BalanceMinimalDesired").'</td>'; print '<tr><td>'.$langs->trans("BalanceMinimalDesired").'</td>';
print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_desired" value="'.($_POST["account_min_desired"]?$_POST["account_min_desired"]:$account->account_min_desired).'"></td></tr>'; print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_desired" value="'.($_POST["account_min_desired"]?$_POST["account_min_desired"]:$account->account_min_desired).'"></td></tr>';
print '</table>'; print '</table>';
@ -375,7 +377,7 @@ if ($action == 'create')
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// If bank account // If bank account
print '<tr><td valign="top" width="25%">'.$langs->trans("BankName").'</td>'; print '<tr><td width="25%">'.$langs->trans("BankName").'</td>';
print '<td colspan="3"><input size="30" type="text" class="flat" name="bank" value="'.$account->bank.'"></td>'; print '<td colspan="3"><input size="30" type="text" class="flat" name="bank" value="'.$account->bank.'"></td>';
print '</tr>'; print '</tr>';
@ -452,16 +454,16 @@ if ($action == 'create')
print '<tr><td>'.$langs->trans($bickey).'</td>'; print '<tr><td>'.$langs->trans($bickey).'</td>';
print '<td colspan="3"><input size="11" maxlength="11" type="text" class="flat" name="bic" value="'.$account->bic.'"></td></tr>'; print '<td colspan="3"><input size="11" maxlength="11" type="text" class="flat" name="bic" value="'.$account->bic.'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="3">';
print "<textarea class=\"flat\" name=\"domiciliation\" rows=\"2\" cols=\"40\">"; print "<textarea class=\"flat\" name=\"domiciliation\" rows=\"2\" cols=\"40\">";
print $account->domiciliation; print $account->domiciliation;
print "</textarea></td></tr>"; print "</textarea></td></tr>";
print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td>'; print '<tr><td>'.$langs->trans("BankAccountOwner").'</td>';
print '<td colspan="3"><input size="30" type="text" class="flat" name="proprio" value="'.$account->proprio.'">'; print '<td colspan="3"><input size="30" type="text" class="flat" name="proprio" value="'.$account->proprio.'">';
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="3">'; print '<tr><td class="tdtop">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="3">';
print "<textarea class=\"flat\" name=\"owner_address\" rows=\"2\" cols=\"40\">"; print "<textarea class=\"flat\" name=\"owner_address\" rows=\"2\" cols=\"40\">";
print $account->owner_address; print $account->owner_address;
print "</textarea></td></tr>"; print "</textarea></td></tr>";
@ -474,25 +476,27 @@ if ($action == 'create')
// Accountancy code // Accountancy code
if (! empty($conf->global->MAIN_BANK_ACCOUNTANCY_CODE_ALWAYS_REQUIRED)) if (! empty($conf->global->MAIN_BANK_ACCOUNTANCY_CODE_ALWAYS_REQUIRED))
{ {
print '<tr><td valign="top" class="fieldrequired" width="25%">'.$langs->trans("AccountancyCode").'</td>'; print '<tr><td class="fieldrequired" width="25%">'.$langs->trans("AccountancyCode").'</td>';
print '<td colspan="3"><input type="text" name="account_number" value="'.(GETPOST("account_number")?GETPOST('account_number'):$account->account_number).'"></td></tr>'; print '<td colspan="3"><input type="text" name="account_number" value="'.(GETPOST("account_number")?GETPOST('account_number'):$account->account_number).'"></td></tr>';
} }
else else
{ {
print '<tr><td valign="top" width="25%">'.$langs->trans("AccountancyCode").'</td>'; print '<tr><td width="25%">'.$langs->trans("AccountancyCode").'</td>';
print '<td colspan="3"><input type="text" name="account_number" value="'.(GETPOST("account_number")?GETPOST('account_number'):$account->account_number).'"></td></tr>'; print '<td colspan="3"><input type="text" name="account_number" value="'.(GETPOST("account_number")?GETPOST('account_number'):$account->account_number).'"></td></tr>';
} }
// Accountancy journal // Accountancy journal
if (! empty($conf->accounting->enabled)) if (! empty($conf->accounting->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("AccountancyJournal").'</td>'; print '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
print '<td colspan="3"><input type="text" name="accountancy_journal" value="'.(GETPOST("accountancy_journal")?GETPOST('accountancy_journal'):$account->accountancy_journal).'"></td></tr>'; print '<td colspan="3"><input type="text" name="accountancy_journal" value="'.(GETPOST("accountancy_journal")?GETPOST('accountancy_journal'):$account->accountancy_journal).'"></td></tr>';
} }
print '</table>'; print '</table>';
print '<br><div class="center"><input value="'.$langs->trans("CreateAccount").'" type="submit" class="button"></div>'; dol_fiche_end();
print '<div class="center"><input value="'.$langs->trans("CreateAccount").'" type="submit" class="button"></div>';
print '</form>'; print '</form>';
} }
@ -538,21 +542,21 @@ else
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
// Ref // Ref
print '<tr><td valign="top" width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($account, 'ref', $linkback, 1, 'ref'); print $form->showrefnav($account, 'ref', $linkback, 1, 'ref');
print '</td></tr>'; print '</td></tr>';
// Label // Label
print '<tr><td valign="top">'.$langs->trans("Label").'</td>'; print '<tr><td>'.$langs->trans("Label").'</td>';
print '<td colspan="3">'.$account->label.'</td></tr>'; print '<td colspan="3">'.$account->label.'</td></tr>';
// Type // Type
print '<tr><td valign="top">'.$langs->trans("AccountType").'</td>'; print '<tr><td>'.$langs->trans("AccountType").'</td>';
print '<td colspan="3">'.$account->type_lib[$account->type].'</td></tr>'; print '<td colspan="3">'.$account->type_lib[$account->type].'</td></tr>';
// Currency // Currency
print '<tr><td valign="top">'.$langs->trans("Currency").'</td>'; print '<tr><td>'.$langs->trans("Currency").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
$selectedcode=$account->account_currency_code; $selectedcode=$account->account_currency_code;
if (! $selectedcode) $selectedcode=$conf->currency; if (! $selectedcode) $selectedcode=$conf->currency;
@ -560,7 +564,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Status // Status
print '<tr><td valign="top">'.$langs->trans("Status").'</td>'; print '<tr><td>'.$langs->trans("Status").'</td>';
print '<td colspan="3">'.$account->getLibStatut(4).'</td></tr>'; print '<td colspan="3">'.$account->getLibStatut(4).'</td></tr>';
// Country // Country
@ -579,7 +583,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Conciliate // Conciliate
print '<tr><td valign="top">'.$langs->trans("Conciliable").'</td>'; print '<tr><td>'.$langs->trans("Conciliable").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
$conciliate=$account->canBeConciliated(); $conciliate=$account->canBeConciliated();
if ($conciliate == -2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')'; if ($conciliate == -2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')';
@ -587,19 +591,19 @@ else
else print ($account->rappro==1 ? $langs->trans("Yes") : ($langs->trans("No").' ('.$langs->trans("ConciliationDisabled").')')); else print ($account->rappro==1 ? $langs->trans("Yes") : ($langs->trans("No").' ('.$langs->trans("ConciliationDisabled").')'));
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("BalanceMinimalAllowed").'</td>'; print '<tr><td>'.$langs->trans("BalanceMinimalAllowed").'</td>';
print '<td colspan="3">'.$account->min_allowed.'</td></tr>'; print '<td colspan="3">'.$account->min_allowed.'</td></tr>';
print '<tr><td valign="top">'.$langs->trans("BalanceMinimalDesired").'</td>'; print '<tr><td>'.$langs->trans("BalanceMinimalDesired").'</td>';
print '<td colspan="3">'.$account->min_desired.'</td></tr>'; print '<td colspan="3">'.$account->min_desired.'</td></tr>';
print '<tr><td valign="top">'.$langs->trans("Web").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("Web").'</td><td colspan="3">';
if ($account->url) print '<a href="'.$account->url.'" target="_gobank">'; if ($account->url) print '<a href="'.$account->url.'" target="_gobank">';
print $account->url; print $account->url;
if ($account->url) print '</a>'; if ($account->url) print '</a>';
print "</td></tr>\n"; print "</td></tr>\n";
print '<tr><td valign="top">'.$langs->trans("Comment").'</td>'; print '<tr><td class="tdtop">'.$langs->trans("Comment").'</td>';
print '<td colspan="3">'.dol_htmlentitiesbr($account->comment).'</td></tr>'; print '<td colspan="3">'.dol_htmlentitiesbr($account->comment).'</td></tr>';
// Other attributes // Other attributes
@ -687,7 +691,7 @@ else
if ($account->getCountryCode() == 'IN') $ibankey="IFSC"; if ($account->getCountryCode() == 'IN') $ibankey="IFSC";
if ($account->getCountryCode() == 'IN') $bickey="SWIFT"; if ($account->getCountryCode() == 'IN') $bickey="SWIFT";
print '<tr><td valign="top">'.$langs->trans($ibankey).'</td>'; print '<tr><td>'.$langs->trans($ibankey).'</td>';
print '<td colspan="3">'.$account->iban.'&nbsp;'; print '<td colspan="3">'.$account->iban.'&nbsp;';
if (! empty($account->iban)) { if (! empty($account->iban)) {
if (! checkIbanForAccount($account)) { if (! checkIbanForAccount($account)) {
@ -698,7 +702,7 @@ else
} }
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans($bickey).'</td>'; print '<tr><td>'.$langs->trans($bickey).'</td>';
print '<td colspan="3">'.$account->bic.'&nbsp;'; print '<td colspan="3">'.$account->bic.'&nbsp;';
if (! empty($account->bic)) { if (! empty($account->bic)) {
if (! checkSwiftForAccount($account)) { if (! checkSwiftForAccount($account)) {
@ -709,15 +713,15 @@ else
} }
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="3">';
print nl2br($account->domiciliation); print nl2br($account->domiciliation);
print "</td></tr>\n"; print "</td></tr>\n";
print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("BankAccountOwner").'</td><td colspan="3">';
print $account->proprio; print $account->proprio;
print "</td></tr>\n"; print "</td></tr>\n";
print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="3">';
print nl2br($account->owner_address); print nl2br($account->owner_address);
print "</td></tr>\n"; print "</td></tr>\n";
@ -727,13 +731,13 @@ else
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Accountancy code // Accountancy code
print '<tr><td valign="top" width="25%">'.$langs->trans("AccountancyCode").'</td>'; print '<tr><td width="25%">'.$langs->trans("AccountancyCode").'</td>';
print '<td colspan="3">'.$account->account_number.'</td></tr>'; print '<td colspan="3">'.$account->account_number.'</td></tr>';
// Accountancy journal // Accountancy journal
if (! empty($conf->accounting->enabled)) if (! empty($conf->accounting->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("AccountancyJournal").'</td>'; print '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
print '<td colspan="3">'.$account->accountancy_journal.'</td></tr>'; print '<td colspan="3">'.$account->accountancy_journal.'</td></tr>';
} }
@ -799,24 +803,26 @@ else
print '<input type="hidden" name="action" value="update">'; print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="id" value="'.$_REQUEST["id"].'">'."\n\n"; print '<input type="hidden" name="id" value="'.$_REQUEST["id"].'">'."\n\n";
dol_fiche_head('');
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Ref // Ref
print '<tr><td valign="top" class="fieldrequired" width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td class="fieldrequired" width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3"><input size="8" type="text" class="flat" name="ref" value="'.(isset($_POST["ref"])?$_POST["ref"]:$account->ref).'"></td></tr>'; print '<td colspan="3"><input size="8" type="text" class="flat" name="ref" value="'.(isset($_POST["ref"])?$_POST["ref"]:$account->ref).'"></td></tr>';
// Label // Label
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Label").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td>';
print '<td colspan="3"><input size="30" type="text" class="flat" name="label" value="'.(isset($_POST["label"])?$_POST["label"]:$account->label).'"></td></tr>'; print '<td colspan="3"><input size="30" type="text" class="flat" name="label" value="'.(isset($_POST["label"])?$_POST["label"]:$account->label).'"></td></tr>';
// Type // Type
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("AccountType").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("AccountType").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
$formbank->select_type_comptes_financiers((isset($_POST["type"])?$_POST["type"]:$account->type),"type"); $formbank->select_type_comptes_financiers((isset($_POST["type"])?$_POST["type"]:$account->type),"type");
print '</td></tr>'; print '</td></tr>';
// Currency // Currency
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Currency"); print '<tr><td class="fieldrequired">'.$langs->trans("Currency");
print '<input type="hidden" value="'.$account->currency_code.'">'; print '<input type="hidden" value="'.$account->currency_code.'">';
print '</td>'; print '</td>';
print '<td colspan="3">'; print '<td colspan="3">';
@ -828,7 +834,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Status // Status
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Status").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("Status").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->selectarray("clos",array(0=>$account->status[0],1=>$account->status[1]),(isset($_POST["clos"])?$_POST["clos"]:$account->clos)); print $form->selectarray("clos",array(0=>$account->status[0],1=>$account->status[1]),(isset($_POST["clos"])?$_POST["clos"]:$account->clos));
print '</td></tr>'; print '</td></tr>';
@ -840,7 +846,7 @@ else
else if (empty($selectedcode)) $selectedcode=$mysoc->country_code; else if (empty($selectedcode)) $selectedcode=$mysoc->country_code;
$account->country_code = getCountry($selectedcode, 2); // Force country code on account to have following field on bank fields matching country rules $account->country_code = getCountry($selectedcode, 2); // Force country code on account to have following field on bank fields matching country rules
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Country").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("Country").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->select_country($selectedcode,'account_country_id'); print $form->select_country($selectedcode,'account_country_id');
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
@ -859,7 +865,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Conciliable // Conciliable
print '<tr><td valign="top">'.$langs->trans("Conciliable").'</td>'; print '<tr><td>'.$langs->trans("Conciliable").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
$conciliate=$account->canBeConciliated(); $conciliate=$account->canBeConciliated();
if ($conciliate == -2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')'; if ($conciliate == -2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')';
@ -868,19 +874,19 @@ else
print '</td></tr>'; print '</td></tr>';
// Balance // Balance
print '<tr><td valign="top">'.$langs->trans("BalanceMinimalAllowed").'</td>'; print '<tr><td>'.$langs->trans("BalanceMinimalAllowed").'</td>';
print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_allowed" value="'.(isset($_POST["account_min_allowed"])?$_POST["account_min_allowed"]:$account->min_allowed).'"></td></tr>'; print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_allowed" value="'.(isset($_POST["account_min_allowed"])?$_POST["account_min_allowed"]:$account->min_allowed).'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("BalanceMinimalDesired").'</td>'; print '<tr><td>'.$langs->trans("BalanceMinimalDesired").'</td>';
print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_desired" value="'.(isset($_POST["account_min_desired"])?$_POST["account_min_desired"]:$account->min_desired).'"></td></tr>'; print '<td colspan="3"><input size="12" type="text" class="flat" name="account_min_desired" value="'.(isset($_POST["account_min_desired"])?$_POST["account_min_desired"]:$account->min_desired).'"></td></tr>';
// Web // Web
print '<tr><td valign="top">'.$langs->trans("Web").'</td>'; print '<tr><td>'.$langs->trans("Web").'</td>';
print '<td colspan="3"><input size="50" type="text" class="flat" name="url" value="'.(isset($_POST["url"])?$_POST["url"]:$account->url).'">'; print '<td colspan="3"><input size="50" type="text" class="flat" name="url" value="'.(isset($_POST["url"])?$_POST["url"]:$account->url).'">';
print '</td></tr>'; print '</td></tr>';
// Comment // Comment
print '<tr><td valign="top">'.$langs->trans("Comment").'</td>'; print '<tr><td class="tdtop">'.$langs->trans("Comment").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
// Editor wysiwyg // Editor wysiwyg
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
@ -903,7 +909,7 @@ else
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// If bank account // If bank account
print '<tr><td valign="top" width="25%">'.$langs->trans("BankName").'</td>'; print '<tr><td width="25%">'.$langs->trans("BankName").'</td>';
print '<td colspan="3"><input size="30" type="text" class="flat" name="bank" value="'.$account->bank.'"></td>'; print '<td colspan="3"><input size="30" type="text" class="flat" name="bank" value="'.$account->bank.'"></td>';
print '</tr>'; print '</tr>';
@ -975,22 +981,22 @@ else
if ($account->getCountryCode() == 'IN') $bickey="SWIFT"; if ($account->getCountryCode() == 'IN') $bickey="SWIFT";
// IBAN // IBAN
print '<tr><td valign="top">'.$langs->trans($ibankey).'</td>'; print '<tr><td>'.$langs->trans($ibankey).'</td>';
print '<td colspan="3"><input size="34" maxlength="34" type="text" class="flat" name="iban" value="'.$account->iban.'"></td></tr>'; print '<td colspan="3"><input size="34" maxlength="34" type="text" class="flat" name="iban" value="'.$account->iban.'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans($bickey).'</td>'; print '<tr><td>'.$langs->trans($bickey).'</td>';
print '<td colspan="3"><input size="11" maxlength="11" type="text" class="flat" name="bic" value="'.$account->bic.'"></td></tr>'; print '<td colspan="3"><input size="11" maxlength="11" type="text" class="flat" name="bic" value="'.$account->bic.'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="3">';
print "<textarea class=\"flat\" name=\"domiciliation\" rows=\"2\" cols=\"40\">"; print "<textarea class=\"flat\" name=\"domiciliation\" rows=\"2\" cols=\"40\">";
print $account->domiciliation; print $account->domiciliation;
print "</textarea></td></tr>"; print "</textarea></td></tr>";
print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td>'; print '<tr><td>'.$langs->trans("BankAccountOwner").'</td>';
print '<td colspan="3"><input size="30" type="text" class="flat" name="proprio" value="'.$account->proprio.'">'; print '<td colspan="3"><input size="30" type="text" class="flat" name="proprio" value="'.$account->proprio.'">';
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="3">';
print "<textarea class=\"flat\" name=\"owner_address\" rows=\"2\" cols=\"40\">"; print "<textarea class=\"flat\" name=\"owner_address\" rows=\"2\" cols=\"40\">";
print $account->owner_address; print $account->owner_address;
print "</textarea></td></tr>"; print "</textarea></td></tr>";
@ -1004,25 +1010,27 @@ else
// Accountancy code // Accountancy code
if (! empty($conf->global->MAIN_BANK_ACCOUNTANCY_CODE_ALWAYS_REQUIRED)) if (! empty($conf->global->MAIN_BANK_ACCOUNTANCY_CODE_ALWAYS_REQUIRED))
{ {
print '<tr><td valign="top" class="fieldrequired" width="25%">'.$langs->trans("AccountancyCode").'</td>'; print '<tr><td class="fieldrequired" width="25%">'.$langs->trans("AccountancyCode").'</td>';
print '<td colspan="3"><input type="text" name="account_number" value="'.(isset($_POST["account_number"])?$_POST["account_number"]:$account->account_number).'"></td></tr>'; print '<td colspan="3"><input type="text" name="account_number" value="'.(isset($_POST["account_number"])?$_POST["account_number"]:$account->account_number).'"></td></tr>';
} }
else else
{ {
print '<tr><td valign="top" width="25%">'.$langs->trans("AccountancyCode").'</td>'; print '<tr><td width="25%">'.$langs->trans("AccountancyCode").'</td>';
print '<td colspan="3"><input type="text" name="account_number" value="'.(isset($_POST["account_number"])?$_POST["account_number"]:$account->account_number).'"></td></tr>'; print '<td colspan="3"><input type="text" name="account_number" value="'.(isset($_POST["account_number"])?$_POST["account_number"]:$account->account_number).'"></td></tr>';
} }
// Accountancy journal // Accountancy journal
if (! empty($conf->accounting->enabled)) if (! empty($conf->accounting->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("AccountancyJournal").'</td>'; print '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
print '<td colspan="3"><input type="text" name="accountancy_journal" value="'.(isset($_POST["accountancy_journal"])?$_POST["accountancy_journal"]:$account->accountancy_journal).'"></td></tr>'; print '<td colspan="3"><input type="text" name="accountancy_journal" value="'.(isset($_POST["accountancy_journal"])?$_POST["accountancy_journal"]:$account->accountancy_journal).'"></td></tr>';
} }
print '</table>'; print '</table>';
print '<br><div class="center">'; dol_fiche_end();
print '<div class="center">';
print '<input value="'.$langs->trans("Modify").'" type="submit" class="button">'; print '<input value="'.$langs->trans("Modify").'" type="submit" class="button">';
print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'; print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
print '<input name="cancel" value="'.$langs->trans("Cancel").'" type="submit" class="button">'; print '<input name="cancel" value="'.$langs->trans("Cancel").'" type="submit" class="button">';

View File

@ -441,7 +441,7 @@ else
$datas = array(); $datas = array();
$datamin = array(); $datamin = array();
$dataall = array(); $dataall = array();
$subtotal = 0; $subtotal = 0;
$day = $min; $day = $min;
@ -483,7 +483,7 @@ else
if ($acct->min_desired) array_push($graph_datas[$i],$datamin[$i]); if ($acct->min_desired) array_push($graph_datas[$i],$datamin[$i]);
if ($acct->min_allowed) array_push($graph_datas[$i],$dataall[$i]); if ($acct->min_allowed) array_push($graph_datas[$i],$dataall[$i]);
} }
$px3 = new DolGraph(); $px3 = new DolGraph();
$px3->SetData($graph_datas); $px3->SetData($graph_datas);
$arraylegends=array($langs->transnoentities("Balance")); $arraylegends=array($langs->transnoentities("Balance"));
@ -760,7 +760,7 @@ print '<table class="border" width="100%">';
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
// Ref // Ref
print '<tr><td valign="top" width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
if ($account) if ($account)
{ {
@ -799,7 +799,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Label // Label
print '<tr><td valign="top">'.$langs->trans("Label").'</td>'; print '<tr><td>'.$langs->trans("Label").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
if ($account && $_GET["option"]!='all') if ($account && $_GET["option"]!='all')
{ {

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr> * Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
* *
@ -128,13 +128,13 @@ if (empty($num))
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
// Ref // Ref
print '<tr><td valign="top" width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($acct, 'ref', $linkback, 1, 'ref'); print $form->showrefnav($acct, 'ref', $linkback, 1, 'ref');
print '</td></tr>'; print '</td></tr>';
// Label // Label
print '<tr><td valign="top">'.$langs->trans("Label").'</td>'; print '<tr><td>'.$langs->trans("Label").'</td>';
print '<td colspan="3">'.$acct->label.'</td></tr>'; print '<td colspan="3">'.$acct->label.'</td></tr>';
print '</table>'; print '</table>';

View File

@ -98,13 +98,13 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/index.php">'.$langs->trans("BackToList").'</a>';
// Ref // Ref
print '<tr><td valign="top" width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($acct, 'ref', $linkback, 1, 'ref'); print $form->showrefnav($acct, 'ref', $linkback, 1, 'ref');
print '</td></tr>'; print '</td></tr>';
// Label // Label
print '<tr><td valign="top">'.$langs->trans("Label").'</td>'; print '<tr><td>'.$langs->trans("Label").'</td>';
print '<td colspan="3">'.$acct->label.'</td></tr>'; print '<td colspan="3">'.$acct->label.'</td></tr>';
print '</table>'; print '</table>';

View File

@ -798,19 +798,19 @@ else
print '</td></tr>'; print '</td></tr>';
// Note Public // Note Public
print '<tr><td valign="top"><label for="note_public">'.$langs->trans("NotePublic").'</label></td><td colspan="3">'; print '<tr><td class="tdtop"><label for="note_public">'.$langs->trans("NotePublic").'</label></td><td colspan="3">';
$doleditor = new DolEditor('note_public', $object->note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); $doleditor = new DolEditor('note_public', $object->note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70);
print $doleditor->Create(1); print $doleditor->Create(1);
print '</td></tr>'; print '</td></tr>';
// Note Private // Note Private
print '<tr><td valign="top"><label for="note_private">'.$langs->trans("NotePrivate").'</label></td><td colspan="3">'; print '<tr><td class="tdtop"><label for="note_private">'.$langs->trans("NotePrivate").'</label></td><td colspan="3">';
$doleditor = new DolEditor('note_private', $object->note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70); $doleditor = new DolEditor('note_private', $object->note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, 70);
print $doleditor->Create(1); print $doleditor->Create(1);
print '</td></tr>'; print '</td></tr>';
// Statut // Statut
print '<tr><td valign="top">'.$langs->trans("Status").'</td>'; print '<tr><td>'.$langs->trans("Status").'</td>';
print '<td>'; print '<td>';
print $object->getLibStatut(5); print $object->getLibStatut(5);
print '</td></tr>'; print '</td></tr>';
@ -1025,16 +1025,16 @@ else
print '</td></tr>'; print '</td></tr>';
// Note Public // Note Public
print '<tr><td valign="top">'.$langs->trans("NotePublic").'</td><td colspan="3">'; print '<tr><td class="tdtop">'.$langs->trans("NotePublic").'</td><td colspan="3">';
print nl2br($object->note_public); print nl2br($object->note_public);
print '</td></tr>'; print '</td></tr>';
// Note Private // Note Private
print '<tr><td valign="top">'.$langs->trans("NotePrivate").'</td><td colspan="3">'; print '<tr><td class="tdtop">'.$langs->trans("NotePrivate").'</td><td colspan="3">';
print nl2br($object->note_private); print nl2br($object->note_private);
// Statut // Statut
print '<tr><td valign="top">'.$langs->trans("Status").'</td>'; print '<tr><td>'.$langs->trans("Status").'</td>';
print '<td>'; print '<td>';
print $object->getLibStatut(5); print $object->getLibStatut(5);
print '</td>'; print '</td>';

View File

@ -437,7 +437,7 @@ if ($result)
print '</form>'; print '</form>';
if ($num > $limit) print_barre_liste('', $page, $_SERVER["PHP_SELF"], '&amp;begin='.$begin.'&amp;view='.$view.'&amp;userid='.$userid, $sortfield, $sortorder, '', $num, $nbtotalofrecords, ''); if ($num > $limit) print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '');
$db->free($result); $db->free($result);
} }

View File

@ -25,15 +25,19 @@
// $action must be defined // $action must be defined
// $object must be defined (object is loaded in this file with fetch) // $object must be defined (object is loaded in this file with fetch)
// $cancel must be defined
// $id or $ref must be defined (object is loaded in this file with fetch) // $id or $ref must be defined (object is loaded in this file with fetch)
if ($id > 0 || ! empty($ref)) if (($id > 0 || ! empty($ref)) && empty($cancel))
{ {
$ret = $object->fetch($id,$ref); $ret = $object->fetch($id,$ref);
if ($ret > 0) { if ($ret > 0)
{
$object->fetch_thirdparty(); $object->fetch_thirdparty();
$id=$object->id; $id = $object->id;
} else { }
else
{
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
$action=''; $action='';
} }

View File

@ -56,9 +56,6 @@ class Form
var $cache_types_fees=array(); var $cache_types_fees=array();
var $cache_vatrates=array(); var $cache_vatrates=array();
var $tva_taux_value;
var $tva_taux_libelle;
/** /**
* Constructor * Constructor
@ -3842,10 +3839,10 @@ class Form
/** /**
* Output an HTML select vat rate * Output an HTML select vat rate
* *
* @param string $htmlname Nom champ html * @param string $htmlname Name of html select field
* @param float $selectedrate Forcage du taux tva pre-selectionne. Mettre '' pour aucun forcage. * @param float $selectedrate Force preselected vat rate. Use '' for no forcing.
* @param Societe $societe_vendeuse Objet societe vendeuse * @param Societe $societe_vendeuse Thirdparty seller
* @param Societe $societe_acheteuse Objet societe acheteuse * @param Societe $societe_acheteuse Thirdparty buyer
* @param int $idprod Id product * @param int $idprod Id product
* @param int $info_bits Miscellaneous information on line (1 for NPR) * @param int $info_bits Miscellaneous information on line (1 for NPR)
* @param int $type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined) * @param int $type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined)
@ -3863,9 +3860,6 @@ class Form
global $langs,$conf,$mysoc; global $langs,$conf,$mysoc;
$return=''; $return='';
$txtva=array();
$libtva=array();
$nprtva=array();
// Define defaultnpr and defaultttx // Define defaultnpr and defaultttx
$defaultnpr=($info_bits & 0x01); $defaultnpr=($info_bits & 0x01);
@ -3972,10 +3966,6 @@ class Form
$return.= '>'.vatrate($rate['libtva']); $return.= '>'.vatrate($rate['libtva']);
$return.= $rate['nprtva'] ? ' *': ''; $return.= $rate['nprtva'] ? ' *': '';
$return.= '</option>'; $return.= '</option>';
$this->tva_taux_value[] = $rate['txtva'];
$this->tva_taux_libelle[] = $rate['libtva'];
$this->tva_taux_npr[] = $rate['nprtva'];
} }
if (! $options_only) $return.= '</select>'; if (! $options_only) $return.= '</select>';
@ -4425,7 +4415,7 @@ class Form
static function selectArrayAjax($url, $htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $moreparam='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='', $addjscombo=0) static function selectArrayAjax($url, $htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $moreparam='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='', $addjscombo=0)
{ {
$out = ''; $out = '';
// Add code for jquery to use multiselect // Add code for jquery to use multiselect
if ($addjscombo && empty($conf->dol_use_jmobile)) if ($addjscombo && empty($conf->dol_use_jmobile))
{ {
@ -4466,14 +4456,14 @@ class Form
else else
{ {
// TODO get values from ajax page to use a standard already completed array // TODO get values from ajax page to use a standard already completed array
} }
$out.=self::selectarray('.'.$htmlname, $array, $id, $show_empty, $key_in_label, $value_as_key, '', $translate, $maxlen, $disabled, $sort, '', 0); $out.=self::selectarray('.'.$htmlname, $array, $id, $show_empty, $key_in_label, $value_as_key, '', $translate, $maxlen, $disabled, $sort, '', 0);
return $out; return $out;
} }
/** /**
* Show a multiselect form from an array. * Show a multiselect form from an array.
* *
@ -4568,7 +4558,7 @@ class Form
} }
/** /**
* Render list of categories linked to object with id $id and type $type * Render list of categories linked to object with id $id and type $type
* *

View File

@ -2804,7 +2804,7 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
print "\n"; print "\n";
print "<!-- Begin title '".$titre."' -->\n"; print "<!-- Begin title '".$titre."' -->\n";
print '<table width="100%" border="0" class="notopnoleftnoright" style="margin-bottom: 2px;"><tr>'; print '<table width="100%" border="0" class="notopnoleftnoright" style="margin-bottom: 6px;"><tr>';
// Left // Left
if ($picto && $titre) print '<td class="nobordernopadding hideonsmartphone" width="40" align="left" valign="middle">'.img_picto('', $picto, '', $pictoisfullpath).'</td>'; if ($picto && $titre) print '<td class="nobordernopadding hideonsmartphone" width="40" align="left" valign="middle">'.img_picto('', $picto, '', $pictoisfullpath).'</td>';
@ -2824,43 +2824,44 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
$pagelist = ''; $pagelist = '';
if ($page > 0 || $num > $conf->liste_limit) if ($page > 0 || $num > $conf->liste_limit)
{ {
if ($totalnboflines) if ($totalnboflines) // If we know total nb of lines
{ {
$maxnbofpage=10; $maxnbofpage=10;
$nbpages=ceil($totalnboflines/$conf->liste_limit); $nbpages=ceil($totalnboflines/$conf->liste_limit);
$cpt=($page-$maxnbofpage); $cpt=($page-$maxnbofpage);
if ($cpt < 0) { $cpt=0; } if ($cpt < 0) { $cpt=0; }
$pagelist.=$langs->trans('Page');
if ($cpt>=1) if ($cpt>=1)
{ {
$pagelist.=' <a href="'.$file.'?page=0'.$options.'&amp;sortfield='.$sortfield.'&amp;sortorder='.$sortorder.'">1</a>'; $pagelist.= '<li><a href="'.$file.'?page=0'.$options.'&amp;sortfield='.$sortfield.'&amp;sortorder='.$sortorder.'">1</a></li>'."\n";
if ($cpt >= 2) $pagelist.=' ...'; if ($cpt >= 2) $pagelist.='<li><span>...</span></li>';
} }
do do
{ {
if ($cpt==$page) if ($cpt==$page)
{ {
$pagelist.= ' <u>'.($page+1).'</u>'; $pagelist.= '<li><span class="active">'.($page+1).'</span></li>'."\n";
} }
else else
{ {
$pagelist.= ' <a href="'.$file.'?page='.$cpt.$options.'&amp;sortfield='.$sortfield.'&amp;sortorder='.$sortorder.'">'.($cpt+1).'</a>'; $pagelist.= '<li><a href="'.$file.'?page='.$cpt.$options.'&amp;sortfield='.$sortfield.'&amp;sortorder='.$sortorder.'">'.($cpt+1).'</a></li>'."\n";
} }
$cpt++; $cpt++;
} }
while ($cpt < $nbpages && $cpt<=$page+$maxnbofpage); while ($cpt < $nbpages && $cpt<=$page+$maxnbofpage);
if ($cpt<$nbpages) if ($cpt<$nbpages)
{ {
if ($cpt<$nbpages-1) $pagelist.= ' ...'; if ($cpt<$nbpages-1) $pagelist.= '<li><span>...</span></li>';
$pagelist.= ' <a href="'.$file.'?page='.($nbpages-1).$options.'&amp;sortfield='.$sortfield.'&amp;sortorder='.$sortorder.'">'.$nbpages.'</a>'; $pagelist.= '<li><a href="'.$file.'?page='.($nbpages-1).$options.'&amp;sortfield='.$sortfield.'&amp;sortorder='.$sortorder.'">'.$nbpages.'</a></li>'."\n";
} }
} }
else else
{ {
$pagelist.= $langs->trans('Page').' '.($page+1); $pagelist.= '<li><span class="active">'.($page+1)."</li>\n";
} }
} }
print "\n";
print_fleche_navigation($page,$file,$options,$nextpage,$pagelist); print_fleche_navigation($page,$file,$options,$nextpage,$pagelist);
if ($morehtml) print $morehtml; if ($morehtml) print $morehtml;
print '</td>'; print '</td>';
@ -2870,12 +2871,12 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
} }
/** /**
* Fonction servant a afficher les fleches de navigation dans les pages de listes * Function to show navigation arrows into lists
* *
* @param int $page Number of page * @param int $page Number of page
* @param string $file Lien * @param string $file Page
* @param string $options Autres parametres d'url a propager dans les liens ("" par defaut) * @param string $options Other url paramaters to propagate ("" by default)
* @param integer $nextpage Do we show a next page button * @param integer $nextpage Do we show a next page button
* @param string $betweenarrows HTML Content to show between arrows * @param string $betweenarrows HTML Content to show between arrows
* @return void * @return void
*/ */
@ -2883,17 +2884,20 @@ function print_fleche_navigation($page,$file,$options='',$nextpage=0,$betweenarr
{ {
global $conf, $langs; global $conf, $langs;
print '<div class="pagination"><ul>';
if ($page > 0) if ($page > 0)
{ {
if (empty($conf->dol_use_jmobile)) print '<a href="'.$file.'?page='.($page-1).$options.'">'.img_previous($langs->trans("Previous")).'</a>'; if (empty($conf->dol_use_jmobile)) print '<li><a class="paginationprevious" href="'.$file.'?page='.($page-1).$options.'"><</a></li>'."\n";
else print '<a data-role="button" data-icon="arrow-l" data-iconpos="left" href="'.$file.'?page='.($page-1).$options.'">'.$langs->trans("Previous").'</a>'; else print '<li><a data-role="button" data-icon="arrow-l" data-iconpos="left" href="'.$file.'?page='.($page-1).$options.'">'.$langs->trans("Previous").'</a></li>'."\n";
} }
if ($betweenarrows) print ($page > 0?' ':'').$betweenarrows.($nextpage>0?' ':''); //if ($betweenarrows) print ($page > 0?' ':'').$betweenarrows.($nextpage>0?' ':'');
print $betweenarrows;
if ($nextpage > 0) if ($nextpage > 0)
{ {
if (empty($conf->dol_use_jmobile)) print '<a href="'.$file.'?page='.($page+1).$options.'">'.img_next($langs->trans("Next")).'</a>'; if (empty($conf->dol_use_jmobile)) print '<li><a class="paginationnext" href="'.$file.'?page='.($page+1).$options.'">></a></li>'."\n";
else print '<a data-role="button" data-icon="arrow-r" data-iconpos="right" href="'.$file.'?page='.($page+1).$options.'">'.$langs->trans("Next").'</a>'; else print '<li><a data-role="button" data-icon="arrow-r" data-iconpos="right" href="'.$file.'?page='.($page+1).$options.'">'.$langs->trans("Next").'</a></li>'."\n";
} }
print '</ul></div>'."\n";
} }

View File

@ -1,5 +1,6 @@
<?php <?php
/* Copyright (C) 2015 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -23,16 +24,16 @@
*/ */
require_once DOL_DOCUMENT_ROOT.'/core/modules/expensereport/modules_expensereport.php'; require_once DOL_DOCUMENT_ROOT.'/core/modules/expensereport/modules_expensereport.php';
require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php"); require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php"); require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'); require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
/** /**
* Classe permettant de generer les factures au modele Crabe * Class to generate expense report based on standard model
*/ */
class pdf_standard extends ModeleExpenseReport class pdf_standard extends ModeleExpenseReport
{ {
@ -252,7 +253,7 @@ class pdf_standard extends ModeleExpenseReport
$tab_height = 110; $tab_height = 110;
$tab_height_newpage = 110; $tab_height_newpage = 110;
// Affiche notes // Show notes
$notetoshow=empty($object->note_public)?'':$object->note_public; $notetoshow=empty($object->note_public)?'':$object->note_public;
if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE)) if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE))
{ {
@ -308,7 +309,7 @@ class pdf_standard extends ModeleExpenseReport
$showpricebeforepagebreak=1; $showpricebeforepagebreak=1;
// Piece comptable // Accountancy piece
$pdf->SetFont('','', $default_font_size - 1); $pdf->SetFont('','', $default_font_size - 1);
$pdf->writeHTMLCell($this->posxcomment-$this->posxpiece-1, 3, $this->posxpiece-1, $curY, $piece_comptable, 0, 1); $pdf->writeHTMLCell($this->posxcomment-$this->posxpiece-1, 3, $this->posxpiece-1, $curY, $piece_comptable, 0, 1);
@ -334,17 +335,18 @@ class pdf_standard extends ModeleExpenseReport
$pdf->SetXY($this->posxtype, $curY); $pdf->SetXY($this->posxtype, $curY);
$pdf->MultiCell($this->posxprojet-$this->posxtype-1, 3,$outputlangs->transnoentities($object->lines[$i]->type_fees_code), 0, 'C'); $pdf->MultiCell($this->posxprojet-$this->posxtype-1, 3,$outputlangs->transnoentities($object->lines[$i]->type_fees_code), 0, 'C');
// Projet // Project
$pdf->SetFont('','', $default_font_size - 1); $pdf->SetFont('','', $default_font_size - 1);
$pdf->SetXY($this->posxprojet, $curY); $pdf->SetXY($this->posxprojet, $curY);
$pdf->MultiCell($this->posxtva-$this->posxprojet-1, 3,$object->lines[$i]->projet_ref, 0, 'C'); $pdf->MultiCell($this->posxtva-$this->posxprojet-1, 3,$object->lines[$i]->projet_ref, 0, 'C');
// VAT Rate // VAT Rate
$vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails);
$pdf->SetFont('','', $default_font_size - 1); $pdf->SetFont('','', $default_font_size - 1);
$pdf->SetXY($this->posxtva, $curY); $pdf->SetXY($this->posxtva, $curY);
$pdf->MultiCell($this->posxup-$this->posxtva-1, 3,vatrate($object->lines[$i]->tva_taux,true), 0, 'R'); $pdf->MultiCell($this->posxup-$this->posxtva-1, 3,$vat_rate, 0, 'R');
// UP // Unit price
$pdf->SetFont('','', $default_font_size - 1); $pdf->SetFont('','', $default_font_size - 1);
$pdf->SetXY($this->posxup, $curY); $pdf->SetXY($this->posxup, $curY);
$pdf->MultiCell($this->posxqty-$this->posxup-1, 3,price($object->lines[$i]->value_unit), 0, 'R'); $pdf->MultiCell($this->posxqty-$this->posxup-1, 3,price($object->lines[$i]->value_unit), 0, 'R');
@ -354,7 +356,7 @@ class pdf_standard extends ModeleExpenseReport
$pdf->SetXY($this->posxqty, $curY); $pdf->SetXY($this->posxqty, $curY);
$pdf->MultiCell($this->postotalttc-$this->posxqty, 3,$object->lines[$i]->qty, 0, 'C'); $pdf->MultiCell($this->postotalttc-$this->posxqty, 3,$object->lines[$i]->qty, 0, 'C');
// TotalTTC // Total with all taxes
$pdf->SetFont('','', $default_font_size - 1); $pdf->SetFont('','', $default_font_size - 1);
$pdf->SetXY($this->postotalttc-2, $curY); $pdf->SetXY($this->postotalttc-2, $curY);
$pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 3, price($object->lines[$i]->total_ttc), 0, 'R'); $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 3, price($object->lines[$i]->total_ttc), 0, 'R');
@ -439,6 +441,13 @@ class pdf_standard extends ModeleExpenseReport
$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 160, 5, price($object->total_ht), 1, 'R'); $pdf->MultiCell($this->page_largeur - $this->marge_gauche - 160, 5, price($object->total_ht), 1, 'R');
$pdf->SetFillColor(248,248,248); $pdf->SetFillColor(248,248,248);
$posy+=5;
$pdf->SetXY(100, $posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(60, 5, $outputlangs->transnoentities("TotalVAT"), 1,'L');
$pdf->SetXY(160, $posy);
$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 160, 5, price($object->total_tva),1, 'R');
$posy+=5; $posy+=5;
$pdf->SetXY(100, $posy); $pdf->SetXY(100, $posy);
$pdf->SetFont('','B', 10); $pdf->SetFont('','B', 10);
@ -507,7 +516,7 @@ class pdf_standard extends ModeleExpenseReport
pdf_pagehead($pdf,$outputlangs,$this->page_hauteur); pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
*/ */
// Filligrane brouillon // Draft watermark
if ($object->fk_statut==1 && ! empty($conf->global->EXPENSEREPORT_FREE_TEXT)) if ($object->fk_statut==1 && ! empty($conf->global->EXPENSEREPORT_FREE_TEXT))
{ {
pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->EXPENSEREPORT_FREE_TEXT); pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->EXPENSEREPORT_FREE_TEXT);
@ -551,25 +560,25 @@ class pdf_standard extends ModeleExpenseReport
$pdf->SetFont('','', $default_font_size -1); $pdf->SetFont('','', $default_font_size -1);
// Réf complète // Ref complete
$posy+=8; $posy+=8;
$pdf->SetXY($posx,$posy); $pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60); $pdf->SetTextColor(0,0,60);
$pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("Ref")." : " . $object->ref, '', 'L'); $pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("Ref")." : " . $object->ref, '', 'L');
// Date début période // Date start period
$posy+=5; $posy+=5;
$pdf->SetXY($posx,$posy); $pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60); $pdf->SetTextColor(0,0,60);
$pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("DateStart")." : " . ($object->date_debut>0?dol_print_date($object->date_debut,"day",false,$outpulangs):''), '', 'L'); $pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("DateStart")." : " . ($object->date_debut>0?dol_print_date($object->date_debut,"day",false,$outpulangs):''), '', 'L');
// Date fin période // Date end period
$posy+=5; $posy+=5;
$pdf->SetXY($posx,$posy); $pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60); $pdf->SetTextColor(0,0,60);
$pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("DateEnd")." : " . ($object->date_fin>0?dol_print_date($object->date_fin,"day",false,$outpulangs):''), '', 'L'); $pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("DateEnd")." : " . ($object->date_fin>0?dol_print_date($object->date_fin,"day",false,$outpulangs):''), '', 'L');
// Statut NDF // Status Expense Report
$posy+=6; $posy+=6;
$pdf->SetXY($posx,$posy); $pdf->SetXY($posx,$posy);
$pdf->SetFont('','B',18); $pdf->SetFont('','B',18);
@ -581,7 +590,7 @@ class pdf_standard extends ModeleExpenseReport
$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->address); $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->address);
$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->zip).' '.$outputlangs->convToOutputCharset($this->emetteur->town); $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->zip).' '.$outputlangs->convToOutputCharset($this->emetteur->town);
$carac_emetteur .= "\n"; $carac_emetteur .= "\n";
// Tel // Phone
if ($this->emetteur->phone) $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->transnoentities("Phone")." : ".$outputlangs->convToOutputCharset($this->emetteur->phone); if ($this->emetteur->phone) $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->transnoentities("Phone")." : ".$outputlangs->convToOutputCharset($this->emetteur->phone);
// Fax // Fax
if ($this->emetteur->fax) $carac_emetteur .= ($carac_emetteur ? ($this->emetteur->tel ? " - " : "\n") : '' ).$outputlangs->transnoentities("Fax")." : ".$outputlangs->convToOutputCharset($this->emetteur->fax); if ($this->emetteur->fax) $carac_emetteur .= ($carac_emetteur ? ($this->emetteur->tel ? " - " : "\n") : '' ).$outputlangs->transnoentities("Fax")." : ".$outputlangs->convToOutputCharset($this->emetteur->fax);
@ -734,46 +743,46 @@ class pdf_standard extends ModeleExpenseReport
$pdf->SetFont('','',8); $pdf->SetFont('','',8);
//Piece comptable // Accountancy piece
$pdf->SetXY($this->posxpiece-1, $tab_top+1); $pdf->SetXY($this->posxpiece-1, $tab_top+1);
$pdf->MultiCell($this->posxdesc-$this->posxpiece-1,1,'','','R'); $pdf->MultiCell($this->posxdesc-$this->posxpiece-1,1,'','','R');
//Comments // Comments
$pdf->line($this->posxdesc-1, $tab_top, $this->posxdesc-1, $tab_top + $tab_height); $pdf->line($this->posxdesc-1, $tab_top, $this->posxdesc-1, $tab_top + $tab_height);
$pdf->SetXY($this->posxdesc-1, $tab_top+1); $pdf->SetXY($this->posxdesc-1, $tab_top+1);
$pdf->MultiCell($this->posxdate-$this->posxdesc-1,1,$outputlangs->transnoentities("Description"),'','L'); $pdf->MultiCell($this->posxdate-$this->posxdesc-1,1,$outputlangs->transnoentities("Description"),'','L');
//Date // Date
$pdf->line($this->posxdate-1, $tab_top, $this->posxdate-1, $tab_top + $tab_height); $pdf->line($this->posxdate-1, $tab_top, $this->posxdate-1, $tab_top + $tab_height);
$pdf->SetXY($this->posxdate-1, $tab_top+1); $pdf->SetXY($this->posxdate-1, $tab_top+1);
$pdf->MultiCell($this->posxtype-$this->posxdate-1,2, $outputlangs->transnoentities("Date"),'','C'); $pdf->MultiCell($this->posxtype-$this->posxdate-1,2, $outputlangs->transnoentities("Date"),'','C');
//Type // Type
$pdf->line($this->posxtype-1, $tab_top, $this->posxtype-1, $tab_top + $tab_height); $pdf->line($this->posxtype-1, $tab_top, $this->posxtype-1, $tab_top + $tab_height);
$pdf->SetXY($this->posxtype-1, $tab_top+1); $pdf->SetXY($this->posxtype-1, $tab_top+1);
$pdf->MultiCell($this->posxprojet-$this->posxtype-1,2, $outputlangs->transnoentities("Type"),'','C'); $pdf->MultiCell($this->posxprojet-$this->posxtype-1,2, $outputlangs->transnoentities("Type"),'','C');
// Projet // Project
$pdf->line($this->posxprojet-1, $tab_top, $this->posxprojet-1, $tab_top + $tab_height); $pdf->line($this->posxprojet-1, $tab_top, $this->posxprojet-1, $tab_top + $tab_height);
$pdf->SetXY($this->posxprojet-1, $tab_top+1); $pdf->SetXY($this->posxprojet-1, $tab_top+1);
$pdf->MultiCell($this->posxtva-$this->posxprojet-1,2, $outputlangs->transnoentities("Project"),'','C'); $pdf->MultiCell($this->posxtva-$this->posxprojet-1,2, $outputlangs->transnoentities("Project"),'','C');
//TVA // VAT
$pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height); $pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height);
$pdf->SetXY($this->posxtva-1, $tab_top+1); $pdf->SetXY($this->posxtva-1, $tab_top+1);
$pdf->MultiCell($this->posxup-$this->posxtva-1,2, $outputlangs->transnoentities("VAT"),'','C'); $pdf->MultiCell($this->posxup-$this->posxtva-1,2, $outputlangs->transnoentities("VAT"),'','C');
//PU // Unit price
$pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height); $pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height);
$pdf->SetXY($this->posxup-1, $tab_top+1); $pdf->SetXY($this->posxup-1, $tab_top+1);
$pdf->MultiCell($this->posxqty-$this->posxup-1,2, $outputlangs->transnoentities("UP"),'','C'); $pdf->MultiCell($this->posxqty-$this->posxup-1,2, $outputlangs->transnoentities("PriceU"),'','C');
//QTY // Quantity
$pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height); $pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height);
$pdf->SetXY($this->posxqty-1, $tab_top+1); $pdf->SetXY($this->posxqty-1, $tab_top+1);
$pdf->MultiCell($this->postotalttc-$this->posxqty,2, $outputlangs->transnoentities("Qty"),'','R'); $pdf->MultiCell($this->postotalttc-$this->posxqty,2, $outputlangs->transnoentities("Qty"),'','R');
//TOTALTTC // Total with all taxes
$pdf->line($this->postotalttc, $tab_top, $this->postotalttc, $tab_top + $tab_height); $pdf->line($this->postotalttc, $tab_top, $this->postotalttc, $tab_top + $tab_height);
$pdf->SetXY($this->postotalttc-1, $tab_top+1); $pdf->SetXY($this->postotalttc-1, $tab_top+1);
$pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 2, $outputlangs->transnoentities("TotalTTC"),'','R'); $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 2, $outputlangs->transnoentities("TotalTTC"),'','R');

View File

0
htdocs/core/modules/modExpenseReport.class.php Executable file → Normal file
View File

0
htdocs/expensereport/ajax/ajaxprojet.php Executable file → Normal file
View File

73
htdocs/expensereport/card.php Executable file → Normal file
View File

@ -828,9 +828,8 @@ if ($action == "addline")
$object_ligne->fk_c_type_fees = GETPOST('fk_c_type_fees'); $object_ligne->fk_c_type_fees = GETPOST('fk_c_type_fees');
$vatrate=GETPOST('vatrate'); $object_ligne->fk_c_tva = GETPOST('fk_c_tva');
$object_ligne->fk_c_tva = $vatrate; $object_ligne->vatrate = price2num(GETPOST('vatrate'));
$object_ligne->vatrate = $vatrate;
$object_ligne->fk_projet = $fk_projet; $object_ligne->fk_projet = $fk_projet;
@ -878,8 +877,8 @@ if ($action == "addline")
$type = 0; // TODO What if service $type = 0; // TODO What if service
$tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type); $tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type);
$object_ligne->vatrate = price2num(GETPOST('vatrate'));
$object_ligne->total_ttc = $tmp[2]; $object_ligne->total_ttc = $tmp[2];
$object_ligne->tva_taux = GETPOST('vatrate');
$object_ligne->total_ht = $tmp[0]; $object_ligne->total_ht = $tmp[0];
$object_ligne->total_tva = $tmp[1]; $object_ligne->total_tva = $tmp[1];
@ -906,11 +905,11 @@ if ($action == 'confirm_delete_line' && GETPOST("confirm") == "yes")
$object->fetch($id); $object->fetch($id);
$object_ligne = new ExpenseReportLine($db); $object_ligne = new ExpenseReportLine($db);
$object_ligne->fetch($_GET["rowid"]); $object_ligne->fetch(GETPOST("rowid"));
$total_ht = $object_ligne->total_ht; $total_ht = $object_ligne->total_ht;
$total_tva = $object_ligne->total_tva; $total_tva = $object_ligne->total_tva;
$result=$object->deleteline($_GET["rowid"]); $result=$object->deleteline(GETPOST("rowid"));
if ($result >= 0) if ($result >= 0)
{ {
if ($result > 0) if ($result > 0)
@ -950,12 +949,13 @@ if ($action == "updateligne" )
$rowid = $_POST['rowid']; $rowid = $_POST['rowid'];
$type_fees_id = GETPOST('fk_c_type_fees'); $type_fees_id = GETPOST('fk_c_type_fees');
$c_tva=GETPOST('vatrate'); $object_ligne->fk_c_tva = GETPOST('fk_c_tva');
$object_ligne->fk_c_tva = $c_tva; $object_ligne->vatrate = price2num(GETPOST('vatrate'));
$projet_id = $fk_projet; $projet_id = $fk_projet;
$comments = GETPOST('comments'); $comments = GETPOST('comments');
$qty = GETPOST('qty'); $qty = GETPOST('qty');
$value_unit = GETPOST('value_unit'); $value_unit = GETPOST('value_unit');
$vatrate = GETPOST('vatrate');
if (! GETPOST('fk_c_type_fees') > 0) if (! GETPOST('fk_c_type_fees') > 0)
{ {
@ -972,7 +972,7 @@ if ($action == "updateligne" )
if (! $error) if (! $error)
{ {
$result = $object->updateline($rowid, $type_fees_id, $projet_id, $c_tva, $comments, $qty, $value_unit, $date, $object_id); $result = $object->updateline($rowid, $type_fees_id, $projet_id, $vatrate, $comments, $qty, $value_unit, $date, $id);
if ($result >= 0) if ($result >= 0)
{ {
if ($result > 0) if ($result > 0)
@ -995,8 +995,9 @@ if ($action == "updateligne" )
} }
} }
$object->recalculer($object_id); $result = $object->recalculer($id);
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object_id);
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
exit; exit;
} }
else else
@ -1008,9 +1009,9 @@ if ($action == "updateligne" )
/* /*
* Generer ou regenerer le document PDF * Generate or regenerate the PDF document
*/ */
if ($action == 'builddoc') // En get ou en post if ($action == 'builddoc') // GET or POST
{ {
$depl = new ExpenseReport($db, 0, $_GET['id']); $depl = new ExpenseReport($db, 0, $_GET['id']);
$depl->fetch($id); $depl->fetch($id);
@ -1370,7 +1371,7 @@ else
if ($action == 'delete_line') if ($action == 'delete_line')
{ {
$ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id."&amp;rowid=".$_GET['rowid'],$langs->trans("DeleteLine"),$langs->trans("ConfirmDeleteLine"),"confirm_delete_line",'','yes',1); $ret=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id."&rowid=".GETPOST('rowid'),$langs->trans("DeleteLine"),$langs->trans("ConfirmDeleteLine"),"confirm_delete_line",'','yes',1);
if ($ret == 'html') print '<br>'; if ($ret == 'html') print '<br>';
} }
@ -1528,7 +1529,7 @@ else
// Fetch Lines of current expense report // Fetch Lines of current expense report
$sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_projet, fde.date,'; $sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_projet, fde.date,';
$sql.= ' fde.fk_c_tva as vatrate, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,'; $sql.= ' fde.fk_c_tva as fk_c_tva, fde.tva_tx as vatrate, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,';
$sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,'; $sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,';
$sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref'; $sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref';
$sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde'; $sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde';
@ -1636,10 +1637,10 @@ else
// Select project // Select project
print '<td>'; print '<td>';
$formproject->select_projects(-1, $objp->fk_projet,'fk_projet', 0, 0, 0, 1); $formproject->select_projects(-1, $objp->fk_projet,'fk_projet', 0, 0, 1, 1);
print '</td>'; print '</td>';
// Sélect type // Select type
print '<td style="text-align:center;">'; print '<td style="text-align:center;">';
select_type_fees_id($objp->type_fees_code,'fk_c_type_fees'); select_type_fees_id($objp->type_fees_code,'fk_c_type_fees');
print '</td>'; print '</td>';
@ -1649,17 +1650,17 @@ else
print '<textarea class="flat_ndf" name="comments" class="centpercent">'.$objp->comments.'</textarea>'; print '<textarea class="flat_ndf" name="comments" class="centpercent">'.$objp->comments.'</textarea>';
print '</td>'; print '</td>';
// Sélection TVA // VAT
print '<td style="text-align:right;">'; print '<td style="text-align:right;">';
print $form->load_tva('fk_c_tva', (isset($_POST["fk_c_tva"])?$_POST["fk_c_tva"]:$objp->tva_taux), $mysoc, ''); print $form->load_tva('vatrate', (isset($_POST["vatrate"])?$_POST["vatrate"]:$objp->vatrate), $mysoc, '');
print '</td>'; print '</td>';
// Prix unitaire // Unit price
print '<td style="text-align:right;">'; print '<td style="text-align:right;">';
print '<input type="text" size="6" name="value_unit" value="'.$objp->value_unit.'" />'; print '<input type="text" size="6" name="value_unit" value="'.$objp->value_unit.'" />';
print '</td>'; print '</td>';
// Quantité // Quantity
print '<td style="text-align:right;">'; print '<td style="text-align:right;">';
print '<input type="text" size="4" name="qty" value="'.$objp->qty.'" />'; print '<input type="text" size="4" name="qty" value="'.$objp->qty.'" />';
print '</td>'; print '</td>';
@ -1712,7 +1713,7 @@ else
print '<td style="text-align:center;"></td>'; print '<td style="text-align:center;"></td>';
print '</tr>'; print '</tr>';
print '<tr>'; print '<tr '.$bc[true].'>';
// Select date // Select date
print '<td style="text-align:center;">'; print '<td style="text-align:center;">';
@ -1744,7 +1745,7 @@ else
print '</select>'; print '</select>';
print '</td>'; print '</td>';
// Prix unitaire // Unit price
print '<td style="text-align:right;">'; print '<td style="text-align:right;">';
print '<input type="text" size="6" name="value_unit" value="'.GETPOST('value_unit').'">'; print '<input type="text" size="6" name="value_unit" value="'.GETPOST('value_unit').'">';
print '</td>'; print '</td>';
@ -1805,7 +1806,7 @@ if ($action != 'create' && $action != 'edit')
{ {
if ($object->fk_user_author == $user->id) if ($object->fk_user_author == $user->id)
{ {
// Modifier // Modify
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$id.'">'.$langs->trans('Modify').'</a>'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$id.'">'.$langs->trans('Modify').'</a>';
// Validate // Validate
@ -1816,7 +1817,7 @@ if ($action != 'create' && $action != 'edit')
if ($user->rights->expensereport->supprimer) if ($user->rights->expensereport->supprimer)
{ {
// Supprimer // Delete
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>'; print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
} }
} }
@ -1831,7 +1832,7 @@ if ($action != 'create' && $action != 'edit')
{ {
if ($user->id == $object->fk_user_author || $user->id == $object->fk_user_valid) if ($user->id == $object->fk_user_author || $user->id == $object->fk_user_valid)
{ {
// Modifier // Modify
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$id.'">'.$langs->trans('Modify').'</a>'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$id.'">'.$langs->trans('Modify').'</a>';
// Brouillonner (le statut refusée est identique à brouillon) // Brouillonner (le statut refusée est identique à brouillon)
@ -1841,7 +1842,7 @@ if ($action != 'create' && $action != 'edit')
if ($user->rights->expensereport->supprimer) if ($user->rights->expensereport->supprimer)
{ {
// Supprimer // Delete
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>'; print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
} }
} }
@ -1874,9 +1875,9 @@ if ($action != 'create' && $action != 'edit')
{ {
//if($object->fk_user_validator==$user->id) //if($object->fk_user_validator==$user->id)
//{ //{
// Valider // Validate
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=validate&id='.$id.'">'.$langs->trans('Approve').'</a>'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=validate&id='.$id.'">'.$langs->trans('Approve').'</a>';
// Refuser // Deny
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=refuse&id='.$id.'">'.$langs->trans('Deny').'</a>'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=refuse&id='.$id.'">'.$langs->trans('Deny').'</a>';
//} //}
@ -1888,7 +1889,7 @@ if ($action != 'create' && $action != 'edit')
if($user->rights->expensereport->supprimer) if($user->rights->expensereport->supprimer)
{ {
// Supprimer // Delete
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>'; print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
} }
} }
@ -1899,7 +1900,7 @@ if ($action != 'create' && $action != 'edit')
*/ */
if ($user->rights->expensereport->to_paid && $object->fk_statut == 5) if ($user->rights->expensereport->to_paid && $object->fk_statut == 5)
{ {
// Payer // Pay
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=paid&id='.$id.'">'.$langs->trans('TO_PAID').'</a>'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=paid&id='.$id.'">'.$langs->trans('TO_PAID').'</a>';
// Cancel // Cancel
@ -1910,7 +1911,7 @@ if ($action != 'create' && $action != 'edit')
if($user->rights->expensereport->supprimer) if($user->rights->expensereport->supprimer)
{ {
// Supprimer // Delete
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>'; print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
} }
} }
@ -1922,11 +1923,11 @@ if ($action != 'create' && $action != 'edit')
*/ */
if ($user->rights->expensereport->approve && $user->rights->expensereport->to_paid && $object->fk_statut==6) if ($user->rights->expensereport->approve && $user->rights->expensereport->to_paid && $object->fk_statut==6)
{ {
// Annuler // Cancel
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=cancel&id='.$id.'">'.$langs->trans('Cancel').'</a>'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=cancel&id='.$id.'">'.$langs->trans('Cancel').'</a>';
if($user->rights->expensereport->supprimer) if($user->rights->expensereport->supprimer)
{ {
// Supprimer // Delete
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>'; print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
} }
} }
@ -1944,7 +1945,7 @@ if ($action != 'create' && $action != 'edit')
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=brouillonner&id='.$id.'">'.$langs->trans('ReOpen').'</a>'; print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=brouillonner&id='.$id.'">'.$langs->trans('ReOpen').'</a>';
} }
// Supprimer // Delete
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>'; print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
} }
@ -1959,7 +1960,7 @@ print '</div>';
print '<div style="width:50%">'; print '<div style="width:50%">';
/* /*
* Documents generes * Generate documents
*/ */
if($user->rights->expensereport->export && $object->fk_statut>0 && $action != 'edit') if($user->rights->expensereport->export && $object->fk_statut>0 && $action != 'edit')
{ {

138
htdocs/expensereport/class/expensereport.class.php Executable file → Normal file
View File

@ -282,7 +282,7 @@ class ExpenseReport extends CommonObject
*/ */
function fetch($id, $ref='') function fetch($id, $ref='')
{ {
global $conf,$db; global $conf;
$sql = "SELECT d.rowid, d.ref, d.note_public, d.note_private,"; // DEFAULT $sql = "SELECT d.rowid, d.ref, d.note_public, d.note_private,"; // DEFAULT
$sql.= " d.detail_refuse, d.detail_cancel, d.fk_user_refuse, d.fk_user_cancel,"; // ACTIONS $sql.= " d.detail_refuse, d.detail_cancel, d.fk_user_refuse, d.fk_user_cancel,"; // ACTIONS
@ -298,10 +298,10 @@ class ExpenseReport extends CommonObject
$sql.= $restrict; $sql.= $restrict;
dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
$result = $db->query($sql) ; $resql = $this->db->query($sql) ;
if ($result) if ($resql)
{ {
$obj = $db->fetch_object($result); $obj = $this->db->fetch_object($resql);
if ($obj) if ($obj)
{ {
$this->id = $obj->rowid; $this->id = $obj->rowid;
@ -367,7 +367,7 @@ class ExpenseReport extends CommonObject
$result=$this->fetch_lines(); $result=$this->fetch_lines();
return 1; return $result;
} }
else else
{ {
@ -376,7 +376,7 @@ class ExpenseReport extends CommonObject
} }
else else
{ {
$this->error=$db->lasterror(); $this->error=$this->db->lasterror();
return -1; return -1;
} }
} }
@ -539,8 +539,7 @@ class ExpenseReport extends CommonObject
$line->total_tva=20; $line->total_tva=20;
$line->total_ttc=120; $line->total_ttc=120;
$line->qty=1; $line->qty=1;
$line->fk_c_tva=20; $line->vatrate=20;
$line->tva_taux=20;
$line->value_unit=120; $line->value_unit=120;
$line->fk_expensereport=0; $line->fk_expensereport=0;
$line->type_fees_code='TRA'; $line->type_fees_code='TRA';
@ -664,6 +663,7 @@ class ExpenseReport extends CommonObject
/** /**
* recalculer * recalculer
* TODO Replace this with call to update_price if not already done
* *
* @param int $id Id of expense report * @param int $id Id of expense report
* @return int <0 if KO, >0 if OK * @return int <0 if KO, >0 if OK
@ -724,7 +724,7 @@ class ExpenseReport extends CommonObject
$this->lines=array(); $this->lines=array();
$sql = ' SELECT de.rowid, de.comments, de.qty, de.value_unit, de.date,'; $sql = ' SELECT de.rowid, de.comments, de.qty, de.value_unit, de.date,';
$sql.= ' de.'.$this->fk_element.', de.fk_c_type_fees, de.fk_projet, de.fk_c_tva,'; $sql.= ' de.'.$this->fk_element.', de.fk_c_type_fees, de.fk_projet, de.fk_c_tva, de.tva_tx as vatrate,';
$sql.= ' de.total_ht, de.total_tva, de.total_ttc,'; $sql.= ' de.total_ht, de.total_tva, de.total_ttc,';
$sql.= ' ctf.code as code_type_fees, ctf.label as libelle_type_fees,'; $sql.= ' ctf.code as code_type_fees, ctf.label as libelle_type_fees,';
$sql.= ' p.ref as ref_projet, p.title as title_projet'; $sql.= ' p.ref as ref_projet, p.title as title_projet';
@ -734,14 +734,15 @@ class ExpenseReport extends CommonObject
$sql.= ' WHERE de.'.$this->fk_element.' = '.$this->id; $sql.= ' WHERE de.'.$this->fk_element.' = '.$this->id;
dol_syslog('ExpenseReport::fetch_lines sql='.$sql, LOG_DEBUG); dol_syslog('ExpenseReport::fetch_lines sql='.$sql, LOG_DEBUG);
$result = $this->db->query($sql); $resql = $this->db->query($sql);
if ($result) if ($resql)
{ {
$num = $this->db->num_rows($result); $num = $this->db->num_rows($resql);
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$objp = $this->db->fetch_object($result); $objp = $this->db->fetch_object($resql);
$deplig = new ExpenseReportLine($this->db); $deplig = new ExpenseReportLine($this->db);
$deplig->rowid = $objp->rowid; $deplig->rowid = $objp->rowid;
@ -761,7 +762,7 @@ class ExpenseReport extends CommonObject
$deplig->type_fees_code = $objp->code_type_fees; $deplig->type_fees_code = $objp->code_type_fees;
$deplig->type_fees_libelle = $objp->libelle_type_fees; $deplig->type_fees_libelle = $objp->libelle_type_fees;
$deplig->tva_taux = $objp->taux_tva; $deplig->vatrate = $objp->vatrate;
$deplig->projet_ref = $objp->ref_projet; $deplig->projet_ref = $objp->ref_projet;
$deplig->projet_title = $objp->title_projet; $deplig->projet_title = $objp->title_projet;
@ -770,13 +771,13 @@ class ExpenseReport extends CommonObject
$i++; $i++;
} }
$this->db->free($result); $this->db->free($resql);
return 1; return 1;
} }
else else
{ {
$this->error=$this->db->lasterror(); $this->error=$this->db->lasterror();
dol_syslog('ExpenseReport::fetch_lines: Error '.$this->error,LOG_ERR); dol_syslog('ExpenseReport::fetch_lines: Error '.$this->error, LOG_ERR);
return -3; return -3;
} }
} }
@ -1199,30 +1200,36 @@ class ExpenseReport extends CommonObject
} }
/**
function updateline($rowid, $type_fees_id, $projet_id, $c_tva, $comments, $qty, $value_unit, $date, $expensereport_id) * updateline
*
* @param int $rowid Line to edit
* @param int $type_fees_id Type payment
* @param int $projet_id Project id
* @param double $vatrate Vat rate
* @param string $comments Description
* @param real $qty Qty
* @param double $value_unit Value init
* @param int $date Date
* @param int $expensereport_id Expense report id
* @return int <0 if KO, >0 if OK
*/
function updateline($rowid, $type_fees_id, $projet_id, $vatrate, $comments, $qty, $value_unit, $date, $expensereport_id)
{ {
global $user;
if ($this->fk_statut==0 || $this->fk_statut==99) if ($this->fk_statut==0 || $this->fk_statut==99)
{ {
$this->db->begin(); $this->db->begin();
// Select du taux de tva par rapport au code
$sql = "SELECT t.taux as taux_tva";
$sql.= " FROM ".MAIN_DB_PREFIX."c_tva as t";
$sql.= " WHERE t.rowid = ".$c_tva;
$result = $this->db->query($sql);
$objp_tva = $this->db->fetch_object($result);
// calcul de tous les totaux de la ligne // calcul de tous les totaux de la ligne
$total_ttc = $qty*$value_unit; $total_ttc = price2num($qty*$value_unit, 'MT');
$total_ttc = number_format($total_ttc,2,'.','');
$tx_tva = $objp_tva->taux_tva/100; $tx_tva = $vatrate / 100;
$tx_tva = $tx_tva + 1; $tx_tva = $tx_tva + 1;
$total_ht = $total_ttc/$tx_tva; $total_ht = price2num($total_ttc/$tx_tva, 'MT');
$total_ht = number_format($total_ht,2,'.','');
$total_tva = $total_ttc - $total_ht; $total_tva = price2num($total_ttc - $total_ht, 'MT');
// fin calculs // fin calculs
$ligne = new ExpenseReportLine($this->db); $ligne = new ExpenseReportLine($this->db);
@ -1231,15 +1238,14 @@ class ExpenseReport extends CommonObject
$ligne->value_unit = $value_unit; $ligne->value_unit = $value_unit;
$ligne->date = $date; $ligne->date = $date;
$ligne->fk_expensereport = $expensereport_id; $ligne->fk_expensereport= $expensereport_id;
$ligne->fk_c_type_fees = $type_fees_id; $ligne->fk_c_type_fees = $type_fees_id;
$ligne->fk_projet = $projet_id; $ligne->fk_projet = $projet_id;
$ligne->fk_c_tva = $c_tva;
$ligne->total_ht = $total_ht; $ligne->total_ht = $total_ht;
$ligne->total_tva = $total_tva; $ligne->total_tva = $total_tva;
$ligne->total_ttc = $total_ttc; $ligne->total_ttc = $total_ttc;
$ligne->tva_taux = $objp_tva->taux_tva; $ligne->vatrate = price2num($vatrate);
$ligne->rowid = $rowid; $ligne->rowid = $rowid;
// Select des infos sur le type fees // Select des infos sur le type fees
@ -1260,16 +1266,19 @@ class ExpenseReport extends CommonObject
$ligne->projet_ref = $objp_projet->ref_projet; $ligne->projet_ref = $objp_projet->ref_projet;
$ligne->projet_title = $objp_projet->title_projet; $ligne->projet_title = $objp_projet->title_projet;
$result = $ligne->update(); $result = $ligne->update($user);
if ($result > 0): if ($result > 0)
$this->db->commit(); {
return 1; $this->db->commit();
else: return 1;
$this->error=$ligne->error; }
$this->db->rollback(); else
return -2; {
endif; $this->error=$ligne->error;
$this->errors=$ligne->errors;
$this->db->rollback();
return -2;
}
} }
} }
@ -1487,8 +1496,7 @@ class ExpenseReportLine
var $projet_ref; var $projet_ref;
var $projet_title; var $projet_title;
var $tva_taux; var $vatrate;
var $total_ht; var $total_ht;
var $total_tva; var $total_tva;
var $total_ttc; var $total_ttc;
@ -1512,7 +1520,7 @@ class ExpenseReportLine
function fetch($rowid) function fetch($rowid)
{ {
$sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_projet, fde.date,'; $sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_projet, fde.date,';
$sql.= ' fde.fk_c_tva as tva_taux, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,'; $sql.= ' fde.fk_c_tva as fk_c_tva, fde.tva_tx as vatrate, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,';
$sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,'; $sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,';
$sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref'; $sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref';
$sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde'; $sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde';
@ -1539,7 +1547,7 @@ class ExpenseReportLine
$this->type_fees_libelle = $objp->type_fees_libelle; $this->type_fees_libelle = $objp->type_fees_libelle;
$this->projet_ref = $objp->projet_ref; $this->projet_ref = $objp->projet_ref;
$this->projet_title = $objp->projet_title; $this->projet_title = $objp->projet_title;
$this->tva_taux = $objp->tva_taux; $this->vatrate = $objp->vatrate;
$this->total_ht = $objp->total_ht; $this->total_ht = $objp->total_ht;
$this->total_tva = $objp->total_tva; $this->total_tva = $objp->total_tva;
$this->total_ttc = $objp->total_ttc; $this->total_ttc = $objp->total_ttc;
@ -1568,15 +1576,17 @@ class ExpenseReportLine
$this->comments=trim($this->comments); $this->comments=trim($this->comments);
if (!$this->value_unit_HT) $this->value_unit_HT=0; if (!$this->value_unit_HT) $this->value_unit_HT=0;
$this->qty = price2num($this->qty); $this->qty = price2num($this->qty);
$this->vatrate = price2num($this->vatrate);
$this->db->begin(); $this->db->begin();
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'expensereport_det'; $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'expensereport_det';
$sql.= ' (fk_expensereport, fk_c_type_fees, fk_projet,'; $sql.= ' (fk_expensereport, fk_c_type_fees, fk_projet,';
$sql.= ' fk_c_tva, comments, qty, value_unit, total_ht, total_tva, total_ttc, date)'; $sql.= ' fk_c_tva, tva_tx, comments, qty, value_unit, total_ht, total_tva, total_ttc, date)';
$sql.= " VALUES (".$this->fk_expensereport.","; $sql.= " VALUES (".$this->fk_expensereport.",";
$sql.= " ".$this->fk_c_type_fees.","; $sql.= " ".$this->fk_c_type_fees.",";
$sql.= " ".($this->fk_projet>0?$this->fk_projet:'null').","; $sql.= " ".($this->fk_projet>0?$this->fk_projet:'null').",";
$sql.= " ".($this->fk_c_tva?$this->fk_c_tva:"null").",";
$sql.= " ".$this->vatrate.","; $sql.= " ".$this->vatrate.",";
$sql.= " '".$this->db->escape($this->comments)."',"; $sql.= " '".$this->db->escape($this->comments)."',";
$sql.= " ".$this->qty.","; $sql.= " ".$this->qty.",";
@ -1633,6 +1643,7 @@ class ExpenseReportLine
// Clean parameters // Clean parameters
$this->comments=trim($this->comments); $this->comments=trim($this->comments);
$this->vatrate = price2num($this->vatrate);
$this->db->begin(); $this->db->begin();
@ -1641,14 +1652,11 @@ class ExpenseReportLine
$sql.= " comments='".$this->db->escape($this->comments)."'"; $sql.= " comments='".$this->db->escape($this->comments)."'";
$sql.= ",value_unit=".$this->value_unit.""; $sql.= ",value_unit=".$this->value_unit."";
$sql.= ",qty=".$this->qty.""; $sql.= ",qty=".$this->qty."";
if ($this->date) { $sql.= ",date='".$this->db->idate($this->date)."'";
$sql.= ",date='".$this->date."'";
}
else { $sql.=',date=null';
}
$sql.= ",total_ht=".$this->total_ht.""; $sql.= ",total_ht=".$this->total_ht."";
$sql.= ",total_tva=".$this->total_tva.""; $sql.= ",total_tva=".$this->total_tva."";
$sql.= ",total_ttc=".$this->total_ttc.""; $sql.= ",total_ttc=".$this->total_ttc."";
$sql.= ",tva_tx=".$this->vatrate;
if ($this->fk_c_type_fees) $sql.= ",fk_c_type_fees=".$this->fk_c_type_fees; if ($this->fk_c_type_fees) $sql.= ",fk_c_type_fees=".$this->fk_c_type_fees;
else $sql.= ",fk_c_type_fees=null"; else $sql.= ",fk_c_type_fees=null";
if ($this->fk_projet) $sql.= ",fk_projet=".$this->fk_projet; if ($this->fk_projet) $sql.= ",fk_projet=".$this->fk_projet;
@ -1662,16 +1670,30 @@ class ExpenseReportLine
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
$tmpparent=new ExpenseReport($db); $tmpparent=new ExpenseReport($this->db);
$tmpparent->fetch($this->fk_expensereport); $result = $tmpparent->fetch($this->fk_expensereport);
$result = $tmpparent->update_price(); if ($result > 0)
if ($result < 0) {
$result = $tmpparent->update_price();
if ($result < 0)
{
$error++;
$this->error = $tmpparent->error;
$this->errors = $tmpparent->errors;
}
}
else
{ {
$error++; $error++;
$this->error = $tmpparent->error; $this->error = $tmpparent->error;
$this->errors = $tmpparent->errors; $this->errors = $tmpparent->errors;
} }
} }
else
{
$error++;
dol_print_error($this->db);
}
if (! $error) if (! $error)
{ {

0
htdocs/expensereport/export_csv.php Executable file → Normal file
View File

8
htdocs/expensereport/list.php Executable file → Normal file
View File

@ -177,7 +177,7 @@ if ($resql)
if ($search_amount_ht) $param.="&search_amount_ht=".$search_amount_ht; if ($search_amount_ht) $param.="&search_amount_ht=".$search_amount_ht;
if ($search_amount_ttc) $param.="&search_amount_ttc=".$search_amount_ttc; if ($search_amount_ttc) $param.="&search_amount_ttc=".$search_amount_ttc;
if ($search_status >= 0) $param.="&search_status=".$search_status; if ($search_status >= 0) $param.="&search_status=".$search_status;
print_barre_liste($langs->trans("ListTripsAndExpenses"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords); print_barre_liste($langs->trans("ListTripsAndExpenses"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n"; print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n";
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
@ -221,9 +221,9 @@ if ($resql)
// Amount with no taxe // Amount with no taxe
print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_amount_ht" value="'.$search_amount_ht.'"></td>'; print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_amount_ht" value="'.$search_amount_ht.'"></td>';
print '<td class="liste_titre">&nbsp;</td>'; print '<td class="liste_titre">&nbsp;</td>';
// Amount with all taxes // Amount with all taxes
print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_amount_ttc" value="'.$search_amount_ttc.'"></td>'; print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_amount_ttc" value="'.$search_amount_ttc.'"></td>';
@ -288,7 +288,7 @@ if ($resql)
} }
else else
{ {
print '<td colspan="9">'.$langs->trans("NoRecordFound").'</td>'; print '<tr '.$bc[false].'>'.'<td colspan="9">'.$langs->trans("NoRecordFound").'</td></tr>';
} }
print "</table>"; print "</table>";

0
htdocs/expensereport/stats/index.php Executable file → Normal file
View File

0
htdocs/expensereport/synchro_compta.php Executable file → Normal file
View File

0
htdocs/fourn/class/fournisseur.product.class.php Executable file → Normal file
View File

View File

@ -7,7 +7,8 @@
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr> * Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com> * Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2015 juanjo Menent <jmenent@2byte.es> * Copyright (C) 2015 juanjo Menent <jmenent@2byte.es>
* * Copyright (C) 2015 Abbes Bahfir <bafbes@gmail.com>
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or * the Free Software Foundation; either version 3 of the License, or

View File

@ -88,8 +88,8 @@ foreach($cp->logs as $logs_CP)
print '<td>'.$user_action->getNomUrl(1).'</td>'; print '<td>'.$user_action->getNomUrl(1).'</td>';
print '<td>'.$user_update->getNomUrl(1).'</td>'; print '<td>'.$user_update->getNomUrl(1).'</td>';
print '<td>'.$logs_CP['type_action'].'</td>'; print '<td>'.$logs_CP['type_action'].'</td>';
print '<td style="text-align: right;">'.$logs_CP['prev_solde'].' '.$langs->trans('days').'</td>'; print '<td style="text-align: right;">'.price2num($logs_CP['prev_solde'],8).' '.$langs->trans('days').'</td>';
print '<td style="text-align: right;">'.$logs_CP['new_solde'].' '.$langs->trans('days').'</td>'; print '<td style="text-align: right;">'.price2num($logs_CP['new_solde'],8).' '.$langs->trans('days').'</td>';
print '</tr>'."\n"; print '</tr>'."\n";
} }

0
htdocs/includes/restler/iCache.php Executable file → Normal file
View File

View File

@ -244,8 +244,8 @@ CREATE TABLE llx_expensereport_det
rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
fk_expensereport integer NOT NULL, fk_expensereport integer NOT NULL,
fk_c_type_fees integer NOT NULL, fk_c_type_fees integer NOT NULL,
fk_projet integer NOT NULL, fk_projet integer,
fk_c_tva integer NOT NULL, fk_c_tva integer,
comments text NOT NULL, comments text NOT NULL,
product_type integer DEFAULT -1, product_type integer DEFAULT -1,
qty real NOT NULL, qty real NOT NULL,
@ -268,6 +268,9 @@ CREATE TABLE llx_expensereport_det
import_key varchar(14) import_key varchar(14)
) ENGINE=innodb; ) ENGINE=innodb;
ALTER TABLE llx_expensereport_det MODIFY COLUMN fk_projet integer NULL;
ALTER TABLE llx_expensereport_det MODIFY COLUMN fk_c_tva integer NULL;
ALTER TABLE llx_projet ADD COLUMN budget_amount double(24,8); ALTER TABLE llx_projet ADD COLUMN budget_amount double(24,8);

View File

@ -28,7 +28,7 @@ CREATE TABLE llx_expensereport_det
qty real NOT NULL, qty real NOT NULL,
value_unit real NOT NULL, value_unit real NOT NULL,
remise_percent real, remise_percent real,
tva_tx double(6,3), -- Vat rat tva_tx double(6,3), -- Vat rate
localtax1_tx double(6,3) DEFAULT 0, -- localtax1 rate localtax1_tx double(6,3) DEFAULT 0, -- localtax1 rate
localtax1_type varchar(10) NULL, -- localtax1 type localtax1_type varchar(10) NULL, -- localtax1 type
localtax2_tx double(6,3) DEFAULT 0, -- localtax2 rate localtax2_tx double(6,3) DEFAULT 0, -- localtax2 rate

View File

@ -1292,7 +1292,7 @@ function migrate_price_facture($db,$langs,$conf)
print '<b>'.$langs->trans('MigrationInvoice')."</b><br>\n"; print '<b>'.$langs->trans('MigrationInvoice')."</b><br>\n";
// Liste des lignes facture non a jour // Liste des lignes facture non a jour
$sql = "SELECT fd.rowid, fd.qty, fd.subprice, fd.remise_percent, fd.tva_tx as tva_taux, fd.total_ttc, fd.info_bits,"; $sql = "SELECT fd.rowid, fd.qty, fd.subprice, fd.remise_percent, fd.tva_tx as vatrate, fd.total_ttc, fd.info_bits,";
$sql.= " f.rowid as facid, f.remise_percent as remise_percent_global, f.total_ttc as total_ttc_f"; $sql.= " f.rowid as facid, f.remise_percent as remise_percent_global, f.total_ttc as total_ttc_f";
$sql.= " FROM ".MAIN_DB_PREFIX."facturedet as fd, ".MAIN_DB_PREFIX."facture as f"; $sql.= " FROM ".MAIN_DB_PREFIX."facturedet as fd, ".MAIN_DB_PREFIX."facture as f";
$sql.= " WHERE fd.fk_facture = f.rowid"; $sql.= " WHERE fd.fk_facture = f.rowid";
@ -1314,7 +1314,7 @@ function migrate_price_facture($db,$langs,$conf)
$rowid = $obj->rowid; $rowid = $obj->rowid;
$qty = $obj->qty; $qty = $obj->qty;
$pu = $obj->subprice; $pu = $obj->subprice;
$txtva = $obj->tva_taux; $vatrate = $obj->vatrate;
$remise_percent = $obj->remise_percent; $remise_percent = $obj->remise_percent;
$remise_percent_global = $obj->remise_percent_global; $remise_percent_global = $obj->remise_percent_global;
$total_ttc_f = $obj->total_ttc_f; $total_ttc_f = $obj->total_ttc_f;
@ -1324,7 +1324,7 @@ function migrate_price_facture($db,$langs,$conf)
$facligne= new FactureLigne($db); $facligne= new FactureLigne($db);
$facligne->fetch($rowid); $facligne->fetch($rowid);
$result=calcul_price_total($qty,$pu,$remise_percent,$txtva, 0, 0,$remise_percent_global,'HT',$info_bits,0); $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate, 0, 0,$remise_percent_global,'HT',$info_bits,0);
$total_ht = $result[0]; $total_ht = $result[0];
$total_tva = $result[1]; $total_tva = $result[1];
$total_ttc = $result[2]; $total_ttc = $result[2];
@ -1333,7 +1333,7 @@ function migrate_price_facture($db,$langs,$conf)
$facligne->total_tva = $total_tva; $facligne->total_tva = $total_tva;
$facligne->total_ttc = $total_ttc; $facligne->total_ttc = $total_ttc;
dolibarr_install_syslog("upgrade2: Line $rowid: facid=$obj->facid pu=$pu qty=$qty tva_taux=$txtva remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc"); dolibarr_install_syslog("upgrade2: Line $rowid: facid=$obj->facid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc");
print ". "; print ". ";
$facligne->update_total(); $facligne->update_total();
@ -1406,7 +1406,7 @@ function migrate_price_propal($db,$langs,$conf)
print '<b>'.$langs->trans('MigrationProposal')."</b><br>\n"; print '<b>'.$langs->trans('MigrationProposal')."</b><br>\n";
// Liste des lignes propal non a jour // Liste des lignes propal non a jour
$sql = "SELECT pd.rowid, pd.qty, pd.subprice, pd.remise_percent, pd.tva_tx as tva_taux, pd.info_bits,"; $sql = "SELECT pd.rowid, pd.qty, pd.subprice, pd.remise_percent, pd.tva_tx as vatrate, pd.info_bits,";
$sql.= " p.rowid as propalid, p.remise_percent as remise_percent_global"; $sql.= " p.rowid as propalid, p.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."propaldet as pd, ".MAIN_DB_PREFIX."propal as p"; $sql.= " FROM ".MAIN_DB_PREFIX."propaldet as pd, ".MAIN_DB_PREFIX."propal as p";
$sql.= " WHERE pd.fk_propal = p.rowid"; $sql.= " WHERE pd.fk_propal = p.rowid";
@ -1427,7 +1427,7 @@ function migrate_price_propal($db,$langs,$conf)
$rowid = $obj->rowid; $rowid = $obj->rowid;
$qty = $obj->qty; $qty = $obj->qty;
$pu = $obj->subprice; $pu = $obj->subprice;
$txtva = $obj->tva_taux; $vatrate = $obj->vatrate;
$remise_percent = $obj->remise_percent; $remise_percent = $obj->remise_percent;
$remise_percent_global = $obj->remise_percent_global; $remise_percent_global = $obj->remise_percent_global;
$info_bits = $obj->info_bits; $info_bits = $obj->info_bits;
@ -1436,7 +1436,7 @@ function migrate_price_propal($db,$langs,$conf)
$propalligne= new PropaleLigne($db); $propalligne= new PropaleLigne($db);
$propalligne->fetch($rowid); $propalligne->fetch($rowid);
$result=calcul_price_total($qty,$pu,$remise_percent,$txtva,0,0,$remise_percent_global,'HT',$info_bits,0); $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
$total_ht = $result[0]; $total_ht = $result[0];
$total_tva = $result[1]; $total_tva = $result[1];
$total_ttc = $result[2]; $total_ttc = $result[2];
@ -1445,7 +1445,7 @@ function migrate_price_propal($db,$langs,$conf)
$propalligne->total_tva = $total_tva; $propalligne->total_tva = $total_tva;
$propalligne->total_ttc = $total_ttc; $propalligne->total_ttc = $total_ttc;
dolibarr_install_syslog("upgrade2: Line $rowid: propalid=$obj->rowid pu=$pu qty=$qty tva_taux=$txtva remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc"); dolibarr_install_syslog("upgrade2: Line $rowid: propalid=$obj->rowid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc");
print ". "; print ". ";
$propalligne->update_total(); $propalligne->update_total();
@ -1515,7 +1515,7 @@ function migrate_price_contrat($db,$langs,$conf)
print '<b>'.$langs->trans('MigrationContract')."</b><br>\n"; print '<b>'.$langs->trans('MigrationContract')."</b><br>\n";
// Liste des lignes contrat non a jour // Liste des lignes contrat non a jour
$sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as tva_taux, cd.info_bits,"; $sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,";
$sql.= " c.rowid as contratid"; $sql.= " c.rowid as contratid";
$sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."contrat as c"; $sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."contrat as c";
$sql.= " WHERE cd.fk_contrat = c.rowid"; $sql.= " WHERE cd.fk_contrat = c.rowid";
@ -1536,7 +1536,7 @@ function migrate_price_contrat($db,$langs,$conf)
$rowid = $obj->rowid; $rowid = $obj->rowid;
$qty = $obj->qty; $qty = $obj->qty;
$pu = $obj->subprice; $pu = $obj->subprice;
$txtva = $obj->tva_taux; $vatrate = $obj->vatrate;
$remise_percent = $obj->remise_percent; $remise_percent = $obj->remise_percent;
$info_bits = $obj->info_bits; $info_bits = $obj->info_bits;
@ -1545,7 +1545,7 @@ function migrate_price_contrat($db,$langs,$conf)
//$contratligne->fetch($rowid); Non requis car le update_total ne met a jour que chp redefinis //$contratligne->fetch($rowid); Non requis car le update_total ne met a jour que chp redefinis
$contratligne->id=$rowid; $contratligne->id=$rowid;
$result=calcul_price_total($qty,$pu,$remise_percent,$txtva,0,0,0,'HT',$info_bits,0,$tmpmysoc); $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,0,'HT',$info_bits,0,$tmpmysoc);
$total_ht = $result[0]; $total_ht = $result[0];
$total_tva = $result[1]; $total_tva = $result[1];
$total_ttc = $result[2]; $total_ttc = $result[2];
@ -1554,7 +1554,7 @@ function migrate_price_contrat($db,$langs,$conf)
$contratligne->total_tva = $total_tva; $contratligne->total_tva = $total_tva;
$contratligne->total_ttc = $total_ttc; $contratligne->total_ttc = $total_ttc;
dolibarr_install_syslog("upgrade2: Line $rowid: contratdetid=$obj->rowid pu=$pu qty=$qty tva_taux=$txtva remise_percent=$remise_percent -> $total_ht, $total_tva, $total_ttc"); dolibarr_install_syslog("upgrade2: Line $rowid: contratdetid=$obj->rowid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent -> $total_ht, $total_tva, $total_ttc");
print ". "; print ". ";
$contratligne->update_total(); $contratligne->update_total();
@ -1600,7 +1600,7 @@ function migrate_price_commande($db,$langs,$conf)
print '<b>'.$langs->trans('MigrationOrder')."</b><br>\n"; print '<b>'.$langs->trans('MigrationOrder')."</b><br>\n";
// Liste des lignes commande non a jour // Liste des lignes commande non a jour
$sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as tva_taux, cd.info_bits,"; $sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,";
$sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global"; $sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."commande as c"; $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."commande as c";
$sql.= " WHERE cd.fk_commande = c.rowid"; $sql.= " WHERE cd.fk_commande = c.rowid";
@ -1621,7 +1621,7 @@ function migrate_price_commande($db,$langs,$conf)
$rowid = $obj->rowid; $rowid = $obj->rowid;
$qty = $obj->qty; $qty = $obj->qty;
$pu = $obj->subprice; $pu = $obj->subprice;
$txtva = $obj->tva_taux; $vatrate = $obj->vatrate;
$remise_percent = $obj->remise_percent; $remise_percent = $obj->remise_percent;
$remise_percent_global = $obj->remise_percent_global; $remise_percent_global = $obj->remise_percent_global;
$info_bits = $obj->info_bits; $info_bits = $obj->info_bits;
@ -1630,7 +1630,7 @@ function migrate_price_commande($db,$langs,$conf)
$commandeligne= new OrderLine($db); $commandeligne= new OrderLine($db);
$commandeligne->fetch($rowid); $commandeligne->fetch($rowid);
$result=calcul_price_total($qty,$pu,$remise_percent,$txtva,0,0,$remise_percent_global,'HT',$info_bits,0); $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
$total_ht = $result[0]; $total_ht = $result[0];
$total_tva = $result[1]; $total_tva = $result[1];
$total_ttc = $result[2]; $total_ttc = $result[2];
@ -1639,7 +1639,7 @@ function migrate_price_commande($db,$langs,$conf)
$commandeligne->total_tva = $total_tva; $commandeligne->total_tva = $total_tva;
$commandeligne->total_ttc = $total_ttc; $commandeligne->total_ttc = $total_ttc;
dolibarr_install_syslog("upgrade2: Line $rowid: commandeid=$obj->rowid pu=$pu qty=$qty tva_taux=$txtva remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc"); dolibarr_install_syslog("upgrade2: Line $rowid: commandeid=$obj->rowid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc");
print ". "; print ". ";
$commandeligne->update_total(); $commandeligne->update_total();
@ -1714,7 +1714,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf)
print '<b>'.$langs->trans('MigrationSupplierOrder')."</b><br>\n"; print '<b>'.$langs->trans('MigrationSupplierOrder')."</b><br>\n";
// Liste des lignes commande non a jour // Liste des lignes commande non a jour
$sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as tva_taux, cd.info_bits,"; $sql = "SELECT cd.rowid, cd.qty, cd.subprice, cd.remise_percent, cd.tva_tx as vatrate, cd.info_bits,";
$sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global"; $sql.= " c.rowid as commandeid, c.remise_percent as remise_percent_global";
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd, ".MAIN_DB_PREFIX."commande_fournisseur as c"; $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd, ".MAIN_DB_PREFIX."commande_fournisseur as c";
$sql.= " WHERE cd.fk_commande = c.rowid"; $sql.= " WHERE cd.fk_commande = c.rowid";
@ -1735,7 +1735,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf)
$rowid = $obj->rowid; $rowid = $obj->rowid;
$qty = $obj->qty; $qty = $obj->qty;
$pu = $obj->subprice; $pu = $obj->subprice;
$txtva = $obj->tva_taux; $vatrate = $obj->vatrate;
$remise_percent = $obj->remise_percent; $remise_percent = $obj->remise_percent;
$remise_percent_global = $obj->remise_percent_global; $remise_percent_global = $obj->remise_percent_global;
$info_bits = $obj->info_bits; $info_bits = $obj->info_bits;
@ -1744,7 +1744,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf)
$commandeligne= new CommandeFournisseurLigne($db); $commandeligne= new CommandeFournisseurLigne($db);
$commandeligne->fetch($rowid); $commandeligne->fetch($rowid);
$result=calcul_price_total($qty,$pu,$remise_percent,$txtva,0,0,$remise_percent_global,'HT',$info_bits,0); $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
$total_ht = $result[0]; $total_ht = $result[0];
$total_tva = $result[1]; $total_tva = $result[1];
$total_ttc = $result[2]; $total_ttc = $result[2];
@ -1753,7 +1753,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf)
$commandeligne->total_tva = $total_tva; $commandeligne->total_tva = $total_tva;
$commandeligne->total_ttc = $total_ttc; $commandeligne->total_ttc = $total_ttc;
dolibarr_install_syslog("upgrade2: Line $rowid: commandeid=$obj->rowid pu=$pu qty=$qty tva_taux=$txtva remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc"); dolibarr_install_syslog("upgrade2: Line $rowid: commandeid=$obj->rowid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc");
print ". "; print ". ";
$commandeligne->update_total(); $commandeligne->update_total();

View File

@ -22,9 +22,8 @@
/** /**
* \class FormProduct * Class with static methods for building HTML components related to products
* \brief Class with static methods for building HTML components related to products * Only components common to products and services must be here.
* \remarks Only common components must be here.
*/ */
class FormProduct class FormProduct
{ {
@ -34,9 +33,6 @@ class FormProduct
// Cache arrays // Cache arrays
var $cache_warehouses=array(); var $cache_warehouses=array();
var $tva_taux_value;
var $tva_taux_libelle;
/** /**
* Constructor * Constructor
@ -109,7 +105,7 @@ class FormProduct
* @param int $empty 1=Can be empty, 0 if not * @param int $empty 1=Can be empty, 0 if not
* @param int $disabled 1=Select is disabled * @param int $disabled 1=Select is disabled
* @param int $fk_product Add quantity of stock in label for product with id fk_product. Nothing if 0. * @param int $fk_product Add quantity of stock in label for product with id fk_product. Nothing if 0.
* @param string $empty_label Empty label if needed (only if $empty=1) * @param string $empty_label Empty label if needed (only if $empty=1)
* @return string HTML select * @return string HTML select
*/ */
function selectWarehouses($selected='',$htmlname='idwarehouse',$filtertype='',$empty=0,$disabled=0,$fk_product=0,$empty_label='') function selectWarehouses($selected='',$htmlname='idwarehouse',$filtertype='',$empty=0,$disabled=0,$fk_product=0,$empty_label='')
@ -120,7 +116,7 @@ class FormProduct
$this->loadWarehouses($fk_product); $this->loadWarehouses($fk_product);
$nbofwarehouses=count($this->cache_warehouses); $nbofwarehouses=count($this->cache_warehouses);
$out='<select class="flat"'.($disabled?' disabled':'').' id="'.$htmlname.'" name="'.($htmlname.($disabled?'_disabled':'')).'">'; $out='<select class="flat"'.($disabled?' disabled':'').' id="'.$htmlname.'" name="'.($htmlname.($disabled?'_disabled':'')).'">';
if ($empty) $out.='<option value="-1">'.($empty_label?$empty_label:'&nbsp;').'</option>'; if ($empty) $out.='<option value="-1">'.($empty_label?$empty_label:'&nbsp;').'</option>';
foreach($this->cache_warehouses as $id => $arraytypes) foreach($this->cache_warehouses as $id => $arraytypes)

0
htdocs/product/class/product.class.php Executable file → Normal file
View File

View File

@ -679,7 +679,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Description // Description
print '<td valign="top">'.$langs->trans("Description").'</td><td>'; print '<td class="tdtop">'.$langs->trans("Description").'</td><td>';
print nl2br($object->description); print nl2br($object->description);
print '</td></tr>'; print '</td></tr>';

View File

@ -609,7 +609,7 @@ $langs->load("bills");
$langs->load("orders"); $langs->load("orders");
$langs->load("proposals"); $langs->load("proposals");
$langs->load("margins"); $langs->load("margins");
print_fiche_titre($langs->trans("Profit"),''); print_fiche_titre($langs->trans("Profit"),'','title_accountancy');
print '<table class="noborder">'; print '<table class="noborder">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td align="left" width="200">'.$langs->trans("Element").'</td>'; print '<td align="left" width="200">'.$langs->trans("Element").'</td>';

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -38,6 +38,7 @@ $action = GETPOST('action', 'alpha');
$id = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alpha'); $ref = GETPOST('ref', 'alpha');
$backtopage=GETPOST('backtopage','alpha'); $backtopage=GETPOST('backtopage','alpha');
$cancel=GETPOST('cancel');
$mode = GETPOST('mode', 'alpha'); $mode = GETPOST('mode', 'alpha');
$mine = ($mode == 'mine' ? 1 : 0); $mine = ($mode == 'mine' ? 1 : 0);
@ -48,7 +49,7 @@ $taskstatic = new Task($db);
$extrafields_project = new ExtraFields($db); $extrafields_project = new ExtraFields($db);
$extrafields_task = new ExtraFields($db); $extrafields_task = new ExtraFields($db);
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not includ_once include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once
if ($id > 0 || ! empty($ref)) if ($id > 0 || ! empty($ref))
{ {
@ -85,7 +86,7 @@ if ($action == 'createtask' && $user->rights->projet->creer)
$date_start = dol_mktime($_POST['dateohour'],$_POST['dateomin'],0,$_POST['dateomonth'],$_POST['dateoday'],$_POST['dateoyear'],'user'); $date_start = dol_mktime($_POST['dateohour'],$_POST['dateomin'],0,$_POST['dateomonth'],$_POST['dateoday'],$_POST['dateoyear'],'user');
$date_end = dol_mktime($_POST['dateehour'],$_POST['dateemin'],0,$_POST['dateemonth'],$_POST['dateeday'],$_POST['dateeyear'],'user'); $date_end = dol_mktime($_POST['dateehour'],$_POST['dateemin'],0,$_POST['dateemonth'],$_POST['dateeday'],$_POST['dateeyear'],'user');
if (empty($_POST["cancel"])) if (! $cancel)
{ {
if (empty($label)) if (empty($label))
{ {
@ -271,10 +272,11 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="createtask">'; print '<input type="hidden" name="action" value="createtask">';
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">'; print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
if (! empty($object->id)) print '<input type="hidden" name="id" value="'.$object->id.'">'; if (! empty($object->id)) print '<input type="hidden" name="id" value="'.$object->id.'">';
if (! empty($mode)) print '<input type="hidden" name="mode" value="'.$mode.'">'; if (! empty($mode)) print '<input type="hidden" name="mode" value="'.$mode.'">';
dol_fiche_head('');
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
$defaultref=''; $defaultref='';
@ -342,7 +344,9 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third
print '</table>'; print '</table>';
print '<div align="center"><br>'; dol_fiche_end();
print '<div align="center">';
print '<input type="submit" class="button" name="add" value="'.$langs->trans("Add").'">'; print '<input type="submit" class="button" name="add" value="'.$langs->trans("Add").'">';
print ' &nbsp; &nbsp; '; print ' &nbsp; &nbsp; ';
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">'; print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';

Binary file not shown.

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 B

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

After

Width:  |  Height:  |  Size: 356 B

View File

@ -119,7 +119,8 @@ if (empty($conf->global->THEME_ELDY_ENABLE_PERSONALIZED))
$conf->global->THEME_ELDY_VERMENU_BACK1='255,255,255'; // vmenu $conf->global->THEME_ELDY_VERMENU_BACK1='255,255,255'; // vmenu
$conf->global->THEME_ELDY_VERMENU_BACK1b='230,232,232'; // vmenu (not menu) $conf->global->THEME_ELDY_VERMENU_BACK1b='230,232,232'; // vmenu (not menu)
$conf->global->THEME_ELDY_VERMENU_BACK2='240,240,240'; $conf->global->THEME_ELDY_VERMENU_BACK2='240,240,240';
$conf->global->THEME_ELDY_BACKTITLE1='140,160,185'; // title of arrays $conf->global->THEME_ELDY_BACKTITLE1='140,160,185'; // title of arrays TO MATCH ELDY
//$conf->global->THEME_ELDY_BACKTITLE1='240,240,240'; // title of arrays TO MATCH BOOTSTRAP
$conf->global->THEME_ELDY_BACKTITLE2='230,230,230'; $conf->global->THEME_ELDY_BACKTITLE2='230,230,230';
$conf->global->THEME_ELDY_BACKTABCARD1='255,255,255'; $conf->global->THEME_ELDY_BACKTABCARD1='255,255,255';
$conf->global->THEME_ELDY_BACKTABCARD2='210,210,210'; // card $conf->global->THEME_ELDY_BACKTABCARD2='210,210,210'; // card
@ -438,6 +439,9 @@ textarea.centpercent {
{ {
border-right: 1px solid #DDD; border-right: 1px solid #DDD;
} }
#formuserfile {
margin-top: 4px;
}
#formuserfile_link { #formuserfile_link {
margin-left: 1px; margin-left: 1px;
} }
@ -557,23 +561,27 @@ margin : 0px auto;
<?php <?php
$minwidthtmenu=66; $minwidthtmenu=66;
$heightmenu=46; /* height of top menu, part with image */ $heightmenu=46; /* height of top menu, part with image */
$heightmenu2=46; /* height of top menu, ârt with login */ $heightmenu2=48; /* height of top menu, part with login */
?> ?>
div#id-top {
height: <?php print ($heightmenu2); ?>px;
background: rgb(<?php echo $colorbackhmenu1 ?>);
background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(0,0,0,.3)) );
}
div#tmenu_tooltip { div#tmenu_tooltip {
<?php if (GETPOST("optioncss") == 'print') { ?> <?php if (GETPOST("optioncss") == 'print') { ?>
display:none; display:none;
<?php } else { ?> <?php } else { ?>
height: <?php print ($heightmenu2+1); ?>px; height: <?php print ($heightmenu2+1); ?>px;
padding-<?php echo $right; ?>: 100px; padding-<?php echo $right; ?>: 100px;
background: <?php echo $colorbackvmenu; ?>;
box-shadow: 0 0 6px rgba(0, 0, 0, .4) !important;
background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(128,128,128,.3) 100%);
background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(128,128,128,.3)) );
<?php } ?> <?php } ?>
} }
@ -630,7 +638,7 @@ ul.tmenu { /* t r b l */
padding: 0px 0px 0px 0px; padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px; margin: 0px 0px 0px 0px;
list-style: none; list-style: none;
box-shadow: 0 0 6px rgba(0, 0, 0, .4) !important; /* box-shadow: 0 0 6px rgba(0, 0, 0, .4) !important; */
} }
ul.tmenu li { ul.tmenu li {
background: rgb(<?php echo $colorbackhmenu1 ?>); background: rgb(<?php echo $colorbackhmenu1 ?>);
@ -922,6 +930,9 @@ div.login_block {
display: none; display: none;
<?php } ?> <?php } ?>
} }
div.login_block a {
color: #fff;
}
div.login_block table { div.login_block table {
display: inline; display: inline;
} }
@ -1548,7 +1559,7 @@ span.butAction, span.butActionDelete {
cursor: pointer; cursor: pointer;
} }
/* Preapre for bootstrap look /* Prepare for bootstrap look
.butAction, .butActionDelete, .butActionRefused { .butAction, .butActionDelete, .butActionRefused {
border-color: #c5c5c5; border-color: #c5c5c5;
border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
@ -1680,8 +1691,15 @@ table.border, table.dataTable, .table-border, .table-border-col, .table-key-bord
.border tbody tr, .border tbody tr td { .border tbody tr, .border tbody tr td {
height: 20px; height: 20px;
} }
div.tabBar table.border tr { div.tabBar table.border tr, div.tabBar table.border tr td, div.tabBar div.border .table-border-row, div.tabBar div.border .table-key-border-col, div.tabBar div.border .table-val-border-col {
height: 20px; height: 24px;
}
div.tabBar div.border .table-border-row, div.tabBar div.border .table-key-border-col, div.tabBar .table-val-border-col {
vertical-align: middle;
}
div.tabBar .tdtop {
vertical-align: top;
padding-top: 6px;
} }
table.border td, div.border div div.tagtd { table.border td, div.border div div.tagtd {
@ -1713,6 +1731,10 @@ table.noborder, table.formdoc, div.noborder {
border-collapse: separate !important; border-collapse: separate !important;
border-spacing: 0px; border-spacing: 0px;
border-top-width: 1px;
border-top-color: #CCC;
border-top-style: solid;
border-right-width: 1px; border-right-width: 1px;
border-right-color: #CCC; border-right-color: #CCC;
border-right-style: solid; border-right-style: solid;
@ -1781,6 +1803,10 @@ table.liste {
border-collapse: collapse; border-collapse: collapse;
border-top-color: #FEFEFE; border-top-color: #FEFEFE;
border-top-width: 1px;
border-top-color: #CCC;
border-top-style: solid;
border-right-width: 1px; border-right-width: 1px;
border-right-color: #CCC; border-right-color: #CCC;
border-right-style: solid; border-right-style: solid;
@ -1810,6 +1836,85 @@ table.liste td {
.tagtd, .table-border-col, .table-key-border-col, .table-val-border-col { display: table-cell; } .tagtd, .table-border-col, .table-key-border-col, .table-val-border-col { display: table-cell; }
/* Pagination */
div.pagination a {
font-weight: normal;
}
div.pagination ul, div.pagination li
{
list-style: none;
display: inline-block;
padding-left: 0px;
}
div.pagination li {
display: inline;
}
.pagination {
display: inline-block;
padding-left: 0;
border-radius: 4px;
}
div.pagination li a,
div.pagination li span {
position: relative;
float: left;
padding: 6px 12px;
margin-left: -1px;
line-height: 1.42857143;
color: #000;
text-decoration: none;
background-color: #fff;
border: 1px solid #ddd;
}
div.pagination li:first-child a,
div.pagination li:first-child span {
margin-left: 0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
div.pagination li:last-child a,
div.pagination li:last-child span {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
div.pagination li a:hover,
div.pagination li span:hover,
div.pagination li a:focus,
div.pagination li span:focus {
color: #000;
background-color: #eee;
border-color: #ddd;
}
div.pagination li .active a,
div.pagination li .active span,
div.pagination li .active a:hover,
div.pagination li .active span:hover,
div.pagination li .active a:focus,
div.pagination li .active span:focus {
z-index: 2;
color: #fff;
cursor: default;
background-color: <?php $colorbackhmenu1 ?>;
border-color: #337ab7;
}
div.pagination .disabled span,
div.pagination .disabled span:hover,
div.pagination .disabled span:focus,
div.pagination .disabled a,
div.pagination .disabled a:hover,
div.pagination .disabled a:focus {
color: #777;
cursor: not-allowed;
background-color: #fff;
border-color: #ddd;
}
div.pagination li .active {
text-decoration: underline;
}
/* Prepare to remove class pair - impair /* Prepare to remove class pair - impair
.noborder > tbody > tr:nth-child(even) td { .noborder > tbody > tr:nth-child(even) td {
background: linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%); background: linear-gradient(bottom, rgb(<?php echo $colorbacklineimpair1; ?>) 85%, rgb(<?php echo $colorbacklineimpair2; ?>) 100%);
@ -1856,7 +1961,9 @@ table.liste td {
background: #ffffff; background: #ffffff;
} }
#GanttChartDIV {
background: #ffffff;
}
.even, .pair, .nohover .even:hover, .nohover .pair:hover, tr.even td.nohover, tr.pair td.nohover { .even, .pair, .nohover .even:hover, .nohover .pair:hover, tr.even td.nohover, tr.pair td.nohover {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
@ -1887,6 +1994,22 @@ div.liste_titre .tagtd {
} }
div.liste_titre { div.liste_titre {
min-height: 26px !important; /* We cant use height because it's a div and it should be higher if content is more. but min-height doe not work either for div */ min-height: 26px !important; /* We cant use height because it's a div and it should be higher if content is more. but min-height doe not work either for div */
padding-left: 3px;
padding-top: 2px;
padding-bottom: 2px;
border-right-width: 1px;
border-right-color: #CCC;
border-right-style: solid;
border-left-width: 1px;
border-left-color: #CCC;
border-left-style: solid;
border-top-width: 1px;
border-top-color: #CCC;
border-top-style: solid;
} }
tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable.tr tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable.tr
{ {
@ -1894,15 +2017,19 @@ tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, tabl
} }
div.liste_titre, tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable thead tr div.liste_titre, tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable thead tr
{ {
background: rgb(<?php echo $colorbacktitle1; ?>); /* TO MATCH BOOTSTRAP */
background-repeat: repeat-x; /*background: #ddd;
color: #000 !important;*/
/* TO MATCH ELDY */
background: rgb(<?php echo $colorbacktitle1; ?>);
background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
font-weight: bold;
font-weight: bold;
color: #<?php echo $colortexttitle; ?>; color: #<?php echo $colortexttitle; ?>;
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
@ -1917,7 +2044,7 @@ tr.liste_titre th, th.liste_titre, tr.liste_titre td, td.liste_titre, form.liste
{ {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
font-weight: bold; font-weight: bold;
text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>; /* text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>; */
vertical-align: middle; vertical-align: middle;
} }
tr.liste_titre th a, th.liste_titre a, tr.liste_titre td a, td.liste_titre a, form.liste_titre div a, div.liste_titre a { tr.liste_titre th a, th.liste_titre a, tr.liste_titre td a, td.liste_titre a, form.liste_titre div a, div.liste_titre a {
@ -1927,16 +2054,13 @@ tr.liste_titre th a, th.liste_titre a, tr.liste_titre td a, td.liste_titre a, fo
text-shadow: none !important; text-shadow: none !important;
color: #<?php echo $colortexttitle; ?>; color: #<?php echo $colortexttitle; ?>;
} }
div.liste_titre {
padding-left: 3px;
}
tr.liste_titre_sel th, th.liste_titre_sel, tr.liste_titre_sel td, td.liste_titre_sel, form.liste_titre_sel div tr.liste_titre_sel th, th.liste_titre_sel, tr.liste_titre_sel td, td.liste_titre_sel, form.liste_titre_sel div
{ {
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
font-weight: normal; font-weight: normal;
border-bottom: 1px solid #FDFFFF; border-bottom: 1px solid #FDFFFF;
text-decoration: underline; text-decoration: underline;
text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>; /* text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>; */
} }
input.liste_titre { input.liste_titre {
background: transparent; background: transparent;
@ -2014,18 +2138,21 @@ div.tabBar .noborder {
tr.box_titre { tr.box_titre {
height: 26px; height: 26px;
background: rgb(<?php echo $colorbacktitle1; ?>);
background-repeat: repeat-x;
background-image: linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* TO MATCH BOOTSTRAP */
background-image: -o-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /*background: #ddd;
background-image: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); color: #000 !important;*/
background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%);
background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(0,0,0,.3)) );
color: #<?php echo $colortexttitle; ?>; /* TO MATCH ELDY */
text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>; background: rgb(<?php echo $colorbacktitle1; ?>);
background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
color: #<?php echo $colortexttitle; ?>;
// text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>;
font-family: <?php print $fontlist ?>, sans-serif; font-family: <?php print $fontlist ?>, sans-serif;
font-weight: bold; font-weight: bold;
border-bottom: 1px solid #FDFFFF; border-bottom: 1px solid #FDFFFF;
@ -2269,24 +2396,25 @@ table.valid {
/* ============================================================================== */ /* ============================================================================== */
#tooltip { #tooltip {
position: absolute; position: absolute;
width: <?php print dol_size(450,'width'); ?>px; width: <?php print dol_size(450,'width'); ?>px;
border-top: solid 1px #BBBBBB; border-top: solid 1px #BBBBBB;
border-<?php print $left; ?>: solid 1px #BBBBBB; border-<?php print $left; ?>: solid 1px #BBBBBB;
border-<?php print $right; ?>: solid 1px #444444; border-<?php print $right; ?>: solid 1px #444444;
border-bottom: solid 1px #444444; border-bottom: solid 1px #444444;
padding: 2px; padding: 2px;
z-index: 3000; z-index: 3000;
background-color: #EFCFAA; background-color: #FFF;
opacity: 1; opacity: 1;
-moz-border-radius:6px; -moz-border-radius:6px;
-webkit-border-radius: 6px; -webkit-border-radius: 6px;
border-radius: 6px; border-radius: 6px;
} }
#tiptip_content { #tiptip_content {
background-color: rgb(252,248,246); background-color: rgb(255,255,255);
background-color: rgba(252,248,246,0.95); background-color: rgba(255,255,255,0.95);
line-height: 1.4em; line-height: 1.4em;
min-width: 200px;
} }
/* ============================================================================== */ /* ============================================================================== */

View File

@ -4,6 +4,7 @@
* Copyright (C) 2007-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2007-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com> * Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -20,8 +21,8 @@
*/ */
/** /**
* \file htdocs/theme/eldy/style.css.php * \file htdocs/theme/md_exp/style.css.php
* \brief File for CSS style sheet Eldy * \brief File for CSS style sheet Md (Material Design)
*/ */
//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled because need to load personalized language //if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled because need to load personalized language
@ -272,7 +273,7 @@ select.flat, form.flat select {
font-weight: normal; font-weight: normal;
} }
input:disabled { input:disabled {
background:#ddd; background:#f4f4f4;
} }
input.liste_titre { input.liste_titre {
@ -283,7 +284,7 @@ input.removedfile {
border: 0px !important; border: 0px !important;
} }
textarea:disabled { textarea:disabled {
background:#ddd; background:#f4f4f4;
} }
input[type=checkbox] { background-color: transparent; border: none; box-shadow: none; } input[type=checkbox] { background-color: transparent; border: none; box-shadow: none; }
input[type=radio] { background-color: transparent; border: none; box-shadow: none; } input[type=radio] { background-color: transparent; border: none; box-shadow: none; }
@ -302,7 +303,7 @@ input:-moz-placeholder { color:#ccc; }
<?php if (! empty($dol_use_jmobile)) { ?> <?php if (! empty($dol_use_jmobile)) { ?>
legend { margin-bottom: 8px; } legend { margin-bottom: 8px; }
<?php } ?> <?php } ?>
fieldset { border: 1px solid #AAAAAA !important; box-shadow: 2px 2px 3px #DDD; } fieldset { border: 1px solid #AAAAAA !important; box-shadow: 2px 2px 3px #f4f4f4; }
.button, sbmtConnexion { .button, sbmtConnexion {
@ -440,7 +441,7 @@ textarea.centpercent {
.borderrightlight .borderrightlight
{ {
border-right: 1px solid #DDD; border-right: 1px solid #f4f4f4;
} }
#formuserfile_link { #formuserfile_link {
margin-left: 1px; margin-left: 1px;
@ -958,7 +959,7 @@ table.login_table_securitycode tr td {
min-width: 60px; min-width: 60px;
} }
#img_securitycode { #img_securitycode {
border: 1px solid #DDDDDD; border: 1px solid #f4f4f4;
} }
#img_logo { #img_logo {
max-width: 200px; max-width: 200px;
@ -1084,7 +1085,7 @@ div.blockvmenupair, div.blockvmenuimpair, div.blockvmenubookmarks
margin: 1px 0px 8px 0px; margin: 1px 0px 8px 0px;
padding-bottom: 10px; padding-bottom: 10px;
border-bottom: 1px solid #DDD; border-bottom: 1px solid #f4f4f4;
} }
div.blockvmenusearch div.blockvmenusearch
@ -1100,7 +1101,7 @@ div.blockvmenusearch
margin: 1px 0px 8px 0px; margin: 1px 0px 8px 0px;
padding-bottom: 10px; padding-bottom: 10px;
border-bottom: 1px solid #DDD; border-bottom: 1px solid #f4f4f4;
} }
div.blockvmenuhelp div.blockvmenuhelp
@ -1180,9 +1181,9 @@ td.photo {
-moz-border-radius: 2px 2px 2px 2px !important; -moz-border-radius: 2px 2px 2px 2px !important;
-webkit-border-radius: 2px 2px 2px 2px !important; -webkit-border-radius: 2px 2px 2px 2px !important;
border-radius: 2px 2px 2px 2px !important; border-radius: 2px 2px 2px 2px !important;
-moz-box-shadow: 2px 2px 4px #DDD; -moz-box-shadow: 2px 2px 4px #f4f4f4;
-webkit-box-shadow: 2px 2px 4px #DDD; -webkit-box-shadow: 2px 2px 4px #f4f4f4;
box-shadow: 2px 2px 4px #DDD; box-shadow: 2px 2px 4px #f4f4f4;
padding: 0 4px 0 4px !important; padding: 0 4px 0 4px !important;
min-height: 32px; min-height: 32px;
@ -1245,7 +1246,7 @@ img.toolbarbutton {
otherwise color shifts while dragging when bar can't keep up with mouse */ otherwise color shifts while dragging when bar can't keep up with mouse */
/*.ui-layout-resizer-open-hover ,*/ /* hover-color to 'resize' */ /*.ui-layout-resizer-open-hover ,*/ /* hover-color to 'resize' */
.ui-layout-resizer-dragging { /* resizer beging 'dragging' */ .ui-layout-resizer-dragging { /* resizer beging 'dragging' */
background: #DDD; background: #f4f4f4;
width: <?php echo (empty($conf->dol_optimize_smallscreen)?'8':'24'); ?>px; width: <?php echo (empty($conf->dol_optimize_smallscreen)?'8':'24'); ?>px;
} }
.ui-layout-resizer-dragging { /* CLONED resizer being dragged */ .ui-layout-resizer-dragging { /* CLONED resizer being dragged */
@ -1257,7 +1258,7 @@ img.toolbarbutton {
background: #E1A4A4; /* red */ background: #E1A4A4; /* red */
} }
.ui-layout-resizer-closed { .ui-layout-resizer-closed {
background-color: #DDDDDD; background-color: #f4f4f4;
} }
.ui-layout-resizer-closed:hover { .ui-layout-resizer-closed:hover {
background-color: #EEDDDD; background-color: #EEDDDD;
@ -1286,7 +1287,7 @@ img.toolbarbutton {
border-top: 1px solid #AAA; /* match pane-border */ border-top: 1px solid #AAA; /* match pane-border */
border-right: 1px solid #AAA; /* match pane-border */ border-right: 1px solid #AAA; /* match pane-border */
border-bottom: 1px solid #AAA; /* match pane-border */ border-bottom: 1px solid #AAA; /* match pane-border */
background-color: #DDD; background-color: #f4f4f4;
top: 5px !important; top: 5px !important;
<?php } else { ?> <?php } else { ?>
diplay: none; diplay: none;
@ -1426,9 +1427,9 @@ div.tabBar {
background: rgb(<?php echo $colorbacktabcard2; ?>); background: rgb(<?php echo $colorbacktabcard2; ?>);
<?php if (empty($dol_optimize_smallscreen)) { ?> <?php if (empty($dol_optimize_smallscreen)) { ?>
-moz-box-shadow: 3px 3px 4px #DDD; -moz-box-shadow: 3px 3px 4px #f4f4f4;
-webkit-box-shadow: 3px 3px 4px #DDD; -webkit-box-shadow: 3px 3px 4px #f4f4f4;
box-shadow: 3px 3px 4px #DDD; box-shadow: 3px 3px 4px #f4f4f4;
<?php } ?> <?php } ?>
} }
@ -1471,7 +1472,7 @@ a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
border-bottom: none; border-bottom: none;
border-right: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC;
border-left: 1px solid #D0D0D0; border-left: 1px solid #f4f4f4;
border-top: 1px solid #D8D8D8; border-top: 1px solid #D8D8D8;
*/ */
@ -1480,7 +1481,7 @@ a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
.tabactive, a.tab#active { .tabactive, a.tab#active {
border-right: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC;
border-left: 1px solid #D0D0D0; border-left: 1px solid #f4f4f4;
border-top: 1px solid #D8D8D8; border-top: 1px solid #D8D8D8;
-moz-border-radius:3px 3px 0px 0px; -moz-border-radius:3px 3px 0px 0px;
@ -1555,9 +1556,9 @@ div.divButAction { margin-bottom: 1.4em; }
-moz-border-radius:0px 2px 0px 2px; -moz-border-radius:0px 2px 0px 2px;
-webkit-border-radius:0px 2px 0px 2px; -webkit-border-radius:0px 2px 0px 2px;
border-radius:0px 2px 0px 2px; border-radius:0px 2px 0px 2px;
-moz-box-shadow: 2px 2px 3px #DDD; -moz-box-shadow: 2px 2px 3px #f4f4f4;
-webkit-box-shadow: 2px 2px 3px #DDD; -webkit-box-shadow: 2px 2px 3px #f4f4f4;
box-shadow: 2px 2px 3px #DDD; box-shadow: 2px 2px 3px #f4f4f4;
} }
.butAction:hover { .butAction:hover {
@ -1587,9 +1588,9 @@ div.divButAction { margin-bottom: 1.4em; }
-moz-border-radius:0px 2px 0px 2px; -moz-border-radius:0px 2px 0px 2px;
-webkit-border-radius:0px 2px 0px 2px; -webkit-border-radius:0px 2px 0px 2px;
border-radius:0px 2px 0px 2px; border-radius:0px 2px 0px 2px;
-moz-box-shadow: 3px 3px 4px #DDD; -moz-box-shadow: 3px 3px 4px #f4f4f4;
-webkit-box-shadow: 3px 3px 4px #DDD; -webkit-box-shadow: 3px 3px 4px #f4f4f4;
box-shadow: 3px 3px 4px #DDD; box-shadow: 3px 3px 4px #f4f4f4;
} }
<?php if (! empty($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED)) { ?> <?php if (! empty($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED)) { ?>
@ -1602,7 +1603,7 @@ span.butAction, span.butActionDelete {
cursor: pointer; cursor: pointer;
} }
/* Preapre for bootstrap look /* Prepare for bootstrap look
.butAction, .butActionDelete, .butActionRefused { .butAction, .butActionDelete, .butActionRefused {
border-color: #c5c5c5; border-color: #c5c5c5;
border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
@ -1726,7 +1727,7 @@ tr.nocellnopadd td.nobordernopadding, tr.nocellnopadd td.nocellnopadd
table.border, table.dataTable, .table-border, .table-border-col, .table-key-border-col, .table-val-border-col, div.border { table.border, table.dataTable, .table-border, .table-border-col, .table-key-border-col, .table-val-border-col, div.border {
border: 1px solid #D0D0D0; border: 1px solid #f4f4f4;
border-collapse: collapse; border-collapse: collapse;
padding: 1px 2px 1px 3px; /* t r b l */ padding: 1px 2px 1px 3px; /* t r b l */
} }
@ -1740,7 +1741,7 @@ div.tabBar table.border tr {
table.border td, div.border div div.tagtd { table.border td, div.border div div.tagtd {
padding: 2px 2px 2px 2px; padding: 2px 2px 2px 2px;
border: 1px solid #D0D0D0; border: 1px solid #f4f4f4;
border-collapse: collapse; border-collapse: collapse;
} }
@ -1923,7 +1924,7 @@ table.dataTable td {
} }
tr.even td, tr.pair td, tr.odd td, tr.impair td, form.odd div.tagtd, form.impair div.tagtd, form.pair div.tagtd, div.impair div.tagtd, div.pair div.tagtd, div.liste_titre div.tagtd { tr.even td, tr.pair td, tr.odd td, tr.impair td, form.odd div.tagtd, form.impair div.tagtd, form.pair div.tagtd, div.impair div.tagtd, div.pair div.tagtd, div.liste_titre div.tagtd {
padding: 5px 2px 5px 3px; padding: 5px 2px 5px 3px;
border-bottom: 1px solid #ddd; border-bottom: 1px solid #f4f4f4;
} }
tr.even td .nobordernopadding tr td, tr.pair td .nobordernopadding tr td, tr.impair td .nobordernopadding tr td, tr.odd td .nobordernopadding tr td { tr.even td .nobordernopadding tr td, tr.pair td .nobordernopadding tr td, tr.impair td .nobordernopadding tr td, tr.odd td .nobordernopadding tr td {
border-bottom: 0px !important; border-bottom: 0px !important;
@ -1946,12 +1947,14 @@ div.liste_titre, tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.list
background: rgb(<?php echo $colorbacktitle1; ?>); background: rgb(<?php echo $colorbacktitle1; ?>);
background-repeat: repeat-x; background-repeat: repeat-x;
/*
background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%); background-image: linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0.3) 100%);
font-weight: bold; */
font-weight: bold;
color: #<?php echo $colortexttitle; ?>; color: #<?php echo $colortexttitle; ?>;
font-family: <?php print $fontlist ?>; font-family: <?php print $fontlist ?>;
@ -1996,7 +1999,7 @@ input.liste_titre {
background: #F0F0F0; background: #F0F0F0;
} }
.noborder tr.liste_total td, tr.liste_total td, form.liste_total div { .noborder tr.liste_total td, tr.liste_total td, form.liste_total div {
border-top: 1px solid #DDDDDD; border-top: 1px solid #f4f4f4;
color: #332266; color: #332266;
font-weight: normal; font-weight: normal;
white-space: nowrap; white-space: nowrap;
@ -2018,15 +2021,15 @@ input.liste_titre {
/* Disable shadows */ /* Disable shadows */
.noshadow { .noshadow {
-moz-box-shadow: 0px 0px 0px #DDD !important; -moz-box-shadow: 0px 0px 0px #f4f4f4 !important;
-webkit-box-shadow: 0px 0px 0px #DDD !important; -webkit-box-shadow: 0px 0px 0px #f4f4f4 !important;
box-shadow: 0px 0px 0px #DDD !important; box-shadow: 0px 0px 0px #f4f4f4 !important;
} }
div.tabBar .noborder { div.tabBar .noborder {
-moz-box-shadow: 0px 0px 0px #DDD !important; -moz-box-shadow: 0px 0px 0px #f4f4f4 !important;
-webkit-box-shadow: 0px 0px 0px #DDD !important; -webkit-box-shadow: 0px 0px 0px #f4f4f4 !important;
box-shadow: 0px 0px 0px #DDD !important; box-shadow: 0px 0px 0px #f4f4f4 !important;
} }
@ -2038,9 +2041,9 @@ div.tabBar .noborder {
<?php print "float: ".$left.";\n"; ?> <?php print "float: ".$left.";\n"; ?>
margin: 3px; margin: 3px;
padding: 3px; padding: 3px;
/*-moz-box-shadow: 3px 3px 4px #DDD; /*-moz-box-shadow: 3px 3px 4px #f4f4f4;
-webkit-box-shadow: 3px 3px 4px #DDD; -webkit-box-shadow: 3px 3px 4px #f4f4f4;
box-shadow: 3px 3px 4px #DDD; box-shadow: 3px 3px 4px #f4f4f4;
margin-bottom: 8px !important;*/ margin-bottom: 8px !important;*/
border: 1px solid #AAA; border: 1px solid #AAA;
text-align: center; text-align: center;
@ -2048,9 +2051,9 @@ div.tabBar .noborder {
} }
.boxtable { .boxtable {
-moz-box-shadow: 3px 3px 4px #DDD; -moz-box-shadow: 3px 3px 4px #f4f4f4;
-webkit-box-shadow: 3px 3px 4px #DDD; -webkit-box-shadow: 3px 3px 4px #f4f4f4;
box-shadow: 3px 3px 4px #DDD; box-shadow: 3px 3px 4px #f4f4f4;
margin-bottom: 8px !important; margin-bottom: 8px !important;
} }
@ -2100,7 +2103,7 @@ tr.box_pair {
tr.box_pair td, tr.box_impair td { tr.box_pair td, tr.box_impair td {
padding: 4px; padding: 4px;
border-bottom: 1px solid #ddd; border-bottom: 1px solid #f4f4f4;
} }
.formboxfilter { .formboxfilter {
@ -2356,8 +2359,8 @@ img.datecallink { padding-left: 2px !important; padding-right: 2px !important; }
table.dp { table.dp {
width: 180px; width: 180px;
background-color: #FFFFFF; background-color: #FFFFFF;
border-top: solid 2px #DDDDDD; border-top: solid 2px #f4f4f4;
border-<?php print $left; ?>: solid 2px #DDDDDD; border-<?php print $left; ?>: solid 2px #f4f4f4;
border-<?php print $right; ?>: solid 1px #222222; border-<?php print $right; ?>: solid 1px #222222;
border-bottom: solid 1px #222222; border-bottom: solid 1px #222222;
padding: 0px; padding: 0px;
@ -2389,14 +2392,14 @@ table.dp {
.dpToday,.dpReg,.dpSelected{ .dpToday,.dpReg,.dpSelected{
cursor:pointer; cursor:pointer;
} }
.dpToday{font-weight:bold; color:black; background-color:#DDDDDD;} .dpToday{font-weight:bold; color:black; background-color:#f4f4f4;}
.dpReg:Hover,.dpToday:Hover{background-color:black;color:white} .dpReg:Hover,.dpToday:Hover{background-color:black;color:white}
/* Jour courant */ /* Jour courant */
.dpSelected{background-color:#0B63A2;color:white;font-weight:bold; } .dpSelected{background-color:#0B63A2;color:white;font-weight:bold; }
.tpHour{border-top:1px solid #DDDDDD; border-right:1px solid #DDDDDD;} .tpHour{border-top:1px solid #f4f4f4; border-right:1px solid #f4f4f4;}
.tpHour td {border-left:1px solid #DDDDDD; border-bottom:1px solid #DDDDDD; cursor:pointer;} .tpHour td {border-left:1px solid #f4f4f4; border-bottom:1px solid #f4f4f4; cursor:pointer;}
.tpHour td:Hover {background-color:black;color:white;} .tpHour td:Hover {background-color:black;color:white;}
.tpMinute {margin-top:5px;} .tpMinute {margin-top:5px;}
@ -2729,9 +2732,9 @@ a.cke_dialog_ui_button
-moz-border-radius:0px 2px 0px 2px !important; -moz-border-radius:0px 2px 0px 2px !important;
-webkit-border-radius:0px 2px 0px 2px !important; -webkit-border-radius:0px 2px 0px 2px !important;
border-radius:0px 2px 0px 2px !important; border-radius:0px 2px 0px 2px !important;
-moz-box-shadow: 3px 3px 4px #DDD !important; -moz-box-shadow: 3px 3px 4px #f4f4f4 !important;
-webkit-box-shadow: 3px 3px 4px #DDD !important; -webkit-box-shadow: 3px 3px 4px #f4f4f4 !important;
box-shadow: 3px 3px 4px #DDD !important; box-shadow: 3px 3px 4px #f4f4f4 !important;
} }
.cke_dialog_ui_hbox_last .cke_dialog_ui_hbox_last
{ {
@ -2837,7 +2840,7 @@ ul.filedirelem li {
text-align: center; text-align: center;
display: block; display: block;
float: <?php print $left; ?>; float: <?php print $left; ?>;
border: solid 1px #DDDDDD; border: solid 1px #f4f4f4;
} }
ui-layout-north { ui-layout-north {
@ -3190,12 +3193,12 @@ border-top-right-radius: 6px;
text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>; text-shadow: 1px 0px 1px #<?php echo $colorshadowtitle; ?>;
} }
.lilevel1 { .lilevel1 {
background-image: -webkit-gradient(linear,left top,left bottom,from( #ddd ),to( #d1d1d1 )) !important; background-image: -webkit-gradient(linear,left top,left bottom,from( #f4f4f4 ),to( #d1d1d1 )) !important;
background-image: -webkit-linear-gradient( #ddd,#d1d1d1 ) !important; background-image: -webkit-linear-gradient( #f4f4f4,#d1d1d1 ) !important;
background-image: -moz-linear-gradient( #ddd,#d1d1d1 ) !important; background-image: -moz-linear-gradient( #f4f4f4,#d1d1d1 ) !important;
background-image: -ms-linear-gradient( #ddd,#d1d1d1 ) !important; background-image: -ms-linear-gradient( #f4f4f4,#d1d1d1 ) !important;
background-image: -o-linear-gradient( #ddd,#d1d1d1 ) !important; background-image: -o-linear-gradient( #f4f4f4,#d1d1d1 ) !important;
background-image: linear-gradient( #ddd,#d1d1d1 ) !important; background-image: linear-gradient( #f4f4f4,#d1d1d1 ) !important;
} }
.lilevel2 .lilevel2
{ {

View File

@ -723,7 +723,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '<tr>'; print '<tr>';
// Lastname // Lastname
print '<td valign="top" width="160"><span class="fieldrequired">'.$langs->trans("Lastname").'</span></td>'; print '<td width="160"><span class="fieldrequired">'.$langs->trans("Lastname").'</span></td>';
print '<td>'; print '<td>';
if (! empty($ldap_lastname)) if (! empty($ldap_lastname))
{ {
@ -737,7 +737,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
// Firstname // Firstname
print '<tr><td valign="top">'.$langs->trans("Firstname").'</td>'; print '<tr><td>'.$langs->trans("Firstname").'</td>';
print '<td>'; print '<td>';
if (! empty($ldap_firstname)) if (! empty($ldap_firstname))
{ {
@ -751,13 +751,13 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
// Position/Job // Position/Job
print '<tr><td valign="top">'.$langs->trans("PostOrFunction").'</td>'; print '<tr><td>'.$langs->trans("PostOrFunction").'</td>';
print '<td>'; print '<td>';
print '<input size="30" type="text" name="job" value="'.GETPOST('job').'">'; print '<input size="30" type="text" name="job" value="'.GETPOST('job').'">';
print '</td></tr>'; print '</td></tr>';
// Login // Login
print '<tr><td valign="top"><span class="fieldrequired">'.$langs->trans("Login").'</span></td>'; print '<tr><td><span class="fieldrequired">'.$langs->trans("Login").'</span></td>';
print '<td>'; print '<td>';
if (! empty($ldap_login)) if (! empty($ldap_login))
{ {
@ -784,7 +784,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
$password=$generated_password; $password=$generated_password;
// Password // Password
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Password").'</td>'; print '<tr><td class="fieldrequired">'.$langs->trans("Password").'</td>';
print '<td>'; print '<td>';
if (! empty($ldap_sid)) if (! empty($ldap_sid))
{ {
@ -808,7 +808,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
// Administrator // Administrator
if (! empty($user->admin)) if (! empty($user->admin))
{ {
print '<tr><td valign="top">'.$langs->trans("Administrator").'</td>'; print '<tr><td>'.$langs->trans("Administrator").'</td>';
print '<td>'; print '<td>';
print $form->selectyesno('admin',GETPOST('admin'),1); print $form->selectyesno('admin',GETPOST('admin'),1);
@ -850,13 +850,13 @@ if (($action == 'create') || ($action == 'adduserldap'))
} }
// Type // Type
print '<tr><td valign="top">'.$langs->trans("Type").'</td>'; print '<tr><td>'.$langs->trans("Type").'</td>';
print '<td>'; print '<td>';
print $form->textwithpicto($langs->trans("Internal"),$langs->trans("InternalExternalDesc")); print $form->textwithpicto($langs->trans("Internal"),$langs->trans("InternalExternalDesc"));
print '</td></tr>'; print '</td></tr>';
// Tel // Tel
print '<tr><td valign="top">'.$langs->trans("PhonePro").'</td>'; print '<tr><td>'.$langs->trans("PhonePro").'</td>';
print '<td>'; print '<td>';
if (! empty($ldap_phone)) if (! empty($ldap_phone))
{ {
@ -870,7 +870,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
// Tel portable // Tel portable
print '<tr><td valign="top">'.$langs->trans("PhoneMobile").'</td>'; print '<tr><td>'.$langs->trans("PhoneMobile").'</td>';
print '<td>'; print '<td>';
if (! empty($ldap_mobile)) if (! empty($ldap_mobile))
{ {
@ -884,7 +884,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
// Fax // Fax
print '<tr><td valign="top">'.$langs->trans("Fax").'</td>'; print '<tr><td>'.$langs->trans("Fax").'</td>';
print '<td>'; print '<td>';
if (! empty($ldap_fax)) if (! empty($ldap_fax))
{ {
@ -900,7 +900,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
// Skype // Skype
if (! empty($conf->skype->enabled)) if (! empty($conf->skype->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("Skype").'</td>'; print '<tr><td>'.$langs->trans("Skype").'</td>';
print '<td>'; print '<td>';
if (! empty($ldap_skype)) if (! empty($ldap_skype))
{ {
@ -915,7 +915,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
} }
// EMail // EMail
print '<tr><td valign="top"'.(! empty($conf->global->USER_MAIL_REQUIRED)?' class="fieldrequired"':'').'>'.$langs->trans("EMail").'</td>'; print '<tr><td'.(! empty($conf->global->USER_MAIL_REQUIRED)?' class="fieldrequired"':'').'>'.$langs->trans("EMail").'</td>';
print '<td>'; print '<td>';
if (! empty($ldap_mail)) if (! empty($ldap_mail))
{ {
@ -929,7 +929,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td></tr>'; print '</td></tr>';
// Signature // Signature
print '<tr><td valign="top">'.$langs->trans("Signature").'</td>'; print '<tr><td class="tdtop">'.$langs->trans("Signature").'</td>';
print '<td>'; print '<td>';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
$doleditor=new DolEditor('signature',GETPOST('signature'),'',138,'dolibarr_mailings','In',true,true,empty($conf->global->FCKEDITOR_ENABLE_USERSIGN)?0:1,ROWS_4,90); $doleditor=new DolEditor('signature',GETPOST('signature'),'',138,'dolibarr_mailings','In',true,true,empty($conf->global->FCKEDITOR_ENABLE_USERSIGN)?0:1,ROWS_4,90);
@ -941,7 +941,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
{ {
if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity && is_object($mc)) if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity && is_object($mc))
{ {
print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>'; print "<tr>".'<td>'.$langs->trans("Entity").'</td>';
print "<td>".$mc->select_entities($conf->entity); print "<td>".$mc->select_entities($conf->entity);
print "</td></tr>\n"; print "</td></tr>\n";
} }
@ -952,7 +952,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
} }
// Hierarchy // Hierarchy
print '<tr><td valign="top">'.$langs->trans("HierarchicalResponsible").'</td>'; print '<tr><td>'.$langs->trans("HierarchicalResponsible").'</td>';
print '<td>'; print '<td>';
print $form->select_dolusers($object->fk_user,'fk_user',1,array($object->id),0,'',0,$conf->entity); print $form->select_dolusers($object->fk_user,'fk_user',1,array($object->id),0,'',0,$conf->entity);
print '</td>'; print '</td>';
@ -963,21 +963,21 @@ if (($action == 'create') || ($action == 'adduserldap'))
$langs->load("salaries"); $langs->load("salaries");
// THM // THM
print '<tr><td valign="top">'.$langs->trans("THM").'</td>'; print '<tr><td>'.$langs->trans("THM").'</td>';
print '<td>'; print '<td>';
print '<input size="8" type="text" name="thm" value="'.GETPOST('thm').'">'; print '<input size="8" type="text" name="thm" value="'.GETPOST('thm').'">';
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
// TJM // TJM
print '<tr><td valign="top">'.$langs->trans("TJM").'</td>'; print '<tr><td>'.$langs->trans("TJM").'</td>';
print '<td>'; print '<td>';
print '<input size="8" type="text" name="tjm" value="'.GETPOST('tjm').'">'; print '<input size="8" type="text" name="tjm" value="'.GETPOST('tjm').'">';
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
// Salary // Salary
print '<tr><td valign="top">'.$langs->trans("Salary").'</td>'; print '<tr><td>'.$langs->trans("Salary").'</td>';
print '<td>'; print '<td>';
print '<input size="8" type="text" name="salary" value="'.GETPOST('salary').'">'; print '<input size="8" type="text" name="salary" value="'.GETPOST('salary').'">';
print '</td>'; print '</td>';
@ -985,7 +985,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
} }
// Weeklyhours // Weeklyhours
print '<tr><td valign="top">'.$langs->trans("WeeklyHours").'</td>'; print '<tr><td>'.$langs->trans("WeeklyHours").'</td>';
print '<td>'; print '<td>';
print '<input size="8" type="text" name="weeklyhours" value="'.GETPOST('weeklyhours').'">'; print '<input size="8" type="text" name="weeklyhours" value="'.GETPOST('weeklyhours').'">';
print '</td>'; print '</td>';
@ -994,7 +994,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
// Accountancy code // Accountancy code
if ($conf->salaries->enabled) if ($conf->salaries->enabled)
{ {
print '<tr><td valign="top">'.$langs->trans("AccountancyCode").'</td>'; print '<tr><td>'.$langs->trans("AccountancyCode").'</td>';
print '<td>'; print '<td>';
print '<input size="30" type="text" name="accountancy_code" value="'.GETPOST('accountancy_code').'">'; print '<input size="30" type="text" name="accountancy_code" value="'.GETPOST('accountancy_code').'">';
print '</td></tr>'; print '</td></tr>';
@ -1003,14 +1003,14 @@ if (($action == 'create') || ($action == 'adduserldap'))
// User color // User color
if (! empty($conf->agenda->enabled)) if (! empty($conf->agenda->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("ColorUser").'</td>'; print '<tr><td>'.$langs->trans("ColorUser").'</td>';
print '<td>'; print '<td>';
print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', 'usercolorconfig', 1, '', 'hideifnotset'); print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', 'usercolorconfig', 1, '', 'hideifnotset');
print '</td></tr>'; print '</td></tr>';
} }
// Note // Note
print '<tr><td valign="top">'; print '<tr><td class="tdtop">';
print $langs->trans("Note"); print $langs->trans("Note");
print '</td><td>'; print '</td><td>';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
@ -1149,7 +1149,7 @@ else
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Ref // Ref
print '<tr><td width="25%" valign="top">'.$langs->trans("Ref").'</td>'; print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($object,'id','',$user->rights->user->user->lire || $user->admin); print $form->showrefnav($object,'id','',$user->rights->user->user->lire || $user->admin);
print '</td>'; print '</td>';
@ -1163,7 +1163,7 @@ else
if (! empty($conf->agenda->enabled)) $rowspan++; if (! empty($conf->agenda->enabled)) $rowspan++;
// Lastname // Lastname
print '<tr><td valign="top">'.$langs->trans("Lastname").'</td>'; print '<tr><td>'.$langs->trans("Lastname").'</td>';
print '<td colspan="2">'.$object->lastname.'</td>'; print '<td colspan="2">'.$object->lastname.'</td>';
// Photo // Photo
@ -1174,17 +1174,17 @@ else
print '</tr>'."\n"; print '</tr>'."\n";
// Firstname // Firstname
print '<tr><td valign="top">'.$langs->trans("Firstname").'</td>'; print '<tr><td>'.$langs->trans("Firstname").'</td>';
print '<td colspan="2">'.$object->firstname.'</td>'; print '<td colspan="2">'.$object->firstname.'</td>';
print '</tr>'."\n"; print '</tr>'."\n";
// Position/Job // Position/Job
print '<tr><td valign="top">'.$langs->trans("PostOrFunction").'</td>'; print '<tr><td>'.$langs->trans("PostOrFunction").'</td>';
print '<td colspan="2">'.$object->job.'</td>'; print '<td colspan="2">'.$object->job.'</td>';
print '</tr>'."\n"; print '</tr>'."\n";
// Login // Login
print '<tr><td valign="top">'.$langs->trans("Login").'</td>'; print '<tr><td>'.$langs->trans("Login").'</td>';
if (! empty($object->ldap_sid) && $object->statut==0) if (! empty($object->ldap_sid) && $object->statut==0)
{ {
print '<td colspan="2" class="error">'.$langs->trans("LoginAccountDisableInDolibarr").'</td>'; print '<td colspan="2" class="error">'.$langs->trans("LoginAccountDisableInDolibarr").'</td>';
@ -1196,7 +1196,7 @@ else
print '</tr>'."\n"; print '</tr>'."\n";
// Password // Password
print '<tr><td valign="top">'.$langs->trans("Password").'</td>'; print '<tr><td>'.$langs->trans("Password").'</td>';
if (! empty($object->ldap_sid)) if (! empty($object->ldap_sid))
{ {
if ($passDoNotExpire) if ($passDoNotExpire)
@ -1230,7 +1230,7 @@ else
print '</tr>'."\n"; print '</tr>'."\n";
// Administrator // Administrator
print '<tr><td valign="top">'.$langs->trans("Administrator").'</td><td colspan="2">'; print '<tr><td>'.$langs->trans("Administrator").'</td><td colspan="2">';
if (! empty($conf->multicompany->enabled) && $object->admin && ! $object->entity) if (! empty($conf->multicompany->enabled) && $object->admin && ! $object->entity)
{ {
print $form->textwithpicto(yn($object->admin),$langs->trans("SuperAdministratorDesc"),1,"superadmin"); print $form->textwithpicto(yn($object->admin),$langs->trans("SuperAdministratorDesc"),1,"superadmin");
@ -1246,7 +1246,7 @@ else
print '</td></tr>'."\n"; print '</td></tr>'."\n";
// Type // Type
print '<tr><td valign="top">'.$langs->trans("Type").'</td><td colspan="2">'; print '<tr><td>'.$langs->trans("Type").'</td><td colspan="2">';
$type=$langs->trans("Internal"); $type=$langs->trans("Internal");
if ($object->societe_id) $type=$langs->trans("External"); if ($object->societe_id) $type=$langs->trans("External");
print $form->textwithpicto($type,$langs->trans("InternalExternalDesc")); print $form->textwithpicto($type,$langs->trans("InternalExternalDesc"));
@ -1256,46 +1256,46 @@ else
// Ldap sid // Ldap sid
if ($object->ldap_sid) if ($object->ldap_sid)
{ {
print '<tr><td valign="top">'.$langs->trans("Type").'</td><td colspan="2">'; print '<tr><td>'.$langs->trans("Type").'</td><td colspan="2">';
print $langs->trans("DomainUser",$ldap->domainFQDN); print $langs->trans("DomainUser",$ldap->domainFQDN);
print '</td></tr>'."\n"; print '</td></tr>'."\n";
} }
// Tel pro // Tel pro
print '<tr><td valign="top">'.$langs->trans("PhonePro").'</td>'; print '<tr><td>'.$langs->trans("PhonePro").'</td>';
print '<td colspan="2">'.dol_print_phone($object->office_phone,'',0,0,1).'</td>'; print '<td colspan="2">'.dol_print_phone($object->office_phone,'',0,0,1).'</td>';
print '</tr>'."\n"; print '</tr>'."\n";
// Tel mobile // Tel mobile
print '<tr><td valign="top">'.$langs->trans("PhoneMobile").'</td>'; print '<tr><td>'.$langs->trans("PhoneMobile").'</td>';
print '<td colspan="2">'.dol_print_phone($object->user_mobile,'',0,0,1).'</td>'; print '<td colspan="2">'.dol_print_phone($object->user_mobile,'',0,0,1).'</td>';
print '</tr>'."\n"; print '</tr>'."\n";
// Fax // Fax
print '<tr><td valign="top">'.$langs->trans("Fax").'</td>'; print '<tr><td>'.$langs->trans("Fax").'</td>';
print '<td colspan="2">'.dol_print_phone($object->office_fax,'',0,0,1).'</td>'; print '<td colspan="2">'.dol_print_phone($object->office_fax,'',0,0,1).'</td>';
print '</tr>'."\n"; print '</tr>'."\n";
// Skype // Skype
if (! empty($conf->skype->enabled)) if (! empty($conf->skype->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("Skype").'</td>'; print '<tr><td>'.$langs->trans("Skype").'</td>';
print '<td colspan="2">'.dol_print_skype($object->skype,0,0,1).'</td>'; print '<td colspan="2">'.dol_print_skype($object->skype,0,0,1).'</td>';
print "</tr>\n"; print "</tr>\n";
} }
// EMail // EMail
print '<tr><td valign="top">'.$langs->trans("EMail").'</td>'; print '<tr><td>'.$langs->trans("EMail").'</td>';
print '<td colspan="2">'.dol_print_email($object->email,0,0,1).'</td>'; print '<td colspan="2">'.dol_print_email($object->email,0,0,1).'</td>';
print "</tr>\n"; print "</tr>\n";
// Signature // Signature
print '<tr><td valign="top">'.$langs->trans('Signature').'</td><td colspan="2">'; print '<tr><td class="tdtop">'.$langs->trans('Signature').'</td><td colspan="2">';
print dol_htmlentitiesbr($object->signature); print dol_htmlentitiesbr($object->signature);
print "</td></tr>\n"; print "</td></tr>\n";
// Hierarchy // Hierarchy
print '<tr><td valign="top">'.$langs->trans("HierarchicalResponsible").'</td>'; print '<tr><td>'.$langs->trans("HierarchicalResponsible").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
if (empty($object->fk_user)) print $langs->trans("None"); if (empty($object->fk_user)) print $langs->trans("None");
else { else {
@ -1311,21 +1311,21 @@ else
$langs->load("salaries"); $langs->load("salaries");
// THM // THM
print '<tr><td valign="top">'.$langs->trans("THM").'</td>'; print '<tr><td>'.$langs->trans("THM").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
print ($object->thm!=''?price($object->thm,'',$langs,1,-1,-1,$conf->currency):''); print ($object->thm!=''?price($object->thm,'',$langs,1,-1,-1,$conf->currency):'');
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
// TJM // TJM
print '<tr><td valign="top">'.$langs->trans("TJM").'</td>'; print '<tr><td>'.$langs->trans("TJM").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
print ($object->tjm!=''?price($object->tjm,'',$langs,1,-1,-1,$conf->currency):''); print ($object->tjm!=''?price($object->tjm,'',$langs,1,-1,-1,$conf->currency):'');
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
// Salary // Salary
print '<tr><td valign="top">'.$langs->trans("Salary").'</td>'; print '<tr><td>'.$langs->trans("Salary").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
print ($object->salary!=''?price($object->salary,'',$langs,1,-1,-1,$conf->currency):''); print ($object->salary!=''?price($object->salary,'',$langs,1,-1,-1,$conf->currency):'');
print '</td>'; print '</td>';
@ -1333,7 +1333,7 @@ else
} }
// Weeklyhours // Weeklyhours
print '<tr><td valign="top">'.$langs->trans("WeeklyHours").'</td>'; print '<tr><td>'.$langs->trans("WeeklyHours").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
print price2num($object->weeklyhours); print price2num($object->weeklyhours);
print '</td>'; print '</td>';
@ -1342,14 +1342,14 @@ else
// Accountancy code // Accountancy code
if ($conf->salaries->enabled) if ($conf->salaries->enabled)
{ {
print '<tr><td valign="top">'.$langs->trans("AccountancyCode").'</td>'; print '<tr><td>'.$langs->trans("AccountancyCode").'</td>';
print '<td colspan="2">'.$object->accountancy_code.'</td>'; print '<td colspan="2">'.$object->accountancy_code.'</td>';
} }
// Color user // Color user
if (! empty($conf->agenda->enabled)) if (! empty($conf->agenda->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("ColorUser").'</td>'; print '<tr><td>'.$langs->trans("ColorUser").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
if ($object->color) print '<input type="text" disabled style="padding: 0; margin-top: 0; margin-bottom: 0; width: 36px; background-color: #'.$object->color.'" value="'.$object->color.'">'; if ($object->color) print '<input type="text" disabled style="padding: 0; margin-top: 0; margin-bottom: 0; width: 36px; background-color: #'.$object->color.'" value="'.$object->color.'">';
print '</td>'; print '</td>';
@ -1357,23 +1357,23 @@ else
} }
// Status // Status
print '<tr><td valign="top">'.$langs->trans("Status").'</td>'; print '<tr><td>'.$langs->trans("Status").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
print $object->getLibStatut(4); print $object->getLibStatut(4);
print '</td>'; print '</td>';
print '</tr>'."\n"; print '</tr>'."\n";
print '<tr><td valign="top">'.$langs->trans("LastConnexion").'</td>'; print '<tr><td>'.$langs->trans("LastConnexion").'</td>';
print '<td colspan="2">'.dol_print_date($object->datelastlogin,"dayhour").'</td>'; print '<td colspan="2">'.dol_print_date($object->datelastlogin,"dayhour").'</td>';
print "</tr>\n"; print "</tr>\n";
print '<tr><td valign="top">'.$langs->trans("PreviousConnexion").'</td>'; print '<tr><td>'.$langs->trans("PreviousConnexion").'</td>';
print '<td colspan="2">'.dol_print_date($object->datepreviouslogin,"dayhour").'</td>'; print '<td colspan="2">'.dol_print_date($object->datepreviouslogin,"dayhour").'</td>';
print "</tr>\n"; print "</tr>\n";
if (isset($conf->file->main_authentication) && preg_match('/openid/',$conf->file->main_authentication) && ! empty($conf->global->MAIN_OPENIDURL_PERUSER)) if (isset($conf->file->main_authentication) && preg_match('/openid/',$conf->file->main_authentication) && ! empty($conf->global->MAIN_OPENIDURL_PERUSER))
{ {
print '<tr><td valign="top">'.$langs->trans("OpenIDURL").'</td>'; print '<tr><td>'.$langs->trans("OpenIDURL").'</td>';
print '<td colspan="2">'.$object->openid.'</td>'; print '<td colspan="2">'.$object->openid.'</td>';
print "</tr>\n"; print "</tr>\n";
} }
@ -1381,7 +1381,7 @@ else
// Company / Contact // Company / Contact
if (! empty($conf->societe->enabled)) if (! empty($conf->societe->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("LinkToCompanyContact").'</td>'; print '<tr><td>'.$langs->trans("LinkToCompanyContact").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
if (isset($object->societe_id) && $object->societe_id > 0) if (isset($object->societe_id) && $object->societe_id > 0)
{ {
@ -1409,7 +1409,7 @@ else
if (! empty($conf->adherent->enabled)) if (! empty($conf->adherent->enabled))
{ {
$langs->load("members"); $langs->load("members");
print '<tr><td valign="top">'.$langs->trans("LinkedToDolibarrMember").'</td>'; print '<tr><td>'.$langs->trans("LinkedToDolibarrMember").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
if ($object->fk_member) if ($object->fk_member)
{ {
@ -1432,7 +1432,7 @@ else
{ {
if (! empty($conf->multicompany->enabled) && empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity) if (! empty($conf->multicompany->enabled) && empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
{ {
print '<tr><td valign="top">'.$langs->trans("Entity").'</td><td width="75%" class="valeur">'; print '<tr><td>'.$langs->trans("Entity").'</td><td width="75%" class="valeur">';
if (empty($object->entity)) if (empty($object->entity))
{ {
print $langs->trans("AllEntities"); print $langs->trans("AllEntities");
@ -1578,7 +1578,7 @@ else
{ {
if ($conf->entity == 1 && $conf->multicompany->transverse_mode) if ($conf->entity == 1 && $conf->multicompany->transverse_mode)
{ {
print '</td><td valign="top">'.$langs->trans("Entity").'</td>'; print '</td><td>'.$langs->trans("Entity").'</td>';
print "<td>".$mc->select_entities($conf->entity); print "<td>".$mc->select_entities($conf->entity);
} }
else else
@ -1691,7 +1691,7 @@ else
print '<table width="100%" class="border">'; print '<table width="100%" class="border">';
print '<tr><td width="25%" valign="top">'.$langs->trans("Ref").'</td>'; print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="2">'; print '<td colspan="2">';
print $object->id; print $object->id;
print '</td>'; print '</td>';
@ -1699,7 +1699,7 @@ else
// Lastname // Lastname
print "<tr>"; print "<tr>";
print '<td valign="top" class="fieldrequired">'.$langs->trans("Lastname").'</td>'; print '<td class="fieldrequired">'.$langs->trans("Lastname").'</td>';
print '<td>'; print '<td>';
if ($caneditfield && !$object->ldap_sid) if ($caneditfield && !$object->ldap_sid)
{ {
@ -1728,7 +1728,7 @@ else
print '</tr>'; print '</tr>';
// Firstname // Firstname
print "<tr>".'<td valign="top">'.$langs->trans("Firstname").'</td>'; print "<tr>".'<td>'.$langs->trans("Firstname").'</td>';
print '<td>'; print '<td>';
if ($caneditfield && !$object->ldap_sid) if ($caneditfield && !$object->ldap_sid)
{ {
@ -1742,7 +1742,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Position/Job // Position/Job
print '<tr><td valign="top">'.$langs->trans("PostOrFunction").'</td>'; print '<tr><td>'.$langs->trans("PostOrFunction").'</td>';
print '<td>'; print '<td>';
if ($caneditfield) if ($caneditfield)
{ {
@ -1756,7 +1756,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Login // Login
print "<tr>".'<td valign="top"><span class="fieldrequired">'.$langs->trans("Login").'</span></td>'; print "<tr>".'<td><span class="fieldrequired">'.$langs->trans("Login").'</span></td>';
print '<td>'; print '<td>';
if ($user->admin && !$object->ldap_sid) if ($user->admin && !$object->ldap_sid)
{ {
@ -1771,7 +1771,7 @@ else
print '</tr>'; print '</tr>';
// Pass // Pass
print '<tr><td valign="top">'.$langs->trans("Password").'</td>'; print '<tr><td>'.$langs->trans("Password").'</td>';
print '<td>'; print '<td>';
if ($object->ldap_sid) if ($object->ldap_sid)
{ {
@ -1793,7 +1793,7 @@ else
print "</td></tr>\n"; print "</td></tr>\n";
// Administrator // Administrator
print '<tr><td valign="top">'.$langs->trans("Administrator").'</td>'; print '<tr><td>'.$langs->trans("Administrator").'</td>';
if ($object->societe_id > 0) if ($object->societe_id > 0)
{ {
$langs->load("admin"); $langs->load("admin");
@ -1870,7 +1870,7 @@ else
} }
// Type // Type
print '<tr><td width="25%" valign="top">'.$langs->trans("Type").'</td>'; print '<tr><td width="25%">'.$langs->trans("Type").'</td>';
print '<td>'; print '<td>';
if ($user->id == $object->id || ! $user->admin) if ($user->id == $object->id || ! $user->admin)
{ {
@ -1889,7 +1889,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Tel pro // Tel pro
print "<tr>".'<td valign="top">'.$langs->trans("PhonePro").'</td>'; print "<tr>".'<td>'.$langs->trans("PhonePro").'</td>';
print '<td>'; print '<td>';
if ($caneditfield && empty($object->ldap_sid)) if ($caneditfield && empty($object->ldap_sid))
{ {
@ -1903,7 +1903,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Tel mobile // Tel mobile
print "<tr>".'<td valign="top">'.$langs->trans("PhoneMobile").'</td>'; print "<tr>".'<td>'.$langs->trans("PhoneMobile").'</td>';
print '<td>'; print '<td>';
if ($caneditfield && empty($object->ldap_sid)) if ($caneditfield && empty($object->ldap_sid))
{ {
@ -1917,7 +1917,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Fax // Fax
print "<tr>".'<td valign="top">'.$langs->trans("Fax").'</td>'; print "<tr>".'<td>'.$langs->trans("Fax").'</td>';
print '<td>'; print '<td>';
if ($caneditfield && empty($object->ldap_sid)) if ($caneditfield && empty($object->ldap_sid))
{ {
@ -1933,7 +1933,7 @@ else
// Skype // Skype
if (! empty($conf->skype->enabled)) if (! empty($conf->skype->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("Skype").'</td>'; print '<tr><td>'.$langs->trans("Skype").'</td>';
print '<td>'; print '<td>';
if ($caneditfield && empty($object->ldap_sid)) if ($caneditfield && empty($object->ldap_sid))
{ {
@ -1948,7 +1948,7 @@ else
} }
// EMail // EMail
print "<tr>".'<td valign="top"'.(! empty($conf->global->USER_MAIL_REQUIRED)?' class="fieldrequired"':'').'>'.$langs->trans("EMail").'</td>'; print "<tr>".'<td'.(! empty($conf->global->USER_MAIL_REQUIRED)?' class="fieldrequired"':'').'>'.$langs->trans("EMail").'</td>';
print '<td>'; print '<td>';
if ($caneditfield && empty($object->ldap_sid)) if ($caneditfield && empty($object->ldap_sid))
{ {
@ -1962,7 +1962,7 @@ else
print '</td></tr>'; print '</td></tr>';
// Signature // Signature
print "<tr>".'<td valign="top">'.$langs->trans("Signature").'</td>'; print "<tr>".'<td class="tdtop">'.$langs->trans("Signature").'</td>';
print '<td>'; print '<td>';
if ($caneditfield) if ($caneditfield)
{ {
@ -1979,7 +1979,7 @@ else
// OpenID url // OpenID url
if (isset($conf->file->main_authentication) && preg_match('/openid/',$conf->file->main_authentication) && ! empty($conf->global->MAIN_OPENIDURL_PERUSER)) if (isset($conf->file->main_authentication) && preg_match('/openid/',$conf->file->main_authentication) && ! empty($conf->global->MAIN_OPENIDURL_PERUSER))
{ {
print "<tr>".'<td valign="top">'.$langs->trans("OpenIDURL").'</td>'; print "<tr>".'<td>'.$langs->trans("OpenIDURL").'</td>';
print '<td>'; print '<td>';
if ($caneditfield) if ($caneditfield)
{ {
@ -1994,7 +1994,7 @@ else
} }
// Hierarchy // Hierarchy
print '<tr><td valign="top">'.$langs->trans("HierarchicalResponsible").'</td>'; print '<tr><td>'.$langs->trans("HierarchicalResponsible").'</td>';
print '<td>'; print '<td>';
if ($caneditfield) if ($caneditfield)
{ {
@ -2015,21 +2015,21 @@ else
$langs->load("salaries"); $langs->load("salaries");
// THM // THM
print '<tr><td valign="top">'.$langs->trans("THM").'</td>'; print '<tr><td>'.$langs->trans("THM").'</td>';
print '<td>'; print '<td>';
print '<input size="8" type="text" name="thm" value="'.price2num(GETPOST('thm')?GETPOST('thm'):$object->thm).'">'; print '<input size="8" type="text" name="thm" value="'.price2num(GETPOST('thm')?GETPOST('thm'):$object->thm).'">';
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
// TJM // TJM
print '<tr><td valign="top">'.$langs->trans("TJM").'</td>'; print '<tr><td>'.$langs->trans("TJM").'</td>';
print '<td>'; print '<td>';
print '<input size="8" type="text" name="tjm" value="'.price2num(GETPOST('tjm')?GETPOST('tjm'):$object->tjm).'">'; print '<input size="8" type="text" name="tjm" value="'.price2num(GETPOST('tjm')?GETPOST('tjm'):$object->tjm).'">';
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
// Salary // Salary
print '<tr><td valign="top">'.$langs->trans("Salary").'</td>'; print '<tr><td>'.$langs->trans("Salary").'</td>';
print '<td>'; print '<td>';
print '<input size="8" type="text" name="salary" value="'.price2num(GETPOST('salary')?GETPOST('salary'):$object->salary).'">'; print '<input size="8" type="text" name="salary" value="'.price2num(GETPOST('salary')?GETPOST('salary'):$object->salary).'">';
print '</td>'; print '</td>';
@ -2037,7 +2037,7 @@ else
} }
// Weeklyhours // Weeklyhours
print '<tr><td valign="top">'.$langs->trans("WeeklyHours").'</td>'; print '<tr><td>'.$langs->trans("WeeklyHours").'</td>';
print '<td>'; print '<td>';
print '<input size="8" type="text" name="weeklyhours" value="'.price2num(GETPOST('weeklyhours')?GETPOST('weeklyhours'):$object->weeklyhours).'">'; print '<input size="8" type="text" name="weeklyhours" value="'.price2num(GETPOST('weeklyhours')?GETPOST('weeklyhours'):$object->weeklyhours).'">';
print '</td>'; print '</td>';
@ -2047,7 +2047,7 @@ else
if ($conf->salaries->enabled) if ($conf->salaries->enabled)
{ {
print "<tr>"; print "<tr>";
print '<td valign="top">'.$langs->trans("AccountancyCode").'</td>'; print '<td>'.$langs->trans("AccountancyCode").'</td>';
print '<td>'; print '<td>';
if ($caneditfield) if ($caneditfield)
{ {
@ -2065,14 +2065,14 @@ else
// User color // User color
if (! empty($conf->agenda->enabled)) if (! empty($conf->agenda->enabled))
{ {
print '<tr><td valign="top">'.$langs->trans("ColorUser").'</td>'; print '<tr><td>'.$langs->trans("ColorUser").'</td>';
print '<td>'; print '<td>';
print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', 'usercolorconfig', 1, '', 'hideifnotset'); print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', 'usercolorconfig', 1, '', 'hideifnotset');
print '</td></tr>'; print '</td></tr>';
} }
// Status // Status
print '<tr><td valign="top">'.$langs->trans("Status").'</td>'; print '<tr><td>'.$langs->trans("Status").'</td>';
print '<td>'; print '<td>';
print $object->getLibStatut(4); print $object->getLibStatut(4);
print '</td></tr>'; print '</td></tr>';
@ -2080,7 +2080,7 @@ else
// Company / Contact // Company / Contact
if (! empty($conf->societe->enabled)) if (! empty($conf->societe->enabled))
{ {
print '<tr><td width="25%" valign="top">'.$langs->trans("LinkToCompanyContact").'</td>'; print '<tr><td width="25%">'.$langs->trans("LinkToCompanyContact").'</td>';
print '<td>'; print '<td>';
if ($object->societe_id > 0) if ($object->societe_id > 0)
{ {
@ -2107,7 +2107,7 @@ else
if (! empty($conf->adherent->enabled)) if (! empty($conf->adherent->enabled))
{ {
$langs->load("members"); $langs->load("members");
print '<tr><td width="25%" valign="top">'.$langs->trans("LinkedToDolibarrMember").'</td>'; print '<tr><td width="25%">'.$langs->trans("LinkedToDolibarrMember").'</td>';
print '<td>'; print '<td>';
if ($object->fk_member) if ($object->fk_member)
{ {
@ -2129,7 +2129,7 @@ else
{ {
if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity) if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
{ {
print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>'; print "<tr>".'<td>'.$langs->trans("Entity").'</td>';
print "<td>".$mc->select_entities($object->entity, 'entity', '', 0, 1); // last parameter 1 means, show also a choice 0=>'all entities' print "<td>".$mc->select_entities($object->entity, 'entity', '', 0, 1); // last parameter 1 means, show also a choice 0=>'all entities'
print "</td></tr>\n"; print "</td></tr>\n";
} }