Merge remote-tracking branch 'Upstream/develop' into develop-favorite
Resolve conflicts: htdocs/install/mysql/migration/3.6.0-3.7.0.sql
This commit is contained in:
commit
9f6a460d42
@ -272,12 +272,6 @@ source_file = htdocs/langs/en_US/sendings.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[dolibarr.shop]
|
||||
file_filter = htdocs/langs/<lang>/shop.lang
|
||||
source_file = htdocs/langs/en_US/shop.lang
|
||||
source_lang = en_US
|
||||
type = MOZILLAPROPERTIES
|
||||
|
||||
[dolibarr.sms]
|
||||
file_filter = htdocs/langs/<lang>/sms.lang
|
||||
source_file = htdocs/langs/en_US/sms.lang
|
||||
|
||||
@ -122,6 +122,8 @@ For developers:
|
||||
- New: renamed table llx_c_pays to llx_c_country & libelle field to label.
|
||||
- New: Added hook "formConfirm" and "doActions" for fichinter card
|
||||
- New: Can search list of thirdparties from web service on part of name.
|
||||
- New: Function getCurrencyAmount is marked as deprecated. Use function price to output a price
|
||||
including currency symbol.
|
||||
- Qual: Renamed table llx_c_civilite into llx_c_civility,
|
||||
field civilite into label in the same table,
|
||||
and field civilite into civility in other table.
|
||||
|
||||
@ -25,4 +25,6 @@ then
|
||||
find ./htdocs -type f -iname "*.php" -exec chmod a-x {} \;
|
||||
chmod a+x ./scripts/*/*.php
|
||||
chmod a+x ./scripts/*/*.sh
|
||||
chmod g-w ./scripts/*/*.php
|
||||
chmod g-w ./scripts/*/*.sh
|
||||
fi
|
||||
|
||||
@ -159,7 +159,7 @@ if ($conf->use_javascript_ajax)
|
||||
print '<br>';
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Statistics").'</td></tr>';
|
||||
print '<tr><td align="center">';
|
||||
print '<tr '.$bc[0].'><td align="center" colspan="2">';
|
||||
|
||||
$SommeA=0;
|
||||
$SommeB=0;
|
||||
|
||||
@ -387,13 +387,14 @@ if ($id == 11)
|
||||
$langs->load("bills");
|
||||
$langs->load("interventions");
|
||||
$elementList = array(
|
||||
'proposal' => $langs->trans('Proposal'),
|
||||
'order' => $langs->trans('Order'),
|
||||
'invoice' => $langs->trans('Bill'),
|
||||
'' => '',
|
||||
// 'proposal' => $langs->trans('Proposal'),
|
||||
// 'order' => $langs->trans('Order'),
|
||||
// 'invoice' => $langs->trans('Bill'),
|
||||
'invoice_supplier' => $langs->trans('SupplierBill'),
|
||||
'order_supplier' => $langs->trans('SupplierOrder'),
|
||||
'intervention' => $langs->trans('InterventionCard'),
|
||||
'contract' => $langs->trans('Contract'),
|
||||
// 'intervention' => $langs->trans('InterventionCard'),
|
||||
// 'contract' => $langs->trans('Contract'),
|
||||
'project' => $langs->trans('Project'),
|
||||
'project_task' => $langs->trans('Task'),
|
||||
'agenda' => $langs->trans('Agenda'),
|
||||
@ -402,10 +403,11 @@ if ($id == 11)
|
||||
'propal' => $langs->trans('Proposal'),
|
||||
'commande' => $langs->trans('Order'),
|
||||
'facture' => $langs->trans('Bill'),
|
||||
'facture_fourn' => $langs->trans('SupplierBill'),
|
||||
// 'facture_fourn' => $langs->trans('SupplierBill'),
|
||||
'fichinter' => $langs->trans('InterventionCard')
|
||||
);
|
||||
if (! empty($conf->global->MAIN_SUPPORT_SHARED_CONTACT_BETWEEN_THIRDPARTIES)) $elementList["societe"] = $langs->trans('ThirdParty');
|
||||
asort($elementList);
|
||||
$sourceList = array(
|
||||
'internal' => $langs->trans('Internal'),
|
||||
'external' => $langs->trans('External')
|
||||
@ -749,6 +751,7 @@ if ($action == 'delete')
|
||||
{
|
||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$_GET["code"].'&id='.$id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete','',0,1);
|
||||
}
|
||||
//var_dump($elementList);
|
||||
|
||||
/*
|
||||
* Show a dictionary
|
||||
|
||||
@ -171,7 +171,7 @@ $nbofentries=(count($data) - 1);
|
||||
|
||||
if ($nbofentries > 0)
|
||||
{
|
||||
print '<tr><td colspan="3">';
|
||||
print '<tr '.$bc[0].'><td colspan="3">';
|
||||
tree_recur($data,$data[0],0);
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
@ -1028,7 +1028,7 @@ else // View by day
|
||||
$today=0;
|
||||
$todayarray=dol_getdate($now,'fast');
|
||||
if ($todayarray['mday']==$day && $todayarray['mon']==$month && $todayarray['year']==$year) $today=1;
|
||||
if ($today) $style='cal_today';
|
||||
//if ($today) $style='cal_today';
|
||||
|
||||
$timestamp=dol_mktime(12,0,0,$month,$day,$year);
|
||||
$arraytimestamp=dol_getdate($timestamp);
|
||||
@ -1146,11 +1146,11 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
||||
if (in_array($user->id, $keysofuserassigned))
|
||||
{
|
||||
$nummytasks++; $cssclass='family_mytasks';
|
||||
// TODO Set a color using user color
|
||||
|
||||
// Must defined rule to choose color of who to use.
|
||||
// event->ownerid will still contains user id of owner
|
||||
// event->userassigned will be an array in future.
|
||||
// $color=$user->color;
|
||||
$color=$user->color;
|
||||
}
|
||||
else if ($event->type_code == 'ICALEVENT')
|
||||
{
|
||||
|
||||
@ -44,6 +44,8 @@ $status=GETPOST("status",'alpha');
|
||||
$type=GETPOST('type');
|
||||
$actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_USE_EVENT_TYPE)?'AC_OTH':''));
|
||||
$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth'), GETPOST('dateselectday'), GETPOST('dateselectyear'));
|
||||
$datestart=dol_mktime(0, 0, 0, GETPOST('datestartmonth'), GETPOST('datestartday'), GETPOST('datestartyear'));
|
||||
$dateend=dol_mktime(0, 0, 0, GETPOST('dateendmonth'), GETPOST('dateendday'), GETPOST('dateendyear'));
|
||||
|
||||
if ($actioncode == '') $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE);
|
||||
if ($status == '' && ! isset($_GET['status']) && ! isset($_POST['status'])) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS);
|
||||
@ -123,13 +125,19 @@ if (GETPOST("viewcal") || GETPOST("viewweek") || GETPOST("viewday"))
|
||||
* View
|
||||
*/
|
||||
|
||||
$form=new Form($db);
|
||||
|
||||
$nav='';
|
||||
$nav.=' <form name="dateselect" action="'.$_SERVER["PHP_SELF"].'?action=show_peruser'.$param.'">';
|
||||
$nav.=$form->select_date($dateselect, 'dateselect', 0, 0, 1, '', 1, 0, 1);
|
||||
$nav.=' <input type="submit" name="submitdateselect" class="button" value="'.$langs->trans("Refresh").'">';
|
||||
$nav.='</form>';
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$help_url='EN:Module_Agenda_En|FR:Module_Agenda|ES:M&omodulodulo_Agenda';
|
||||
llxHeader('',$langs->trans("Agenda"),$help_url);
|
||||
|
||||
$form=new Form($db);
|
||||
|
||||
// Define list of all external calendars
|
||||
$listofextcals=array();
|
||||
|
||||
@ -188,8 +196,9 @@ if ($filtera > 0 || $filtert > 0 || $filterd > 0 || $usergroup > 0)
|
||||
if ($usergroup > 0) $sql.= ($filtera>0||$filtert>0||$filterd>0?" OR ":"")." ugu.fk_usergroup = ".$usergroup;
|
||||
$sql.= ")";
|
||||
}
|
||||
//if ($dateselect > 0) $sql.= " AND a.datep BETWEEN '".$db->idate($dateselect)."' AND '".$db->idate($dateselect+3600*24-1).'"';
|
||||
if ($dateselect > 0) $sql.= " AND a.datep BETWEEN '".$db->idate($dateselect)."' AND '".$db->idate($dateselect+3600*24-1)."'";
|
||||
if ($dateselect > 0) $sql.= " AND a.datep2 >= '".$db->idate($dateselect)."' AND a.datep <= '".$db->idate($dateselect+3600*24-1)."'";
|
||||
if ($datestart > 0) $sql.= " AND a.datep BETWEEN '".$db->idate($datestart)."' AND '".$db->idate($datestart+3600*24-1)."'";
|
||||
if ($dateend > 0) $sql.= " AND a.datep2 BETWEEN '".$db->idate($dateend)."' AND '".$db->idate($dateend+3600*24-1)."'";
|
||||
$sql.= $db->order($sortfield,$sortorder);
|
||||
$sql.= $db->plimit($limit + 1, $offset);
|
||||
//print $sql;
|
||||
@ -236,7 +245,7 @@ if ($resql)
|
||||
}
|
||||
*/
|
||||
|
||||
print_barre_liste($newtitle, $page, $_SERVER["PHP_SELF"], $param,$sortfield,$sortorder,$link,$num,0,'');
|
||||
print_barre_liste($newtitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $link, $num, 0, '', 0, $nav);
|
||||
//print '<br>';
|
||||
|
||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'?'.$param.'">'."\n";
|
||||
@ -259,9 +268,11 @@ if ($resql)
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td class="liste_titre"></td>';
|
||||
print '<td class="liste_titre" align="center">';
|
||||
print $form->select_date($dateselect, 'dateselect', 0, 0, 1, '', 1, 0, 1);
|
||||
print $form->select_date($datestart, 'datestart', 0, 0, 1, '', 1, 0, 1);
|
||||
print '</td>';
|
||||
print '<td class="liste_titre" align="center">';
|
||||
print $form->select_date($dateend, 'dateend', 0, 0, 1, '', 1, 0, 1);
|
||||
print '</td>';
|
||||
print '<td class="liste_titre"></td>';
|
||||
print '<td class="liste_titre"></td>';
|
||||
print '<td class="liste_titre"></td>';
|
||||
print '<td class="liste_titre"></td>';
|
||||
|
||||
@ -710,6 +710,11 @@ if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
|
||||
print '<div style="float: left; padding: 2px; margin-right: 6px;"><div class="peruser_busy" style="width:16px; float: left; margin-right: 4px;"> </div>';
|
||||
print $langs->trans("Other");
|
||||
print '</div>';
|
||||
/* TODO Show this if at least one cumulated event
|
||||
print '<div style="float: left; padding: 2px; margin-right: 6px;"><div style="background: #222222; width:16px; float: left; margin-right: 4px;"> </div>';
|
||||
print $langs->trans("SeveralEvents");
|
||||
print '</div>';
|
||||
*/
|
||||
}
|
||||
|
||||
// Add js code to manage click on a box
|
||||
@ -734,7 +739,7 @@ jQuery(document).ready(function() {
|
||||
else if (ids.indexOf(",") > -1) /* There is several events */
|
||||
{
|
||||
/* alert(\'several events\'); */
|
||||
url = "'.DOL_URL_ROOT.'/comm/action/listactions.php?usertodo="+userid+"&dateselectyear="+year+"&dateselectmonth="+month+"&dateselectday="+dateselectday;
|
||||
url = "'.DOL_URL_ROOT.'/comm/action/listactions.php?usertodo="+userid+"&dateselectyear="+year+"&dateselectmonth="+month+"&dateselectday="+day;
|
||||
window.location.href = url;
|
||||
}
|
||||
else /* One event */
|
||||
|
||||
@ -186,7 +186,7 @@ if ($id > 0 || ! empty($ref))
|
||||
// Si fichier png PDF d'1 page trouve
|
||||
if (file_exists($fileimage))
|
||||
{
|
||||
print '<img src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercupropal&file='.urlencode($relativepathimage).'">';
|
||||
print '<img style="background: #FFF" src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercupropal&file='.urlencode($relativepathimage).'">';
|
||||
}
|
||||
// Si fichier png PDF de plus d'1 page trouve
|
||||
elseif (file_exists($fileimagebis))
|
||||
@ -199,13 +199,12 @@ elseif (file_exists($fileimagebis))
|
||||
|
||||
if (file_exists($dir_output.$preview))
|
||||
{
|
||||
print '<img src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercupropal&file='.urlencode($preview).'"><p>';
|
||||
print '<img style="background: #FFF" src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercupropal&file='.urlencode($preview).'"><p>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print '</div>';
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
|
||||
@ -206,7 +206,7 @@ if ($id > 0 || ! empty($ref))
|
||||
// Si fichier png PDF d'1 page trouve
|
||||
if (file_exists($fileimage))
|
||||
{
|
||||
print '<img src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercucommande&file='.urlencode($relativepathimage).'">';
|
||||
print '<img style="background: #FFF" src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercucommande&file='.urlencode($relativepathimage).'">';
|
||||
}
|
||||
// Si fichier png PDF de plus d'1 page trouve
|
||||
elseif (file_exists($fileimagebis))
|
||||
@ -219,13 +219,12 @@ elseif (file_exists($fileimagebis))
|
||||
|
||||
if (file_exists($dir_output.$preview))
|
||||
{
|
||||
print '<img src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercucommande&file='.urlencode($preview).'"><p>';
|
||||
print '<img style="background: #FFF" src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercucommande&file='.urlencode($preview).'"><p>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print '</div>';
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
|
||||
@ -629,8 +629,8 @@ else if ($action == 'addline' && $user->rights->commande->creer) {
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($prodcustprice->error,'errors');
|
||||
{
|
||||
setEventMessage($prodcustprice->error,'errors');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -233,7 +233,11 @@ foreach ($accounts as $key=>$type)
|
||||
$total[$acc->currency_code] += $solde;
|
||||
}
|
||||
}
|
||||
if (! $found) print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
||||
if (! $found)
|
||||
{
|
||||
$var = !$var;
|
||||
print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
||||
}
|
||||
// Total
|
||||
foreach ($total as $key=>$solde)
|
||||
{
|
||||
|
||||
@ -398,7 +398,7 @@ if ($id > 0 || ! empty($ref))
|
||||
// Si fichier png PDF d'1 page trouve
|
||||
if (file_exists($fileimage))
|
||||
{
|
||||
print '<img src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercufacture&file='.urlencode($relativepathimage).'">';
|
||||
print '<img style="background: #FFF" src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercufacture&file='.urlencode($relativepathimage).'">';
|
||||
}
|
||||
// Si fichier png PDF de plus d'1 page trouve
|
||||
elseif (file_exists($fileimagebis))
|
||||
@ -411,12 +411,12 @@ elseif (file_exists($fileimagebis))
|
||||
|
||||
if (file_exists($dir_output.$preview))
|
||||
{
|
||||
print '<img src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercufacture&file='.urlencode($preview).'"><p>';
|
||||
print '<img style="background: #FFF" src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercufacture&file='.urlencode($preview).'"><p>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
|
||||
@ -243,12 +243,12 @@ if (empty($reshook))
|
||||
{
|
||||
if ($backtopage)
|
||||
{
|
||||
header("Location: ".$backtopage);
|
||||
header("Location: ".$backtopage);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
header("Location: ".DOL_URL_ROOT.'/contact/list.php');
|
||||
header("Location: ".DOL_URL_ROOT.'/contact/list.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
52
htdocs/core/ajax/productonoff.php
Normal file
52
htdocs/core/ajax/productonoff.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/core/ajax/productonoff.php
|
||||
* \brief File to set tosell and tobuy for product
|
||||
*/
|
||||
|
||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal
|
||||
if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1');
|
||||
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
|
||||
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
||||
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||
if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/genericobject.class.php';
|
||||
|
||||
$action=GETPOST('action','alpha');
|
||||
$id=GETPOST('id', 'int');
|
||||
$value=GETPOST('value', 'int');
|
||||
|
||||
$object = new GenericObject($db);
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
top_httphead();
|
||||
|
||||
print '<!-- Ajax page called with url '.$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"].' -->'."\n";
|
||||
|
||||
// Registering new values
|
||||
if (! empty($action) && ! empty($id) && $user->rights->produit->creer) {
|
||||
if ($action == 'setstatus')
|
||||
$object->setValueFrom('tosell', $value, 'product', $id);
|
||||
else if ($action == 'setstatus_buy')
|
||||
$object->setValueFrom('tobuy', $value, 'product', $id);
|
||||
}
|
||||
@ -1747,6 +1747,7 @@ abstract class CommonObject
|
||||
* @param string $origin Linked element type
|
||||
* @param int $origin_id Linked element id
|
||||
* @return int <=0 if KO, >0 if OK
|
||||
* @see fetchObjectLinked, updateObjectLinked, deleteObjectLinked
|
||||
*/
|
||||
function add_object_linked($origin=null, $origin_id=null)
|
||||
{
|
||||
@ -1790,6 +1791,7 @@ abstract class CommonObject
|
||||
* @param string $targettype Object target type
|
||||
* @param string $clause 'OR' or 'AND' clause used when both source id and target id are provided
|
||||
* @return void
|
||||
* @see add_object_linked, updateObjectLinked, deleteObjectLinked
|
||||
*/
|
||||
function fetchObjectLinked($sourceid='',$sourcetype='',$targetid='',$targettype='',$clause='OR')
|
||||
{
|
||||
@ -1819,6 +1821,12 @@ abstract class CommonObject
|
||||
$sourcetype = (! empty($sourcetype) ? $sourcetype : $this->element);
|
||||
$targettype = (! empty($targettype) ? $targettype : $this->element);
|
||||
|
||||
if (empty($sourceid) && empty($targetid))
|
||||
{
|
||||
dol_print_error('','Bad usage of function. No parameter defined and no id defined');
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Links beetween objects are stored in this table
|
||||
$sql = 'SELECT fk_source, sourcetype, fk_target, targettype';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'element_element';
|
||||
@ -1944,6 +1952,7 @@ abstract class CommonObject
|
||||
* @param int $targetid Object target id
|
||||
* @param string $targettype Object target type
|
||||
* @return int >0 if OK, <0 if KO
|
||||
* @see add_object_linked, fetObjectLinked, deleteObjectLinked
|
||||
*/
|
||||
function updateObjectLinked($sourceid='', $sourcetype='', $targetid='', $targettype='')
|
||||
{
|
||||
@ -1989,6 +1998,7 @@ abstract class CommonObject
|
||||
* @param int $targetid Object target id
|
||||
* @param string $targettype Object target type
|
||||
* @return int >0 if OK, <0 if KO
|
||||
* @see add_object_linked, updateObjectLinked, fetchObjectLinked
|
||||
*/
|
||||
function deleteObjectLinked($sourceid='', $sourcetype='', $targetid='', $targettype='')
|
||||
{
|
||||
|
||||
@ -161,29 +161,29 @@ class HookManager
|
||||
{
|
||||
//print "Before hook ".get_class($actionclassinstance)." method=".$method." hooktype=".$hooktype." results=".count($actionclassinstance->results)." resprints=".count($actionclassinstance->resprints)." resaction=".$resaction." result=".$result."<br>\n";
|
||||
|
||||
//print 'class='.get_class($actionclassinstance).' method='.$method.' action='.$action;
|
||||
// jump to next class if method does not exists
|
||||
// jump to next module/class if method does not exists
|
||||
if (! method_exists($actionclassinstance,$method)) continue;
|
||||
// test to avoid to run twice a hook, when a module implements several active contexts
|
||||
|
||||
// test to avoid to run twice a hook, when a module implements several active contexts
|
||||
if (in_array($module,$modulealreadyexecuted)) continue;
|
||||
$modulealreadyexecuted[$module]=$module; // Use the $currentcontext in method for avoid to run twice
|
||||
|
||||
// Clean class (an error may have been set into a previous call of another method for same module/hook)
|
||||
$actionclassinstance->error=0;
|
||||
$actionclassinstance->errors=array();
|
||||
|
||||
// Add current context for avoid method execution in bad context, you can add this test in your method : eg if($currentcontext != 'formfile') return;
|
||||
$parameters['currentcontext'] = $context;
|
||||
// Hooks that must return int (hooks with type 'addreplace')
|
||||
if ($hooktype == 'addreplace')
|
||||
{
|
||||
dol_syslog("Call method ".$method." of class ".get_class($actionclassinstance).", module=".$module.", hooktype=".$hooktype, LOG_DEBUG);
|
||||
$resaction += $actionclassinstance->$method($parameters, $object, $action, $this); // $object and $action can be changed by method ($object->id during creation for example or $action to go back to other action for example)
|
||||
if ($resaction < 0 || ! empty($actionclassinstance->error) || (! empty($actionclassinstance->errors) && count($actionclassinstance->errors) > 0))
|
||||
{
|
||||
$error++;
|
||||
$this->error=$actionclassinstance->error; $this->errors=array_merge($this->errors, (array) $actionclassinstance->errors);
|
||||
// TODO dead code to remove (do not enable this, but fix hook instead)
|
||||
/* Change must be inside the method of hook if required. Only hook must decide if $action must be modified or not.
|
||||
if ($method == 'doActions')
|
||||
{
|
||||
if ($action=='add') $action='create';
|
||||
if ($action=='update') $action='edit';
|
||||
}*/
|
||||
dol_syslog("Error on hook module=".$module.", method ".$method.", class ".get_class($actionclassinstance).", hooktype=".$hooktype.(empty($this->error)?'':" ".$this->error).(empty($this->errors)?'':" ".join(",",$this->errors)), LOG_ERR);
|
||||
}
|
||||
|
||||
if (is_array($actionclassinstance->results)) $this->resArray =array_merge($this->resArray, $actionclassinstance->results);
|
||||
@ -195,6 +195,7 @@ class HookManager
|
||||
// TODO. this should be done into the method of hook by returning nothing
|
||||
if (is_array($parameters) && ! empty($parameters['special_code']) && $parameters['special_code'] > 3 && $parameters['special_code'] != $actionclassinstance->module_number) continue;
|
||||
|
||||
//dol_syslog("Call method ".$method." of class ".get_class($actionclassinstance).", module=".$module.", hooktype=".$hooktype, LOG_DEBUG);
|
||||
$result = $actionclassinstance->$method($parameters, $object, $action, $this); // $object and $action can be changed by method ($object->id during creation for example or $action to go back to other action for example)
|
||||
|
||||
if (! empty($actionclassinstance->results) && is_array($actionclassinstance->results)) $this->resArray =array_merge($this->resArray, $actionclassinstance->results);
|
||||
|
||||
@ -194,7 +194,7 @@ class Form
|
||||
{
|
||||
$ret.='<td align="left">';
|
||||
$ret.='<input type="submit" class="button" name="modify" value="'.$langs->trans("Modify").'">';
|
||||
$ret.='<br>'."\n";
|
||||
//$ret.='<br>'."\n";
|
||||
$ret.='<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||
$ret.='</td>';
|
||||
}
|
||||
@ -2706,6 +2706,7 @@ class Form
|
||||
* @param int $maxlength Maximum length for labels
|
||||
* @param int $excludeafterid Exclude all categories after this leaf in category tree.
|
||||
* @return void
|
||||
* @see select_categories
|
||||
*/
|
||||
function select_all_categories($type, $selected='', $htmlname="parent", $maxlength=64, $excludeafterid=0)
|
||||
{
|
||||
|
||||
@ -682,22 +682,21 @@ class FormCompany
|
||||
* @param string $selected Default selected value
|
||||
* @param string $htmlname HTML select name
|
||||
* @param string $source Source ('internal' or 'external')
|
||||
* @param string $order Sort criteria
|
||||
* @param string $sortorder Sort criteria
|
||||
* @param int $showempty 1=Add en empty line
|
||||
* @return void
|
||||
*/
|
||||
function selectTypeContact($object, $selected, $htmlname = 'type', $source='internal', $order='code', $showempty=0)
|
||||
function selectTypeContact($object, $selected, $htmlname = 'type', $source='internal', $sortorder='code', $showempty=0)
|
||||
{
|
||||
if (is_object($object) && method_exists($object, 'liste_type_contact'))
|
||||
{
|
||||
$lesTypes = $object->liste_type_contact($source, $order, 0, 1);
|
||||
$lesTypes = $object->liste_type_contact($source, $sortorder, 0, 1);
|
||||
print '<select class="flat" name="'.$htmlname.'" id="'.$htmlname.'">';
|
||||
if ($showempty) print '<option value="0"></option>';
|
||||
foreach($lesTypes as $key=>$value)
|
||||
{
|
||||
print '<option value="'.$key.'"';
|
||||
if ($key == $selected)
|
||||
print ' selected';
|
||||
if ($key == $selected) print ' selected';
|
||||
print '>'.$value.'</option>';
|
||||
}
|
||||
print "</select>\n";
|
||||
|
||||
@ -307,6 +307,7 @@ class FormOther
|
||||
* @param string $htmlname Name of combo list
|
||||
* @param int $nocateg Show also an entry "Not categorized"
|
||||
* @return string Html combo list code
|
||||
* @see select_all_categories
|
||||
*/
|
||||
function select_categories($type,$selected=0,$htmlname='search_categ',$nocateg=0)
|
||||
{
|
||||
@ -318,7 +319,7 @@ class FormOther
|
||||
$tab_categs = $static_categs->get_full_arbo($type);
|
||||
|
||||
// Print a select with each of them
|
||||
$moreforfilter ='<select class="flat" name="'.$htmlname.'">';
|
||||
$moreforfilter ='<select class="flat" id="select_categ_'.$htmlname.'" name="'.$htmlname.'">';
|
||||
$moreforfilter.='<option value=""> </option>'; // Should use -1 to say nothing
|
||||
|
||||
if (is_array($tab_categs))
|
||||
|
||||
@ -701,6 +701,7 @@ class Translate
|
||||
* @param string $currency_code Currency Code
|
||||
* @param string $amount If not '', show currency + amount according to langs ($10, 10€).
|
||||
* @return string Amount + Currency symbol encoded into UTF8
|
||||
* @deprecated Use method price to output a price
|
||||
*/
|
||||
function getCurrencyAmount($currency_code, $amount)
|
||||
{
|
||||
|
||||
@ -965,6 +965,7 @@ function complete_dictionary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql
|
||||
{
|
||||
//var_dump($objMod->dictionaries['tabname']);
|
||||
$taborder[] = 0;
|
||||
$tabfieldcheck[] = array(); $tabhelp[] = array();
|
||||
foreach($objMod->dictionaries['tabname'] as $val)
|
||||
{
|
||||
$taborder[] = count($tabname)+1;
|
||||
@ -978,7 +979,7 @@ function complete_dictionary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql
|
||||
foreach($objMod->dictionaries['tabfieldinsert'] as $val) $tabfieldinsert[] = $val;
|
||||
foreach($objMod->dictionaries['tabrowid'] as $val) $tabrowid[] = $val;
|
||||
foreach($objMod->dictionaries['tabcond'] as $val) $tabcond[] = $val;
|
||||
foreach($objMod->dictionaries['tabfieldcheck'] as $val) $tabfieldcheck[] = $val;
|
||||
if (! empty($objMod->dictionaries['tabfieldcheck'])) foreach($objMod->dictionaries['tabfieldcheck'] as $val) $tabfieldcheck[] = $val;
|
||||
if (! empty($objMod->dictionaries['tabhelp'])) foreach($objMod->dictionaries['tabhelp'] as $val) $tabhelp[] = $val;
|
||||
//foreach($objMod->dictionaries['tabsqlsort'] as $val) $tablib[] = $val;
|
||||
//$tabname = array_merge ($tabname, $objMod->dictionaries['tabname']);
|
||||
|
||||
@ -459,3 +459,91 @@ function ajax_constantonoff($code, $input=array(), $entity=null, $revertonoff=0,
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
* On/off button for product tosell or tobuy
|
||||
*
|
||||
* @param int $id Id product to set
|
||||
* @param string $code Name of constant : status or status_buy
|
||||
* @param array $input Array of type->list of CSS element to switch. Example: array('disabled'=>array(0=>'cssid'))
|
||||
* @return void
|
||||
*/
|
||||
function ajax_productonoff($id, $code, $input=array())
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||
global $conf, $langs, $db;
|
||||
|
||||
$object = new Product($db);
|
||||
$object->fetch($id);
|
||||
|
||||
$out= '<script type="text/javascript">
|
||||
$(function() {
|
||||
var input = '.json_encode($input).';
|
||||
|
||||
// Set constant
|
||||
$("#set_'.$code.'").click(function() {
|
||||
$.get( "'.DOL_URL_ROOT.'/core/ajax/productonoff.php", {
|
||||
action: \'set'.$code.'\',
|
||||
value: \'1\',
|
||||
id: \''.$id.'\'
|
||||
},
|
||||
function() {
|
||||
$("#set_'.$code.'").hide();
|
||||
$("#del_'.$code.'").show();
|
||||
// Enable another element
|
||||
if (input.disabled && input.disabled.length > 0) {
|
||||
$.each(input.disabled, function(key,value) {
|
||||
$("#" + value).removeAttr("disabled");
|
||||
if ($("#" + value).hasClass("butActionRefused") == true) {
|
||||
$("#" + value).removeClass("butActionRefused");
|
||||
$("#" + value).addClass("butAction");
|
||||
}
|
||||
});
|
||||
// Show another element
|
||||
} else if (input.showhide && input.showhide.length > 0) {
|
||||
$.each(input.showhide, function(key,value) {
|
||||
$("#" + value).show();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Del constant
|
||||
$("#del_'.$code.'").click(function() {
|
||||
$.get( "'.DOL_URL_ROOT.'/core/ajax/productonoff.php", {
|
||||
action: \'set'.$code.'\',
|
||||
value: \'0\',
|
||||
id: \''.$id.'\'
|
||||
},
|
||||
function() {
|
||||
$("#del_'.$code.'").hide();
|
||||
$("#set_'.$code.'").show();
|
||||
// Disable another element
|
||||
if (input.disabled && input.disabled.length > 0) {
|
||||
$.each(input.disabled, function(key,value) {
|
||||
$("#" + value).attr("disabled", true);
|
||||
if ($("#" + value).hasClass("butAction") == true) {
|
||||
$("#" + value).removeClass("butAction");
|
||||
$("#" + value).addClass("butActionRefused");
|
||||
}
|
||||
});
|
||||
// Hide another element
|
||||
} else if (input.showhide && input.showhide.length > 0) {
|
||||
$.each(input.showhide, function(key,value) {
|
||||
$("#" + value).hide();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
if ($code=='status') {
|
||||
$out.= '<span id="set_'.$code.'" class="linkobject '.($object->$code==1?'hideobject':'').'">'.img_picto($langs->trans("ProductStatusNotOnSell"),'switch_off').'</span>';
|
||||
$out.= '<span id="del_'.$code.'" class="linkobject '.($object->$code==1?'':'hideobject').'">'.img_picto($langs->trans("ProductStatusOnSell"),'switch_on').'</span>';
|
||||
}
|
||||
if ($code=='status_buy') {
|
||||
$out.= '<span id="set_'.$code.'" class="linkobject '.($object->$code==1?'hideobject':'').'">'.img_picto($langs->trans("ProductStatusNotOnBuy"),'switch_off').'</span>';
|
||||
$out.= '<span id="del_'.$code.'" class="linkobject '.($object->$code==1?'':'hideobject').'">'.img_picto($langs->trans("ProductStatusOnBuy"),'switch_on').'</span>';
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
@ -67,7 +67,7 @@ function societe_prepare_head($object)
|
||||
if (! empty($conf->global->MAIN_SUPPORT_SHARED_CONTACT_BETWEEN_THIRDPARTIES))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT.'/societe/societecontact.php?socid='.$object->id;
|
||||
$head[$h][1] = $langs->trans("Contact");
|
||||
$head[$h][1] = $langs->trans("ContactsAddresses");
|
||||
$head[$h][2] = 'contact';
|
||||
$h++;
|
||||
}
|
||||
@ -110,25 +110,25 @@ function societe_prepare_head($object)
|
||||
if (! empty($conf->notification->enabled))
|
||||
{
|
||||
$nbNote = 0;
|
||||
$sql = "SELECT COUNT(n.rowid) as nb";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."notify_def as n";
|
||||
$sql.= " WHERE fk_soc = ".$object->id;
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
$nbNote=$obj->nb;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
dol_print_error($db);
|
||||
}
|
||||
|
||||
$sql = "SELECT COUNT(n.rowid) as nb";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."notify_def as n";
|
||||
$sql.= " WHERE fk_soc = ".$object->id;
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
$nbNote=$obj->nb;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
dol_print_error($db);
|
||||
}
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/societe/notify/card.php?socid='.$object->id;
|
||||
$head[$h][1] = $langs->trans("Notifications");
|
||||
if($nbNote > 0) $head[$h][1].= ' ('.$nbNote.')';
|
||||
@ -492,7 +492,7 @@ function show_projects($conf,$langs,$db,$object,$backtopage='')
|
||||
$projectstatic = new Project($db);
|
||||
|
||||
$i=0;
|
||||
$var=true;
|
||||
$var=false;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
@ -521,8 +521,9 @@ function show_projects($conf,$langs,$db,$object,$backtopage='')
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<tr><td colspan="3">'.$langs->trans("None").'</td></tr>';
|
||||
{
|
||||
$var = false;
|
||||
print '<tr '.$bc[$var].'><td colspan="4">'.$langs->trans("None").'</td></tr>';
|
||||
}
|
||||
$db->free($result);
|
||||
}
|
||||
@ -680,7 +681,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
|
||||
$result = $db->query($sql);
|
||||
$num = $db->num_rows($result);
|
||||
|
||||
$var=true;
|
||||
$var=false;
|
||||
if ($num)
|
||||
{
|
||||
$i=0;
|
||||
|
||||
@ -170,7 +170,7 @@ function dol_shutdown()
|
||||
* Return value of a param into GET or POST supervariable
|
||||
*
|
||||
* @param string $paramname Name of parameter to found
|
||||
* @param string $check Type of check (''=no check, 'int'=check it's numeric, 'alpha'=check it's text and sign, 'aZ'=check it's a-z only, 'array'=check it's array, 'san_alpha'= Use filter_var with FILTER_SANITIZE_STRING, 'custom'= custom filter specify $filter and $options)
|
||||
* @param string $check Type of check (''=no check, 'int'=check it's numeric, 'alpha'=check it's text and sign, 'aZ'=check it's a-z only, 'array'=check it's array, 'san_alpha'= Use filter_var with FILTER_SANITIZE_STRING (do not use this for free text string), 'custom'= custom filter specify $filter and $options)
|
||||
* @param int $method Type of method (0 = get then post, 1 = only get, 2 = only post, 3 = post then get, 4 = post then get then cookie)
|
||||
* @param int $filter Filter to apply when $check is set to custom. (See http://php.net/manual/en/filter.filters.php for détails)
|
||||
* @param mixed $options Options to pass to filter_var when $check is set to custom
|
||||
@ -453,6 +453,18 @@ function dol_string_nospecial($str,$newstr='_',$badchars='')
|
||||
return str_replace($forbidden_chars_to_replace,$newstr,str_replace($forbidden_chars_to_remove,"",$str));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Encode string for xml usage
|
||||
*
|
||||
* @param string $string String to encode
|
||||
* @return string String encoded
|
||||
*/
|
||||
function dolEscapeXML($string)
|
||||
{
|
||||
return strtr($string, array('\''=>''','"'=>'"','&'=>'&','<'=>'<','>'=>'>'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns text escaped for inclusion into javascript code
|
||||
*
|
||||
@ -658,7 +670,7 @@ function dol_get_fiche_head($links=array(), $active='0', $title='', $notab=0, $p
|
||||
{
|
||||
$isactive=(is_numeric($active) && $i == $active) || (! is_numeric($active) && $active == $links[$i][2]);
|
||||
|
||||
$out.='<div class="inline-block tabsElem'.((! $isactive && ! empty($conf->global->MAIN_HIDE_INACTIVETAB_ON_PRINT))?' hideonprint':'').'">';
|
||||
$out.='<div class="inline-block tabsElem'.($isactive ? ' tabsElemActive' : '').((! $isactive && ! empty($conf->global->MAIN_HIDE_INACTIVETAB_ON_PRINT))?' hideonprint':'').'">';
|
||||
if (isset($links[$i][2]) && $links[$i][2] == 'image')
|
||||
{
|
||||
if (!empty($links[$i][0]))
|
||||
@ -2627,10 +2639,11 @@ function load_fiche_titre($titre, $mesg='', $picto='title.png', $pictoisfullpath
|
||||
* @param int $num number of records found by select with limit+1
|
||||
* @param int $totalnboflines Total number of records/lines for all pages (if known)
|
||||
* @param string $picto Icon to use before title (should be a 32x32 transparent png file)
|
||||
* @param int $pictoisfullpath 1=Icon name is a full absolute url of image
|
||||
* @param int $pictoisfullpath 1=Icon name is a full absolute url of image
|
||||
* @param string $morehtml More html to show
|
||||
* @return void
|
||||
*/
|
||||
function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $center='', $num=-1, $totalnboflines=0, $picto='title.png', $pictoisfullpath=0)
|
||||
function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $center='', $num=-1, $totalnboflines=0, $picto='title.png', $pictoisfullpath=0, $morehtml='')
|
||||
{
|
||||
global $conf,$langs;
|
||||
|
||||
@ -2706,6 +2719,7 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
|
||||
}
|
||||
}
|
||||
print_fleche_navigation($page,$file,$options,$nextpage,$pagelist);
|
||||
if ($morehtml) print $morehtml;
|
||||
print '</td>';
|
||||
|
||||
print '</tr></table>'."\n";
|
||||
@ -3715,6 +3729,7 @@ function dol_nl2br($stringtoencode,$nl2brmode=0,$forxml=false)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This function is called to encode a string into a HTML string but differs from htmlentities because
|
||||
* all entities but &,<,> are converted. This permits to encode special chars to entities with no double
|
||||
|
||||
@ -573,17 +573,18 @@ function array2table($data,$tableMarkup=1,$tableoptions='',$troptions='',$tdopti
|
||||
/**
|
||||
* Return last or next value for a mask (according to area we should not reset)
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
* @param DoliDB $db Database handler
|
||||
* @param string $mask Mask to use
|
||||
* @param string $table Table containing field with counter
|
||||
* @param string $field Field containing already used values of counter
|
||||
* @param string $where To add a filter on selection (for exemple to filter on invoice types)
|
||||
* @param Societe $objsoc The company that own the object we need a counter for
|
||||
* @param string $date Date to use for the {y},{m},{d} tags.
|
||||
* @param string $mode 'next' for next value or 'last' for last value
|
||||
* @return string New value (numeric) or error message
|
||||
* @param string $mode 'next' for next value or 'last' for last value
|
||||
* @param bool $bentityon activate the entity filterdefault is true (for modules not compatible with multicompany)
|
||||
* @return string New value (numeric) or error message
|
||||
*/
|
||||
function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$mode='next')
|
||||
function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$mode='next', $bentityon=true)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
@ -784,7 +785,8 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$table;
|
||||
$sql.= " WHERE ".$field." LIKE '".$maskLike."'";
|
||||
$sql.= " AND ".$field." NOT LIKE '%PROV%'";
|
||||
$sql.= " AND entity IN (".getEntity($table, 1).")";
|
||||
if ($bentityon) // only if entity enable
|
||||
$sql.= " AND entity IN (".getEntity($table, 1).")";
|
||||
if ($where) $sql.=$where;
|
||||
if ($sqlwhere) $sql.=' AND '.$sqlwhere;
|
||||
|
||||
@ -824,7 +826,8 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$table;
|
||||
$sql.= " WHERE ".$field." LIKE '".$maskLike."'";
|
||||
$sql.= " AND ".$field." NOT LIKE '%PROV%'";
|
||||
$sql.= " AND entity IN (".getEntity($table, 1).")";
|
||||
if ($bentityon) // only if entity enable
|
||||
$sql.= " AND entity IN (".getEntity($table, 1).")";
|
||||
if ($where) $sql.=$where;
|
||||
if ($sqlwhere) $sql.=' AND '.$sqlwhere;
|
||||
|
||||
@ -877,7 +880,8 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
|
||||
$maskrefclient_sql.= " FROM ".MAIN_DB_PREFIX.$table;
|
||||
//$sql.= " WHERE ".$field." not like '(%'";
|
||||
$maskrefclient_sql.= " WHERE ".$field." LIKE '".$maskrefclient_maskLike."'";
|
||||
$maskrefclient_sql.= " AND entity IN (".getEntity($table, 1).")";
|
||||
if ($bentityon) // only if entity enable
|
||||
$maskrefclient_sql.= " AND entity IN (".getEntity($table, 1).")";
|
||||
if ($where) $maskrefclient_sql.=$where; //use the same optional where as general mask
|
||||
if ($sqlwhere) $maskrefclient_sql.=' AND '.$sqlwhere; //use the same sqlwhere as general mask
|
||||
$maskrefclient_sql.=' AND (SUBSTRING('.$field.', '.(strpos($maskwithnocode,$maskrefclient)+1).', '.dol_strlen($maskrefclient_maskclientcode).")='".$maskrefclient_clientcode."')";
|
||||
|
||||
@ -334,7 +334,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
|
||||
$array_soc=$this->get_substitutionarray_mysoc($mysoc,$outputlangs);
|
||||
$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
|
||||
$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($user,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($outputlangs);
|
||||
|
||||
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other);
|
||||
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||
|
||||
@ -343,7 +343,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
|
||||
$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
|
||||
$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
|
||||
$array_propal=is_object($propal_object)?$this->get_substitutionarray_object($propal_object,$outputlangs,'propal'):array();
|
||||
$array_other=$this->get_substitutionarray_other($user,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($outputlangs);
|
||||
|
||||
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_propal,$array_other);
|
||||
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||
|
||||
@ -504,7 +504,7 @@ class doc_generic_project_odt extends ModelePDFProjects
|
||||
$array_soc=$this->get_substitutionarray_mysoc($mysoc,$outputlangs);
|
||||
$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
|
||||
$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($user,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($outputlangs);
|
||||
|
||||
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other);
|
||||
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||
|
||||
@ -490,7 +490,7 @@ class doc_generic_task_odt extends ModelePDFTask
|
||||
$array_soc=$this->get_substitutionarray_mysoc($mysoc,$outputlangs);
|
||||
$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
|
||||
$array_objet=$this->get_substitutionarray_object($project,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($user,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($outputlangs);
|
||||
|
||||
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other);
|
||||
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||
|
||||
@ -368,7 +368,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
|
||||
$array_soc=$this->get_substitutionarray_mysoc($mysoc,$outputlangs);
|
||||
$array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
|
||||
$array_objet=$this->get_substitutionarray_object($object,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($user,$outputlangs);
|
||||
$array_other=$this->get_substitutionarray_other($outputlangs);
|
||||
|
||||
$tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other);
|
||||
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
|
||||
*
|
||||
@ -40,6 +40,11 @@ $ref = GETPOST('ref','alpha');
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'ficheinter', $id, 'fichinter');
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
llxHeader();
|
||||
|
||||
$form = new Form($db);
|
||||
@ -154,6 +159,8 @@ if ($id > 0 || ! empty($ref))
|
||||
print '</tr>';
|
||||
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -165,7 +172,7 @@ if ($id > 0 || ! empty($ref))
|
||||
// Si fichier png PDF d'1 page trouve
|
||||
if (file_exists($fileimage))
|
||||
{
|
||||
print '<img src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercufichinter&file='.urlencode($relativepathimage).'">';
|
||||
print '<img style="background: #FFF" src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercufichinter&file='.urlencode($relativepathimage).'">';
|
||||
}
|
||||
// Si fichier png PDF de plus d'1 page trouve
|
||||
elseif (file_exists($fileimagebis))
|
||||
@ -178,13 +185,12 @@ elseif (file_exists($fileimagebis))
|
||||
|
||||
if (file_exists($dir_output.$preview))
|
||||
{
|
||||
print '<img src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercufichinter&file='.urlencode($preview).'"><p>';
|
||||
print '<img style="background: #FFF" src="'.DOL_URL_ROOT . '/viewimage.php?modulepart=apercufichinter&file='.urlencode($preview).'"><p>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print '</div>';
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
|
||||
@ -49,7 +49,11 @@ $offset = $conf->liste_limit * $page;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
if (! $sortorder) $sortorder="DESC";
|
||||
if (! $sortfield) $sortfield="fd.date";
|
||||
if (! $sortfield)
|
||||
{
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sortfield="fd.date";
|
||||
else $sortfield="f.ref";
|
||||
}
|
||||
$limit = $conf->liste_limit;
|
||||
|
||||
$search_ref=GETPOST('search_ref','alpha');
|
||||
@ -70,13 +74,12 @@ llxHeader('', $langs->trans("Intervention"));
|
||||
|
||||
$sql = "SELECT";
|
||||
$sql.= " f.ref, f.rowid as fichid, f.fk_statut, f.description,";
|
||||
$sql.= " fd.description as descriptiondetail, fd.date as dp, fd.duree,";
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql.= " fd.description as descriptiondetail, fd.date as dp, fd.duree,";
|
||||
$sql.= " s.nom as name, s.rowid as socid, s.client";
|
||||
$sql.= " FROM (".MAIN_DB_PREFIX."societe as s";
|
||||
if (! $user->rights->societe->client->voir && empty($socid))
|
||||
$sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
if (! $user->rights->societe->client->voir && empty($socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."fichinter as f)";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as fd ON fd.fk_fichinter = f.rowid";
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as fd ON fd.fk_fichinter = f.rowid";
|
||||
$sql.= " WHERE f.fk_soc = s.rowid ";
|
||||
$sql.= " AND f.entity = ".$conf->entity;
|
||||
if ($search_ref) {
|
||||
@ -86,7 +89,8 @@ if ($search_company) {
|
||||
$sql .= natural_search('s.nom', $search_company);
|
||||
}
|
||||
if ($search_desc) {
|
||||
$sql .= natural_search(array('f.description', 'fd.description'), $search_desc);
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql .= natural_search(array('f.description', 'fd.description'), $search_desc);
|
||||
else $sql .= natural_search(array('f.description'), $search_desc);
|
||||
}
|
||||
if ($search_status != '' && $search_status >= 0) {
|
||||
$sql .= ' AND f.fk_statut = '.$search_status;
|
||||
@ -97,6 +101,7 @@ if ($socid)
|
||||
$sql.= " AND s.rowid = " . $socid;
|
||||
$sql.= $db->order($sortfield,$sortorder);
|
||||
$sql.= $db->plimit($limit+1, $offset);
|
||||
//print $sql;
|
||||
|
||||
$result=$db->query($sql);
|
||||
if ($result)
|
||||
|
||||
0
htdocs/holiday/admin/tomergewithholiday.php
Executable file → Normal file
0
htdocs/holiday/admin/tomergewithholiday.php
Executable file → Normal file
0
htdocs/holiday/tomergewithdefine_holiday.php
Executable file → Normal file
0
htdocs/holiday/tomergewithdefine_holiday.php
Executable file → Normal file
@ -1091,7 +1091,8 @@ ALTER TABLE llx_contrat ADD COLUMN model_pdf varchar(255) DEFAULT NULL AFTER not
|
||||
ALTER TABLE llx_c_country ADD COLUMN favorite tinyint DEFAULT 0 AFTER active;
|
||||
UPDATE llx_c_country SET favorite = '1' WHERE rowid = '0';
|
||||
|
||||
ALTER TABLE llx_c_email_templates ADD UNIQUE INDEX uk_c_email_templates(label, lang);
|
||||
ALTER TABLE llx_c_email_templates DROP INDEX uk_c_email_templates;
|
||||
ALTER TABLE llx_c_email_templates ADD UNIQUE INDEX uk_c_email_templates(entity, label, lang);
|
||||
ALTER TABLE llx_c_email_templates ADD INDEX idx_type(type_template);
|
||||
|
||||
-- Remove OSC module
|
||||
|
||||
@ -17,6 +17,6 @@
|
||||
-- Table with templates of emails
|
||||
-- ===================================================================
|
||||
|
||||
ALTER TABLE llx_c_email_templates ADD UNIQUE INDEX uk_c_email_templates(label, lang);
|
||||
ALTER TABLE llx_c_email_templates ADD UNIQUE INDEX uk_c_email_templates(entity, label, lang);
|
||||
ALTER TABLE llx_c_email_templates ADD INDEX idx_type(type_template);
|
||||
|
||||
|
||||
@ -89,5 +89,5 @@ ExtSiteUrlAgenda=URL to access .ical file
|
||||
ExtSiteNoLabel=No Description
|
||||
WorkingTimeRange=Working time range
|
||||
WorkingDaysRange=Working days range
|
||||
AddEvent=Add event
|
||||
AddEvent=Create event
|
||||
MyAvailability=My availability
|
||||
@ -87,7 +87,7 @@ ClassifyCanceled=Classify 'Abandoned'
|
||||
ClassifyClosed=Classify 'Closed'
|
||||
ClassifyUnBilled=Classify 'Unbilled'
|
||||
CreateBill=Create Invoice
|
||||
AddBill=Add invoice or credit note
|
||||
AddBill=Create invoice or credit note
|
||||
AddToDraftInvoices=Add to draft invoice
|
||||
DeleteBill=Delete invoice
|
||||
SearchACustomerInvoice=Search for a customer invoice
|
||||
@ -225,13 +225,13 @@ NonPercuRecuperable=Non-recoverable
|
||||
SetConditions=Set payment terms
|
||||
SetMode=Set payment mode
|
||||
Billed=Billed
|
||||
RepeatableInvoice=Pre-defined invoice
|
||||
RepeatableInvoices=Pre-defined invoices
|
||||
Repeatable=Pre-defined
|
||||
Repeatables=Pre-defined
|
||||
ChangeIntoRepeatableInvoice=Convert into pre-defined
|
||||
CreateRepeatableInvoice=Create pre-defined invoice
|
||||
CreateFromRepeatableInvoice=Create from pre-defined invoice
|
||||
RepeatableInvoice=Template invoice
|
||||
RepeatableInvoices=Template invoices
|
||||
Repeatable=Template
|
||||
Repeatables=Templates
|
||||
ChangeIntoRepeatableInvoice=Convert into template invoice
|
||||
CreateRepeatableInvoice=Create template invoice
|
||||
CreateFromRepeatableInvoice=Create from template invoice
|
||||
CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
|
||||
CustomersInvoicesAndPayments=Customer invoices and payments
|
||||
ExportDataset_invoice_1=Customer invoices list and invoice's lines
|
||||
|
||||
@ -9,9 +9,9 @@ Prospect=Prospect
|
||||
Prospects=Prospects
|
||||
DeleteAction=Delete an event/task
|
||||
NewAction=New event/task
|
||||
AddAction=Add event/task
|
||||
AddAnAction=Add an event/task
|
||||
AddActionRendezVous=Add a Rendez-vous event
|
||||
AddAction=Create event/task
|
||||
AddAnAction=Create an event/task
|
||||
AddActionRendezVous=Create a Rendez-vous event
|
||||
Rendez-Vous=Rendezvous
|
||||
ConfirmDeleteAction=Are you sure you want to delete this event/task ?
|
||||
CardAction=Event card
|
||||
|
||||
@ -259,8 +259,8 @@ AvailableGlobalDiscounts=Absolute discounts available
|
||||
DiscountNone=None
|
||||
Supplier=Supplier
|
||||
CompanyList=Company's list
|
||||
AddContact=Add contact
|
||||
AddContactAddress=Add contact/address
|
||||
AddContact=Create contact
|
||||
AddContactAddress=Create contact/address
|
||||
EditContact=Edit contact
|
||||
EditContactAddress=Edit contact/address
|
||||
Contact=Contact
|
||||
@ -268,8 +268,8 @@ ContactsAddresses=Contacts/Addresses
|
||||
NoContactDefinedForThirdParty=No contact defined for this third party
|
||||
NoContactDefined=No contact defined
|
||||
DefaultContact=Default contact/address
|
||||
AddCompany=Add company
|
||||
AddThirdParty=Add third party
|
||||
AddCompany=Create company
|
||||
AddThirdParty=Create third party
|
||||
DeleteACompany=Delete a company
|
||||
PersonalInformations=Personal data
|
||||
AccountancyCode=Accountancy code
|
||||
@ -379,8 +379,8 @@ DeliveryAddressLabel=Delivery address label
|
||||
DeleteDeliveryAddress=Delete a delivery address
|
||||
ConfirmDeleteDeliveryAddress=Are you sure you want to delete this delivery address?
|
||||
NewDeliveryAddress=New delivery address
|
||||
AddDeliveryAddress=Add address
|
||||
AddAddress=Add address
|
||||
AddDeliveryAddress=Create address
|
||||
AddAddress=Create address
|
||||
NoOtherDeliveryAddress=No alternative delivery address defined
|
||||
SupplierCategory=Supplier category
|
||||
JuridicalStatus200=Independant
|
||||
|
||||
@ -27,7 +27,7 @@ MenuRunningServices=Running services
|
||||
MenuExpiredServices=Expired services
|
||||
MenuClosedServices=Closed services
|
||||
NewContract=New contract
|
||||
AddContract=Add contract
|
||||
AddContract=Create contract
|
||||
SearchAContract=Search a contract
|
||||
DeleteAContract=Delete a contract
|
||||
CloseAContract=Close a contract
|
||||
|
||||
@ -4,7 +4,7 @@ Donations=Donations
|
||||
DonationRef=Donation ref.
|
||||
Donor=Donor
|
||||
Donors=Donors
|
||||
AddDonation=Add a donation
|
||||
AddDonation=Create a donation
|
||||
NewDonation=New donation
|
||||
ShowDonation=Show donation
|
||||
DonationPromise=Gift promise
|
||||
|
||||
@ -3,7 +3,7 @@ Intervention=Intervention
|
||||
Interventions=Interventions
|
||||
InterventionCard=Intervention card
|
||||
NewIntervention=New intervention
|
||||
AddIntervention=Add intervention
|
||||
AddIntervention=Create intervention
|
||||
ListOfInterventions=List of interventions
|
||||
EditIntervention=Edit intervention
|
||||
ActionsOnFicheInter=Actions on intervention
|
||||
|
||||
@ -85,7 +85,7 @@ SubscriptionLateShort=Late
|
||||
SubscriptionNotReceivedShort=Never received
|
||||
ListOfSubscriptions=List of subscriptions
|
||||
SendCardByMail=Send card by Email
|
||||
AddMember=Add member
|
||||
AddMember=Create member
|
||||
NoTypeDefinedGoToSetup=No member types defined. Go to menu "Members types"
|
||||
NewMemberType=New member type
|
||||
WelcomeEMail=Welcome e-mail
|
||||
@ -125,7 +125,7 @@ Date=Date
|
||||
DateAndTime=Date and time
|
||||
PublicMemberCard=Member public card
|
||||
MemberNotOrNoMoreExpectedToSubscribe=Member not or no more expected to subscribe
|
||||
AddSubscription=Add subscription
|
||||
AddSubscription=Create subscription
|
||||
ShowSubscription=Show subscription
|
||||
MemberModifiedInDolibarr=Member modified in Dolibarr
|
||||
SendAnEMailToMember=Send information email to member
|
||||
|
||||
@ -65,7 +65,7 @@ ValidateOrder=Validate order
|
||||
UnvalidateOrder=Unvalidate order
|
||||
DeleteOrder=Delete order
|
||||
CancelOrder=Cancel order
|
||||
AddOrder=Add order
|
||||
AddOrder=Create order
|
||||
AddToMyOrders=Add to my orders
|
||||
AddToOtherOrders=Add to other orders
|
||||
AddToDraftOrders=Add to draft order
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
# Dolibarr language file - Source file is en_US - other
|
||||
SecurityCode=Security code
|
||||
Calendar=Calendar
|
||||
AddTrip=Add trip
|
||||
Tools=Tools
|
||||
ToolsDesc=This area is dedicated to group miscellaneous tools not available into other menu entries.<br><br>Those tools can be reached from menu on the side.
|
||||
Birthday=Birthday
|
||||
|
||||
@ -117,12 +117,12 @@ ServiceLimitedDuration=If product is a service with limited duration:
|
||||
MultiPricesAbility=Several level of prices per product/service
|
||||
MultiPricesNumPrices=Number of prices
|
||||
MultiPriceLevelsName=Price categories
|
||||
AssociatedProductsAbility=Activate the virtual products feature
|
||||
AssociatedProducts=Virtual product
|
||||
AssociatedProductsNumber=Number of products composing this virtual product
|
||||
ParentProductsNumber=Number of parent virtual product
|
||||
IfZeroItIsNotAVirtualProduct=If 0, this product is not a virtual product
|
||||
IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any virtual product
|
||||
AssociatedProductsAbility=Activate the virtual package feature
|
||||
AssociatedProducts=Package product
|
||||
AssociatedProductsNumber=Number of products composing this virtual package product
|
||||
ParentProductsNumber=Number of parent packaging product
|
||||
IfZeroItIsNotAVirtualProduct=If 0, this product is not a virtual package product
|
||||
IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any virtual package product
|
||||
EditAssociate=Associate
|
||||
Translation=Translation
|
||||
KeywordFilter=Keyword filter
|
||||
@ -132,7 +132,7 @@ AddDel=Add/Delete
|
||||
Quantity=Quantity
|
||||
NoMatchFound=No match found
|
||||
ProductAssociationList=List of related products/services: name of product/service (quantity affected)
|
||||
ProductParentList=List of virtual products/services with this product as a component
|
||||
ProductParentList=List of package products/services with this product as a component
|
||||
ErrorAssociationIsFatherOfThis=One of selected product is parent with current product
|
||||
DeleteProduct=Delete a product/service
|
||||
ConfirmDeleteProduct=Are you sure you want to delete this product/service?
|
||||
@ -179,7 +179,7 @@ CloneProduct=Clone product or service
|
||||
ConfirmCloneProduct=Are you sure you want to clone product or service <b>%s</b> ?
|
||||
CloneContentProduct=Clone all main informations of product/service
|
||||
ClonePricesProduct=Clone main informations and prices
|
||||
CloneCompositionProduct=Clone virtual product/services
|
||||
CloneCompositionProduct=Clone packaged product/services
|
||||
ProductIsUsed=This product is used
|
||||
NewRefForClone=Ref. of new product/service
|
||||
CustomerPrices=Customers prices
|
||||
|
||||
@ -14,7 +14,7 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant
|
||||
Myprojects=My projects
|
||||
ProjectsArea=Projects area
|
||||
NewProject=New project
|
||||
AddProject=Add project
|
||||
AddProject=Create project
|
||||
DeleteAProject=Delete a project
|
||||
DeleteATask=Delete a task
|
||||
ConfirmDeleteAProject=Are you sure you want to delete this project ?
|
||||
@ -45,7 +45,7 @@ TaskDateStart=Task start date
|
||||
TaskDateEnd=Task end date
|
||||
TaskDescription=Task description
|
||||
NewTask=New task
|
||||
AddTask=Add task
|
||||
AddTask=Create task
|
||||
AddDuration=Add duration
|
||||
Activity=Activity
|
||||
Activities=Tasks/activities
|
||||
|
||||
@ -16,7 +16,7 @@ Prospect=Prospect
|
||||
ProspectList=Prospect list
|
||||
DeleteProp=Delete commercial proposal
|
||||
ValidateProp=Validate commercial proposal
|
||||
AddProp=Add proposal
|
||||
AddProp=Create proposal
|
||||
ConfirmDeleteProp=Are you sure you want to delete this commercial proposal ?
|
||||
ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name <b>%s</b> ?
|
||||
LastPropals=Last %s proposals
|
||||
|
||||
@ -10,7 +10,7 @@ NoResourceLinked=No resource linked
|
||||
ResourcePageIndex=Resources list
|
||||
ResourceSingular=Resource
|
||||
ResourceCard=Resource card
|
||||
AddResource=Add a resource
|
||||
AddResource=Create a resource
|
||||
ResourceFormLabel_ref=Resource name
|
||||
ResourceType=Resource type
|
||||
ResourceFormLabel_description=Resource description
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# Dolibarr language file - Source file is en_US - suppliers
|
||||
Suppliers=Suppliers
|
||||
Supplier=Supplier
|
||||
AddSupplier=Add a supplier
|
||||
AddSupplier=Create a supplier
|
||||
SupplierRemoved=Supplier removed
|
||||
SuppliersInvoice=Suppliers invoice
|
||||
NewSupplier=New supplier
|
||||
|
||||
@ -4,7 +4,7 @@ Trips=Trips
|
||||
TripsAndExpenses=Trips and expenses
|
||||
TripsAndExpensesStatistics=Trips and expenses statistics
|
||||
TripCard=Trip card
|
||||
AddTrip=Add trip
|
||||
AddTrip=Create trip
|
||||
ListOfTrips=List of trips
|
||||
ListOfFees=List of fees
|
||||
NewTrip=New trip
|
||||
|
||||
@ -119,4 +119,5 @@ HierarchicView=Hierarchical view
|
||||
UseTypeFieldToChange=Use field Type to change
|
||||
OpenIDURL=OpenID URL
|
||||
LoginUsingOpenID=Use OpenID to login
|
||||
WeeklyHours=Weekly hours
|
||||
WeeklyHours=Weekly hours
|
||||
ColorUser=Color of the user
|
||||
@ -266,6 +266,7 @@ Afternoon=Tarde
|
||||
Quadri=Trimestre
|
||||
MonthOfDay=Mes del día
|
||||
HourShort=H
|
||||
MinuteShort=min
|
||||
Rate=Tipo
|
||||
UseLocalTax=Incluir tasas
|
||||
Bytes=Bytes
|
||||
@ -679,7 +680,7 @@ ViewPrivateNote=Ver notas
|
||||
XMoreLines=%s línea(s) ocultas
|
||||
PublicUrl=URL pública
|
||||
AddBox=Añadir caja
|
||||
|
||||
SelectElementAndClickRefresh=Seleccione un elemento y haga clic en Refrescar
|
||||
# Week day
|
||||
Monday=Lunes
|
||||
Tuesday=Martes
|
||||
|
||||
@ -1420,12 +1420,20 @@ else
|
||||
|
||||
// Status (to sell)
|
||||
print '<tr><td>'.$langs->trans("Status").' ('.$langs->trans("Sell").')</td><td colspan="2">';
|
||||
print $object->getLibStatut(2,0);
|
||||
if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer) {
|
||||
print ajax_productonoff($object->id, 'status');
|
||||
} else {
|
||||
print $object->getLibStatut(2,0);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
// Status (to buy)
|
||||
print '<tr><td>'.$langs->trans("Status").' ('.$langs->trans("Buy").')</td><td colspan="2">';
|
||||
print $object->getLibStatut(2,1);
|
||||
if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer) {
|
||||
print ajax_productonoff($object->id, 'status_buy');
|
||||
} else {
|
||||
print $object->getLibStatut(2,1);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
// Batch number management (to batch)
|
||||
|
||||
@ -173,7 +173,7 @@ if (! empty($conf->categorie->enabled))
|
||||
print '<br>';
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Categories").'</th></tr>';
|
||||
print '<tr><td align="center">';
|
||||
print '<tr '.$bc[0].'><td align="center" colspan="2">';
|
||||
$sql = "SELECT c.label, count(*) as nb";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."categorie_product as cs";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cs.fk_categorie = c.rowid";
|
||||
|
||||
@ -292,37 +292,37 @@ if ($id > 0 || ! empty($ref))
|
||||
// Label
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$object->label.'</td></tr>';
|
||||
|
||||
// Date start
|
||||
print '<tr><td>'.$langs->trans("DateStart").'</td><td colspan="3">';
|
||||
print dol_print_date($object->date_start,'dayhour');
|
||||
print '</td></tr>';
|
||||
|
||||
// Date end
|
||||
print '<tr><td>'.$langs->trans("DateEnd").'</td><td colspan="3">';
|
||||
print dol_print_date($object->date_end,'dayhour');
|
||||
print '</td></tr>';
|
||||
|
||||
// Planned workload
|
||||
print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td colspan="3">';
|
||||
print convertSecondToTime($object->planned_workload,'allhourmin');
|
||||
print '</td></tr>';
|
||||
|
||||
// Progress declared
|
||||
print '<tr><td>'.$langs->trans("ProgressDeclared").'</td><td colspan="3">';
|
||||
print $object->progress.' %';
|
||||
print '</td></tr>';
|
||||
|
||||
// Progress calculated
|
||||
// Date start
|
||||
print '<tr><td>'.$langs->trans("DateStart").'</td><td colspan="3">';
|
||||
print dol_print_date($object->date_start,'dayhour');
|
||||
print '</td></tr>';
|
||||
|
||||
// Date end
|
||||
print '<tr><td>'.$langs->trans("DateEnd").'</td><td colspan="3">';
|
||||
print dol_print_date($object->date_end,'dayhour');
|
||||
print '</td></tr>';
|
||||
|
||||
// Planned workload
|
||||
print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td colspan="3">';
|
||||
print convertSecondToTime($object->planned_workload,'allhourmin');
|
||||
print '</td></tr>';
|
||||
|
||||
// Progress declared
|
||||
print '<tr><td>'.$langs->trans("ProgressDeclared").'</td><td colspan="3">';
|
||||
print $object->progress.' %';
|
||||
print '</td></tr>';
|
||||
|
||||
// Progress calculated
|
||||
print '<tr><td>'.$langs->trans("ProgressCalculated").'</td><td colspan="3">';
|
||||
if ($object->planned_workload)
|
||||
{
|
||||
$tmparray=$object->getSummaryOfTimeSpent();
|
||||
$tmparray=$object->getSummaryOfTimeSpent();
|
||||
if ($tmparray['total_duration'] > 0) print round($tmparray['total_duration']/$object->planned_workload*100, 2).' %';
|
||||
else print '0 %';
|
||||
}
|
||||
else print '';
|
||||
print '</td></tr>';
|
||||
|
||||
else print '';
|
||||
print '</td></tr>';
|
||||
|
||||
// Project
|
||||
if (empty($withproject))
|
||||
{
|
||||
|
||||
0
htdocs/resource/add.php
Executable file → Normal file
0
htdocs/resource/add.php
Executable file → Normal file
0
htdocs/resource/card.php
Executable file → Normal file
0
htdocs/resource/card.php
Executable file → Normal file
@ -494,10 +494,10 @@ if ($sql_select)
|
||||
}
|
||||
else if (empty($type_element) || $type_element == -1)
|
||||
{
|
||||
print '<tr><td colspan="4">'.$langs->trans("SelectElementAndClickRefresh").'</td></tr>';
|
||||
print '<tr '.$bc[0].'><td colspan="5">'.$langs->trans("SelectElementAndClickRefresh").'</td></tr>';
|
||||
}
|
||||
else {
|
||||
print '<tr><td colspan="4">'.$langs->trans("FeatureNotYetAvailable").'</td></tr>';
|
||||
print '<tr '.$bc[0].'><td colspan="5">'.$langs->trans("FeatureNotYetAvailable").'</td></tr>';
|
||||
}
|
||||
|
||||
print "</table>";
|
||||
|
||||
@ -183,7 +183,7 @@ if (! empty($conf->categorie->enabled))
|
||||
print '<br>';
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Categories").'</th></tr>';
|
||||
print '<tr><td align="center">';
|
||||
print '<tr '.$bc[0].'><td align="center" colspan="2">';
|
||||
$sql = "SELECT c.label, count(*) as nb";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."categorie_societe as cs";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cs.fk_categorie = c.rowid";
|
||||
|
||||
@ -136,48 +136,48 @@ if (empty($reshook))
|
||||
{
|
||||
$object->particulier = GETPOST("private");
|
||||
|
||||
$object->name = dolGetFirstLastname(GETPOST('firstname','san_alpha'),GETPOST('nom','san_alpha')?GETPOST('nom','san_alpha'):GETPOST('name','san_alpha'));
|
||||
$object->name = dolGetFirstLastname(GETPOST('firstname','alpha'),GETPOST('nom','alpha')?GETPOST('nom','alpha'):GETPOST('name','alpha'));
|
||||
$object->civility_id = GETPOST('civility_id', 'int');
|
||||
// Add non official properties
|
||||
$object->name_bis = GETPOST('name','san_alpha')?GETPOST('name','san_alpha'):GETPOST('nom','san_alpha');
|
||||
$object->firstname = GETPOST('firstname','san_alpha');
|
||||
$object->name_bis = GETPOST('name','alpha')?GETPOST('name','alpha'):GETPOST('nom','alpha');
|
||||
$object->firstname = GETPOST('firstname','alpha');
|
||||
}
|
||||
else
|
||||
{
|
||||
$object->name = GETPOST('name', 'san_alpha')?GETPOST('name', 'san_alpha'):GETPOST('nom', 'san_alpha');
|
||||
$object->name = GETPOST('name', 'alpha')?GETPOST('name', 'alpha'):GETPOST('nom', 'alpha');
|
||||
}
|
||||
$object->address = GETPOST('address', 'san_alpha');
|
||||
$object->zip = GETPOST('zipcode', 'san_alpha');
|
||||
$object->town = GETPOST('town', 'san_alpha');
|
||||
$object->address = GETPOST('address', 'alpha');
|
||||
$object->zip = GETPOST('zipcode', 'alpha');
|
||||
$object->town = GETPOST('town', 'alpha');
|
||||
$object->country_id = GETPOST('country_id', 'int');
|
||||
$object->state_id = GETPOST('state_id', 'int');
|
||||
$object->skype = GETPOST('skype', 'san_alpha');
|
||||
$object->phone = GETPOST('phone', 'san_alpha');
|
||||
$object->fax = GETPOST('fax','san_alpha');
|
||||
$object->skype = GETPOST('skype', 'alpha');
|
||||
$object->phone = GETPOST('phone', 'alpha');
|
||||
$object->fax = GETPOST('fax','alpha');
|
||||
$object->email = GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL);
|
||||
$object->url = GETPOST('url', 'custom', 0, FILTER_SANITIZE_URL);
|
||||
$object->idprof1 = GETPOST('idprof1', 'san_alpha');
|
||||
$object->idprof2 = GETPOST('idprof2', 'san_alpha');
|
||||
$object->idprof3 = GETPOST('idprof3', 'san_alpha');
|
||||
$object->idprof4 = GETPOST('idprof4', 'san_alpha');
|
||||
$object->idprof5 = GETPOST('idprof5', 'san_alpha');
|
||||
$object->idprof6 = GETPOST('idprof6', 'san_alpha');
|
||||
$object->prefix_comm = GETPOST('prefix_comm', 'san_alpha');
|
||||
$object->code_client = GETPOST('code_client', 'san_alpha');
|
||||
$object->code_fournisseur = GETPOST('code_fournisseur', 'san_alpha');
|
||||
$object->capital = GETPOST('capital', 'san_alpha');
|
||||
$object->barcode = GETPOST('barcode', 'san_alpha');
|
||||
$object->idprof1 = GETPOST('idprof1', 'alpha');
|
||||
$object->idprof2 = GETPOST('idprof2', 'alpha');
|
||||
$object->idprof3 = GETPOST('idprof3', 'alpha');
|
||||
$object->idprof4 = GETPOST('idprof4', 'alpha');
|
||||
$object->idprof5 = GETPOST('idprof5', 'alpha');
|
||||
$object->idprof6 = GETPOST('idprof6', 'alpha');
|
||||
$object->prefix_comm = GETPOST('prefix_comm', 'alpha');
|
||||
$object->code_client = GETPOST('code_client', 'alpha');
|
||||
$object->code_fournisseur = GETPOST('code_fournisseur', 'alpha');
|
||||
$object->capital = GETPOST('capital', 'alpha');
|
||||
$object->barcode = GETPOST('barcode', 'alpha');
|
||||
|
||||
$object->tva_intra = GETPOST('tva_intra', 'san_alpha');
|
||||
$object->tva_assuj = GETPOST('assujtva_value', 'san_alpha');
|
||||
$object->status = GETPOST('status', 'san_alpha');
|
||||
$object->tva_intra = GETPOST('tva_intra', 'alpha');
|
||||
$object->tva_assuj = GETPOST('assujtva_value', 'alpha');
|
||||
$object->status = GETPOST('status', 'alpha');
|
||||
|
||||
// Local Taxes
|
||||
$object->localtax1_assuj = GETPOST('localtax1assuj_value', 'san_alpha');
|
||||
$object->localtax2_assuj = GETPOST('localtax2assuj_value', 'san_alpha');
|
||||
$object->localtax1_assuj = GETPOST('localtax1assuj_value', 'alpha');
|
||||
$object->localtax2_assuj = GETPOST('localtax2assuj_value', 'alpha');
|
||||
|
||||
$object->localtax1_value = GETPOST('lt1', 'san_alpha');
|
||||
$object->localtax2_value = GETPOST('lt2', 'san_alpha');
|
||||
$object->localtax1_value = GETPOST('lt1', 'alpha');
|
||||
$object->localtax2_value = GETPOST('lt2', 'alpha');
|
||||
|
||||
$object->forme_juridique_code = GETPOST('forme_juridique_code', 'int');
|
||||
$object->effectif_id = GETPOST('effectif_id', 'int');
|
||||
@ -446,7 +446,6 @@ if (empty($reshook))
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent";
|
||||
$sql.= " SET fk_soc = NULL WHERE fk_soc = " . $id;
|
||||
dol_syslog(get_class($object)."::delete", LOG_DEBUG);
|
||||
if (! $object->db->query($sql))
|
||||
{
|
||||
$error++;
|
||||
@ -528,7 +527,7 @@ if (empty($reshook))
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
$newlang='';
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id'];
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id');
|
||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$fac->client->default_lang;
|
||||
if (! empty($newlang))
|
||||
{
|
||||
@ -638,31 +637,31 @@ else
|
||||
if (GETPOST("type")=='p') { $object->client=2; }
|
||||
if (! empty($conf->fournisseur->enabled) && (GETPOST("type")=='f' || GETPOST("type")=='')) { $object->fournisseur=1; }
|
||||
|
||||
$object->name = GETPOST('nom', 'san_alpha');
|
||||
$object->firstname = GETPOST('firstname', 'san_alpha');
|
||||
$object->name = GETPOST('nom', 'alpha');
|
||||
$object->firstname = GETPOST('firstname', 'alpha');
|
||||
$object->particulier = $private;
|
||||
$object->prefix_comm = GETPOST('prefix_comm');
|
||||
$object->client = GETPOST('client')?GETPOST('client'):$object->client;
|
||||
$object->code_client = GETPOST('code_client', 'san_alpha');
|
||||
$object->code_client = GETPOST('code_client', 'alpha');
|
||||
$object->fournisseur = GETPOST('fournisseur')?GETPOST('fournisseur'):$object->fournisseur;
|
||||
$object->code_fournisseur = GETPOST('code_fournisseur', 'san_alpha');
|
||||
$object->address = GETPOST('address', 'san_alpha');
|
||||
$object->zip = GETPOST('zipcode', 'san_alpha');
|
||||
$object->town = GETPOST('town', 'san_alpha');
|
||||
$object->code_fournisseur = GETPOST('code_fournisseur', 'alpha');
|
||||
$object->address = GETPOST('address', 'alpha');
|
||||
$object->zip = GETPOST('zipcode', 'alpha');
|
||||
$object->town = GETPOST('town', 'alpha');
|
||||
$object->state_id = GETPOST('state_id', 'int');
|
||||
$object->skype = GETPOST('skype', 'san_alpha');
|
||||
$object->phone = GETPOST('phone', 'san_alpha');
|
||||
$object->fax = GETPOST('fax', 'san_alpha');
|
||||
$object->skype = GETPOST('skype', 'alpha');
|
||||
$object->phone = GETPOST('phone', 'alpha');
|
||||
$object->fax = GETPOST('fax', 'alpha');
|
||||
$object->email = GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL);
|
||||
$object->url = GETPOST('url', 'custom', 0, FILTER_SANITIZE_URL);
|
||||
$object->capital = GETPOST('capital', 'int');
|
||||
$object->barcode = GETPOST('barcode', 'san_alpha');
|
||||
$object->idprof1 = GETPOST('idprof1', 'san_alpha');
|
||||
$object->idprof2 = GETPOST('idprof2', 'san_alpha');
|
||||
$object->idprof3 = GETPOST('idprof3', 'san_alpha');
|
||||
$object->idprof4 = GETPOST('idprof4', 'san_alpha');
|
||||
$object->idprof5 = GETPOST('idprof5', 'san_alpha');
|
||||
$object->idprof6 = GETPOST('idprof6', 'san_alpha');
|
||||
$object->barcode = GETPOST('barcode', 'alpha');
|
||||
$object->idprof1 = GETPOST('idprof1', 'alpha');
|
||||
$object->idprof2 = GETPOST('idprof2', 'alpha');
|
||||
$object->idprof3 = GETPOST('idprof3', 'alpha');
|
||||
$object->idprof4 = GETPOST('idprof4', 'alpha');
|
||||
$object->idprof5 = GETPOST('idprof5', 'alpha');
|
||||
$object->idprof6 = GETPOST('idprof6', 'alpha');
|
||||
$object->typent_id = GETPOST('typent_id', 'int');
|
||||
$object->effectif_id = GETPOST('effectif_id', 'int');
|
||||
$object->civility_id = GETPOST('civility_id', 'int');
|
||||
@ -677,7 +676,7 @@ else
|
||||
$object->localtax1_value =GETPOST('lt1', 'int');
|
||||
$object->localtax2_value =GETPOST('lt2', 'int');
|
||||
|
||||
$object->tva_intra = GETPOST('tva_intra', 'san_alpha');
|
||||
$object->tva_intra = GETPOST('tva_intra', 'alpha');
|
||||
|
||||
$object->commercial_id = GETPOST('commercial_id', 'int');
|
||||
$object->default_lang = GETPOST('default_lang');
|
||||
@ -1147,37 +1146,37 @@ else
|
||||
if (GETPOST('nom'))
|
||||
{
|
||||
// We overwrite with values if posted
|
||||
$object->name = GETPOST('nom', 'san_alpha');
|
||||
$object->prefix_comm = GETPOST('prefix_comm', 'san_alpha');
|
||||
$object->name = GETPOST('nom', 'alpha');
|
||||
$object->prefix_comm = GETPOST('prefix_comm', 'alpha');
|
||||
$object->client = GETPOST('client', 'int');
|
||||
$object->code_client = GETPOST('code_client', 'san_alpha');
|
||||
$object->code_client = GETPOST('code_client', 'alpha');
|
||||
$object->fournisseur = GETPOST('fournisseur', 'int');
|
||||
$object->code_fournisseur = GETPOST('code_fournisseur', 'san_alpha');
|
||||
$object->address = GETPOST('address', 'san_alpha');
|
||||
$object->zip = GETPOST('zipcode', 'san_alpha');
|
||||
$object->town = GETPOST('town', 'san_alpha');
|
||||
$object->code_fournisseur = GETPOST('code_fournisseur', 'alpha');
|
||||
$object->address = GETPOST('address', 'alpha');
|
||||
$object->zip = GETPOST('zipcode', 'alpha');
|
||||
$object->town = GETPOST('town', 'alpha');
|
||||
$object->country_id = GETPOST('country_id')?GETPOST('country_id', 'int'):$mysoc->country_id;
|
||||
$object->state_id = GETPOST('state_id', 'int');
|
||||
$object->skype = GETPOST('skype', 'san_alpha');
|
||||
$object->phone = GETPOST('phone', 'san_alpha');
|
||||
$object->fax = GETPOST('fax', 'san_alpha');
|
||||
$object->skype = GETPOST('skype', 'alpha');
|
||||
$object->phone = GETPOST('phone', 'alpha');
|
||||
$object->fax = GETPOST('fax', 'alpha');
|
||||
$object->email = GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL);
|
||||
$object->url = GETPOST('url', 'custom', 0, FILTER_SANITIZE_URL);
|
||||
$object->capital = GETPOST('capital', 'int');
|
||||
$object->idprof1 = GETPOST('idprof1', 'san_alpha');
|
||||
$object->idprof2 = GETPOST('idprof2', 'san_alpha');
|
||||
$object->idprof3 = GETPOST('idprof3', 'san_alpha');
|
||||
$object->idprof4 = GETPOST('idprof4', 'san_alpha');
|
||||
$object->idprof5 = GETPOST('idprof5', 'san_alpha');
|
||||
$object->idprof6 = GETPOST('idprof6', 'san_alpha');
|
||||
$object->idprof1 = GETPOST('idprof1', 'alpha');
|
||||
$object->idprof2 = GETPOST('idprof2', 'alpha');
|
||||
$object->idprof3 = GETPOST('idprof3', 'alpha');
|
||||
$object->idprof4 = GETPOST('idprof4', 'alpha');
|
||||
$object->idprof5 = GETPOST('idprof5', 'alpha');
|
||||
$object->idprof6 = GETPOST('idprof6', 'alpha');
|
||||
$object->typent_id = GETPOST('typent_id', 'int');
|
||||
$object->effectif_id = GETPOST('effectif_id', 'int');
|
||||
$object->barcode = GETPOST('barcode', 'san_alpha');
|
||||
$object->barcode = GETPOST('barcode', 'alpha');
|
||||
$object->forme_juridique_code = GETPOST('forme_juridique_code', 'int');
|
||||
$object->default_lang = GETPOST('default_lang', 'san_alpha');
|
||||
$object->default_lang = GETPOST('default_lang', 'alpha');
|
||||
|
||||
$object->tva_assuj = GETPOST('assujtva_value', 'int');
|
||||
$object->tva_intra = GETPOST('tva_intra', 'san_alpha');
|
||||
$object->tva_intra = GETPOST('tva_intra', 'alpha');
|
||||
$object->status = GETPOST('status', 'int');
|
||||
|
||||
//Local Taxes
|
||||
|
||||
@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||
$langs->load("orders");
|
||||
$langs->load("companies");
|
||||
|
||||
$id=GETPOST('id','int');
|
||||
$id=GETPOST('id','int')?GETPOST('id','int'):GETPOST('socid','int');
|
||||
$ref=GETPOST('ref','alpha');
|
||||
$action=GETPOST('action','alpha');
|
||||
|
||||
@ -44,8 +44,9 @@ $result = restrictedArea($user, 'societe', $id,'');
|
||||
|
||||
$object = new Societe($db);
|
||||
|
||||
|
||||
/*
|
||||
* Ajout d'un nouveau contact
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if ($action == 'addcontact' && $user->rights->societe->creer)
|
||||
@ -133,12 +134,9 @@ $userstatic=new User($db);
|
||||
/* Mode vue et edition */
|
||||
/* */
|
||||
/* *************************************************************************** */
|
||||
dol_htmloutput_mesg($mesg);
|
||||
|
||||
if ($id > 0 || ! empty($ref))
|
||||
{
|
||||
$langs->trans("OrderCard");
|
||||
|
||||
if ($object->fetch($id, $ref) > 0)
|
||||
{
|
||||
$soc = new Societe($db);
|
||||
@ -154,12 +152,12 @@ if ($id > 0 || ! empty($ref))
|
||||
print '<td colspan="3">';
|
||||
print $form->showrefnav($object,'id','',($user->societe_id?0:1),'rowid','nom');
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field
|
||||
{
|
||||
print '<tr><td>'.$langs->trans('Prefix').'</td><td colspan="3">'.$object->prefix_comm.'</td></tr>';
|
||||
}
|
||||
|
||||
|
||||
if ($object->client)
|
||||
{
|
||||
print '<tr><td>';
|
||||
@ -168,7 +166,7 @@ if ($id > 0 || ! empty($ref))
|
||||
if ($object->check_codeclient() <> 0) print ' <font class="error">('.$langs->trans("WrongCustomerCode").')</font>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
|
||||
if ($object->fournisseur)
|
||||
{
|
||||
print '<tr><td>';
|
||||
@ -216,7 +214,7 @@ if ($id > 0 || ! empty($ref))
|
||||
{
|
||||
$titre=$langs->trans("MembersListOfTiers");
|
||||
print '<br>';
|
||||
|
||||
|
||||
print_barre_liste($titre,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'');
|
||||
|
||||
print "<table class=\"noborder\" width=\"100%\">";
|
||||
@ -230,13 +228,13 @@ if ($id > 0 || ! empty($ref))
|
||||
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("EndSubscription"),$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder);
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
$var=True;
|
||||
$i=0;
|
||||
while ($i < $num && $i < $conf->liste_limit)
|
||||
{
|
||||
$objp = $db->fetch_object($resql);
|
||||
|
||||
|
||||
$datefin=$db->jdate($objp->datefin);
|
||||
$memberstatic->id=$objp->rowid;
|
||||
$memberstatic->ref=$objp->rowid;
|
||||
@ -244,43 +242,43 @@ if ($id > 0 || ! empty($ref))
|
||||
$memberstatic->firstname=$objp->firstname;
|
||||
|
||||
$companyname=$objp->company;
|
||||
|
||||
|
||||
$var=!$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
|
||||
|
||||
// Ref
|
||||
print "<td>";
|
||||
print $memberstatic->getNomUrl(1);
|
||||
print "</td>\n";
|
||||
|
||||
|
||||
// Lastname
|
||||
print "<td><a href=\"card.php?rowid=$objp->rowid\">";
|
||||
print ((! empty($objp->lastname) || ! empty($objp->firstname)) ? dol_trunc($memberstatic->getFullName($langs)) : '');
|
||||
print (((! empty($objp->lastname) || ! empty($objp->firstname)) && ! empty($companyname)) ? ' / ' : '');
|
||||
print (! empty($companyname) ? dol_trunc($companyname, 32) : '');
|
||||
print "</a></td>\n";
|
||||
|
||||
|
||||
// Login
|
||||
print "<td>".$objp->login."</td>\n";
|
||||
|
||||
|
||||
// Type
|
||||
$membertypestatic->id=$objp->type_id;
|
||||
$membertypestatic->libelle=$objp->type;
|
||||
print '<td class="nowrap">';
|
||||
print $membertypestatic->getNomUrl(1,32);
|
||||
print '</td>';
|
||||
|
||||
|
||||
// Moral/Physique
|
||||
print "<td>".$memberstatic->getmorphylib($objp->morphy)."</td>\n";
|
||||
|
||||
|
||||
// EMail
|
||||
print "<td>".dol_print_email($objp->email,0,0,1)."</td>\n";
|
||||
|
||||
|
||||
// Statut
|
||||
print '<td class="nowrap">';
|
||||
print $memberstatic->LibStatut($objp->statut,$objp->cotisation,$datefin,2);
|
||||
print "</td>";
|
||||
|
||||
|
||||
// End of subscription date
|
||||
if ($datefin)
|
||||
{
|
||||
@ -303,7 +301,7 @@ if ($id > 0 || ! empty($ref))
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
|
||||
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
}
|
||||
|
||||
@ -1325,7 +1325,8 @@ div.tabs {
|
||||
/* margin: 0px 0px 2px 6px;
|
||||
padding: 0px 6px 3px 0px; */
|
||||
text-align: <?php print $left; ?>;
|
||||
margin-left: 4px !important;
|
||||
margin-left: 6px !important;
|
||||
margin-right: 6px !important;
|
||||
clear:both;
|
||||
height:100%;
|
||||
}
|
||||
@ -1655,7 +1656,7 @@ table.border, table.dataTable, .table-border, .table-border-col, .table-key-bord
|
||||
}
|
||||
|
||||
table.border td, div.border div div.tagtd {
|
||||
padding: 1px 2px 1px 2px;
|
||||
padding: 2px 2px 2px 2px;
|
||||
border: 1px solid #D0D0D0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ $actionsave=GETPOST('save','alpha');
|
||||
if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5;
|
||||
$MAXAGENDA=empty($conf->global->AGENDA_EXT_NB)?5:$conf->global->AGENDA_EXT_NB;
|
||||
|
||||
// List of aviable colors
|
||||
// List of available colors
|
||||
$colorlist=array('BECEDD','DDBECE','BFDDBE','F598B4','F68654','CBF654','A4A4A5');
|
||||
|
||||
// Security check
|
||||
|
||||
@ -36,6 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||
if (! empty($conf->agenda->enabled))require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||
if (! empty($conf->ldap->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/ldap.class.php';
|
||||
if (! empty($conf->adherent->enabled)) require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
|
||||
if (! empty($conf->multicompany->enabled)) dol_include_once('/multicompany/class/actions_multicompany.class.php');
|
||||
@ -154,7 +155,7 @@ if ($action == 'confirm_delete' && $confirm == "yes" && $candisableuser)
|
||||
}
|
||||
}
|
||||
|
||||
// Action ajout user
|
||||
// Action Add user
|
||||
if ($action == 'add' && $canadduser)
|
||||
{
|
||||
$error = 0;
|
||||
@ -205,6 +206,8 @@ if ($action == 'add' && $canadduser)
|
||||
$object->salary = GETPOST("salary")!=''?GETPOST("salary"):'';
|
||||
$object->salaryextra = GETPOST("salaryextra")!=''?GETPOST("salaryextra"):'';
|
||||
$object->weeklyhours = GETPOST("weeklyhours")!=''?GETPOST("weeklyhours"):'';
|
||||
|
||||
$object->color = GETPOST("color")!=''?GETPOST("color"):'';
|
||||
|
||||
// Fill array 'array_options' with data from add form
|
||||
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
||||
@ -258,7 +261,7 @@ if ($action == 'add' && $canadduser)
|
||||
}
|
||||
}
|
||||
|
||||
// Action ajout groupe utilisateur
|
||||
// Action add usergroup
|
||||
if (($action == 'addgroup' || $action == 'removegroup') && $caneditfield)
|
||||
{
|
||||
if ($group)
|
||||
@ -350,6 +353,8 @@ if ($action == 'update' && ! $_POST["cancel"])
|
||||
$object->salary = GETPOST("salary")!=''?GETPOST("salary"):'';
|
||||
$object->salaryextra = GETPOST("salaryextra")!=''?GETPOST("salaryextra"):'';
|
||||
$object->weeklyhours = GETPOST("weeklyhours")!=''?GETPOST("weeklyhours"):'';
|
||||
|
||||
$object->color = GETPOST("color")!=''?GETPOST("color"):'';
|
||||
|
||||
// Fill array 'array_options' with data from add form
|
||||
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
||||
@ -589,6 +594,7 @@ if ($action == 'adduserldap')
|
||||
*/
|
||||
|
||||
$form = new Form($db);
|
||||
$formother=new FormOther($db);
|
||||
|
||||
llxHeader('',$langs->trans("UserCard"));
|
||||
|
||||
@ -670,7 +676,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
||||
setEventMessage($ldap->error, 'errors');
|
||||
}
|
||||
|
||||
// Si la liste des users est rempli, on affiche la liste deroulante
|
||||
// If user list is full, we show drop-down list
|
||||
print "\n\n<!-- Form liste LDAP debut -->\n";
|
||||
|
||||
print '<form name="add_user_ldap" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||
@ -767,7 +773,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
||||
}
|
||||
$password=$generated_password;
|
||||
|
||||
// Mot de passe
|
||||
// Password
|
||||
print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("Password").'</td>';
|
||||
print '<td>';
|
||||
if (! empty($ldap_sid))
|
||||
@ -789,7 +795,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
// Administrateur
|
||||
// Administrator
|
||||
if (! empty($user->admin))
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("Administrator").'</td>';
|
||||
@ -974,6 +980,15 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
||||
print '<input size="8" type="text" name="weeklyhours" value="'.GETPOST('weeklyhours').'">';
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// User color
|
||||
if (! empty($conf->agenda->enabled))
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("ColorUser").'</td>';
|
||||
print '<td>';
|
||||
print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', 'usercolorconfig', 1, '', 'hideifnotset');
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Note
|
||||
print '<tr><td valign="top">';
|
||||
@ -1002,7 +1017,7 @@ else
|
||||
{
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Visu et edition */
|
||||
/* View and edition */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -1032,7 +1047,7 @@ else
|
||||
$userDisabled = 0;
|
||||
$statutUACF = '';
|
||||
|
||||
//On verifie les options du compte
|
||||
// Check options of user account
|
||||
if (count($ldap->uacf) > 0)
|
||||
{
|
||||
foreach ($ldap->uacf as $key => $statut)
|
||||
@ -1080,7 +1095,7 @@ else
|
||||
}
|
||||
|
||||
/*
|
||||
* Confirmation desactivation
|
||||
* Confirm deactivation
|
||||
*/
|
||||
if ($action == 'disable')
|
||||
{
|
||||
@ -1088,7 +1103,7 @@ else
|
||||
}
|
||||
|
||||
/*
|
||||
* Confirmation activation
|
||||
* Confirm activation
|
||||
*/
|
||||
if ($action == 'enable')
|
||||
{
|
||||
@ -1108,13 +1123,13 @@ else
|
||||
*/
|
||||
if ($action != 'edit')
|
||||
{
|
||||
$rowspan=16;
|
||||
|
||||
$rowspan=17;
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Ref
|
||||
print '<tr><td width="25%" valign="top">'.$langs->trans("Ref").'</td>';
|
||||
print '<td colspan="2">';
|
||||
print '<td colspan="3">';
|
||||
print $form->showrefnav($object,'id','',$user->rights->user->user->lire || $user->admin);
|
||||
print '</td>';
|
||||
print '</tr>'."\n";
|
||||
@ -1123,10 +1138,12 @@ else
|
||||
if (! empty($conf->societe->enabled)) $rowspan++;
|
||||
if (! empty($conf->adherent->enabled)) $rowspan++;
|
||||
if (! empty($conf->skype->enabled)) $rowspan++;
|
||||
if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) $rowspan = $rowspan+3;
|
||||
if (! empty($conf->agenda->enabled)) $rowspan++;
|
||||
|
||||
// Lastname
|
||||
print '<tr><td valign="top">'.$langs->trans("Lastname").'</td>';
|
||||
print '<td>'.$object->lastname.'</td>';
|
||||
print '<td colspan="2">'.$object->lastname.'</td>';
|
||||
|
||||
// Photo
|
||||
print '<td align="center" valign="middle" width="25%" rowspan="'.$rowspan.'">';
|
||||
@ -1137,23 +1154,23 @@ else
|
||||
|
||||
// Firstname
|
||||
print '<tr><td valign="top">'.$langs->trans("Firstname").'</td>';
|
||||
print '<td>'.$object->firstname.'</td>';
|
||||
print '<td colspan="2">'.$object->firstname.'</td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
// Position/Job
|
||||
print '<tr><td valign="top">'.$langs->trans("PostOrFunction").'</td>';
|
||||
print '<td>'.$object->job.'</td>';
|
||||
print '<td colspan="2">'.$object->job.'</td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
// Login
|
||||
print '<tr><td valign="top">'.$langs->trans("Login").'</td>';
|
||||
if (! empty($object->ldap_sid) && $object->statut==0)
|
||||
{
|
||||
print '<td class="error">'.$langs->trans("LoginAccountDisableInDolibarr").'</td>';
|
||||
print '<td colspan="2" class="error">'.$langs->trans("LoginAccountDisableInDolibarr").'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<td>'.$object->login.'</td>';
|
||||
print '<td colspan="2">'.$object->login.'</td>';
|
||||
}
|
||||
print '</tr>'."\n";
|
||||
|
||||
@ -1163,24 +1180,24 @@ else
|
||||
{
|
||||
if ($passDoNotExpire)
|
||||
{
|
||||
print '<td>'.$langs->trans("LdapUacf_".$statutUACF).'</td>';
|
||||
print '<td colspan="2">'.$langs->trans("LdapUacf_".$statutUACF).'</td>';
|
||||
}
|
||||
else if($userChangePassNextLogon)
|
||||
{
|
||||
print '<td class="warning">'.$langs->trans("UserMustChangePassNextLogon",$ldap->domainFQDN).'</td>';
|
||||
print '<td colspan="2" class="warning">'.$langs->trans("UserMustChangePassNextLogon",$ldap->domainFQDN).'</td>';
|
||||
}
|
||||
else if($userDisabled)
|
||||
{
|
||||
print '<td class="warning">'.$langs->trans("LdapUacf_".$statutUACF,$ldap->domainFQDN).'</td>';
|
||||
print '<td colspan="2" class="warning">'.$langs->trans("LdapUacf_".$statutUACF,$ldap->domainFQDN).'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<td>'.$langs->trans("DomainPassword").'</td>';
|
||||
print '<td colspan="2">'.$langs->trans("DomainPassword").'</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
if ($object->pass) print preg_replace('/./i','*',$object->pass);
|
||||
else
|
||||
{
|
||||
@ -1192,7 +1209,7 @@ else
|
||||
print '</tr>'."\n";
|
||||
|
||||
// Administrator
|
||||
print '<tr><td valign="top">'.$langs->trans("Administrator").'</td><td>';
|
||||
print '<tr><td valign="top">'.$langs->trans("Administrator").'</td><td colspan="2">';
|
||||
if (! empty($conf->multicompany->enabled) && $object->admin && ! $object->entity)
|
||||
{
|
||||
print $form->textwithpicto(yn($object->admin),$langs->trans("SuperAdministratorDesc"),1,"superadmin");
|
||||
@ -1208,7 +1225,7 @@ else
|
||||
print '</td></tr>'."\n";
|
||||
|
||||
// Type
|
||||
print '<tr><td valign="top">'.$langs->trans("Type").'</td><td>';
|
||||
print '<tr><td valign="top">'.$langs->trans("Type").'</td><td colspan="2">';
|
||||
$type=$langs->trans("Internal");
|
||||
if ($object->societe_id) $type=$langs->trans("External");
|
||||
print $form->textwithpicto($type,$langs->trans("InternalExternalDesc"));
|
||||
@ -1218,47 +1235,47 @@ else
|
||||
// Ldap sid
|
||||
if ($object->ldap_sid)
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("Type").'</td><td>';
|
||||
print '<tr><td valign="top">'.$langs->trans("Type").'</td><td colspan="2">';
|
||||
print $langs->trans("DomainUser",$ldap->domainFQDN);
|
||||
print '</td></tr>'."\n";
|
||||
}
|
||||
|
||||
// Tel pro
|
||||
print '<tr><td valign="top">'.$langs->trans("PhonePro").'</td>';
|
||||
print '<td>'.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";
|
||||
|
||||
// Tel mobile
|
||||
print '<tr><td valign="top">'.$langs->trans("PhoneMobile").'</td>';
|
||||
print '<td>'.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";
|
||||
|
||||
// Fax
|
||||
print '<tr><td valign="top">'.$langs->trans("Fax").'</td>';
|
||||
print '<td>'.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";
|
||||
|
||||
// Skype
|
||||
if (! empty($conf->skype->enabled))
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("Skype").'</td>';
|
||||
print '<td>'.dol_print_skype($object->skype,0,0,1).'</td>';
|
||||
print '<tr><td valign="top">'.$langs->trans("Skype").'</td>';
|
||||
print '<td colspan="2">'.dol_print_skype($object->skype,0,0,1).'</td>';
|
||||
print "</tr>\n";
|
||||
}
|
||||
|
||||
// EMail
|
||||
print '<tr><td valign="top">'.$langs->trans("EMail").'</td>';
|
||||
print '<td>'.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";
|
||||
|
||||
// Signature
|
||||
print '<tr><td valign="top">'.$langs->trans('Signature').'</td><td>';
|
||||
print '<tr><td valign="top">'.$langs->trans('Signature').'</td><td colspan="2">';
|
||||
print dol_htmlentitiesbr($object->signature);
|
||||
print "</td></tr>\n";
|
||||
|
||||
// Hierarchy
|
||||
print '<tr><td valign="top">'.$langs->trans("HierarchicalResponsible").'</td>';
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
if (empty($object->fk_user)) print $langs->trans("None");
|
||||
else {
|
||||
$huser=new User($db);
|
||||
@ -1268,27 +1285,27 @@ else
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
if ($conf->salaries->enabled && ! empty($user->rights->salaries->read))
|
||||
if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
|
||||
{
|
||||
$langs->load("salaries");
|
||||
|
||||
// THM
|
||||
print '<tr><td valign="top">'.$langs->trans("THM").'</td>';
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
print ($object->thm!=''?price($object->thm,'',$langs,1,-1,-1,$conf->currency):'');
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// TJM
|
||||
print '<tr><td valign="top">'.$langs->trans("TJM").'</td>';
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
print ($object->tjm!=''?price($object->tjm,'',$langs,1,-1,-1,$conf->currency):'');
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// Salary
|
||||
print '<tr><td valign="top">'.$langs->trans("Salary").'</td>';
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
print ($object->salary!=''?price($object->salary,'',$langs,1,-1,-1,$conf->currency):'');
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
@ -1296,7 +1313,7 @@ else
|
||||
|
||||
// Weeklyhours
|
||||
print '<tr><td valign="top">'.$langs->trans("WeeklyHours").'</td>';
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
print price2num($object->weeklyhours);
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
@ -1306,28 +1323,39 @@ else
|
||||
{
|
||||
$rowspan++;
|
||||
print '<tr><td valign="top">'.$langs->trans("AccountancyCode").'</td>';
|
||||
print '<td>'.$object->accountancy_code.'</td>';
|
||||
print '<td colspan="2">'.$object->accountancy_code.'</td>';
|
||||
}
|
||||
|
||||
// Color user
|
||||
if (! empty($conf->agenda->enabled))
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("ColorUser").'</td>';
|
||||
print '<td width="50px" bgcolor="'.$object->color.'">';
|
||||
print $object->color;
|
||||
print '</td>';
|
||||
print '<td> </td>';
|
||||
print "</tr>\n";
|
||||
}
|
||||
|
||||
// Status
|
||||
print '<tr><td valign="top">'.$langs->trans("Status").'</td>';
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
print $object->getLibStatut(4);
|
||||
print '</td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
print '<tr><td valign="top">'.$langs->trans("LastConnexion").'</td>';
|
||||
print '<td>'.dol_print_date($object->datelastlogin,"dayhour").'</td>';
|
||||
print '<td colspan="2">'.dol_print_date($object->datelastlogin,"dayhour").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
print '<tr><td valign="top">'.$langs->trans("PreviousConnexion").'</td>';
|
||||
print '<td>'.dol_print_date($object->datepreviouslogin,"dayhour").'</td>';
|
||||
print '<td colspan="2">'.dol_print_date($object->datepreviouslogin,"dayhour").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
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 '<td>'.$object->openid.'</td>';
|
||||
print '<td colspan="2">'.$object->openid.'</td>';
|
||||
print "</tr>\n";
|
||||
}
|
||||
|
||||
@ -1335,7 +1363,7 @@ else
|
||||
if (! empty($conf->societe->enabled))
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("LinkToCompanyContact").'</td>';
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
if (isset($object->societe_id) && $object->societe_id > 0)
|
||||
{
|
||||
$societe = new Societe($db);
|
||||
@ -1363,7 +1391,7 @@ else
|
||||
{
|
||||
$langs->load("members");
|
||||
print '<tr><td valign="top">'.$langs->trans("LinkedToDolibarrMember").'</td>';
|
||||
print '<td>';
|
||||
print '<td colspan="2">';
|
||||
if ($object->fk_member)
|
||||
{
|
||||
$adh=new Adherent($db);
|
||||
@ -1631,7 +1659,10 @@ else
|
||||
if (isset($conf->file->main_authentication) && preg_match('/openid/',$conf->file->main_authentication) && ! empty($conf->global->MAIN_OPENIDURL_PERUSER)) $rowspan++;
|
||||
if (! empty($conf->societe->enabled)) $rowspan++;
|
||||
if (! empty($conf->adherent->enabled)) $rowspan++;
|
||||
|
||||
if (! empty($conf->skype->enabled)) $rowspan++;
|
||||
if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) $rowspan = $rowspan+3;
|
||||
if (! empty($conf->agenda->enabled)) $rowspan++;
|
||||
|
||||
print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'" method="POST" name="updateuser" enctype="multipart/form-data">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="update">';
|
||||
@ -1696,7 +1727,7 @@ else
|
||||
print '<input size="30" type="text" name="job" value="'.$object->job.'">';
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
print '<input type="hidden" name="job" value="'.$object->job.'">';
|
||||
print $object->job;
|
||||
}
|
||||
@ -1918,7 +1949,7 @@ else
|
||||
print $doleditor->Create(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
print dol_htmlentitiesbr($object->signature);
|
||||
}
|
||||
print '</td></tr>';
|
||||
@ -1957,7 +1988,7 @@ else
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
if ($conf->salaries->enabled && ! empty($user->rights->salaries->read))
|
||||
if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
|
||||
{
|
||||
$langs->load("salaries");
|
||||
|
||||
@ -2008,6 +2039,15 @@ else
|
||||
print '</td>';
|
||||
print "</tr>";
|
||||
}
|
||||
|
||||
// User color
|
||||
if (! empty($conf->agenda->enabled))
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("ColorUser").'</td>';
|
||||
print '<td>';
|
||||
print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', 'usercolorconfig', 1, '', 'hideifnotset');
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Status
|
||||
print '<tr><td valign="top">'.$langs->trans("Status").'</td>';
|
||||
|
||||
@ -51,7 +51,7 @@ class User extends CommonObject
|
||||
var $firstname;
|
||||
var $note;
|
||||
var $email;
|
||||
var $skype;
|
||||
var $skype;
|
||||
var $job;
|
||||
var $signature;
|
||||
var $office_phone;
|
||||
@ -101,13 +101,14 @@ class User extends CommonObject
|
||||
var $users; // To store all tree of users hierarchy
|
||||
var $parentof; // To store an array of all parents for all ids.
|
||||
|
||||
var $accountancy_code; // Accountancy code in prevision of the complete accountancy module
|
||||
var $thm; // Average cost of employee
|
||||
var $tjm; // Average cost of employee
|
||||
var $salary; // Monthly salary
|
||||
var $salaryextra; // Monthly salary extra
|
||||
var $weeklyhours; // Weekly hours
|
||||
var $accountancy_code; // Accountancy code in prevision of the complete accountancy module
|
||||
var $thm; // Average cost of employee
|
||||
var $tjm; // Average cost of employee
|
||||
var $salary; // Monthly salary
|
||||
var $salaryextra; // Monthly salary extra
|
||||
var $weeklyhours; // Weekly hours
|
||||
|
||||
var $color; // Define background color for user in agenda
|
||||
|
||||
/**
|
||||
* Constructor de la classe
|
||||
@ -166,6 +167,7 @@ class User extends CommonObject
|
||||
$sql.= " u.salary,";
|
||||
$sql.= " u.salaryextra,";
|
||||
$sql.= " u.weeklyhours,";
|
||||
$sql.= " u.color,";
|
||||
$sql.= " u.ref_int, u.ref_ext";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||
|
||||
@ -233,6 +235,7 @@ class User extends CommonObject
|
||||
$this->salary = $obj->salary;
|
||||
$this->salaryextra = $obj->salaryextra;
|
||||
$this->weeklyhours = $obj->weeklyhours;
|
||||
$this->color = $obj->color;
|
||||
|
||||
$this->datec = $this->db->jdate($obj->datec);
|
||||
$this->datem = $this->db->jdate($obj->datem);
|
||||
@ -270,7 +273,7 @@ class User extends CommonObject
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Recupere parametrage global propre a l'utilisateur
|
||||
// To get back the global configuration unique to the user
|
||||
if ($loadpersonalconf)
|
||||
{
|
||||
$sql = "SELECT param, value FROM ".MAIN_DB_PREFIX."user_param";
|
||||
@ -302,7 +305,7 @@ class User extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajoute un droit a l'utilisateur
|
||||
* Add a right to the user
|
||||
*
|
||||
* @param int $rid id du droit a ajouter
|
||||
* @param string $allmodule Ajouter tous les droits du module allmodule
|
||||
@ -404,7 +407,7 @@ class User extends CommonObject
|
||||
|
||||
|
||||
/**
|
||||
* Retire un droit a l'utilisateur
|
||||
* Remove a right to the user
|
||||
*
|
||||
* @param int $rid Id du droit a retirer
|
||||
* @param string $allmodule Retirer tous les droits du module allmodule
|
||||
@ -672,7 +675,7 @@ class User extends CommonObject
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
// Desactive utilisateur
|
||||
// Deactivate user
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."user";
|
||||
$sql.= " SET statut = ".$this->statut;
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
@ -717,7 +720,7 @@ class User extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
||||
|
||||
// Supprime droits
|
||||
// Remove rights
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_rights WHERE fk_user = ".$this->id;
|
||||
|
||||
if (! $error && ! $this->db->query($sql))
|
||||
@ -734,7 +737,7 @@ class User extends CommonObject
|
||||
$this->error = $this->db->lasterror();
|
||||
}
|
||||
|
||||
// Si contact, supprime lien
|
||||
// If contact, remove link
|
||||
if ($this->contact_id)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET fk_user_creat = null WHERE rowid = ".$this->contact_id;
|
||||
@ -1063,7 +1066,7 @@ class User extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Affectation des permissions par defaut
|
||||
* Assign rights by default
|
||||
*
|
||||
* @return Si erreur <0, si ok renvoi le nbre de droits par defaut positionnes
|
||||
*/
|
||||
@ -1142,6 +1145,7 @@ class User extends CommonObject
|
||||
$this->zip = empty($this->zip)?'':$this->zip;
|
||||
$this->town = empty($this->town)?'':$this->town;
|
||||
$this->accountancy_code = trim($this->accountancy_code);
|
||||
$this->color = empty($this->color)?'':$this->color;
|
||||
|
||||
// Check parameters
|
||||
if (! empty($conf->global->USER_MAIL_REQUIRED) && ! isValidEMail($this->email))
|
||||
@ -1150,7 +1154,7 @@ class User extends CommonObject
|
||||
$this->error = $langs->trans("ErrorBadEMail",$this->email);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
// Mise a jour autres infos
|
||||
@ -1172,6 +1176,7 @@ class User extends CommonObject
|
||||
$sql.= ", job = '".$this->db->escape($this->job)."'";
|
||||
$sql.= ", signature = '".$this->db->escape($this->signature)."'";
|
||||
$sql.= ", accountancy_code = '".$this->db->escape($this->accountancy_code)."'";
|
||||
$sql.= ", color = '".$this->db->escape($this->color)."'";
|
||||
$sql.= ", note = '".$this->db->escape($this->note)."'";
|
||||
$sql.= ", photo = ".($this->photo?"'".$this->db->escape($this->photo)."'":"null");
|
||||
$sql.= ", openid = ".($this->openid?"'".$this->db->escape($this->openid)."'":"null");
|
||||
|
||||
@ -664,6 +664,8 @@ function createOrder($authentication,$order)
|
||||
$newline->total_ht=$line['total_net'];
|
||||
$newline->total_tva=$line['total_vat'];
|
||||
$newline->total_ttc=$line['total'];
|
||||
$newline->date_start=$line['date_start'];
|
||||
$newline->date_end=$line['date_end'];
|
||||
$newobject->lines[]=$newline;
|
||||
}
|
||||
|
||||
|
||||
0
scripts/accountancy/export-thirdpartyaccount.php
Normal file → Executable file
0
scripts/accountancy/export-thirdpartyaccount.php
Normal file → Executable file
Loading…
Reference in New Issue
Block a user