Merge branch 'develop' of https://github.com/Dolibarr/dolibarr.git into
develop_dict
This commit is contained in:
commit
cd095e99c9
@ -865,6 +865,7 @@ if ($mode == 'deploy')
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
if ($allowfromweb >= 0)
|
if ($allowfromweb >= 0)
|
||||||
{
|
{
|
||||||
@ -885,12 +886,20 @@ if ($mode == 'deploy')
|
|||||||
if ($allowfromweb == 1)
|
if ($allowfromweb == 1)
|
||||||
{
|
{
|
||||||
print $langs->trans("UnpackPackageInModulesRoot",$dirins).'<br>';
|
print $langs->trans("UnpackPackageInModulesRoot",$dirins).'<br>';
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
print '<form enctype="multipart/form-data" method="POST" class="noborder" action="'.$_SERVER["PHP_SELF"].'" name="forminstall">';
|
print '<form enctype="multipart/form-data" method="POST" class="noborder" action="'.$_SERVER["PHP_SELF"].'" name="forminstall">';
|
||||||
print '<input type="hidden" name="action" value="install">';
|
print '<input type="hidden" name="action" value="install">';
|
||||||
print '<input type="hidden" name="mode" value="deploy">';
|
print '<input type="hidden" name="mode" value="deploy">';
|
||||||
print $langs->trans("YouCanSubmitFile").' <input type="file" name="fileinstall"> ';
|
print $langs->trans("YouCanSubmitFile").' <input type="file" name="fileinstall"> ';
|
||||||
print '<input type="submit" name="send" value="'.dol_escape_htmltag($langs->trans("Send")).'" class="button">';
|
print '<input type="submit" name="send" value="'.dol_escape_htmltag($langs->trans("Send")).'" class="button">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
print '<div class="center"><div class="logo_setup"></div></div>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -34,6 +34,9 @@ $langs->load("blockedlog");
|
|||||||
if (! $user->admin) accessforbidden();
|
if (! $user->admin) accessforbidden();
|
||||||
|
|
||||||
$action = GETPOST('action','alpha');
|
$action = GETPOST('action','alpha');
|
||||||
|
$showonlyerrors = GETPOST('showonlyerrors','int');
|
||||||
|
|
||||||
|
$block_static = new BlockedLog($db);
|
||||||
|
|
||||||
if($action === 'downloadblockchain') {
|
if($action === 'downloadblockchain') {
|
||||||
|
|
||||||
@ -49,14 +52,57 @@ if($action === 'downloadblockchain') {
|
|||||||
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
else if($action === 'downloadcsv') {
|
||||||
|
|
||||||
|
$res = $db->query("SELECT rowid,tms,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user
|
||||||
|
FROM ".MAIN_DB_PREFIX."blockedlog ORDER BY rowid ASC");
|
||||||
|
|
||||||
|
if($res) {
|
||||||
|
|
||||||
|
$signature = $block_static->getSignature();
|
||||||
|
|
||||||
|
header('Content-Type: application/octet-stream');
|
||||||
|
header("Content-Transfer-Encoding: Binary");
|
||||||
|
header("Content-disposition: attachment; filename=\"" .$signature. ".csv\"");
|
||||||
|
|
||||||
|
print $langs->transnoentities('Id')
|
||||||
|
.';'.$langs->transnoentities('Timestamp')
|
||||||
|
.';'.$langs->transnoentities('Action')
|
||||||
|
.';'.$langs->transnoentities('Amounts')
|
||||||
|
.';'.$langs->transnoentities('Element')
|
||||||
|
.';'.$langs->transnoentities('ObjectId')
|
||||||
|
.';'.$langs->transnoentities('Date')
|
||||||
|
.';'.$langs->transnoentities('Ref')
|
||||||
|
.';'.$langs->transnoentities('Fingerprint')
|
||||||
|
.';'.$langs->transnoentities('User')."\n";
|
||||||
|
|
||||||
|
while($obj = $db->fetch_object($res)) {
|
||||||
|
|
||||||
|
print $obj->rowid
|
||||||
|
.';'.$obj->tms
|
||||||
|
.';'.$obj->action
|
||||||
|
.';'.$obj->amounts
|
||||||
|
.';'.$obj->element
|
||||||
|
.';'.$obj->fk_object
|
||||||
|
.';'.$obj->date_object
|
||||||
|
.';'.$obj->ref_object
|
||||||
|
.';'.$obj->signature
|
||||||
|
.';'.$obj->fk_user."\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
setEventMessage($db->lasterror, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$block_static = new BlockedLog($db);
|
|
||||||
|
|
||||||
$blocks = $block_static->getLog('all', 0, GETPOST('all') ? 0 : 50);
|
$blocks = $block_static->getLog('all', 0, GETPOST('all') ? 0 : 50);
|
||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
@ -74,7 +120,12 @@ print $langs->trans("FingerprintsDesc")."<br>\n";
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
echo '<div align="right"><a href="?all=1">'.$langs->trans('ShowAllFingerPrintsMightBeTooLong').'</a> | <a href="?action=downloadblockchain">'.$langs->trans('DownloadBlockChain').'</a></div>';
|
print '<div align="right">';
|
||||||
|
print ' <a href="?all=1">'.$langs->trans('ShowAllFingerPrintsMightBeTooLong').'</a>';
|
||||||
|
print ' | <a href="?all=1&showonlyerrors=1">'.$langs->trans('ShowAllFingerPrintsErrorsMightBeTooLong').'</a>';
|
||||||
|
print ' | <a href="?action=downloadblockchain">'.$langs->trans('DownloadBlockChain').'</a>';
|
||||||
|
print ' | <a href="?action=downloadcsv">'.$langs->trans('DownloadLogCSV').'</a>';
|
||||||
|
print ' </div>';
|
||||||
|
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
@ -93,17 +144,22 @@ print '</tr>';
|
|||||||
|
|
||||||
foreach($blocks as &$block) {
|
foreach($blocks as &$block) {
|
||||||
|
|
||||||
|
$checksignature = $block->checkSignature();
|
||||||
|
$object_link = $block->getObjectLink();
|
||||||
|
|
||||||
|
if(!$showonlyerrors || $block->error>0) {
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.dol_print_date($block->tms,'dayhour').'</td>';
|
print '<td>'.dol_print_date($block->tms,'dayhour').'</td>';
|
||||||
print '<td>'.$block->ref_object.'</td>';
|
print '<td>'.$block->ref_object.'</td>';
|
||||||
print '<td>'.$langs->trans('log'.$block->action).'</td>';
|
print '<td>'.$langs->trans('log'.$block->action).'</td>';
|
||||||
print '<td>'.$block->getObject().'<a href="#" blockid="'.$block->id.'" rel="show-info">'.img_info($langs->trans('ShowDetails')).'</a></td>';
|
print '<td>'.$object_link.'<a href="#" blockid="'.$block->id.'" rel="show-info">'.img_info($langs->trans('ShowDetails')).'</a></td>';
|
||||||
print '<td align="right">'.price($block->amounts).'</td>';
|
print '<td align="right">'.price($block->amounts).'</td>';
|
||||||
print '<td>'.$block->getUser().'</td>';
|
print '<td>'.$block->getUser().'</td>';
|
||||||
print '<td>'.$block->signature.'</td>';
|
print '<td>'.$block->signature.'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
|
|
||||||
print $block->checkSignature() ? img_picto($langs->trans('OkCheckFingerprintValidity'), 'on') : img_picto($langs->trans('KoCheckFingerprintValidity'), 'off');
|
print $block->error == 0 ? img_picto($langs->trans('OkCheckFingerprintValidity'), 'on') : img_picto($langs->trans('KoCheckFingerprintValidity'), 'off');
|
||||||
if(!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) {
|
if(!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY) && !empty($conf->global->BLOCKEDLOG_AUTHORITY_URL)) {
|
||||||
print ' '.($block->certified ? img_picto($langs->trans('AddedByAuthority'), 'info') : img_picto($langs->trans('NotAddedByAuthorityYet'), 'info_black') );
|
print ' '.($block->certified ? img_picto($langs->trans('AddedByAuthority'), 'info') : img_picto($langs->trans('NotAddedByAuthorityYet'), 'info_black') );
|
||||||
}
|
}
|
||||||
@ -111,6 +167,7 @@ foreach($blocks as &$block) {
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
@ -121,7 +178,7 @@ $('a[rel=show-info]').click(function() {
|
|||||||
$pop = $('<div id="pop-info"><table width="100%" class="border"><thead><th width="25%"><?php echo $langs->trans('Field') ?></th><th><?php echo $langs->trans('Value') ?></th></thead><tbody></tbody></table></div>');
|
$pop = $('<div id="pop-info"><table width="100%" class="border"><thead><th width="25%"><?php echo $langs->trans('Field') ?></th><th><?php echo $langs->trans('Value') ?></th></thead><tbody></tbody></table></div>');
|
||||||
|
|
||||||
$pop.dialog({
|
$pop.dialog({
|
||||||
title:"<?php echo $langs->trans('BlockedlogInfoDialog'); ?>"
|
title:"<?php echo $langs->transnoentities('BlockedlogInfoDialog'); ?>"
|
||||||
,modal:true
|
,modal:true
|
||||||
,width:'80%'
|
,width:'80%'
|
||||||
});
|
});
|
||||||
|
|||||||
@ -78,6 +78,7 @@ class BlockedLog
|
|||||||
|
|
||||||
public $object_data = null;
|
public $object_data = null;
|
||||||
|
|
||||||
|
public $error = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
@ -91,9 +92,9 @@ class BlockedLog
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* try to retrieve logged object
|
* try to retrieve logged object link
|
||||||
*/
|
*/
|
||||||
public function getObject() {
|
public function getObjectLink() {
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
if($this->element === 'facture') {
|
if($this->element === 'facture') {
|
||||||
@ -103,6 +104,9 @@ class BlockedLog
|
|||||||
if($object->fetch($this->fk_object)>0) {
|
if($object->fetch($this->fk_object)>0) {
|
||||||
return $object->getNomUrl(1);
|
return $object->getNomUrl(1);
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
$this->error++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if($this->element === 'payment') {
|
else if($this->element === 'payment') {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
||||||
@ -111,6 +115,9 @@ class BlockedLog
|
|||||||
if($object->fetch($this->fk_object)>0) {
|
if($object->fetch($this->fk_object)>0) {
|
||||||
return $object->getNomUrl(1);
|
return $object->getNomUrl(1);
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
$this->error++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $langs->trans('ImpossibleToReloadObject', $this->element, $this->fk_object);
|
return $langs->trans('ImpossibleToReloadObject', $this->element, $this->fk_object);
|
||||||
@ -388,8 +395,13 @@ class BlockedLog
|
|||||||
|
|
||||||
$this->getSignatureRecursive();
|
$this->getSignatureRecursive();
|
||||||
|
|
||||||
return ($signature_to_test=== $this->signature);
|
$res = ($signature_to_test === $this->signature);
|
||||||
|
|
||||||
|
if(!$res) {
|
||||||
|
$this->error++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -490,8 +502,7 @@ class BlockedLog
|
|||||||
*/
|
*/
|
||||||
private function getCurrentValue() {
|
private function getCurrentValue() {
|
||||||
|
|
||||||
if($this->action === 'PAYMENT_CUSTOMER_CREATE'
|
if($this->element === 'payment') {
|
||||||
|| $this->action === 'PAYMENT_ADD_TO_BANK') {
|
|
||||||
$sql="SELECT amount FROM ".MAIN_DB_PREFIX."paiement WHERE rowid=".$this->fk_object;
|
$sql="SELECT amount FROM ".MAIN_DB_PREFIX."paiement WHERE rowid=".$this->fk_object;
|
||||||
|
|
||||||
$res = $this->db->query($sql);
|
$res = $this->db->query($sql);
|
||||||
@ -500,6 +511,14 @@ class BlockedLog
|
|||||||
$this->amounts = (double) $obj->amount;
|
$this->amounts = (double) $obj->amount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
elseif($this->element === 'facture') {
|
||||||
|
$sql="SELECT total_ttc FROM ".MAIN_DB_PREFIX."facture WHERE rowid=".$this->fk_object;
|
||||||
|
|
||||||
|
$res = $this->db->query($sql);
|
||||||
|
if($res && $obj = $this->db->fetch_object($res)) {
|
||||||
|
$this->amounts = (double) $obj->total_ttc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,6 +27,8 @@ require '../main.inc.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/cashdesk/include/environnement.php';
|
require_once DOL_DOCUMENT_ROOT.'/cashdesk/include/environnement.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/cashdesk/include/keypad.php';
|
require_once DOL_DOCUMENT_ROOT.'/cashdesk/include/keypad.php';
|
||||||
|
|
||||||
|
$error=GETPOST('error');
|
||||||
|
|
||||||
// Test if already logged
|
// Test if already logged
|
||||||
if ( $_SESSION['uid'] <= 0 )
|
if ( $_SESSION['uid'] <= 0 )
|
||||||
{
|
{
|
||||||
@ -54,9 +56,7 @@ print '<body>'."\n";
|
|||||||
|
|
||||||
if (!empty($error))
|
if (!empty($error))
|
||||||
{
|
{
|
||||||
print $error;
|
dol_htmloutput_events();
|
||||||
print '</body></html>';
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<div class="conteneur">'."\n";
|
print '<div class="conteneur">'."\n";
|
||||||
|
|||||||
@ -106,6 +106,14 @@ p {
|
|||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Force values for small screen 570 */
|
||||||
|
@media only screen and (max-width: 570px)
|
||||||
|
{
|
||||||
|
.menu_choix0 {
|
||||||
|
max-width: 180px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.menu_choix0 a {
|
.menu_choix0 a {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@ -259,7 +267,6 @@ p.titre {
|
|||||||
|
|
||||||
/* --------------------- Combo lists ------------------- */
|
/* --------------------- Combo lists ------------------- */
|
||||||
.select_design {
|
.select_design {
|
||||||
width: 370px;
|
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -38,7 +38,7 @@ $langs->load("cashdesk");
|
|||||||
|
|
||||||
<input type="hidden" name="hdnSource" value="NULL" />
|
<input type="hidden" name="hdnSource" value="NULL" />
|
||||||
|
|
||||||
<table>
|
<table class="center">
|
||||||
<tr><th class="label1"><?php echo $langs->trans("FilterRefOrLabelOrBC"); ?></th><th class="label1"><?php echo $langs->trans("Designation"); ?></th></tr>
|
<tr><th class="label1"><?php echo $langs->trans("FilterRefOrLabelOrBC"); ?></th><th class="label1"><?php echo $langs->trans("Designation"); ?></th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<!-- Affichage de la reference et de la designation -->
|
<!-- Affichage de la reference et de la designation -->
|
||||||
@ -89,42 +89,32 @@ $langs->load("cashdesk");
|
|||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td><div id="resultats_dhtml"></div></td></tr>
|
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<form id="frmQte" class="formulaire1" method="post" action="facturation_verif.php?action=ajout_article" onsubmit ="javascript: return verifSaisie();">
|
<form id="frmQte" class="formulaire1" method="post" action="facturation_verif.php?action=ajout_article" onsubmit ="javascript: return verifSaisie();">
|
||||||
<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" />
|
<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" />
|
||||||
<table>
|
<table class="center">
|
||||||
<tr><th><?php echo $langs->trans("Qty"); ?></th>
|
<tr>
|
||||||
<th><?php echo $langs->trans("Stock"); ?></th>
|
<th><?php echo $langs->trans("Qty"); ?></th>
|
||||||
<th><?php echo $langs->trans("PriceUHT"); ?></th>
|
<th><?php echo $langs->trans("PriceUHT"); ?></th>
|
||||||
<th></th>
|
|
||||||
<th><?php echo $langs->trans("Discount"); ?> (%)</th>
|
<th><?php echo $langs->trans("Discount"); ?> (%)</th>
|
||||||
<th><?php echo $langs->trans("TotalHT"); ?></th>
|
|
||||||
<th> </th>
|
|
||||||
<th><?php echo $langs->trans("VATRate"); ?></th>
|
<th><?php echo $langs->trans("VATRate"); ?></th>
|
||||||
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input class="texte1 maxwidth50onsmartphone" type="text" id="txtQte" name="txtQte" value="1" onkeyup="javascript: modif();" onfocus="javascript: this.select();" />
|
<td><input class="texte1 maxwidth50onsmartphone" type="text" id="txtQte" name="txtQte" value="1" onkeyup="javascript: modif();" onfocus="javascript: this.select();" />
|
||||||
<?php print genkeypad("txtQte", "frmQte");?>
|
<?php print genkeypad("txtQte", "frmQte");?>
|
||||||
</td>
|
|
||||||
<!-- Affichage du stock pour l'article courant -->
|
|
||||||
<td>
|
|
||||||
<input class="texte1_off maxwidth50onsmartphone" type="text" name="txtStock" value="<?php echo $obj_facturation->stock() ?>" disabled />
|
|
||||||
</td>
|
</td>
|
||||||
<!-- Show unit price -->
|
<!-- Show unit price -->
|
||||||
<?php // TODO Remove the disabled and use this value when adding product into cart ?>
|
<?php // TODO Remove the disabled and use this value when adding product into cart ?>
|
||||||
<td><input class="texte1_off maxwidth50onsmartphone" type="text" name="txtPrixUnit" value="<?php echo price2num($obj_facturation->prix(), 'MU'); ?>" onchange="javascript: modif();" disabled /></td>
|
<td><input class="texte1_off maxwidth50onsmartphone" type="text" name="txtPrixUnit" value="<?php echo price2num($obj_facturation->prix(), 'MU'); ?>" onchange="javascript: modif();" disabled /></td>
|
||||||
<td></td>
|
|
||||||
<!-- Choix de la remise -->
|
<!-- Choix de la remise -->
|
||||||
<td><input class="texte1 maxwidth50onsmartphone" type="text" id="txtRemise" name="txtRemise" value="0" onkeyup="javascript: modif();" onfocus="javascript: this.select();"/>
|
<td><input class="texte1 maxwidth50onsmartphone" type="text" id="txtRemise" name="txtRemise" value="0" onkeyup="javascript: modif();" onfocus="javascript: this.select();"/>
|
||||||
<?php print genkeypad("txtRemise", "frmQte");?>
|
<?php print genkeypad("txtRemise", "frmQte");?>
|
||||||
</td>
|
</td>
|
||||||
<!-- Affichage du total HT -->
|
|
||||||
<td><input class="texte1_off maxwidth50onsmartphone" type="text" name="txtTotal" value="" disabled /></td><td></td>
|
|
||||||
<!-- Choix du taux de TVA -->
|
<!-- Choix du taux de TVA -->
|
||||||
<td class="select_tva">
|
<td class="select_tva center">
|
||||||
<?php
|
<?php
|
||||||
$vatrate = $obj_facturation->vatrate; // To get vat rate we just have selected
|
$vatrate = $obj_facturation->vatrate; // To get vat rate we just have selected
|
||||||
|
|
||||||
@ -133,7 +123,20 @@ $langs->load("cashdesk");
|
|||||||
echo $form->load_tva('selTva', (isset($_POST["selTva"])?GETPOST("selTva",'alpha',2):$vatrate), $mysoc, $buyer, 0, 0, '', false, -1);
|
echo $form->load_tva('selTva', (isset($_POST["selTva"])?GETPOST("selTva",'alpha',2):$vatrate), $mysoc, $buyer, 0, 0, '', false, -1);
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<!-- Affichage du stock pour l'article courant -->
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $langs->trans("Stock"); ?></td>
|
||||||
|
<td>
|
||||||
|
<input class="texte1_off maxwidth50onsmartphone" type="text" name="txtStock" value="<?php echo $obj_facturation->stock() ?>" disabled />
|
||||||
|
</td>
|
||||||
|
<td><?php echo $langs->trans("TotalHT"); ?></td>
|
||||||
|
<!-- Affichage du total HT -->
|
||||||
|
<td colspan="2"><input class="texte1_off maxwidth50onsmartphone" type="text" name="txtTotal" value="" disabled /></td><td></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<input class="button bouton_ajout_article" type="submit" id="sbmtEnvoyer" value="<?php echo $langs->trans("AddThisArticle"); ?>" />
|
<input class="button bouton_ajout_article" type="submit" id="sbmtEnvoyer" value="<?php echo $langs->trans("AddThisArticle"); ?>" />
|
||||||
@ -149,13 +152,13 @@ $langs->load("cashdesk");
|
|||||||
<tr><th class="label1"><?php echo $langs->trans("TotalTicket"); ?></th><th class="label1"><?php echo $langs->trans("Received"); ?></th><th class="label1"><?php echo $langs->trans("Change"); ?></th></tr>
|
<tr><th class="label1"><?php echo $langs->trans("TotalTicket"); ?></th><th class="label1"><?php echo $langs->trans("Received"); ?></th><th class="label1"><?php echo $langs->trans("Change"); ?></th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<!-- Affichage du montant du -->
|
<!-- Affichage du montant du -->
|
||||||
<td><input class="texte2_off maxwidthonsmartphone" type="text" name="txtDu" value="<?php echo price2num($obj_facturation->prixTotalTtc(), 'MT'); ?>" disabled /></td>
|
<td><input class="texte2_off maxwidth100onsmartphone" type="text" name="txtDu" value="<?php echo price2num($obj_facturation->prixTotalTtc(), 'MT'); ?>" disabled /></td>
|
||||||
<!-- Choix du montant encaisse -->
|
<!-- Choix du montant encaisse -->
|
||||||
<td><input class="texte2 maxwidthonsmartphone" type="text" id="txtEncaisse" name="txtEncaisse" value="" onkeyup="javascript: verifDifference();" onfocus="javascript: this.select();" />
|
<td><input class="texte2 maxwidth100onsmartphone" type="text" id="txtEncaisse" name="txtEncaisse" value="" onkeyup="javascript: verifDifference();" onfocus="javascript: this.select();" />
|
||||||
<?php print genkeypad("txtEncaisse", "frmDifference");?>
|
<?php print genkeypad("txtEncaisse", "frmDifference");?>
|
||||||
</td>
|
</td>
|
||||||
<!-- Affichage du montant rendu -->
|
<!-- Affichage du montant rendu -->
|
||||||
<td><input class="texte2_off maxwidthonsmartphone" type="text" name="txtRendu" value="0" disabled /></td>
|
<td><input class="texte2_off maxwidth100onsmartphone" type="text" name="txtRendu" value="0" disabled /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@ -79,10 +79,11 @@ print '</form>';
|
|||||||
/*print $langs->trans("CashDeskBankCash").': '.$bankcashLink.'<br>';
|
/*print $langs->trans("CashDeskBankCash").': '.$bankcashLink.'<br>';
|
||||||
print $langs->trans("CashDeskBankCB").': '.$bankcbLink.'<br>';
|
print $langs->trans("CashDeskBankCB").': '.$bankcbLink.'<br>';
|
||||||
print $langs->trans("CashDeskBankCheque").': '.$bankchequeLink.'<br>';*/
|
print $langs->trans("CashDeskBankCheque").': '.$bankchequeLink.'<br>';*/
|
||||||
|
print '<div class="clearboth">';
|
||||||
if (!empty($_SESSION["CASHDESK_ID_WAREHOUSE"]) && ! empty($conf->stock->enabled) && empty($conf->global->CASHDESK_NO_DECREASE_STOCK))
|
if (!empty($_SESSION["CASHDESK_ID_WAREHOUSE"]) && ! empty($conf->stock->enabled) && empty($conf->global->CASHDESK_NO_DECREASE_STOCK))
|
||||||
{
|
{
|
||||||
print $langs->trans("CashDeskWarehouse").': '.$warehouseLink;
|
print $langs->trans("CashDeskWarehouse").': '.$warehouseLink;
|
||||||
}
|
}
|
||||||
print '</li></ul>';
|
print '</div></li></ul>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print "\n".'<!-- menu.tpl.php end -->'."\n";
|
print "\n".'<!-- menu.tpl.php end -->'."\n";
|
||||||
|
|||||||
@ -32,7 +32,6 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
|
||||||
$obj_facturation = unserialize($_SESSION['serObjFacturation']);
|
$obj_facturation = unserialize($_SESSION['serObjFacturation']);
|
||||||
unset ($_SESSION['serObjFacturation']);
|
|
||||||
|
|
||||||
$action =GETPOST('action','aZ09');
|
$action =GETPOST('action','aZ09');
|
||||||
$bankaccountid=GETPOST('cashdeskbank');
|
$bankaccountid=GETPOST('cashdeskbank');
|
||||||
@ -159,7 +158,6 @@ switch ($action)
|
|||||||
$note .= $_POST['txtaNotes'];
|
$note .= $_POST['txtaNotes'];
|
||||||
dol_syslog("obj_facturation->getSetPaymentMode()=".$obj_facturation->getSetPaymentMode()." mode_reglement_id=".$mode_reglement_id." cond_reglement_id=".$cond_reglement_id);
|
dol_syslog("obj_facturation->getSetPaymentMode()=".$obj_facturation->getSetPaymentMode()." mode_reglement_id=".$mode_reglement_id." cond_reglement_id=".$cond_reglement_id);
|
||||||
|
|
||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
|
|
||||||
@ -255,6 +253,7 @@ switch ($action)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
setEventMessage($invoice->error, $invoice->errors, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -287,6 +286,7 @@ switch ($action)
|
|||||||
if ($invoice->type == $invoice::TYPE_CREDIT_NOTE) $result=$mouvP->reception($user, $invoice->lines[$i]->fk_product, $warehouseidtodecrease, $invoice->lines[$i]->qty, $invoice->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarrFromPos",$invoice->newref));
|
if ($invoice->type == $invoice::TYPE_CREDIT_NOTE) $result=$mouvP->reception($user, $invoice->lines[$i]->fk_product, $warehouseidtodecrease, $invoice->lines[$i]->qty, $invoice->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarrFromPos",$invoice->newref));
|
||||||
else $result=$mouvP->livraison($user, $invoice->lines[$i]->fk_product, $warehouseidtodecrease, $invoice->lines[$i]->qty, $invoice->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarrFromPos",$invoice->newref));
|
else $result=$mouvP->livraison($user, $invoice->lines[$i]->fk_product, $warehouseidtodecrease, $invoice->lines[$i]->qty, $invoice->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarrFromPos",$invoice->newref));
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
|
setEventMessages($mouvP->error, $mouvP->errors, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -331,15 +331,18 @@ switch ($action)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
setEventMessages($invoice->error, $invoice->errors, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
setEventMessages($invoice->error, $invoice->errors, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
@ -348,14 +351,14 @@ switch ($action)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
$redirection = 'affIndex.php?facid='.$id.'&mesg=ErrorFailedToCreateInvoice'; // Ajout de l'id de la facture, pour l'inclure dans un lien pointant directement vers celle-ci dans Dolibarr
|
$redirection = 'affIndex.php?facid='.$id.'&error=1&mesg=ErrorFailedToCreateInvoice'; // Ajout de l'id de la facture, pour l'inclure dans un lien pointant directement vers celle-ci dans Dolibarr
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// End of case: valide_facture
|
// End of case: valide_facture
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unset ($_SESSION['serObjFacturation']);
|
||||||
|
|
||||||
$_SESSION['serObjFacturation'] = serialize($obj_facturation);
|
$_SESSION['serObjFacturation'] = serialize($obj_facturation);
|
||||||
|
|
||||||
|
|||||||
@ -525,7 +525,7 @@ if ($resql)
|
|||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
@ -533,7 +533,7 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view products
|
// If the user can view products
|
||||||
|
|||||||
@ -803,7 +803,7 @@ if ($resql)
|
|||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view other users
|
// If the user can view other users
|
||||||
@ -811,7 +811,7 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
@ -821,7 +821,7 @@ if ($resql)
|
|||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
||||||
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
||||||
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1);
|
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1);
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
|
|||||||
@ -3429,7 +3429,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
print $object->situation_counter;
|
print $object->situation_counter;
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td align="right" class="nowrap">';
|
print '<td class="nowrap">';
|
||||||
|
|
||||||
$prevsits_total_amount = 0;
|
$prevsits_total_amount = 0;
|
||||||
foreach ($prevsits as $situation) {
|
foreach ($prevsits as $situation) {
|
||||||
@ -3437,9 +3437,9 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
}
|
}
|
||||||
$prevsits_total_amount += $object->total_ht;
|
$prevsits_total_amount += $object->total_ht;
|
||||||
|
|
||||||
print price($prevsits_total_amount);
|
print price($prevsits_total_amount, 0, $langs, 1, -1, -1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency) );
|
||||||
print '</td>';
|
|
||||||
print '<td>' . $langs->trans('Currency' . $conf->currency) . '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Previous situation(s) deduction(s)
|
// Previous situation(s) deduction(s)
|
||||||
for ($i = 0; $i < $cprevsits; $i++) {
|
for ($i = 0; $i < $cprevsits; $i++) {
|
||||||
@ -3450,10 +3450,9 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
print $prevsits[$i]->situation_counter;
|
print $prevsits[$i]->situation_counter;
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
|
|
||||||
print '<td align="right" class="nowrap">';
|
print '<td class="nowrap">';
|
||||||
print '- ' . price($prevsits[$i]->total_ht);
|
print '- ' . price($prevsits[$i]->total_ht, 0, $langs, 1, -1, -1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency) );
|
||||||
print '</td>';
|
print '</td></tr>';
|
||||||
print '<td>' . $langs->trans('Currency' . $conf->currency) . '</td></tr>';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -191,7 +191,7 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
|
|||||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
// Do we click on purge search criteria ?
|
// Do we click on purge search criteria ?
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter") || GETPOST("button_removefilter.x")) // Both test are required to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter") || GETPOST("button_removefilter.x")) // All tests are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
$search_user='';
|
$search_user='';
|
||||||
$search_sale='';
|
$search_sale='';
|
||||||
@ -350,7 +350,7 @@ llxHeader('',$langs->trans('CustomersInvoices'),'EN:Customers_Invoices|FR:Factur
|
|||||||
|
|
||||||
$sql = 'SELECT';
|
$sql = 'SELECT';
|
||||||
if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
|
if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
|
||||||
$sql.= ' f.rowid as facid, f.facnumber, f.ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.total as total_ht, f.tva as total_vat, f.total_ttc,';
|
$sql.= ' f.rowid as id, f.facnumber as ref, f.ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.total as total_ht, f.tva as total_vat, f.total_ttc,';
|
||||||
$sql.= ' f.localtax1 as total_localtax1, f.localtax2 as total_localtax2,';
|
$sql.= ' f.localtax1 as total_localtax1, f.localtax2 as total_localtax2,';
|
||||||
$sql.= ' f.datef as df, f.date_lim_reglement as datelimite,';
|
$sql.= ' f.datef as df, f.date_lim_reglement as datelimite,';
|
||||||
$sql.= ' f.paye as paye, f.fk_statut,';
|
$sql.= ' f.paye as paye, f.fk_statut,';
|
||||||
@ -717,7 +717,7 @@ if ($resql)
|
|||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
@ -725,7 +725,7 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
@ -735,7 +735,7 @@ if ($resql)
|
|||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
||||||
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
||||||
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1);
|
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1);
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
@ -998,8 +998,8 @@ if ($resql)
|
|||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
|
|
||||||
$datelimit=$db->jdate($obj->datelimite);
|
$datelimit=$db->jdate($obj->datelimite);
|
||||||
$facturestatic->id=$obj->facid;
|
$facturestatic->id=$obj->id;
|
||||||
$facturestatic->ref=$obj->facnumber;
|
$facturestatic->ref=$obj->ref;
|
||||||
$facturestatic->type=$obj->type;
|
$facturestatic->type=$obj->type;
|
||||||
$facturestatic->statut=$obj->fk_statut;
|
$facturestatic->statut=$obj->fk_statut;
|
||||||
$facturestatic->date_lim_reglement=$db->jdate($obj->datelimite);
|
$facturestatic->date_lim_reglement=$db->jdate($obj->datelimite);
|
||||||
@ -1025,9 +1025,9 @@ if ($resql)
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td style="min-width: 20px" class="nobordernopadding nowrap">';
|
print '<td style="min-width: 20px" class="nobordernopadding nowrap">';
|
||||||
$filename=dol_sanitizeFileName($obj->facnumber);
|
$filename=dol_sanitizeFileName($obj->ref);
|
||||||
$filedir=$conf->facture->dir_output . '/' . dol_sanitizeFileName($obj->facnumber);
|
$filedir=$conf->facture->dir_output . '/' . dol_sanitizeFileName($obj->ref);
|
||||||
$urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->facid;
|
$urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->id;
|
||||||
print $formfile->getDocumentsLink($facturestatic->element, $filename, $filedir);
|
print $formfile->getDocumentsLink($facturestatic->element, $filename, $filedir);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -1262,8 +1262,8 @@ if ($resql)
|
|||||||
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
|
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
|
||||||
{
|
{
|
||||||
$selected=0;
|
$selected=0;
|
||||||
if (in_array($obj->facid, $arrayofselected)) $selected=1;
|
if (in_array($obj->id, $arrayofselected)) $selected=1;
|
||||||
print '<input id="cb'.$obj->facid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->facid.'"'.($selected?' checked="checked"':'').'>';
|
print '<input id="cb'.$obj->id.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->id.'"'.($selected?' checked="checked"':'').'>';
|
||||||
}
|
}
|
||||||
print '</td>' ;
|
print '</td>' ;
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|||||||
@ -358,7 +358,7 @@ if ($resql)
|
|||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user,0,1,'maxwidth300');
|
$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user,0,1,'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view other users
|
// If the user can view other users
|
||||||
@ -366,7 +366,7 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view categories of products
|
// If the user can view categories of products
|
||||||
@ -376,7 +376,7 @@ if ($resql)
|
|||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
||||||
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
||||||
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1);
|
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1);
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -309,10 +309,11 @@ class FormOther
|
|||||||
* @param string $htmlname Name of combo list
|
* @param string $htmlname Name of combo list
|
||||||
* @param int $nocateg Show also an entry "Not categorized"
|
* @param int $nocateg Show also an entry "Not categorized"
|
||||||
* @param int $showempty Add also an empty line
|
* @param int $showempty Add also an empty line
|
||||||
|
* @param string $morecss More CSS
|
||||||
* @return string Html combo list code
|
* @return string Html combo list code
|
||||||
* @see select_all_categories
|
* @see select_all_categories
|
||||||
*/
|
*/
|
||||||
function select_categories($type,$selected=0,$htmlname='search_categ',$nocateg=0,$showempty=1)
|
function select_categories($type, $selected=0, $htmlname='search_categ', $nocateg=0, $showempty=1, $morecss='')
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
@ -328,18 +329,16 @@ class FormOther
|
|||||||
$tab_categs = $static_categs->get_full_arbo($type);
|
$tab_categs = $static_categs->get_full_arbo($type);
|
||||||
|
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
$nodatarole = '';
|
|
||||||
// Enhance with select2
|
// Enhance with select2
|
||||||
if ($conf->use_javascript_ajax)
|
if ($conf->use_javascript_ajax)
|
||||||
{
|
{
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
||||||
$comboenhancement = ajax_combobox('select_categ_'.$htmlname);
|
$comboenhancement = ajax_combobox('select_categ_'.$htmlname);
|
||||||
$moreforfilter.=$comboenhancement;
|
$moreforfilter.=$comboenhancement;
|
||||||
$nodatarole=($comboenhancement?' data-role="none"':'');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print a select with each of them
|
// Print a select with each of them
|
||||||
$moreforfilter.='<select class="flat minwidth100" id="select_categ_'.$htmlname.'" name="'.$htmlname.'"'.$nodatarole.'>';
|
$moreforfilter.='<select class="flat minwidth100'.($morecss?' '.$morecss:'').'" id="select_categ_'.$htmlname.'" name="'.$htmlname.'">';
|
||||||
if ($showempty) $moreforfilter.='<option value="0"> </option>'; // Should use -1 to say nothing
|
if ($showempty) $moreforfilter.='<option value="0"> </option>'; // Should use -1 to say nothing
|
||||||
|
|
||||||
if (is_array($tab_categs))
|
if (is_array($tab_categs))
|
||||||
@ -379,7 +378,6 @@ class FormOther
|
|||||||
$langs->load('users');
|
$langs->load('users');
|
||||||
|
|
||||||
$out = '';
|
$out = '';
|
||||||
$nodatarole = '';
|
|
||||||
// Enhance with select2
|
// Enhance with select2
|
||||||
if ($conf->use_javascript_ajax)
|
if ($conf->use_javascript_ajax)
|
||||||
{
|
{
|
||||||
@ -389,11 +387,10 @@ class FormOther
|
|||||||
if ($comboenhancement)
|
if ($comboenhancement)
|
||||||
{
|
{
|
||||||
$out.=$comboenhancement;
|
$out.=$comboenhancement;
|
||||||
$nodatarole=($comboenhancement?' data-role="none"':'');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Select each sales and print them in a select input
|
// Select each sales and print them in a select input
|
||||||
$out.='<select class="flat'.($morecss?' '.$morecss:'').'" id="'.$htmlname.'" name="'.$htmlname.'"'.$nodatarole.'>';
|
$out.='<select class="flat'.($morecss?' '.$morecss:'').'" id="'.$htmlname.'" name="'.$htmlname.'">';
|
||||||
if ($showempty) $out.='<option value="0"> </option>';
|
if ($showempty) $out.='<option value="0"> </option>';
|
||||||
|
|
||||||
// Get list of users allowed to be viewed
|
// Get list of users allowed to be viewed
|
||||||
|
|||||||
@ -39,8 +39,11 @@ if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML',1);
|
|||||||
require_once '../main.inc.php';
|
require_once '../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
|
||||||
|
if (GETPOST('lang', 'aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL by the main.inc.php
|
||||||
|
|
||||||
$langs->load("main");
|
$langs->load("main");
|
||||||
$langs->load("agenda");
|
$langs->load("agenda");
|
||||||
|
|
||||||
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
||||||
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@ if (empty($keyforselect) || empty($keyforelement) || empty($keyforaliasextra))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add extra fields
|
// Add extra fields
|
||||||
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = '".$keyforselect."' AND type != 'separate' AND entity IN (0, ".$conf->entity.')';
|
$sql="SELECT name, label, type, param, fieldcomputed, fielddefault FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = '".$keyforselect."' AND type != 'separate' AND entity IN (0, ".$conf->entity.')';
|
||||||
//print $sql;
|
//print $sql;
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
if ($resql) // This can fail when class is used on old database (during migration for example)
|
||||||
@ -42,11 +42,24 @@ if ($resql) // This can fail when class is used on old database (during migra
|
|||||||
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
|
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ($obj->type!='separate') {
|
if ($obj->type!='separate')
|
||||||
|
{
|
||||||
|
// If not a computed field
|
||||||
|
if (empty($obj->fieldcomputed))
|
||||||
|
{
|
||||||
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
|
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
|
||||||
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
|
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
|
||||||
$this->export_entities_array[$r][$fieldname]=$keyforelement;
|
$this->export_entities_array[$r][$fieldname]=$keyforelement;
|
||||||
}
|
}
|
||||||
|
// If this is a computed field
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
|
||||||
|
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter.'Compute';
|
||||||
|
$this->export_special_array[$r][$fieldname]=$obj->fieldcomputed;
|
||||||
|
$this->export_entities_array[$r][$fieldname]=$keyforelement;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// End add axtra fields
|
// End add axtra fields
|
||||||
|
|||||||
@ -47,6 +47,8 @@ if (! defined('DISABLE_SELECT2')) define('DISABLE_SELECT2',1);
|
|||||||
|
|
||||||
require_once '../main.inc.php';
|
require_once '../main.inc.php';
|
||||||
|
|
||||||
|
if (GETPOST('lang', 'aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL by the main.inc.php
|
||||||
|
|
||||||
$langs->load("main");
|
$langs->load("main");
|
||||||
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
||||||
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
||||||
|
|||||||
@ -1891,6 +1891,12 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity,
|
|||||||
if ($fuser->rights->fournisseur->facture->{$lire}) $accessallowed=1;
|
if ($fuser->rights->fournisseur->facture->{$lire}) $accessallowed=1;
|
||||||
$original_file=$conf->fournisseur->facture->dir_output.'/'.$original_file;
|
$original_file=$conf->fournisseur->facture->dir_output.'/'.$original_file;
|
||||||
}
|
}
|
||||||
|
// Wrapping pour les apercu supplier invoice
|
||||||
|
elseif (($modulepart == 'apercuexpensereport') && !empty($conf->expensereport->dir_output))
|
||||||
|
{
|
||||||
|
if ($fuser->rights->expensereport->{$lire}) $accessallowed=1;
|
||||||
|
$original_file=$conf->expensereport->dir_output.'/'.$original_file;
|
||||||
|
}
|
||||||
// Wrapping pour les images des stats propales
|
// Wrapping pour les images des stats propales
|
||||||
elseif ($modulepart == 'propalstats' && !empty($conf->propal->dir_temp))
|
elseif ($modulepart == 'propalstats' && !empty($conf->propal->dir_temp))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -414,6 +414,9 @@ function GETPOST($paramname, $check='', $method=0, $filter=NULL, $options=NULL)
|
|||||||
case 'intcomma':
|
case 'intcomma':
|
||||||
if (preg_match('/[^0-9,]+/i',$out)) $out='';
|
if (preg_match('/[^0-9,]+/i',$out)) $out='';
|
||||||
break;
|
break;
|
||||||
|
case 'intcomma':
|
||||||
|
if (preg_match('/[^0-9,]+/i',$out)) $out='';
|
||||||
|
break;
|
||||||
case 'alpha':
|
case 'alpha':
|
||||||
$out=trim($out);
|
$out=trim($out);
|
||||||
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
||||||
@ -1166,6 +1169,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
if ($object->element == 'supplier_proposal') $modulepart='supplier_proposal';
|
if ($object->element == 'supplier_proposal') $modulepart='supplier_proposal';
|
||||||
if ($object->element == 'order_supplier') $modulepart='supplier_order';
|
if ($object->element == 'order_supplier') $modulepart='supplier_order';
|
||||||
if ($object->element == 'invoice_supplier') $modulepart='supplier_invoice';
|
if ($object->element == 'invoice_supplier') $modulepart='supplier_invoice';
|
||||||
|
if ($object->element == 'expensereport') $modulepart='expensereport';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($object->element == 'product')
|
if ($object->element == 'product')
|
||||||
@ -1195,7 +1199,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
{
|
{
|
||||||
$phototoshow='';
|
$phototoshow='';
|
||||||
// Check if a preview file is available
|
// Check if a preview file is available
|
||||||
if (in_array($modulepart, array('propal', 'commande', 'facture', 'ficheinter', 'contract', 'supplier_order', 'supplier_proposal', 'supplier_invoice')) && class_exists("Imagick"))
|
if (in_array($modulepart, array('propal', 'commande', 'facture', 'ficheinter', 'contract', 'supplier_order', 'supplier_proposal', 'supplier_invoice', 'expensereport')) && class_exists("Imagick"))
|
||||||
{
|
{
|
||||||
$objectref = dol_sanitizeFileName($object->ref);
|
$objectref = dol_sanitizeFileName($object->ref);
|
||||||
$dir_output = $conf->$modulepart->dir_output . "/";
|
$dir_output = $conf->$modulepart->dir_output . "/";
|
||||||
|
|||||||
@ -166,8 +166,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
-- Accountancy - Supplier invoice
|
-- Accountancy - Supplier invoice
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1600__+MAX_llx_menu__, 'accountancy', 'supplier_bills', 6__+MAX_llx_menu__, '/fourn/facture/list.php?leftmenu=suppliers_bills', 'BillsSuppliers', 0, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1600__+MAX_llx_menu__, 'accountancy', 'supplier_bills', 6__+MAX_llx_menu__, '/fourn/facture/list.php?leftmenu=suppliers_bills', 'BillsSuppliers', 0, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1601__+MAX_llx_menu__, 'accountancy', '', 1600__+MAX_llx_menu__, '/fourn/facture/card.php?action=create&leftmenu=suppliers_bills', 'NewBill', 1, 'bills', '$user->rights->fournisseur->facture->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1601__+MAX_llx_menu__, 'accountancy', '', 1600__+MAX_llx_menu__, '/fourn/facture/card.php?action=create&leftmenu=suppliers_bills', 'NewBill', 1, 'bills', '$user->rights->fournisseur->facture->creer', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1602__+MAX_llx_menu__, 'accountancy', '', 1600__+MAX_llx_menu__, '/fourn/facture/impayees.php?leftmenu=suppliers_bills', 'Unpaid', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1602__+MAX_llx_menu__, 'accountancy', '', 1600__+MAX_llx_menu__, '/fourn/facture/list.php?leftmenu=suppliers_bills', 'List', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1603__+MAX_llx_menu__, 'accountancy', '', 1600__+MAX_llx_menu__, '/fourn/facture/paiement.php?leftmenu=suppliers_bills', 'Payments', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1603__+MAX_llx_menu__, 'accountancy', '', 1600__+MAX_llx_menu__, '/fourn/facture/paiement.php?leftmenu=suppliers_bills', 'Payments', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 2, __ENTITY__);
|
||||||
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1605__+MAX_llx_menu__, 'accountancy', '', 1603__+MAX_llx_menu__, '/fourn/facture/rapport.php?leftmenu=suppliers_bills', 'Reporting', 2, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1604__+MAX_llx_menu__, 'accountancy', '', 1600__+MAX_llx_menu__, '/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier', 'Statistics', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 8, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1604__+MAX_llx_menu__, 'accountancy', '', 1600__+MAX_llx_menu__, '/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier', 'Statistics', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 8, __ENTITY__);
|
||||||
-- Accountancy - Customer invoice
|
-- Accountancy - Customer invoice
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1700__+MAX_llx_menu__, 'accountancy', 'customer_bills', 6__+MAX_llx_menu__, '/compta/facture/list.php?leftmenu=customers_bills', 'BillsCustomers', 0, 'bills', '$user->rights->facture->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1700__+MAX_llx_menu__, 'accountancy', 'customer_bills', 6__+MAX_llx_menu__, '/compta/facture/list.php?leftmenu=customers_bills', 'BillsCustomers', 0, 'bills', '$user->rights->facture->lire', '', 2, 3, __ENTITY__);
|
||||||
@ -275,9 +276,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2603__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/bankentries.php?leftmenu=bank', 'ListTransactions', 1, 'banks', '$user->rights->banque->lire', '', 0, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2603__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/bankentries.php?leftmenu=bank', 'ListTransactions', 1, 'banks', '$user->rights->banque->lire', '', 0, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2604__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/budget.php?leftmenu=bank', 'ListTransactionsByCategory', 1, 'banks', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2604__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/budget.php?leftmenu=bank', 'ListTransactionsByCategory', 1, 'banks', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2606__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/transfer.php?leftmenu=bank', 'BankTransfers', 1, 'banks', '$user->rights->banque->transfer', '', 0, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2606__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/transfer.php?leftmenu=bank', 'BankTransfers', 1, 'banks', '$user->rights->banque->transfer', '', 0, 5, __ENTITY__);
|
||||||
-- Account - Categories
|
-- Bank - Categories
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2650__+MAX_llx_menu__, 'accountancy', 'cat', 14__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=5', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2650__+MAX_llx_menu__, 'accountancy', 'cat', 14__+MAX_llx_menu__, '/categories/index.php?leftmenu=bank&type=5', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2651__+MAX_llx_menu__, 'accountancy', '', 2650__+MAX_llx_menu__, '/categories/card.php?action=create&type=5', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2651__+MAX_llx_menu__, 'accountancy', '', 2650__+MAX_llx_menu__, '/categories/card.php?leftmenu=bank&action=create&type=5', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
||||||
-- Project
|
-- Project
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3600__+MAX_llx_menu__, 'project', 'projects', 7__+MAX_llx_menu__, '/projet/index.php?leftmenu=projects', 'Projects', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3600__+MAX_llx_menu__, 'project', 'projects', 7__+MAX_llx_menu__, '/projet/index.php?leftmenu=projects', 'Projects', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3601__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/card.php?leftmenu=projects&action=create', 'NewProject', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3601__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/card.php?leftmenu=projects&action=create', 'NewProject', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
|
||||||
@ -287,8 +288,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?leftmenu=projects&action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?leftmenu=projects&action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3703__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/activity/perweek.php?leftmenu=projects', 'NewTimeSpent', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3704__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/stats/index.php?leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 4, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3704__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/tasks/stats/index.php?leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 4, __ENTITY__);
|
|
||||||
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3400__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/perweek.php?leftmenu=projects', 'NewTimeSpent', 0, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
|
||||||
|
|
||||||
-- Project - Categories
|
-- Project - Categories
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3804__+MAX_llx_menu__, 'project', 'cat', 3__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=6', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3804__+MAX_llx_menu__, 'project', 'cat', 3__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=6', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
||||||
|
|||||||
@ -300,6 +300,8 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
|
|||||||
// We update newmenu for special dynamic menus
|
// We update newmenu for special dynamic menus
|
||||||
if ($conf->banque->enabled && $user->rights->banque->lire && $mainmenu == 'bank') // Entry for each bank account
|
if ($conf->banque->enabled && $user->rights->banque->lire && $mainmenu == 'bank') // Entry for each bank account
|
||||||
{
|
{
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Required for to get Account::TYPE_CASH for example
|
||||||
|
|
||||||
$sql = "SELECT rowid, label, courant, rappro, courant";
|
$sql = "SELECT rowid, label, courant, rappro, courant";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
|
||||||
$sql.= " WHERE entity = ".$conf->entity;
|
$sql.= " WHERE entity = ".$conf->entity;
|
||||||
@ -470,10 +472,12 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
|
|||||||
// Menu level > 0
|
// Menu level > 0
|
||||||
if ($menu_array[$i]['level'] > 0)
|
if ($menu_array[$i]['level'] > 0)
|
||||||
{
|
{
|
||||||
|
$cssmenu = '';
|
||||||
|
if ($menu_array[$i]['url']) $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/','',$menu_array[$i]['url']));
|
||||||
|
|
||||||
if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled.
|
if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled.
|
||||||
{
|
{
|
||||||
print '<div class="menu_contenu">'.$tabstring;
|
print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring;
|
||||||
//print $lastlevel0;
|
|
||||||
if ($menu_array[$i]['url']) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
|
if ($menu_array[$i]['url']) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
|
||||||
else print '<span class="vsmenu">';
|
else print '<span class="vsmenu">';
|
||||||
print $menu_array[$i]['titre'];
|
print $menu_array[$i]['titre'];
|
||||||
@ -485,7 +489,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
|
|||||||
}
|
}
|
||||||
else if ($showmenu && $lastlevel0 == 'enabled') // Not enabled but visible (so greyed), except if parent was not enabled.
|
else if ($showmenu && $lastlevel0 == 'enabled') // Not enabled but visible (so greyed), except if parent was not enabled.
|
||||||
{
|
{
|
||||||
print '<div class="menu_contenu">'.$tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font><br></div>'."\n";
|
print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font><br></div>'."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -811,7 +811,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_paid&search_status=2",$langs->trans("BillShortStatusPaid"),2,$user->rights->facture->lire);
|
$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_paid&search_status=2",$langs->trans("BillShortStatusPaid"),2,$user->rights->facture->lire);
|
||||||
$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_canceled&search_status=3",$langs->trans("BillShortStatusCanceled"),2,$user->rights->facture->lire);
|
$newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_canceled&search_status=3",$langs->trans("BillShortStatusCanceled"),2,$user->rights->facture->lire);
|
||||||
}
|
}
|
||||||
$newmenu->add("/compta/facture/fiche-rec.php",$langs->trans("ListOfTemplates"),1,$user->rights->facture->lire);
|
$newmenu->add("/compta/facture/fiche-rec.php",$langs->trans("ListOfTemplates"),1,$user->rights->facture->creer); // No need to see recurring invoices, if user has no permission to create invoice.
|
||||||
|
|
||||||
$newmenu->add("/compta/paiement/list.php",$langs->trans("Payments"),1,$user->rights->facture->lire);
|
$newmenu->add("/compta/paiement/list.php",$langs->trans("Payments"),1,$user->rights->facture->lire);
|
||||||
|
|
||||||
@ -1322,9 +1322,10 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
$newmenu->add("/projet/activity/index.php?leftmenu=tasks".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("Activities"), 0, $user->rights->projet->lire);
|
$newmenu->add("/projet/activity/index.php?leftmenu=tasks".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("Activities"), 0, $user->rights->projet->lire);
|
||||||
$newmenu->add("/projet/tasks.php?leftmenu=tasks&action=create", $langs->trans("NewTask"), 1, $user->rights->projet->creer);
|
$newmenu->add("/projet/tasks.php?leftmenu=tasks&action=create", $langs->trans("NewTask"), 1, $user->rights->projet->creer);
|
||||||
$newmenu->add("/projet/tasks/list.php?leftmenu=tasks".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("List"), 1, $user->rights->projet->lire);
|
$newmenu->add("/projet/tasks/list.php?leftmenu=tasks".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("List"), 1, $user->rights->projet->lire);
|
||||||
$newmenu->add("/projet/activity/perweek.php?leftmenu=tasks".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("NewTimeSpent"), 1, $user->rights->projet->lire);
|
|
||||||
$newmenu->add("/projet/tasks/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire);
|
$newmenu->add("/projet/tasks/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire);
|
||||||
|
|
||||||
|
$newmenu->add("/projet/activity/perweek.php?leftmenu=tasks".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("NewTimeSpent"), 0, $user->rights->projet->lire);
|
||||||
|
|
||||||
// All project i have permission on
|
// All project i have permission on
|
||||||
/*$newmenu->add("/projet/activity/index.php", $langs->trans("Activities"), 0, $user->rights->projet->lire && $user->rights->projet->lire);
|
/*$newmenu->add("/projet/activity/index.php", $langs->trans("Activities"), 0, $user->rights->projet->lire && $user->rights->projet->lire);
|
||||||
$newmenu->add("/projet/tasks.php?action=create", $langs->trans("NewTask"), 1, $user->rights->projet->creer && $user->rights->projet->creer);
|
$newmenu->add("/projet/tasks.php?action=create", $langs->trans("NewTask"), 1, $user->rights->projet->creer && $user->rights->projet->creer);
|
||||||
@ -1650,10 +1651,12 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
// Menu level > 0
|
// Menu level > 0
|
||||||
if ($menu_array[$i]['level'] > 0)
|
if ($menu_array[$i]['level'] > 0)
|
||||||
{
|
{
|
||||||
|
$cssmenu = '';
|
||||||
|
if ($menu_array[$i]['url']) $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/','',$menu_array[$i]['url']));
|
||||||
|
|
||||||
if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled.
|
if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled.
|
||||||
{
|
{
|
||||||
print '<div class="menu_contenu">'.$tabstring;
|
print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring;
|
||||||
//print $lastlevel0;
|
|
||||||
if ($menu_array[$i]['url']) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
|
if ($menu_array[$i]['url']) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
|
||||||
else print '<span class="vsmenu">';
|
else print '<span class="vsmenu">';
|
||||||
print $menu_array[$i]['titre'];
|
print $menu_array[$i]['titre'];
|
||||||
@ -1665,7 +1668,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
}
|
}
|
||||||
else if ($showmenu && $lastlevel0 == 'enabled') // Not enabled but visible (so greyed), except if parent was not enabled.
|
else if ($showmenu && $lastlevel0 == 'enabled') // Not enabled but visible (so greyed), except if parent was not enabled.
|
||||||
{
|
{
|
||||||
print '<div class="menu_contenu">'.$tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font><br></div>'."\n";
|
print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font><br></div>'."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -201,8 +201,12 @@ class MenuManager
|
|||||||
print '<div class="menu_top"></div>'."\n";
|
print '<div class="menu_top"></div>'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->menu->liste[$i]['level'] > 0) {
|
if ($this->menu->liste[$i]['level'] > 0)
|
||||||
print '<div class="menu_contenu">';
|
{
|
||||||
|
$cssmenu = '';
|
||||||
|
if ($this->menu->liste[$i]['url']) $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/','',$this->menu->liste[$i]['url']));
|
||||||
|
|
||||||
|
print '<div class="menu_contenu'.$cssmenu.'">';
|
||||||
|
|
||||||
if ($this->menu->liste[$i]['enabled'])
|
if ($this->menu->liste[$i]['enabled'])
|
||||||
{
|
{
|
||||||
|
|||||||
@ -215,6 +215,9 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
|||||||
*/
|
*/
|
||||||
public $descriptionlong;
|
public $descriptionlong;
|
||||||
|
|
||||||
|
|
||||||
|
// For exports
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Module export code
|
* @var string Module export code
|
||||||
*/
|
*/
|
||||||
@ -225,6 +228,19 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
|||||||
*/
|
*/
|
||||||
public $export_label;
|
public $export_label;
|
||||||
|
|
||||||
|
public $export_permission;
|
||||||
|
public $export_fields_array;
|
||||||
|
public $export_TypeFields_array;
|
||||||
|
public $export_entities_array;
|
||||||
|
public $export_special_array; // special or computed field
|
||||||
|
public $export_dependencies_array;
|
||||||
|
public $export_sql_start;
|
||||||
|
public $export_sql_end;
|
||||||
|
public $export_sql_order;
|
||||||
|
|
||||||
|
|
||||||
|
// For import
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Module import code
|
* @var string Module import code
|
||||||
*/
|
*/
|
||||||
@ -235,6 +251,7 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
|||||||
*/
|
*/
|
||||||
public $import_label;
|
public $import_label;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Module constant name
|
* @var string Module constant name
|
||||||
*/
|
*/
|
||||||
@ -343,6 +360,13 @@ class DolibarrModules // Can not be abstract, because we need to insta
|
|||||||
public $hidden = false;
|
public $hidden = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor. Define names, constants, directories, boxes, permissions
|
* Constructor. Define names, constants, directories, boxes, permissions
|
||||||
*
|
*
|
||||||
|
|||||||
@ -243,12 +243,13 @@ class modProjet extends DolibarrModules
|
|||||||
|
|
||||||
// Add fields for project
|
// Add fields for project
|
||||||
$this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array());
|
$this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array());
|
||||||
|
// Add extra fields for project
|
||||||
$keyforselect='projet'; $keyforelement='project'; $keyforaliasextra='extra';
|
$keyforselect='projet'; $keyforelement='project'; $keyforaliasextra='extra';
|
||||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
// Add fields for tasks
|
// Add fields for tasks
|
||||||
$this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pt.rowid'=>'RefTask','pt.label'=>'LabelTask','pt.dateo'=>"TaskDateStart",'pt.datee'=>"TaskDateEnd",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"PlannedWorkload",'pt.progress'=>"Progress",'pt.description'=>"TaskDescription"));
|
$this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pt.rowid'=>'RefTask','pt.label'=>'LabelTask','pt.dateo'=>"TaskDateStart",'pt.datee'=>"TaskDateEnd",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"PlannedWorkload",'pt.progress'=>"Progress",'pt.description'=>"TaskDescription"));
|
||||||
$this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('pt.rowid'=>'projecttask','pt.label'=>'projecttask','pt.dateo'=>"projecttask",'pt.datee'=>"projecttask",'pt.duration_effective'=>"projecttask",'pt.planned_workload'=>"projecttask",'pt.progress'=>"projecttask",'pt.description'=>"projecttask"));
|
$this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('pt.rowid'=>'projecttask','pt.label'=>'projecttask','pt.dateo'=>"projecttask",'pt.datee'=>"projecttask",'pt.duration_effective'=>"projecttask",'pt.planned_workload'=>"projecttask",'pt.progress'=>"projecttask",'pt.description'=>"projecttask"));
|
||||||
// Add extra fields
|
// Add extra fields for task
|
||||||
$keyforselect='projet_task'; $keyforelement='projecttask'; $keyforaliasextra='extra2';
|
$keyforselect='projet_task'; $keyforelement='projecttask'; $keyforaliasextra='extra2';
|
||||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
// End add extra fields
|
// End add extra fields
|
||||||
|
|||||||
@ -35,7 +35,10 @@ if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1);
|
|||||||
|
|
||||||
require_once '../main.inc.php';
|
require_once '../main.inc.php';
|
||||||
|
|
||||||
|
if (GETPOST('lang', 'aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL by the main.inc.php
|
||||||
|
|
||||||
$langs->load("main");
|
$langs->load("main");
|
||||||
|
|
||||||
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
||||||
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
||||||
|
|
||||||
|
|||||||
@ -51,7 +51,7 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($action==='BILL_VALIDATE' || $action === 'BILL_PAYED' || $action==='BILL_UNPAYED') {
|
if($action==='BILL_VALIDATE' || $action === 'BILL_PAYED' || $action==='BILL_UNPAYED' || $action === 'BILL_SENTBYMAIL') {
|
||||||
$amounts= (double) $object->total_ttc;
|
$amounts= (double) $object->total_ttc;
|
||||||
}
|
}
|
||||||
else if($action === 'PAYMENT_CUSTOMER_CREATE' || $action === 'PAYMENT_ADD_TO_BANK') {
|
else if($action === 'PAYMENT_CUSTOMER_CREATE' || $action === 'PAYMENT_ADD_TO_BANK') {
|
||||||
|
|||||||
@ -362,7 +362,7 @@ if ($resql)
|
|||||||
if ($user->rights->expensereport->readall || $user->rights->expensereport->lire_tous)
|
if ($user->rights->expensereport->readall || $user->rights->expensereport->lire_tous)
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre maxwidthonspartphone" align="left">';
|
print '<td class="liste_titre maxwidthonspartphone" align="left">';
|
||||||
print $form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
print $form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} else {
|
} else {
|
||||||
print '<td class="liste_titre"> </td>';
|
print '<td class="liste_titre"> </td>';
|
||||||
|
|||||||
@ -38,6 +38,7 @@ class Export
|
|||||||
var $array_export_sql_start=array(); // Tableau des "requetes sql"
|
var $array_export_sql_start=array(); // Tableau des "requetes sql"
|
||||||
var $array_export_sql_end=array(); // Tableau des "requetes sql"
|
var $array_export_sql_end=array(); // Tableau des "requetes sql"
|
||||||
var $array_export_sql_order=array(); // Tableau des "requetes sql"
|
var $array_export_sql_order=array(); // Tableau des "requetes sql"
|
||||||
|
|
||||||
var $array_export_fields=array(); // Tableau des listes de champ+libelle a exporter
|
var $array_export_fields=array(); // Tableau des listes de champ+libelle a exporter
|
||||||
var $array_export_TypeFields=array(); // Tableau des listes de champ+Type de filtre
|
var $array_export_TypeFields=array(); // Tableau des listes de champ+Type de filtre
|
||||||
var $array_export_FilterValue=array(); // Tableau des listes de champ+Valeur a filtrer
|
var $array_export_FilterValue=array(); // Tableau des listes de champ+Valeur a filtrer
|
||||||
@ -325,8 +326,12 @@ class Export
|
|||||||
case 'List':
|
case 'List':
|
||||||
if (is_numeric($ValueField))
|
if (is_numeric($ValueField))
|
||||||
$szFilterQuery=" ".$NameField."=".$ValueField;
|
$szFilterQuery=" ".$NameField."=".$ValueField;
|
||||||
|
else {
|
||||||
|
if (! (strpos($ValueField, '%') === false))
|
||||||
|
$szFilterQuery=" ".$NameField." LIKE '".$ValueField."'";
|
||||||
else
|
else
|
||||||
$szFilterQuery=" ".$NameField." = '".$ValueField."'";
|
$szFilterQuery=" ".$NameField." = '".$ValueField."'";
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dol_syslog("Error we try to forge an sql export request with a condition on a field with type '".$InfoFieldList[0]."' (defined into module descriptor) but this type is unknown/not supported. It looks like a bug into module descriptor.", LOG_ERR);
|
dol_syslog("Error we try to forge an sql export request with a condition on a field with type '".$InfoFieldList[0]."' (defined into module descriptor) but this type is unknown/not supported. It looks like a bug into module descriptor.", LOG_ERR);
|
||||||
@ -589,10 +594,8 @@ class Export
|
|||||||
|
|
||||||
$var=true;
|
$var=true;
|
||||||
|
|
||||||
while ($objp = $this->db->fetch_object($resql))
|
while ($obj = $this->db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
// Process special operations
|
// Process special operations
|
||||||
if (! empty($this->array_export_special[$indice]))
|
if (! empty($this->array_export_special[$indice]))
|
||||||
{
|
{
|
||||||
@ -604,14 +607,14 @@ class Export
|
|||||||
{
|
{
|
||||||
//$alias=$this->array_export_alias[$indice][$key];
|
//$alias=$this->array_export_alias[$indice][$key];
|
||||||
$alias=str_replace(array('.', '-','(',')'),'_',$key);
|
$alias=str_replace(array('.', '-','(',')'),'_',$key);
|
||||||
if ($objp->$alias < 0) $objp->$alias='';
|
if ($obj->$alias < 0) $obj->$alias='';
|
||||||
}
|
}
|
||||||
// Operation ZEROIFNEG
|
// Operation ZEROIFNEG
|
||||||
elseif ($this->array_export_special[$indice][$key]=='ZEROIFNEG')
|
elseif ($this->array_export_special[$indice][$key]=='ZEROIFNEG')
|
||||||
{
|
{
|
||||||
//$alias=$this->array_export_alias[$indice][$key];
|
//$alias=$this->array_export_alias[$indice][$key];
|
||||||
$alias=str_replace(array('.', '-','(',')'),'_',$key);
|
$alias=str_replace(array('.', '-','(',')'),'_',$key);
|
||||||
if ($objp->$alias < 0) $objp->$alias='0';
|
if ($obj->$alias < 0) $obj->$alias='0';
|
||||||
}
|
}
|
||||||
// Operation INVOICEREMAINTOPAY
|
// Operation INVOICEREMAINTOPAY
|
||||||
elseif ($this->array_export_special[$indice][$key]=='getRemainToPay')
|
elseif ($this->array_export_special[$indice][$key]=='getRemainToPay')
|
||||||
@ -619,7 +622,7 @@ class Export
|
|||||||
//$alias=$this->array_export_alias[$indice][$key];
|
//$alias=$this->array_export_alias[$indice][$key];
|
||||||
$alias=str_replace(array('.', '-','(',')'),'_',$key);
|
$alias=str_replace(array('.', '-','(',')'),'_',$key);
|
||||||
$remaintopay='';
|
$remaintopay='';
|
||||||
if ($objp->f_rowid > 0)
|
if ($obj->f_rowid > 0)
|
||||||
{
|
{
|
||||||
global $tmpobjforcomputecall;
|
global $tmpobjforcomputecall;
|
||||||
if (! is_object($tmpobjforcomputecall))
|
if (! is_object($tmpobjforcomputecall))
|
||||||
@ -627,21 +630,26 @@ class Export
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
$tmpobjforcomputecall=new Facture($this->db);
|
$tmpobjforcomputecall=new Facture($this->db);
|
||||||
}
|
}
|
||||||
$tmpobjforcomputecall->id = $objp->f_rowid;
|
$tmpobjforcomputecall->id = $obj->f_rowid;
|
||||||
$tmpobjforcomputecall->total_ttc = $objp->f_total_ttc;
|
$tmpobjforcomputecall->total_ttc = $obj->f_total_ttc;
|
||||||
$remaintopay=$tmpobjforcomputecall->getRemainToPay();
|
$remaintopay=$tmpobjforcomputecall->getRemainToPay();
|
||||||
}
|
}
|
||||||
$objp->$alias=$remaintopay;
|
$obj->$alias=$remaintopay;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->error='Operation '.$this->array_export_special[$indice][$key].' not supported.';
|
// TODO FIXME Export of compute field does not work. $obj containt $obj->alias_field and formulat will contains $obj->field
|
||||||
|
$computestring=$this->array_export_special[$indice][$key];
|
||||||
|
$tmp=dol_eval($computestring, 1, 0);
|
||||||
|
$obj->$alias=$tmp;
|
||||||
|
|
||||||
|
$this->error="ERROPNOTSUPPORTED. Operation ".$this->array_export_special[$indice][$key]." not supported. Export of 'computed' extrafields is not yet supported, please remove field.";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// end of special operation processing
|
// end of special operation processing
|
||||||
$objmodel->write_record($array_selected,$objp,$outputlangs,$this->array_export_TypeFields[$indice]);
|
$objmodel->write_record($array_selected,$obj,$outputlangs,$this->array_export_TypeFields[$indice]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Genere en-tete
|
// Genere en-tete
|
||||||
|
|||||||
@ -606,7 +606,9 @@ if ($step == 2 && $datatoexport)
|
|||||||
}
|
}
|
||||||
print img_object('',$entityicon).' '.$langs->trans($entitylang);
|
print img_object('',$entityicon).' '.$langs->trans($entitylang);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
$text=$langs->trans($label);
|
|
||||||
|
$text=(empty($objexport->array_export_special[0][$code])?'':'<i>').$langs->trans($label).(empty($objexport->array_export_special[0][$code])?'':'</i>');
|
||||||
|
|
||||||
$tablename=getablenamefromfield($code,$sqlmaxforexport);
|
$tablename=getablenamefromfield($code,$sqlmaxforexport);
|
||||||
$htmltext ='<b>'.$langs->trans("Name").":</b> ".$text.'<br>';
|
$htmltext ='<b>'.$langs->trans("Name").":</b> ".$text.'<br>';
|
||||||
if (! empty($objexport->array_export_special[0][$code]))
|
if (! empty($objexport->array_export_special[0][$code]))
|
||||||
@ -621,6 +623,11 @@ if ($step == 2 && $datatoexport)
|
|||||||
{
|
{
|
||||||
$htmltext.=$langs->trans("SourceExample").': <b>'.$objexport->array_export_examplevalues[0][$code].'</b><br>';
|
$htmltext.=$langs->trans("SourceExample").': <b>'.$objexport->array_export_examplevalues[0][$code].'</b><br>';
|
||||||
}
|
}
|
||||||
|
if (! empty($objexport->array_export_TypeFields[0][$code]))
|
||||||
|
{
|
||||||
|
$htmltext.=$langs->trans("Type").': <b>'.$objexport->array_export_TypeFields[0][$code].'</b><br>';
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($array_selected[$code]) && $array_selected[$code])
|
if (isset($array_selected[$code]) && $array_selected[$code])
|
||||||
{
|
{
|
||||||
// Selected fields
|
// Selected fields
|
||||||
@ -772,7 +779,6 @@ if ($step == 3 && $datatoexport)
|
|||||||
// on boucle sur les champs
|
// on boucle sur les champs
|
||||||
foreach($fieldsarray as $code => $label)
|
foreach($fieldsarray as $code => $label)
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
@ -794,15 +800,27 @@ if ($step == 3 && $datatoexport)
|
|||||||
// Field name
|
// Field name
|
||||||
$labelName=(! empty($fieldsarray[$code])?$fieldsarray[$code]:'');
|
$labelName=(! empty($fieldsarray[$code])?$fieldsarray[$code]:'');
|
||||||
$ValueFilter=(! empty($array_filtervalue[$code])?$array_filtervalue[$code]:'');
|
$ValueFilter=(! empty($array_filtervalue[$code])?$array_filtervalue[$code]:'');
|
||||||
$text=$langs->trans($labelName);
|
$text=(empty($objexport->array_export_special[0][$code])?'':'<i>').$langs->trans($labelName).(empty($objexport->array_export_special[0][$code])?'':'</i>');
|
||||||
|
|
||||||
$tablename=getablenamefromfield($code,$sqlmaxforexport);
|
$tablename=getablenamefromfield($code,$sqlmaxforexport);
|
||||||
$htmltext ='<b>'.$langs->trans("Name").':</b> '.$text.'<br>';
|
$htmltext ='<b>'.$langs->trans("Name").':</b> '.$text.'<br>';
|
||||||
|
if (! empty($objexport->array_export_special[0][$code]))
|
||||||
|
{
|
||||||
|
$htmltext.='<b>'.$langs->trans("ComputedField")." -> ".$langs->trans("Method")." :</b> ".$objexport->array_export_special[0][$code]."<br>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$htmltext.='<b>'.$langs->trans("Table")." -> ".$langs->trans("Field").":</b> ".$tablename." -> ".preg_replace('/^.*\./','',$code)."<br>";
|
$htmltext.='<b>'.$langs->trans("Table")." -> ".$langs->trans("Field").":</b> ".$tablename." -> ".preg_replace('/^.*\./','',$code)."<br>";
|
||||||
|
}
|
||||||
if (! empty($objexport->array_export_examplevalues[0][$code]))
|
if (! empty($objexport->array_export_examplevalues[0][$code]))
|
||||||
{
|
{
|
||||||
$htmltext.=$langs->trans("SourceExample").': <b>'.$objexport->array_export_examplevalues[0][$code].'</b><br>';
|
$htmltext.=$langs->trans("SourceExample").': <b>'.$objexport->array_export_examplevalues[0][$code].'</b><br>';
|
||||||
}
|
}
|
||||||
|
if (! empty($objexport->array_export_TypeFields[0][$code]))
|
||||||
|
{
|
||||||
|
$htmltext.=$langs->trans("Type").': <b>'.$objexport->array_export_TypeFields[0][$code].'</b><br>';
|
||||||
|
}
|
||||||
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->textwithpicto($text,$htmltext);
|
print $form->textwithpicto($text,$htmltext);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -957,7 +975,6 @@ if ($step == 4 && $datatoexport)
|
|||||||
$var=true;
|
$var=true;
|
||||||
foreach($array_selected as $code=>$value)
|
foreach($array_selected as $code=>$value)
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
$entity=(! empty($objexport->array_export_entities[0][$code])?$objexport->array_export_entities[0][$code]:$objexport->array_export_icon[0]);
|
$entity=(! empty($objexport->array_export_entities[0][$code])?$objexport->array_export_entities[0][$code]:$objexport->array_export_icon[0]);
|
||||||
@ -975,15 +992,30 @@ if ($step == 4 && $datatoexport)
|
|||||||
print img_object('',$entityicon).' '.$langs->trans($entitylang);
|
print img_object('',$entityicon).' '.$langs->trans($entitylang);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td>';
|
$labelName=$objexport->array_export_fields[0][$code];
|
||||||
$text=$langs->trans($objexport->array_export_fields[0][$code]);
|
|
||||||
|
$text=(empty($objexport->array_export_special[0][$code])?'':'<i>').$langs->trans($labelName).(empty($objexport->array_export_special[0][$code])?'':'</i>');
|
||||||
|
|
||||||
$tablename=getablenamefromfield($code,$sqlmaxforexport);
|
$tablename=getablenamefromfield($code,$sqlmaxforexport);
|
||||||
$htmltext ='<b>'.$langs->trans("Name").":</b> ".$text.'<br>';
|
$htmltext ='<b>'.$langs->trans("Name").':</b> '.$text.'<br>';
|
||||||
|
if (! empty($objexport->array_export_special[0][$code]))
|
||||||
|
{
|
||||||
|
$htmltext.='<b>'.$langs->trans("ComputedField")." -> ".$langs->trans("Method")." :</b> ".$objexport->array_export_special[0][$code]."<br>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$htmltext.='<b>'.$langs->trans("Table")." -> ".$langs->trans("Field").":</b> ".$tablename." -> ".preg_replace('/^.*\./','',$code)."<br>";
|
$htmltext.='<b>'.$langs->trans("Table")." -> ".$langs->trans("Field").":</b> ".$tablename." -> ".preg_replace('/^.*\./','',$code)."<br>";
|
||||||
|
}
|
||||||
if (! empty($objexport->array_export_examplevalues[0][$code]))
|
if (! empty($objexport->array_export_examplevalues[0][$code]))
|
||||||
{
|
{
|
||||||
$htmltext.=$langs->trans("SourceExample").': <b>'.$objexport->array_export_examplevalues[0][$code].'</b><br>';
|
$htmltext.=$langs->trans("SourceExample").': <b>'.$objexport->array_export_examplevalues[0][$code].'</b><br>';
|
||||||
}
|
}
|
||||||
|
if (! empty($objexport->array_export_TypeFields[0][$code]))
|
||||||
|
{
|
||||||
|
$htmltext.=$langs->trans("Type").': <b>'.$objexport->array_export_TypeFields[0][$code].'</b><br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<td>';
|
||||||
print $form->textwithpicto($text,$htmltext);
|
print $form->textwithpicto($text,$htmltext);
|
||||||
//print ' ('.$code.')';
|
//print ' ('.$code.')';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -2634,19 +2634,29 @@ elseif (! empty($object->id))
|
|||||||
// Create bill
|
// Create bill
|
||||||
if (! empty($conf->facture->enabled))
|
if (! empty($conf->facture->enabled))
|
||||||
{
|
{
|
||||||
if (! empty($conf->fournisseur->enabled) && ($object->statut >= 2 && $object->billed != 1)) // 2 means accepted
|
if (! empty($conf->fournisseur->enabled) && ($object->statut >= 2 && $object->statut != 7 && $object->billed != 1)) // statut 2 means approved, 7 means canceled
|
||||||
{
|
{
|
||||||
if ($user->rights->fournisseur->facture->creer)
|
if ($user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid.'">'.$langs->trans("CreateBill").'</a>';
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid.'">'.$langs->trans("CreateBill").'</a>';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($user->rights->fournisseur->commande->creer && $object->statut >= 2 && !empty($object->linkedObjectsIds['invoice_supplier']))
|
// Classify billed manually (need one invoice if module invoice is on, no condition on invoice if not)
|
||||||
|
if ($user->rights->fournisseur->commande->creer && $object->statut >= 2 && $object->statut != 7 && $object->billed != 1) // statut 2 means approved
|
||||||
|
{
|
||||||
|
if (empty($conf->facture->enabled))
|
||||||
|
{
|
||||||
|
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=classifybilled">'.$langs->trans("ClassifyBilled").'</a>';
|
||||||
|
}
|
||||||
|
else if (!empty($object->linkedObjectsIds['invoice_supplier']))
|
||||||
|
{
|
||||||
|
if ($user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=classifybilled">'.$langs->trans("ClassifyBilled").'</a>';
|
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=classifybilled">'.$langs->trans("ClassifyBilled").'</a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a remote order using WebService only if module is activated
|
// Create a remote order using WebService only if module is activated
|
||||||
|
|||||||
@ -537,12 +537,11 @@ if ($billed != '' && $billed >= 0) $sql .= " AND cf.billed = ".$billed;
|
|||||||
//Required triple check because statut=0 means draft filter
|
//Required triple check because statut=0 means draft filter
|
||||||
if (GETPOST('statut', 'alpha') !== '')
|
if (GETPOST('statut', 'alpha') !== '')
|
||||||
{
|
{
|
||||||
$sql .= " AND cf.fk_statut IN (".GETPOST('statut', 'alpha').")";
|
$sql .= " AND cf.fk_statut IN (".$db->escape(GETPOST('statut', 'alpha')).")";
|
||||||
}
|
}
|
||||||
if ($search_status != '' && $search_status >= 0)
|
if ($search_status != '' && $search_status >= 0)
|
||||||
{
|
{
|
||||||
if (strstr($search_status, ',')) $sql.=" AND cf.fk_statut IN (".$db->escape($search_status).")";
|
$sql.=" AND cf.fk_statut IN (".$db->escape($search_status).")";
|
||||||
else $sql.=" AND cf.fk_statut = ".$search_status;
|
|
||||||
}
|
}
|
||||||
if ($ordermonth > 0)
|
if ($ordermonth > 0)
|
||||||
{
|
{
|
||||||
@ -573,11 +572,11 @@ else if ($deliveryyear > 0)
|
|||||||
if ($search_town) $sql.= natural_search('s.town', $search_town);
|
if ($search_town) $sql.= natural_search('s.town', $search_town);
|
||||||
if ($search_zip) $sql.= natural_search("s.zip",$search_zip);
|
if ($search_zip) $sql.= natural_search("s.zip",$search_zip);
|
||||||
if ($search_state) $sql.= natural_search("state.nom",$search_state);
|
if ($search_state) $sql.= natural_search("state.nom",$search_state);
|
||||||
if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')';
|
if ($search_country) $sql .= " AND s.fk_pays IN (".$db->escape($search_country).')';
|
||||||
if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')';
|
if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$db->escape($search_type_thirdparty).')';
|
||||||
if ($search_company) $sql .= natural_search('s.nom', $search_company);
|
if ($search_company) $sql .= natural_search('s.nom', $search_company);
|
||||||
if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
|
if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$db->escape($search_sale);
|
||||||
if ($search_user > 0) $sql.= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='supplier_order' AND tc.source='internal' AND ec.element_id = cf.rowid AND ec.fk_socpeople = ".$search_user;
|
if ($search_user > 0) $sql.= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='supplier_order' AND tc.source='internal' AND ec.element_id = cf.rowid AND ec.fk_socpeople = ".$db->escape($search_user);
|
||||||
if ($search_total_ht != '') $sql.= natural_search('cf.total_ht', $search_total_ht, 1);
|
if ($search_total_ht != '') $sql.= natural_search('cf.total_ht', $search_total_ht, 1);
|
||||||
if ($search_total_vat != '') $sql.= natural_search('cf.tva', $search_total_vat, 1);
|
if ($search_total_vat != '') $sql.= natural_search('cf.tva', $search_total_vat, 1);
|
||||||
if ($search_total_ttc != '') $sql.= natural_search('cf.total_ttc', $search_total_ttc, 1);
|
if ($search_total_ttc != '') $sql.= natural_search('cf.total_ttc', $search_total_ttc, 1);
|
||||||
@ -833,7 +832,7 @@ if ($resql)
|
|||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view other users
|
// If the user can view other users
|
||||||
@ -841,7 +840,7 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
@ -851,7 +850,7 @@ if ($resql)
|
|||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
||||||
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
||||||
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1);
|
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1);
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
|
|||||||
@ -635,7 +635,7 @@ if ($resql)
|
|||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
@ -643,7 +643,7 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
$moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
|
||||||
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
@ -653,7 +653,7 @@ if ($resql)
|
|||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
$moreforfilter.=$langs->trans('IncludingProductWithTag'). ': ';
|
||||||
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
$cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
|
||||||
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1);
|
$moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1);
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
|
|||||||
@ -1041,7 +1041,7 @@ else
|
|||||||
print '<input type="hidden" name="id" value="'.$object->id.'" />'."\n";
|
print '<input type="hidden" name="id" value="'.$object->id.'" />'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_fiche_head($head,'card',$langs->trans("CPTitreMenu"),0,'holiday');
|
dol_fiche_head($head, 'card', $langs->trans("CPTitreMenu"), -1, 'holiday');
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/holiday/list.php">'.$langs->trans("BackToList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/holiday/list.php">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
|
|||||||
@ -1195,12 +1195,15 @@ class Holiday extends CommonObject
|
|||||||
*
|
*
|
||||||
* @param boolean $stringlist If true return a string list of id. If false, return an array
|
* @param boolean $stringlist If true return a string list of id. If false, return an array
|
||||||
* @param boolean $type If true, read Dolibarr user list, if false, return vacation balance list.
|
* @param boolean $type If true, read Dolibarr user list, if false, return vacation balance list.
|
||||||
|
* @param string $filters Filters
|
||||||
* @return array|string|int Return an array
|
* @return array|string|int Return an array
|
||||||
*/
|
*/
|
||||||
function fetchUsers($stringlist=true,$type=true)
|
function fetchUsers($stringlist=true, $type=true, $filters='')
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::fetchUsers", LOG_DEBUG);
|
||||||
|
|
||||||
// Si vrai donc pour user Dolibarr
|
// Si vrai donc pour user Dolibarr
|
||||||
if ($stringlist)
|
if ($stringlist)
|
||||||
{
|
{
|
||||||
@ -1219,11 +1222,12 @@ class Holiday extends CommonObject
|
|||||||
$sql.= " OR u.admin = 1";
|
$sql.= " OR u.admin = 1";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
$sql.= " WHERE u.entity IN (0,".$conf->entity.")";
|
$sql.= " WHERE u.entity IN (0,".$conf->entity.")";
|
||||||
|
}
|
||||||
$sql.= " AND u.statut > 0";
|
$sql.= " AND u.statut > 0";
|
||||||
|
if ($filters) $sql.=$filters;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetchUsers", LOG_DEBUG);
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
|
|
||||||
// Si pas d'erreur SQL
|
// Si pas d'erreur SQL
|
||||||
@ -1261,9 +1265,10 @@ class Holiday extends CommonObject
|
|||||||
{
|
{
|
||||||
// We want only list of user id
|
// We want only list of user id
|
||||||
$sql = "SELECT DISTINCT cpu.fk_user";
|
$sql = "SELECT DISTINCT cpu.fk_user";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_users as cpu";
|
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_users as cpu, ".MAIN_DB_PREFIX."user as u";
|
||||||
|
$sql.= " WHERE cpu.fk_user = u.user";
|
||||||
|
if ($filters) $sql.=$filters;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetchUsers", LOG_DEBUG);
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
|
|
||||||
// Si pas d'erreur SQL
|
// Si pas d'erreur SQL
|
||||||
@ -1318,8 +1323,8 @@ class Holiday extends CommonObject
|
|||||||
$sql.= " WHERE u.entity IN (0,".$conf->entity.")";
|
$sql.= " WHERE u.entity IN (0,".$conf->entity.")";
|
||||||
|
|
||||||
$sql.= " AND u.statut > 0";
|
$sql.= " AND u.statut > 0";
|
||||||
|
if ($filters) $sql.=$filters;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetchUsers", LOG_DEBUG);
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
|
|
||||||
// Si pas d'erreur SQL
|
// Si pas d'erreur SQL
|
||||||
@ -1361,11 +1366,10 @@ class Holiday extends CommonObject
|
|||||||
{
|
{
|
||||||
// List of vacation balance users
|
// List of vacation balance users
|
||||||
$sql = "SELECT cpu.fk_user, cpu.fk_type, cpu.nb_holiday, u.lastname, u.firstname";
|
$sql = "SELECT cpu.fk_user, cpu.fk_type, cpu.nb_holiday, u.lastname, u.firstname";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_users as cpu,";
|
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_users as cpu, ".MAIN_DB_PREFIX."user as u";
|
||||||
$sql.= " ".MAIN_DB_PREFIX."user as u";
|
|
||||||
$sql.= " WHERE cpu.fk_user = u.rowid";
|
$sql.= " WHERE cpu.fk_user = u.rowid";
|
||||||
|
if ($filters) $sql.=$filters;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetchUsers", LOG_DEBUG);
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
|
|
||||||
// Si pas d'erreur SQL
|
// Si pas d'erreur SQL
|
||||||
|
|||||||
@ -30,24 +30,77 @@ require('../main.inc.php');
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php';
|
require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php';
|
||||||
|
|
||||||
|
$langs->load('users');
|
||||||
|
$langs->load('hrm');
|
||||||
|
|
||||||
|
$action=GETPOST('action','aZ09');
|
||||||
|
|
||||||
|
$search_name=GETPOST('search_name', 'alpha');
|
||||||
|
|
||||||
|
// Load variable for pagination
|
||||||
|
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||||
|
$sortfield = GETPOST('sortfield','alpha');
|
||||||
|
$sortorder = GETPOST('sortorder','alpha');
|
||||||
|
$page = GETPOST('page','int');
|
||||||
|
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
||||||
|
$offset = $limit * $page;
|
||||||
|
$pageprev = $page - 1;
|
||||||
|
$pagenext = $page + 1;
|
||||||
|
if (! $sortfield) $sortfield="t.rowid"; // Set here default search field
|
||||||
|
if (! $sortorder) $sortorder="ASC";
|
||||||
|
|
||||||
|
|
||||||
// Protection if external user
|
// Protection if external user
|
||||||
if ($user->societe_id > 0) accessforbidden();
|
if ($user->societe_id > 0) accessforbidden();
|
||||||
|
|
||||||
// If the user does not have perm to read the page
|
// If the user does not have perm to read the page
|
||||||
if(!$user->rights->holiday->read) accessforbidden();
|
if(!$user->rights->holiday->read) accessforbidden();
|
||||||
|
|
||||||
$action=GETPOST('action','aZ09');
|
|
||||||
|
// Initialize technical object to manage context to save list fields
|
||||||
|
$contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'defineholidaylist';
|
||||||
|
|
||||||
|
// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array
|
||||||
|
$hookmanager->initHooks(array('defineholidaylist'));
|
||||||
|
$extrafields = new ExtraFields($db);
|
||||||
|
|
||||||
$holiday = new Holiday($db);
|
$holiday = new Holiday($db);
|
||||||
|
|
||||||
$langs->load('users');
|
|
||||||
$langs->load('hrm');
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (GETPOST('cancel')) { $action='list'; $massaction=''; }
|
||||||
|
if (! GETPOST('confirmmassaction') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
|
||||||
|
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
|
if (empty($reshook))
|
||||||
|
{
|
||||||
|
// Selection of new fields
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
|
// Purge search criteria
|
||||||
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") ||GETPOST("button_removefilter")) // All tests are required to be compatible with all browsers
|
||||||
|
{
|
||||||
|
$search_name='';
|
||||||
|
$toselect='';
|
||||||
|
$search_array_options=array();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mass actions
|
||||||
|
/*
|
||||||
|
$objectclass='Skeleton';
|
||||||
|
$objectlabel='Skeleton';
|
||||||
|
$permtoread = $user->rights->skeleton->read;
|
||||||
|
$permtodelete = $user->rights->skeleton->delete;
|
||||||
|
$uploaddir = $conf->skeleton->dir_output;
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
||||||
|
*/
|
||||||
|
|
||||||
// Si il y a une action de mise à jour
|
// Si il y a une action de mise à jour
|
||||||
if ($action == 'update' && isset($_POST['update_cp']))
|
if ($action == 'update' && isset($_POST['update_cp']))
|
||||||
{
|
{
|
||||||
@ -106,6 +159,7 @@ if ($action == 'update' && isset($_POST['update_cp']))
|
|||||||
|
|
||||||
if (! $error) setEventMessages('UpdateConfCPOK', '', 'mesgs');
|
if (! $error) setEventMessages('UpdateConfCPOK', '', 'mesgs');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -117,6 +171,17 @@ $userstatic=new User($db);
|
|||||||
|
|
||||||
llxHeader('', $langs->trans('CPTitreMenu'));
|
llxHeader('', $langs->trans('CPTitreMenu'));
|
||||||
|
|
||||||
|
|
||||||
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
|
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans('MenuConfCP'), '', 'title_hrm.png');
|
print load_fiche_titre($langs->trans('MenuConfCP'), '', 'title_hrm.png');
|
||||||
|
|
||||||
print '<div class="info">'.$langs->trans('LastUpdateCP').': '."\n";
|
print '<div class="info">'.$langs->trans('LastUpdateCP').': '."\n";
|
||||||
@ -137,7 +202,9 @@ if ($result < 0)
|
|||||||
setEventMessages($holiday->error, $holiday->errors, 'errors');
|
setEventMessages($holiday->error, $holiday->errors, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
$listUsers = $holiday->fetchUsers(false,true);
|
$filters=natural_search(array('u.firstname','u.lastname'), $search_name);
|
||||||
|
|
||||||
|
$listUsers = $holiday->fetchUsers(false,true,$filters);
|
||||||
if (is_numeric($listUsers) && $listUsers < 0)
|
if (is_numeric($listUsers) && $listUsers < 0)
|
||||||
{
|
{
|
||||||
setEventMessages($holiday->error, $holiday->errors, 'errors');
|
setEventMessages($holiday->error, $holiday->errors, 'errors');
|
||||||
@ -167,7 +234,6 @@ else
|
|||||||
$userchilds=$user->getAllChildIds();
|
$userchilds=$user->getAllChildIds();
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
|
||||||
print '<input type="hidden" name="action" value="update" />';
|
print '<input type="hidden" name="action" value="update" />';
|
||||||
|
|
||||||
$moreforfilter='';
|
$moreforfilter='';
|
||||||
@ -175,6 +241,29 @@ else
|
|||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'" id="tablelines3">'."\n";
|
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'" id="tablelines3">'."\n";
|
||||||
|
|
||||||
|
print '<tr class="liste_titre_filter">';
|
||||||
|
print '<td class="liste_titre"><input type="text" name="search_name" value="'.dol_escape_htmltag($search_name).'"></td>';
|
||||||
|
if (count($typeleaves))
|
||||||
|
{
|
||||||
|
foreach($typeleaves as $key => $val)
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre" style="text-align:center"></td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre"></td>';
|
||||||
|
}
|
||||||
|
print '<td class="liste_titre"></td>';
|
||||||
|
|
||||||
|
// Action column
|
||||||
|
print '<td class="liste_titre" align="right">';
|
||||||
|
$searchpicto=$form->showFilterButtons();
|
||||||
|
print $searchpicto;
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre($langs->trans('Employee'), $_SERVER["PHP_SELF"]);
|
print_liste_field_titre($langs->trans('Employee'), $_SERVER["PHP_SELF"]);
|
||||||
if (count($typeleaves))
|
if (count($typeleaves))
|
||||||
@ -193,27 +282,10 @@ else
|
|||||||
print '</th>';
|
print '</th>';
|
||||||
print_liste_field_titre('');
|
print_liste_field_titre('');
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td class="liste_titre"></td>';
|
|
||||||
if (count($typeleaves))
|
|
||||||
{
|
|
||||||
foreach($typeleaves as $key => $val)
|
|
||||||
{
|
|
||||||
print '<td class="liste_titre" style="text-align:center"></td>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<td class="liste_titre"></td>';
|
|
||||||
}
|
|
||||||
print '<td class="liste_titre"></td>';
|
|
||||||
print '<td class="liste_titre"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
foreach($listUsers as $users)
|
foreach($listUsers as $users)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
// If user has not permission to edit/read all, we must see only subordinates
|
// If user has not permission to edit/read all, we must see only subordinates
|
||||||
if (empty($user->rights->holiday->read_all))
|
if (empty($user->rights->holiday->read_all))
|
||||||
{
|
{
|
||||||
@ -270,9 +342,10 @@ else
|
|||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print '</form>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|||||||
@ -310,14 +310,14 @@ print '</td>';
|
|||||||
if ($user->rights->holiday->write_all)
|
if ($user->rights->holiday->write_all)
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
|
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
|
||||||
print $form->select_dolusers($search_employe,"search_employe",1,"",0,'','',0,32,0,'',0,'','maxwidth200');
|
print $form->select_dolusers($search_employe,"search_employe",1,"",0,'','',0,0,0,'',0,'','maxwidth200');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//print '<td class="liste_titre"> </td>';
|
//print '<td class="liste_titre"> </td>';
|
||||||
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
|
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
|
||||||
print $form->select_dolusers($user->id,"search_employe",1,"",1,'','',0,32,0,'',0,'','maxwidth200');
|
print $form->select_dolusers($user->id,"search_employe",1,"",1,'','',0,0,0,'',0,'','maxwidth200');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ if($user->rights->holiday->write_all)
|
|||||||
$valideurobjects = $validator->listUsersForGroup($excludefilter);
|
$valideurobjects = $validator->listUsersForGroup($excludefilter);
|
||||||
$valideurarray = array();
|
$valideurarray = array();
|
||||||
foreach($valideurobjects as $val) $valideurarray[$val->id]=$val->id;
|
foreach($valideurobjects as $val) $valideurarray[$val->id]=$val->id;
|
||||||
print $form->select_dolusers($search_valideur,"search_valideur",1,"",0,$valideurarray,'', 0, 32,0,'',0,'','maxwidth200');
|
print $form->select_dolusers($search_valideur,"search_valideur",1,"",0,$valideurarray,'', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -265,7 +265,7 @@ if (function_exists('get_magic_quotes_gpc')) // magic_quotes_* removed in PHP 5.
|
|||||||
|
|
||||||
// Defini objet langs
|
// Defini objet langs
|
||||||
$langs = new Translate('..',$conf);
|
$langs = new Translate('..',$conf);
|
||||||
if (GETPOST('lang')) $langs->setDefaultLang(GETPOST('lang'));
|
if (GETPOST('lang', 'aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09'));
|
||||||
else $langs->setDefaultLang('auto');
|
else $langs->setDefaultLang('auto');
|
||||||
|
|
||||||
$bc[false]=' class="bg1"';
|
$bc[false]=' class="bg1"';
|
||||||
|
|||||||
@ -3,6 +3,7 @@ BlockedLogDesc=This module store event for invoice and payments as block chain
|
|||||||
FingerprintsDesc=All fingerprints stored
|
FingerprintsDesc=All fingerprints stored
|
||||||
EntityKey=Entity Key
|
EntityKey=Entity Key
|
||||||
ShowAllFingerPrintsMightBeTooLong=Show all fingerprints (might be long)
|
ShowAllFingerPrintsMightBeTooLong=Show all fingerprints (might be long)
|
||||||
|
ShowAllFingerPrintsErrorsMightBeTooLong=Show all fingerprints with error (might be long)
|
||||||
DownloadBlockChain=Download fingerprints
|
DownloadBlockChain=Download fingerprints
|
||||||
KoCheckFingerprintValidity=Fingerprint is not valid
|
KoCheckFingerprintValidity=Fingerprint is not valid
|
||||||
OkCheckFingerprintValidity=Fingerprint is valid
|
OkCheckFingerprintValidity=Fingerprint is valid
|
||||||
@ -14,3 +15,7 @@ logPAYMENT_CUSTOMER_CREATE=Payment of customer created
|
|||||||
logBILL_PAYED=Customer bill payed
|
logBILL_PAYED=Customer bill payed
|
||||||
logBILL_UNPAYED=Customer bill set unpayed
|
logBILL_UNPAYED=Customer bill set unpayed
|
||||||
logBILL_VALIDATE=Customer bill set valid from draft
|
logBILL_VALIDATE=Customer bill set valid from draft
|
||||||
|
logBILL_SENTBYMAIL=Customer bill send by mail
|
||||||
|
BlockedlogInfoDialog=Log Details
|
||||||
|
Fingerprint=Fingerprint
|
||||||
|
DownloadLogCSV=Download fingerprints CSV
|
||||||
@ -11,7 +11,14 @@ ModuleBuilderDescobjects=Define here the new objects you want to manage with you
|
|||||||
ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
|
ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
|
||||||
ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
|
ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
|
||||||
ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file with your IDE.
|
ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file with your IDE.
|
||||||
|
ModuleBuilderDeschooks=This tab is dedicated to hooks.
|
||||||
|
ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets.
|
||||||
ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module. Just click on button to get your module package file.
|
ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module. Just click on button to get your module package file.
|
||||||
|
ModuleBuilderDescdangerzone=You can delete your module. WARNING: All files of module will be definetly lost !
|
||||||
|
DangerZone=Danger zone
|
||||||
BuildPackage=Build package
|
BuildPackage=Build package
|
||||||
ModuleIsNotActive=This module was not activated yet (go into Home-Setup-Module to make it live)
|
ModuleIsNotActive=This module was not activated yet (go into Home-Setup-Module to make it live)
|
||||||
ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
|
ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
|
||||||
|
DescriptionLong=Long description
|
||||||
|
EditorName=Name of editor
|
||||||
|
EditorUrl=URL of editor
|
||||||
@ -64,6 +64,7 @@ TaskDescription=Task description
|
|||||||
NewTask=New task
|
NewTask=New task
|
||||||
AddTask=Create task
|
AddTask=Create task
|
||||||
AddTimeSpent=Create time spent
|
AddTimeSpent=Create time spent
|
||||||
|
AddHereTimeSpentForDay=Add here time spent for this day/task
|
||||||
Activity=Activity
|
Activity=Activity
|
||||||
Activities=Tasks/activities
|
Activities=Tasks/activities
|
||||||
MyActivities=My tasks/activities
|
MyActivities=My tasks/activities
|
||||||
|
|||||||
@ -396,7 +396,7 @@ if (! defined('NOLOGIN'))
|
|||||||
{
|
{
|
||||||
if (empty($_SERVER['HTTP_REFERER']) || ! preg_match('/public/',$_SERVER['HTTP_REFERER']))
|
if (empty($_SERVER['HTTP_REFERER']) || ! preg_match('/public/',$_SERVER['HTTP_REFERER']))
|
||||||
{
|
{
|
||||||
dol_syslog("Call index page from another url than demo page");
|
dol_syslog("Call index page from another url than demo page (call is done from page ".$_SERVER['HTTP_REFERER'].")");
|
||||||
$url='';
|
$url='';
|
||||||
$url.=($url?'&':'').($dol_hide_topmenu?'dol_hide_topmenu='.$dol_hide_topmenu:'');
|
$url.=($url?'&':'').($dol_hide_topmenu?'dol_hide_topmenu='.$dol_hide_topmenu:'');
|
||||||
$url.=($url?'&':'').($dol_hide_leftmenu?'dol_hide_leftmenu='.$dol_hide_leftmenu:'');
|
$url.=($url?'&':'').($dol_hide_leftmenu?'dol_hide_leftmenu='.$dol_hide_leftmenu:'');
|
||||||
|
|||||||
@ -113,6 +113,19 @@ if ($dirins && $action == 'initmodule' && $modulename)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($dirins && $action == 'confirm_delete')
|
||||||
|
{
|
||||||
|
$modulelowercase=strtolower($module);
|
||||||
|
|
||||||
|
// Dir for module
|
||||||
|
$dir = $dirins.'/'.$modulelowercase;
|
||||||
|
|
||||||
|
dol_delete_dir_recursive($dir);
|
||||||
|
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/modulebuilder/index.php?module=initmodule');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
if ($dirins && $action == 'generatepackage')
|
if ($dirins && $action == 'generatepackage')
|
||||||
{
|
{
|
||||||
$modulelowercase=strtolower($module);
|
$modulelowercase=strtolower($module);
|
||||||
@ -373,16 +386,31 @@ elseif (! empty($module))
|
|||||||
$head2[$h][2] = 'permissions';
|
$head2[$h][2] = 'permissions';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
|
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=hooks&module='.$module;
|
||||||
|
$head2[$h][1] = $langs->trans("Hooks");
|
||||||
|
$head2[$h][2] = 'hooks';
|
||||||
|
$h++;
|
||||||
|
|
||||||
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=triggers&module='.$module;
|
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=triggers&module='.$module;
|
||||||
$head2[$h][1] = $langs->trans("Triggers");
|
$head2[$h][1] = $langs->trans("Triggers");
|
||||||
$head2[$h][2] = 'triggers';
|
$head2[$h][2] = 'triggers';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
|
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=widgets&module='.$module;
|
||||||
|
$head2[$h][1] = $langs->trans("Widgets");
|
||||||
|
$head2[$h][2] = 'widgets';
|
||||||
|
$h++;
|
||||||
|
|
||||||
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=buildpackage&module='.$module;
|
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=buildpackage&module='.$module;
|
||||||
$head2[$h][1] = $langs->trans("BuildPackage");
|
$head2[$h][1] = $langs->trans("BuildPackage");
|
||||||
$head2[$h][2] = 'buildpackage';
|
$head2[$h][2] = 'buildpackage';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
|
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=dangerzone&module='.$module;
|
||||||
|
$head2[$h][1] = $langs->trans("DangerZone");
|
||||||
|
$head2[$h][2] = 'dangerzone';
|
||||||
|
$h++;
|
||||||
|
|
||||||
print $modulestatusinfo.'<br><br>';
|
print $modulestatusinfo.'<br><br>';
|
||||||
|
|
||||||
dol_fiche_head($head2, $tab, '', -1, '');
|
dol_fiche_head($head2, $tab, '', -1, '');
|
||||||
@ -421,7 +449,7 @@ elseif (! empty($module))
|
|||||||
|
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print $langs->trans("Family");
|
print $langs->trans("Family");
|
||||||
print "<br>'crm','financial','hr','projects','products','ecm','technic','interface','other'";
|
//print "<br>'crm','financial','hr','projects','products','ecm','technic','interface','other'";
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
print $moduleobj->family;
|
print $moduleobj->family;
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -445,7 +473,7 @@ elseif (! empty($module))
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print $langs->trans("LongDescription");
|
print $langs->trans("DescriptionLong");
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
print $moduleobj->getDescLong();
|
print $moduleobj->getDescLong();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -453,14 +481,6 @@ elseif (! empty($module))
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '<br><br>';
|
|
||||||
print '<form name="delete">';
|
|
||||||
print '<input type="hidden" name="action" value="confirm_delete">';
|
|
||||||
print '<input type="hidden" name="tab" value="'.dol_escape_htmltag($tab).'">';
|
|
||||||
print '<input type="hidden" name="module" value="'.dol_escape_htmltag($module).'">';
|
|
||||||
print '<input type="submit" class="buttonDelete" value="'.$langs->trans("Delete").'"'.($dirins?'':' disabled="disabled"').'>';
|
|
||||||
print '</form>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($tab == 'objects')
|
if ($tab == 'objects')
|
||||||
@ -483,6 +503,12 @@ elseif (! empty($module))
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($tab == 'hooks')
|
||||||
|
{
|
||||||
|
print $langs->trans("FeatureNotYetAvailable");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if ($tab == 'triggers')
|
if ($tab == 'triggers')
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php';
|
||||||
@ -520,6 +546,12 @@ elseif (! empty($module))
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($tab == 'widget')
|
||||||
|
{
|
||||||
|
print $langs->trans("FeatureNotYetAvailable");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if ($tab == 'buildpackage')
|
if ($tab == 'buildpackage')
|
||||||
{
|
{
|
||||||
if (! class_exists('ZipArchive') && ! defined('ODTPHP_PATHTOPCLZIP'))
|
if (! class_exists('ZipArchive') && ! defined('ODTPHP_PATHTOPCLZIP'))
|
||||||
@ -536,6 +568,16 @@ elseif (! empty($module))
|
|||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($tab == 'dangerzone')
|
||||||
|
{
|
||||||
|
print '<form name="delete">';
|
||||||
|
print '<input type="hidden" name="action" value="confirm_delete">';
|
||||||
|
print '<input type="hidden" name="tab" value="'.dol_escape_htmltag($tab).'">';
|
||||||
|
print '<input type="hidden" name="module" value="'.dol_escape_htmltag($module).'">';
|
||||||
|
print '<input type="submit" class="buttonDelete" value="'.$langs->trans("Delete").'"'.($dirins?'':' disabled="disabled"').'>';
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,4 +3,4 @@
|
|||||||
## Features
|
## Features
|
||||||
MyModuleDescription
|
MyModuleDescription
|
||||||
|
|
||||||
Other modules are available on <a href="https://www.dolistore.com target="_new">Dolistore.com</a>.
|
Other modules are available on <a href="https://www.dolistore.com" target="_new">Dolistore.com</a>.
|
||||||
|
|||||||
@ -20,8 +20,6 @@
|
|||||||
* \file htdocs/modulebuilder/template/admin/about.php
|
* \file htdocs/modulebuilder/template/admin/about.php
|
||||||
* \ingroup mymodule
|
* \ingroup mymodule
|
||||||
* \brief About page of module MyModule.
|
* \brief About page of module MyModule.
|
||||||
*
|
|
||||||
* MyModuleDescription.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Load Dolibarr environment
|
// Load Dolibarr environment
|
||||||
@ -84,8 +82,8 @@ echo $langs->trans("MyModuleAboutPage");
|
|||||||
|
|
||||||
echo '<br>';
|
echo '<br>';
|
||||||
|
|
||||||
require_once '../core/modulebuilder/mymodule/core/modules/modMyModule.class.php';
|
dol_include_once('/mymodule/core/modules/modMyModule.class.php');
|
||||||
$tmpmodule = new MyModule($db);
|
$tmpmodule = new modMyModule($db);
|
||||||
print $tmpmodule->getDescLong();
|
print $tmpmodule->getDescLong();
|
||||||
|
|
||||||
// Page end
|
// Page end
|
||||||
|
|||||||
@ -19,9 +19,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/modulebuilder/template/admin/setup.php
|
* \file htdocs/modulebuilder/template/admin/setup.php
|
||||||
* \ingroup mymodule
|
* \ingroup mymodule
|
||||||
* \brief Example module setup page.
|
* \brief MyModule setup page.
|
||||||
*
|
|
||||||
* Put detailed description here.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Load Dolibarr environment
|
// Load Dolibarr environment
|
||||||
|
|||||||
@ -56,6 +56,8 @@ class ActionsMyModule
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
*/
|
*/
|
||||||
public function __construct($db)
|
public function __construct($db)
|
||||||
{
|
{
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 360 B After Width: | Height: | Size: 360 B |
@ -182,8 +182,10 @@ else
|
|||||||
$idprod = (! empty($match[0]) ? $match[0] : '');
|
$idprod = (! empty($match[0]) ? $match[0] : '');
|
||||||
|
|
||||||
if (GETPOST($htmlname,'alpha') == '' && (! $idprod || ! GETPOST($idprod,'alpha')))
|
if (GETPOST($htmlname,'alpha') == '' && (! $idprod || ! GETPOST($idprod,'alpha')))
|
||||||
|
{
|
||||||
print json_encode(array());
|
print json_encode(array());
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// When used from jQuery, the search term is added as GET param "term".
|
// When used from jQuery, the search term is added as GET param "term".
|
||||||
$searchkey = (($idprod && GETPOST($idprod,'alpha')) ? GETPOST($idprod,'alpha') : (GETPOST($htmlname, 'alpha') ? GETPOST($htmlname, 'alpha') : ''));
|
$searchkey = (($idprod && GETPOST($idprod,'alpha')) ? GETPOST($idprod,'alpha') : (GETPOST($htmlname, 'alpha') ? GETPOST($htmlname, 'alpha') : ''));
|
||||||
|
|||||||
@ -705,9 +705,9 @@ else
|
|||||||
$product_static->status = $obj->tosell;
|
$product_static->status = $obj->tosell;
|
||||||
$product_static->entity = $obj->entity;
|
$product_static->entity = $obj->entity;
|
||||||
|
|
||||||
if (! empty($conf->stock->enabled) && $user->rights->stock->lire && $search_type != 1) // To optimize call of load_stock
|
if ((! empty($conf->stock->enabled) && $user->rights->stock->lire && $search_type != 1) || ! empty($conf->global->STOCK_DISABLE_OPTIM_LOAD)) // To optimize call of load_stock
|
||||||
{
|
{
|
||||||
if ($obj->fk_product_type != 1) // Not a service
|
if ($obj->fk_product_type != 1 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) // Not a service
|
||||||
{
|
{
|
||||||
$product_static->load_stock('nobatch'); // Load stock_reel + stock_warehouse. This also call load_virtual_stock()
|
$product_static->load_stock('nobatch'); // Load stock_reel + stock_warehouse. This also call load_virtual_stock()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1332,6 +1332,8 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_
|
|||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
|
print '<div class="divlogofpreviouscustomerprice">';
|
||||||
|
|
||||||
$num = $db->num_rows($result);
|
$num = $db->num_rows($result);
|
||||||
|
|
||||||
if (! $num)
|
if (! $num)
|
||||||
@ -1475,6 +1477,8 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
print "<br>";
|
print "<br>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
} else {
|
} else {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -444,7 +444,7 @@ if (! empty($conf->categorie->enabled))
|
|||||||
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ProjectCategories'). ': ';
|
$moreforfilter.=$langs->trans('ProjectCategories'). ': ';
|
||||||
$moreforfilter.=$formother->select_categories('project',$search_categ,'search_categ',1);
|
$moreforfilter.=$formother->select_categories('project', $search_categ, 'search_categ', 1, 1, 'maxwidth300');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -453,7 +453,7 @@ $moreforfilter.='<div class="divsearchfield">';
|
|||||||
$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ': ';
|
$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ': ';
|
||||||
$includeonly='';
|
$includeonly='';
|
||||||
if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
|
if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
|
||||||
$moreforfilter.=$form->select_dolusers($search_project_user?$search_project_user:'', 'search_project_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_project_user?$search_project_user:'', 'search_project_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
|
|
||||||
// If the user can view thirdparties other than his'
|
// If the user can view thirdparties other than his'
|
||||||
@ -462,7 +462,7 @@ if ($user->rights->societe->client->voir || $socid)
|
|||||||
$langs->load("commercial");
|
$langs->load("commercial");
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
|
||||||
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
|
$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -442,7 +442,7 @@ if (! empty($conf->categorie->enabled))
|
|||||||
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
|
||||||
$moreforfilter.='<div class="divsearchfield">';
|
$moreforfilter.='<div class="divsearchfield">';
|
||||||
$moreforfilter.=$langs->trans('ProjectCategories'). ': ';
|
$moreforfilter.=$langs->trans('ProjectCategories'). ': ';
|
||||||
$moreforfilter.=$formother->select_categories('project',$search_categ,'search_categ',1);
|
$moreforfilter.=$formother->select_categories('project', $search_categ, 'search_categ', 1, 'maxwidth300');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -451,7 +451,7 @@ $moreforfilter.='<div class="divsearchfield">';
|
|||||||
$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ' ';
|
$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ' ';
|
||||||
$includeonly='';
|
$includeonly='';
|
||||||
if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
|
if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
|
||||||
$moreforfilter.=$form->select_dolusers($search_project_user?$search_project_user:'', 'search_project_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_project_user?$search_project_user:'', 'search_project_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
|
|
||||||
// If the user can view users
|
// If the user can view users
|
||||||
@ -459,7 +459,7 @@ $moreforfilter.='<div class="divsearchfield">';
|
|||||||
$moreforfilter.=$langs->trans('TasksWithThisUserAsContact'). ': ';
|
$moreforfilter.=$langs->trans('TasksWithThisUserAsContact'). ': ';
|
||||||
$includeonly='';
|
$includeonly='';
|
||||||
if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
|
if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
|
||||||
$moreforfilter.=$form->select_dolusers($search_task_user, 'search_task_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
$moreforfilter.=$form->select_dolusers($search_task_user, 'search_task_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
$moreforfilter.='</div>';
|
$moreforfilter.='</div>';
|
||||||
|
|
||||||
if (! empty($moreforfilter))
|
if (! empty($moreforfilter))
|
||||||
|
|||||||
@ -54,12 +54,13 @@ $alwaysuncheckedmodules=array();
|
|||||||
$alwayshiddencheckedmodules=array();
|
$alwayshiddencheckedmodules=array();
|
||||||
$alwayshiddenuncheckedmodules=array();
|
$alwayshiddenuncheckedmodules=array();
|
||||||
|
|
||||||
$url=DOL_URL_ROOT.'/index.php?';
|
$url='';
|
||||||
$url.=($url?'&':'').($conf->dol_hide_topmenu?'dol_hide_topmenu='.$conf->dol_hide_topmenu:'');
|
$url.=($url?'&':'').($conf->dol_hide_topmenu?'dol_hide_topmenu='.$conf->dol_hide_topmenu:'');
|
||||||
$url.=($url?'&':'').($conf->dol_hide_leftmenu?'dol_hide_leftmenu='.$conf->dol_hide_leftmenu:'');
|
$url.=($url?'&':'').($conf->dol_hide_leftmenu?'dol_hide_leftmenu='.$conf->dol_hide_leftmenu:'');
|
||||||
$url.=($url?'&':'').($conf->dol_optimize_smallscreen?'dol_optimize_smallscreen='.$conf->dol_optimize_smallscreen:'');
|
$url.=($url?'&':'').($conf->dol_optimize_smallscreen?'dol_optimize_smallscreen='.$conf->dol_optimize_smallscreen:'');
|
||||||
$url.=($url?'&':'').($conf->dol_no_mouse_hover?'dol_no_mouse_hover='.$conf->dol_no_mouse_hover:'');
|
$url.=($url?'&':'').($conf->dol_no_mouse_hover?'dol_no_mouse_hover='.$conf->dol_no_mouse_hover:'');
|
||||||
$url.=($url?'&':'').($conf->dol_use_jmobile?'dol_use_jmobile='.$conf->dol_use_jmobile:'');
|
$url.=($url?'&':'').($conf->dol_use_jmobile?'dol_use_jmobile='.$conf->dol_use_jmobile:'');
|
||||||
|
$url=DOL_URL_ROOT.'/index.php'.($url?'?'.$url:'');
|
||||||
|
|
||||||
$tmpaction = 'view';
|
$tmpaction = 'view';
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
@ -105,6 +106,7 @@ if (empty($reshook))
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
// Visible
|
// Visible
|
||||||
$alwayscheckedmodules=array('barcode','bookmark','categorie','externalrss','fckeditor','geoipmaxmind','gravatar','memcached','syslog','user','webservices'); // Technical module we always want
|
$alwayscheckedmodules=array('barcode','bookmark','categorie','externalrss','fckeditor','geoipmaxmind','gravatar','memcached','syslog','user','webservices'); // Technical module we always want
|
||||||
$alwaysuncheckedmodules=array('dynamicprices','loan','multicurrency','paybox','paypal','stripe','google','printing','scanner','workflow'); // Module we never want
|
$alwaysuncheckedmodules=array('dynamicprices','loan','multicurrency','paybox','paypal','stripe','google','printing','scanner','workflow'); // Module we never want
|
||||||
@ -202,7 +204,7 @@ asort($orders);
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('action','aZ09') == 'gotodemo')
|
if (GETPOST('action','aZ09') == 'gotodemo') // Action run when we click on "Start" after selection modules
|
||||||
{
|
{
|
||||||
//print 'ee'.GETPOST("demochoice");
|
//print 'ee'.GETPOST("demochoice");
|
||||||
$disablestring='';
|
$disablestring='';
|
||||||
@ -232,8 +234,9 @@ if (GETPOST('action','aZ09') == 'gotodemo')
|
|||||||
// Do redirect to login page
|
// Do redirect to login page
|
||||||
if ($disablestring)
|
if ($disablestring)
|
||||||
{
|
{
|
||||||
if (GETPOST('urlfrom')) $url.=($url?'&':'').'urlfrom='.urlencode(GETPOST('urlfrom','alpha'));
|
if (GETPOST('urlfrom')) $url.=(preg_match('/\?/',$url)?'&':'?').'urlfrom='.urlencode(GETPOST('urlfrom','alpha'));
|
||||||
$url.=($url?'&':'').'disablemodules='.$disablestring;
|
$url.=(preg_match('/\?/',$url)?'&':'?').'disablemodules='.$disablestring;
|
||||||
|
//var_dump($url);exit;
|
||||||
header("Location: ".$url);
|
header("Location: ".$url);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -304,13 +307,23 @@ foreach ($demoprofiles as $profilearray)
|
|||||||
//print $profilearray['lang'];
|
//print $profilearray['lang'];
|
||||||
if (! empty($profilearray['lang'])) $langs->load($profilearray['lang']);
|
if (! empty($profilearray['lang'])) $langs->load($profilearray['lang']);
|
||||||
|
|
||||||
$url=$_SERVER["PHP_SELF"].'?action=gotodemo&urlfrom='.urlencode($_SERVER["PHP_SELF"]);
|
$url=$_SERVER["PHP_SELF"].'?action=gotodemo';
|
||||||
$urlwithmod=$url.'&demochoice='.$profilearray['key'];
|
$urlwithmod=$url.'&demochoice='.$profilearray['key'];
|
||||||
// Should work with DOL_URL_ROOT='' or DOL_URL_ROOT='/dolibarr'
|
// Should work with DOL_URL_ROOT='' or DOL_URL_ROOT='/dolibarr'
|
||||||
//print "xx".$_SERVER["PHP_SELF"].' '.DOL_URL_ROOT.'<br>';
|
//print "xx".$_SERVER["PHP_SELF"].' '.DOL_URL_ROOT.'<br>';
|
||||||
|
|
||||||
$urlfrom=preg_replace('/^'.preg_quote(DOL_URL_ROOT,'/').'/i','',$_SERVER["PHP_SELF"]);
|
$urlfrom=preg_replace('/^'.preg_quote(DOL_URL_ROOT,'/').'/i','',$_SERVER["PHP_SELF"]);
|
||||||
//print $urlfrom;
|
//print $urlfrom;
|
||||||
if (! empty($profilearray['url'])) $urlwithmod=$profilearray['url'];
|
|
||||||
|
if (! empty($profilearray['url']))
|
||||||
|
{
|
||||||
|
$urlwithmod=$profilearray['url'];
|
||||||
|
$urlwithmod=$urlwithmod.(preg_match('/\?/',$urlwithmod)?'&':'?').'urlfrom='.urlencode($urlfrom);
|
||||||
|
if (! empty($profilearray['disablemodules']))
|
||||||
|
{
|
||||||
|
$urlwithmod=$urlwithmod.(preg_match('/\?/',$urlwithmod)?'&':'?').'disablemodules='.$profilearray['disablemodules'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($profilearray['url']))
|
if (empty($profilearray['url']))
|
||||||
{
|
{
|
||||||
@ -348,7 +361,7 @@ foreach ($demoprofiles as $profilearray)
|
|||||||
print '</a>';
|
print '</a>';
|
||||||
|
|
||||||
|
|
||||||
// Modules
|
// Modules (a profile you must choose modules)
|
||||||
if (empty($profilearray['url']))
|
if (empty($profilearray['url']))
|
||||||
{
|
{
|
||||||
print '<div id="tr1'.$profilearray['key'].'" class="moduleline hidden" style="margin-left: 8px; margin-right: 8px; text-align: justify; font-size:14px; line-height: 130%; padding-bottom: 8px">';
|
print '<div id="tr1'.$profilearray['key'].'" class="moduleline hidden" style="margin-left: 8px; margin-right: 8px; text-align: justify; font-size:14px; line-height: 130%; padding-bottom: 8px">';
|
||||||
|
|||||||
@ -803,11 +803,6 @@ if (empty($reshook))
|
|||||||
$price_min = $product->multiprices_min [$object->thirdparty->price_level];
|
$price_min = $product->multiprices_min [$object->thirdparty->price_level];
|
||||||
|
|
||||||
$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
|
$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
|
||||||
|
|
||||||
if ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min))) {
|
|
||||||
setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors');
|
|
||||||
$error ++;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$type = GETPOST('type');
|
$type = GETPOST('type');
|
||||||
$label = (GETPOST('product_label') ? GETPOST('product_label') : '');
|
$label = (GETPOST('product_label') ? GETPOST('product_label') : '');
|
||||||
|
|||||||
@ -149,7 +149,7 @@ if (empty($conf->db->user)) $conf->db->user='';
|
|||||||
|
|
||||||
// Defini objet langs
|
// Defini objet langs
|
||||||
$langs = new Translate('..',$conf);
|
$langs = new Translate('..',$conf);
|
||||||
if (GETPOST('lang')) $langs->setDefaultLang(GETPOST('lang'));
|
if (GETPOST('lang', 'aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09'));
|
||||||
else $langs->setDefaultLang('auto');
|
else $langs->setDefaultLang('auto');
|
||||||
|
|
||||||
$bc[false]=' class="bg1"';
|
$bc[false]=' class="bg1"';
|
||||||
|
|||||||
@ -76,6 +76,8 @@ else header('Cache-Control: no-cache');
|
|||||||
if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x04)) { ob_start("ob_gzhandler"); }
|
if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x04)) { ob_start("ob_gzhandler"); }
|
||||||
|
|
||||||
if (GETPOST('theme','alpha')) $conf->theme=GETPOST('theme','alpha'); // If theme was forced on URL
|
if (GETPOST('theme','alpha')) $conf->theme=GETPOST('theme','alpha'); // If theme was forced on URL
|
||||||
|
if (GETPOST('lang','aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL
|
||||||
|
|
||||||
$langs->load("main",0,1);
|
$langs->load("main",0,1);
|
||||||
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
||||||
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
||||||
|
|||||||
@ -77,6 +77,8 @@ else header('Cache-Control: no-cache');
|
|||||||
if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x04)) { ob_start("ob_gzhandler"); }
|
if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x04)) { ob_start("ob_gzhandler"); }
|
||||||
|
|
||||||
if (GETPOST('theme','alpha')) $conf->theme=GETPOST('theme','alpha'); // If theme was forced on URL
|
if (GETPOST('theme','alpha')) $conf->theme=GETPOST('theme','alpha'); // If theme was forced on URL
|
||||||
|
if (GETPOST('lang', 'aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09')); // If language was forced on URL
|
||||||
|
|
||||||
$langs->load("main",0,1);
|
$langs->load("main",0,1);
|
||||||
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
$right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
|
||||||
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
$left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
|
||||||
|
|||||||
@ -1163,7 +1163,7 @@ else
|
|||||||
|
|
||||||
// Check if user has rights
|
// Check if user has rights
|
||||||
$object->getrights();
|
$object->getrights();
|
||||||
if(empty($object->nb_rights)) setEventMessages($langs->trans('UserHasNoPermissions'), null, 'warnings');
|
if (empty($object->nb_rights) && $object->statut != 0) setEventMessages($langs->trans('UserHasNoPermissions'), null, 'warnings');
|
||||||
|
|
||||||
// Connexion ldap
|
// Connexion ldap
|
||||||
// pour recuperer passDoNotExpire et userChangePassNextLogon
|
// pour recuperer passDoNotExpire et userChangePassNextLogon
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2017 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2017 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
* Copyright (C) 2016 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2016 Marcos García <marcosgdf@gmail.com>
|
||||||
@ -204,7 +204,7 @@ else
|
|||||||
}
|
}
|
||||||
if ($socid > 0) $sql.= " AND u.fk_soc = ".$socid;
|
if ($socid > 0) $sql.= " AND u.fk_soc = ".$socid;
|
||||||
//if ($search_user != '') $sql.=natural_search(array('u.login', 'u.lastname', 'u.firstname'), $search_user);
|
//if ($search_user != '') $sql.=natural_search(array('u.login', 'u.lastname', 'u.firstname'), $search_user);
|
||||||
if ($search_supervisor > 0) $sql.= " AND u.fk_user = ".$db->escape($search_supervisor);
|
if ($search_supervisor > 0) $sql.= " AND u.fk_user IN (".$db->escape($search_supervisor).")";
|
||||||
if ($search_thirdparty != '') $sql.= natural_search(array('s.nom'), $search_thirdparty);
|
if ($search_thirdparty != '') $sql.= natural_search(array('s.nom'), $search_thirdparty);
|
||||||
if ($search_login != '') $sql.= natural_search("u.login", $search_login);
|
if ($search_login != '') $sql.= natural_search("u.login", $search_login);
|
||||||
if ($search_lastname != '') $sql.= natural_search("u.lastname", $search_lastname);
|
if ($search_lastname != '') $sql.= natural_search("u.lastname", $search_lastname);
|
||||||
@ -360,9 +360,12 @@ if (! empty($arrayfields['u.entity']['checked']))
|
|||||||
{
|
{
|
||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
}
|
}
|
||||||
|
// Supervisor
|
||||||
if (! empty($arrayfields['u.fk_user']['checked']))
|
if (! empty($arrayfields['u.fk_user']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre">';
|
||||||
|
print $form->select_dolusers($search_supervisor, 'search_supervisor', 1, array(), 0, '', 0, 0, 0, 0, '', 0, '', 'maxwidth200');
|
||||||
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (! empty($arrayfields['u.datelastlogin']['checked']))
|
if (! empty($arrayfields['u.datelastlogin']['checked']))
|
||||||
{
|
{
|
||||||
@ -665,6 +668,7 @@ while ($i < min($num,$limit))
|
|||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user