Merge branch 'develop' into MissingHook
This commit is contained in:
commit
4308f48cad
@ -2462,7 +2462,7 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
||||||
/**
|
/**
|
||||||
* Initialise tableau info (tableau des attributs LDAP)
|
* Initialise tableau info (tableau des attributs LDAP)
|
||||||
*
|
*
|
||||||
* @return array Tableau info des attributs
|
* @return array Tableau info des attributs
|
||||||
|
|||||||
@ -190,7 +190,7 @@ $head = ticketAdminPrepareHead();
|
|||||||
|
|
||||||
dol_fiche_head($head, 'settings', $langs->trans("Module56000Name"), -1, "ticket");
|
dol_fiche_head($head, 'settings', $langs->trans("Module56000Name"), -1, "ticket");
|
||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("TicketSetupDictionaries") . '</span> : <a href="' . dol_buildpath('/admin/dict.php', 1) . '" >' . dol_buildpath('/admin/dict.php', 2) . '</a><br>';
|
print '<span class="opacitymedium">'.$langs->trans("TicketSetupDictionaries") . '</span> : <a href="'.DOL_URL_ROOT.'/admin/dict.php">'.$langs->trans("ClickHereToGoTo", $langs->transnoentitiesnoconv("DictionarySetup")).'</a><br>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|||||||
@ -3444,6 +3444,7 @@ elseif ($id > 0 || ! empty($ref))
|
|||||||
elseif($object->type == Facture::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote';
|
elseif($object->type == Facture::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote';
|
||||||
elseif($object->type == Facture::TYPE_DEPOSIT) $type_fac = 'Deposit';
|
elseif($object->type == Facture::TYPE_DEPOSIT) $type_fac = 'Deposit';
|
||||||
$text = $langs->trans('ConfirmConvertToReduc', strtolower($langs->transnoentities($type_fac)));
|
$text = $langs->trans('ConfirmConvertToReduc', strtolower($langs->transnoentities($type_fac)));
|
||||||
|
$text.='<br>'.$langs->trans('ConfirmConvertToReduc2');
|
||||||
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2);
|
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4746,7 +4747,7 @@ elseif ($id > 0 || ! empty($ref))
|
|||||||
}
|
}
|
||||||
// For credit note
|
// For credit note
|
||||||
if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercancreate && $object->getSommePaiement() == 0) {
|
if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercancreate && $object->getSommePaiement() == 0) {
|
||||||
print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&action=converttoreduc">' . $langs->trans('ConvertToReduc') . '</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&action=converttoreduc" title="'.dol_escape_htmltag($langs->trans("ConfirmConvertToReduc2")).'">' . $langs->trans('ConvertToReduc') . '</a></div>';
|
||||||
}
|
}
|
||||||
// For deposit invoice
|
// For deposit invoice
|
||||||
if ($object->type == Facture::TYPE_DEPOSIT && $usercancreate && $object->statut > 0 && empty($discount->id))
|
if ($object->type == Facture::TYPE_DEPOSIT && $usercancreate && $object->statut > 0 && empty($discount->id))
|
||||||
|
|||||||
@ -1075,7 +1075,7 @@ if ($resql)
|
|||||||
// Town
|
// Town
|
||||||
if (! empty($arrayfields['s.town']['checked']))
|
if (! empty($arrayfields['s.town']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="nocellnopadd">';
|
print '<td>';
|
||||||
print $obj->town;
|
print $obj->town;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
@ -1083,7 +1083,7 @@ if ($resql)
|
|||||||
// Zip
|
// Zip
|
||||||
if (! empty($arrayfields['s.zip']['checked']))
|
if (! empty($arrayfields['s.zip']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="nocellnopadd">';
|
print '<td>';
|
||||||
print $obj->zip;
|
print $obj->zip;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|||||||
@ -229,7 +229,7 @@ class DolGraph
|
|||||||
/**
|
/**
|
||||||
* Set width
|
* Set width
|
||||||
*
|
*
|
||||||
* @param int $w Width
|
* @param int|string $w Width (Example: 320 or '100%')
|
||||||
* @return boolean|null True
|
* @return boolean|null True
|
||||||
*/
|
*/
|
||||||
public function SetWidth($w)
|
public function SetWidth($w)
|
||||||
|
|||||||
@ -972,7 +972,10 @@ class ExtraFields
|
|||||||
|
|
||||||
$out='';
|
$out='';
|
||||||
|
|
||||||
$keyprefix = $keyprefix.'options_'; // Because we work on extrafields
|
if (! preg_match('/options_$/', $keyprefix)) // Because we work on extrafields, we add 'options_' to prefix if not already added
|
||||||
|
{
|
||||||
|
$keyprefix = $keyprefix.'options_';
|
||||||
|
}
|
||||||
|
|
||||||
if (! empty($extrafieldsobjectkey))
|
if (! empty($extrafieldsobjectkey))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -172,14 +172,21 @@ function getURLContent($url, $postorget = 'GET', $param = '', $followlocation =
|
|||||||
* For example: https://www.abc.mydomain.com/dir/page.html return 'mydomain'
|
* For example: https://www.abc.mydomain.com/dir/page.html return 'mydomain'
|
||||||
*
|
*
|
||||||
* @param string $url Full URL.
|
* @param string $url Full URL.
|
||||||
* @param int $mode 0=return 'mydomain', 1=return 'mydomain.com'
|
* @param int $mode 0=return 'mydomain', 1=return 'mydomain.com', 2=return 'abc.mydomain.com'
|
||||||
* @return string Returns domaine name
|
* @return string Returns domaine name
|
||||||
*/
|
*/
|
||||||
function getDomainFromURL($url, $mode = 0)
|
function getDomainFromURL($url, $mode = 0)
|
||||||
{
|
{
|
||||||
$tmpdomain = preg_replace('/^https?:\/\//i', '', $url); // Remove http(s)://
|
$tmpdomain = preg_replace('/^https?:\/\//i', '', $url); // Remove http(s)://
|
||||||
$tmpdomain = preg_replace('/\/.*$/i', '', $tmpdomain); // Remove part after domain
|
$tmpdomain = preg_replace('/\/.*$/i', '', $tmpdomain); // Remove part after domain
|
||||||
$tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)$/', '\1.\2', $tmpdomain); // Remove part www.abc before domain name
|
if ($mode == 2)
|
||||||
|
{
|
||||||
|
$tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)\.([^\.]+)$/', '\1.\2.\3', $tmpdomain); // Remove part 'www.' before 'abc.mydomain.com'
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)$/', '\1.\2', $tmpdomain); // Remove part 'www.abc.' before 'mydomain.com'
|
||||||
|
}
|
||||||
if (empty($mode))
|
if (empty($mode))
|
||||||
{
|
{
|
||||||
$tmpdomain = preg_replace('/\.[^\.]+$/', '', $tmpdomain); // Remove first level domain (.com, .net, ...)
|
$tmpdomain = preg_replace('/\.[^\.]+$/', '', $tmpdomain); // Remove first level domain (.com, .net, ...)
|
||||||
|
|||||||
@ -99,6 +99,7 @@ class modTicket extends DolibarrModules
|
|||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||||
$this->langfiles = array("ticket");
|
$this->langfiles = array("ticket");
|
||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
// List of particular constants to add when module is enabled
|
// List of particular constants to add when module is enabled
|
||||||
// (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive)
|
// (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive)
|
||||||
|
|||||||
@ -2221,6 +2221,7 @@ else
|
|||||||
elseif($object->type == FactureFournisseur::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote';
|
elseif($object->type == FactureFournisseur::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote';
|
||||||
elseif($object->type == FactureFournisseur::TYPE_DEPOSIT) $type_fac = 'Deposit';
|
elseif($object->type == FactureFournisseur::TYPE_DEPOSIT) $type_fac = 'Deposit';
|
||||||
$text = $langs->trans('ConfirmConvertToReducSupplier', strtolower($langs->transnoentities($type_fac)));
|
$text = $langs->trans('ConfirmConvertToReducSupplier', strtolower($langs->transnoentities($type_fac)));
|
||||||
|
$text .= '<br>'.$langs->trans('ConfirmConvertToReducSupplier2');
|
||||||
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2);
|
$formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3107,7 +3108,7 @@ else
|
|||||||
}
|
}
|
||||||
// For credit note
|
// For credit note
|
||||||
if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $user->rights->fournisseur->facture->creer && $object->getSommePaiement() == 0) {
|
if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $user->rights->fournisseur->facture->creer && $object->getSommePaiement() == 0) {
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&action=converttoreduc">' . $langs->trans('ConvertToReduc') . '</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&action=converttoreduc" title="'.dol_escape_htmltag($langs->trans("ConfirmConvertToReducSupplier2")).'">' . $langs->trans('ConvertToReduc') . '</a></div>';
|
||||||
}
|
}
|
||||||
// For deposit invoice
|
// For deposit invoice
|
||||||
if ($object->type == FactureFournisseur::TYPE_DEPOSIT && $object->paye == 1 && $resteapayer == 0 && $user->rights->fournisseur->facture->creer && empty($discount->id))
|
if ($object->type == FactureFournisseur::TYPE_DEPOSIT && $object->paye == 1 && $resteapayer == 0 && $user->rights->fournisseur->facture->creer && empty($discount->id))
|
||||||
|
|||||||
@ -291,7 +291,7 @@ Modelcsv_cogilog=Export for Cogilog
|
|||||||
Modelcsv_agiris=Export for Agiris
|
Modelcsv_agiris=Export for Agiris
|
||||||
Modelcsv_openconcerto=Export for OpenConcerto (Test)
|
Modelcsv_openconcerto=Export for OpenConcerto (Test)
|
||||||
Modelcsv_configurable=Export CSV Configurable
|
Modelcsv_configurable=Export CSV Configurable
|
||||||
Modelcsv_FEC=Export FEC (Art. L47 A)
|
Modelcsv_FEC=Export FEC
|
||||||
Modelcsv_Sage50_Swiss=Export for Sage 50 Switzerland
|
Modelcsv_Sage50_Swiss=Export for Sage 50 Switzerland
|
||||||
ChartofaccountsId=Chart of accounts Id
|
ChartofaccountsId=Chart of accounts Id
|
||||||
|
|
||||||
@ -336,7 +336,7 @@ UseMenuToSetBindindManualy=Lines not yet bound, use menu <a href="%s">%s</a> to
|
|||||||
|
|
||||||
## Import
|
## Import
|
||||||
ImportAccountingEntries=Accounting entries
|
ImportAccountingEntries=Accounting entries
|
||||||
|
DateExport=Date export
|
||||||
WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
|
WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
|
||||||
ExpenseReportJournal=Expense Report Journal
|
ExpenseReportJournal=Expense Report Journal
|
||||||
InventoryJournal=Inventory Journal
|
InventoryJournal=Inventory Journal
|
||||||
|
|||||||
@ -66,8 +66,10 @@ paymentInInvoiceCurrency=in invoices currency
|
|||||||
PaidBack=Paid back
|
PaidBack=Paid back
|
||||||
DeletePayment=Delete payment
|
DeletePayment=Delete payment
|
||||||
ConfirmDeletePayment=Are you sure you want to delete this payment?
|
ConfirmDeletePayment=Are you sure you want to delete this payment?
|
||||||
ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
|
ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?
|
||||||
ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor.
|
ConfirmConvertToReduc2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
|
||||||
|
ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?
|
||||||
|
ConfirmConvertToReducSupplier2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor.
|
||||||
SupplierPayments=Vendor payments
|
SupplierPayments=Vendor payments
|
||||||
ReceivedPayments=Received payments
|
ReceivedPayments=Received payments
|
||||||
ReceivedCustomersPayments=Payments received from customers
|
ReceivedCustomersPayments=Payments received from customers
|
||||||
|
|||||||
@ -133,6 +133,7 @@ TicketsIndex=Ticket - home
|
|||||||
TicketList=List of tickets
|
TicketList=List of tickets
|
||||||
TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user
|
TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user
|
||||||
NoTicketsFound=No ticket found
|
NoTicketsFound=No ticket found
|
||||||
|
NoUnreadTicketsFound=No unread ticket found
|
||||||
TicketViewAllTickets=View all tickets
|
TicketViewAllTickets=View all tickets
|
||||||
TicketViewNonClosedOnly=View only open tickets
|
TicketViewNonClosedOnly=View only open tickets
|
||||||
TicketStatByStatus=Tickets by status
|
TicketStatByStatus=Tickets by status
|
||||||
|
|||||||
@ -56,6 +56,7 @@ $search_barcode=GETPOST("search_barcode", 'alpha');
|
|||||||
$search_label=GETPOST("search_label", 'alpha');
|
$search_label=GETPOST("search_label", 'alpha');
|
||||||
$search_type = GETPOST("search_type", 'int');
|
$search_type = GETPOST("search_type", 'int');
|
||||||
$search_sale = GETPOST("search_sale", 'int');
|
$search_sale = GETPOST("search_sale", 'int');
|
||||||
|
$search_vatrate=GETPOST("search_vatrate", 'alpha');
|
||||||
$search_categ = GETPOST("search_categ", 'int');
|
$search_categ = GETPOST("search_categ", 'int');
|
||||||
$search_tosell = GETPOST("search_tosell", 'int');
|
$search_tosell = GETPOST("search_tosell", 'int');
|
||||||
$search_tobuy = GETPOST("search_tobuy", 'int');
|
$search_tobuy = GETPOST("search_tobuy", 'int');
|
||||||
@ -174,7 +175,8 @@ $arrayfields=array(
|
|||||||
'p.sellprice'=>array('label'=>$langs->trans("SellingPrice"), 'checked'=>1, 'enabled'=>empty($conf->global->PRODUIT_MULTIPRICES)),
|
'p.sellprice'=>array('label'=>$langs->trans("SellingPrice"), 'checked'=>1, 'enabled'=>empty($conf->global->PRODUIT_MULTIPRICES)),
|
||||||
'p.minbuyprice'=>array('label'=>$langs->trans("BuyingPriceMinShort"), 'checked'=>1, 'enabled'=>(! empty($user->rights->fournisseur->lire))),
|
'p.minbuyprice'=>array('label'=>$langs->trans("BuyingPriceMinShort"), 'checked'=>1, 'enabled'=>(! empty($user->rights->fournisseur->lire))),
|
||||||
'p.numbuyprice'=>array('label'=>$langs->trans("BuyingPriceNumShort"), 'checked'=>0, 'enabled'=>(! empty($user->rights->fournisseur->lire))),
|
'p.numbuyprice'=>array('label'=>$langs->trans("BuyingPriceNumShort"), 'checked'=>0, 'enabled'=>(! empty($user->rights->fournisseur->lire))),
|
||||||
'p.pmp'=>array('label'=>$langs->trans("PMPValueShort"), 'checked'=>0, 'enabled'=>(! empty($user->rights->fournisseur->lire))),
|
'p.tva_tx'=>array('label'=>$langs->trans("VATRate"), 'checked'=>0, 'enabled'=>(! empty($user->rights->fournisseur->lire))),
|
||||||
|
'p.pmp'=>array('label'=>$langs->trans("PMPValueShort"), 'checked'=>0, 'enabled'=>(! empty($user->rights->fournisseur->lire))),
|
||||||
'p.seuil_stock_alerte'=>array('label'=>$langs->trans("StockLimit"), 'checked'=>0, 'enabled'=>(! empty($conf->stock->enabled) && $user->rights->stock->lire && $contextpage != 'service')),
|
'p.seuil_stock_alerte'=>array('label'=>$langs->trans("StockLimit"), 'checked'=>0, 'enabled'=>(! empty($conf->stock->enabled) && $user->rights->stock->lire && $contextpage != 'service')),
|
||||||
'p.desiredstock'=>array('label'=>$langs->trans("DesiredStock"), 'checked'=>1, 'enabled'=>(! empty($conf->stock->enabled) && $user->rights->stock->lire && $contextpage != 'service')),
|
'p.desiredstock'=>array('label'=>$langs->trans("DesiredStock"), 'checked'=>1, 'enabled'=>(! empty($conf->stock->enabled) && $user->rights->stock->lire && $contextpage != 'service')),
|
||||||
'p.stock'=>array('label'=>$langs->trans("PhysicalStock"), 'checked'=>1, 'enabled'=>(! empty($conf->stock->enabled) && $user->rights->stock->lire && $contextpage != 'service')),
|
'p.stock'=>array('label'=>$langs->trans("PhysicalStock"), 'checked'=>1, 'enabled'=>(! empty($conf->stock->enabled) && $user->rights->stock->lire && $contextpage != 'service')),
|
||||||
@ -229,6 +231,7 @@ if (empty($reshook))
|
|||||||
$search_categ=0;
|
$search_categ=0;
|
||||||
$search_tosell="";
|
$search_tosell="";
|
||||||
$search_tobuy="";
|
$search_tobuy="";
|
||||||
|
$search_vatrate="";
|
||||||
$search_tobatch='';
|
$search_tobatch='';
|
||||||
//$search_type=''; // There is 2 types of list: a list of product and a list of services. No list with both. So when we clear search criteria, we must keep the filter on type.
|
//$search_type=''; // There is 2 types of list: a list of product and a list of services. No list with both. So when we clear search criteria, we must keep the filter on type.
|
||||||
|
|
||||||
@ -276,7 +279,7 @@ else
|
|||||||
$texte = $langs->trans("ProductsAndServices");
|
$texte = $langs->trans("ProductsAndServices");
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT DISTINCT p.rowid, p.ref, p.label, p.fk_product_type, p.barcode, p.price, p.price_ttc, p.price_base_type, p.entity,';
|
$sql = 'SELECT DISTINCT p.rowid, p.ref, p.label, p.fk_product_type, p.barcode, p.price, p.tva_tx, p.price_ttc, p.price_base_type, p.entity,';
|
||||||
$sql.= ' p.fk_product_type, p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock,';
|
$sql.= ' p.fk_product_type, p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock,';
|
||||||
$sql.= ' p.tobatch, p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export, p.accountancy_code_buy,';
|
$sql.= ' p.tobatch, p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export, p.accountancy_code_buy,';
|
||||||
$sql.= ' p.datec as date_creation, p.tms as date_update, p.pmp, p.stock,';
|
$sql.= ' p.datec as date_creation, p.tms as date_update, p.pmp, p.stock,';
|
||||||
@ -323,6 +326,7 @@ if ($search_label) $sql .= natural_search('p.label', $search_label);
|
|||||||
if ($search_barcode) $sql .= natural_search('p.barcode', $search_barcode);
|
if ($search_barcode) $sql .= natural_search('p.barcode', $search_barcode);
|
||||||
if (isset($search_tosell) && dol_strlen($search_tosell) > 0 && $search_tosell!=-1) $sql.= " AND p.tosell = ".$db->escape($search_tosell);
|
if (isset($search_tosell) && dol_strlen($search_tosell) > 0 && $search_tosell!=-1) $sql.= " AND p.tosell = ".$db->escape($search_tosell);
|
||||||
if (isset($search_tobuy) && dol_strlen($search_tobuy) > 0 && $search_tobuy!=-1) $sql.= " AND p.tobuy = ".$db->escape($search_tobuy);
|
if (isset($search_tobuy) && dol_strlen($search_tobuy) > 0 && $search_tobuy!=-1) $sql.= " AND p.tobuy = ".$db->escape($search_tobuy);
|
||||||
|
if ($search_vatrate) $sql .= natural_search('p.tva_tx', $search_vatrate);
|
||||||
if (dol_strlen($canvas) > 0) $sql.= " AND p.canvas = '".$db->escape($canvas)."'";
|
if (dol_strlen($canvas) > 0) $sql.= " AND p.canvas = '".$db->escape($canvas)."'";
|
||||||
if ($catid > 0) $sql.= " AND cp.fk_categorie = ".$catid;
|
if ($catid > 0) $sql.= " AND cp.fk_categorie = ".$catid;
|
||||||
if ($catid == -2) $sql.= " AND cp.fk_categorie IS NULL";
|
if ($catid == -2) $sql.= " AND cp.fk_categorie IS NULL";
|
||||||
@ -341,7 +345,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
|
|||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
$sql.=$hookmanager->resPrint;
|
$sql.=$hookmanager->resPrint;
|
||||||
$sql.= " GROUP BY p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price_base_type,";
|
$sql.= " GROUP BY p.rowid, p.ref, p.label, p.barcode, p.price, p.tva_tx, p.price_ttc, p.price_base_type,";
|
||||||
$sql.= " p.fk_product_type, p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock,";
|
$sql.= " p.fk_product_type, p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock,";
|
||||||
$sql.= ' p.datec, p.tms, p.entity, p.tobatch, p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export, p.accountancy_code_buy, p.pmp, p.stock,';
|
$sql.= ' p.datec, p.tms, p.entity, p.tobatch, p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export, p.accountancy_code_buy, p.pmp, p.stock,';
|
||||||
$sql.= ' p.weight, p.weight_units, p.length, p.length_units, p.surface, p.surface_units, p.volume, p.volume_units, p.width, p.width_units, p.height, p.height_units';
|
$sql.= ' p.weight, p.weight_units, p.length, p.length_units, p.surface, p.surface_units, p.volume, p.volume_units, p.width, p.width_units, p.height, p.height_units';
|
||||||
@ -421,6 +425,7 @@ if ($resql)
|
|||||||
if ($search_label) $param.="&search_label=".urlencode($search_label);
|
if ($search_label) $param.="&search_label=".urlencode($search_label);
|
||||||
if ($search_tosell != '') $param.="&search_tosell=".urlencode($search_tosell);
|
if ($search_tosell != '') $param.="&search_tosell=".urlencode($search_tosell);
|
||||||
if ($search_tobuy != '') $param.="&search_tobuy=".urlencode($search_tobuy);
|
if ($search_tobuy != '') $param.="&search_tobuy=".urlencode($search_tobuy);
|
||||||
|
if ($search_vatrate) $sql .= natural_search('p.tva_tx', $search_vatrate);
|
||||||
if ($fourn_id > 0) $param.=($fourn_id?"&fourn_id=".$fourn_id:"");
|
if ($fourn_id > 0) $param.=($fourn_id?"&fourn_id=".$fourn_id:"");
|
||||||
if ($seach_categ) $param.=($search_categ?"&search_categ=".urlencode($search_categ):"");
|
if ($seach_categ) $param.=($search_categ?"&search_categ=".urlencode($search_categ):"");
|
||||||
if ($show_childproducts) $param.=($show_childproducts?"&search_show_childproducts=".urlencode($show_childproducts):"");
|
if ($show_childproducts) $param.=($show_childproducts?"&search_show_childproducts=".urlencode($show_childproducts):"");
|
||||||
@ -613,6 +618,13 @@ if ($resql)
|
|||||||
print ' ';
|
print ' ';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
// Sell price
|
||||||
|
if (! empty($arrayfields['p.tva_tx']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre right">';
|
||||||
|
print '<input class="right flat maxwidth50" placeholder="%" type="text" name="search_vatrate" size="1" value="'.dol_escape_htmltag($search_vatrate).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
// WAP
|
// WAP
|
||||||
if (! empty($arrayfields['p.pmp']['checked']))
|
if (! empty($arrayfields['p.pmp']['checked']))
|
||||||
{
|
{
|
||||||
@ -715,6 +727,9 @@ if ($resql)
|
|||||||
if (! empty($arrayfields['p.numbuyprice']['checked'])) {
|
if (! empty($arrayfields['p.numbuyprice']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['p.numbuyprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
print_liste_field_titre($arrayfields['p.numbuyprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
}
|
}
|
||||||
|
if (! empty($arrayfields['p.tva_tx']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['p.tva_tx']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
|
}
|
||||||
if (! empty($arrayfields['p.pmp']['checked'])) {
|
if (! empty($arrayfields['p.pmp']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['p.pmp']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
print_liste_field_titre($arrayfields['p.pmp']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
}
|
}
|
||||||
@ -983,6 +998,15 @@ if ($resql)
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sell Tax Rate
|
||||||
|
if (! empty($arrayfields['p.tva_tx']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="right">';
|
||||||
|
print vatrate($obj->tva_tx,true);
|
||||||
|
print '</td>';
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
// WAP
|
// WAP
|
||||||
if (! empty($arrayfields['p.pmp']['checked']))
|
if (! empty($arrayfields['p.pmp']['checked']))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) - 2013-2016 Jean-François FERRY <hello@librethic.io>
|
/* Copyright (C) - 2013-2016 Jean-François FERRY <hello@librethic.io>
|
||||||
|
* Copyright (C) - 2019 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -18,7 +19,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/public/ticket/index.php
|
* \file htdocs/public/ticket/index.php
|
||||||
* \ingroup ticket
|
* \ingroup ticket
|
||||||
* \brief Public file to add and manage ticket
|
* \brief Public page to add and manage ticket
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1');
|
if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1');
|
||||||
@ -56,21 +57,24 @@ $formticket = new FormTicket($db);
|
|||||||
|
|
||||||
$arrayofjs = array();
|
$arrayofjs = array();
|
||||||
$arrayofcss = array('/ticket/css/styles.css.php');
|
$arrayofcss = array('/ticket/css/styles.css.php');
|
||||||
|
|
||||||
|
if (empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE))
|
||||||
|
{
|
||||||
|
print $langs->trans('TicketPublicInterfaceForbidden');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss);
|
llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss);
|
||||||
|
|
||||||
if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) {
|
print '<div style="margin: 0 auto; width:60%">';
|
||||||
print '<div class="error">' . $langs->trans('TicketPublicInterfaceForbidden') . '</div>';
|
print '<p style="text-align: center">' . ($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")) . '</p>';
|
||||||
} else {
|
print '<div class="ticketform">';
|
||||||
print '<div style="margin: 0 auto; width:60%">';
|
print '<a href="create_ticket.php" class=""><div class="index_create orange bigrounded">' . dol_escape_htmltag($langs->trans("CreateTicket")) . '</div></a>';
|
||||||
print '<p style="text-align: center">' . ($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")) . '</p>';
|
print '<a href="list.php" class=""><div class="index_display blue bigrounded">' . dol_escape_htmltag($langs->trans("ShowListTicketWithTrackId")) . '</div></a>';
|
||||||
print '<div class="ticketform">';
|
print '<a href="view.php" class=""><div class="index_display blue bigrounded">' . dol_escape_htmltag($langs->trans("ShowTicketWithTrackId")) . '</div></a>';
|
||||||
print '<a href="create_ticket.php" class=""><div class="index_create orange bigrounded">' . dol_escape_htmltag($langs->trans("CreateTicket")) . '</div></a>';
|
print '<div style="clear:both;"></div>';
|
||||||
print '<a href="list.php" class=""><div class="index_display blue bigrounded">' . dol_escape_htmltag($langs->trans("ShowListTicketWithTrackId")) . '</div></a>';
|
print '</div>';
|
||||||
print '<a href="view.php" class=""><div class="index_display blue bigrounded">' . dol_escape_htmltag($langs->trans("ShowTicketWithTrackId")) . '</div></a>';
|
print '</div>';
|
||||||
print '<div style="clear:both;"></div>';
|
|
||||||
print '</div>';
|
|
||||||
print '</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
htmlPrintOnlinePaymentFooter($mysoc, $langs, 1, $suffix, $object);
|
htmlPrintOnlinePaymentFooter($mysoc, $langs, 1, $suffix, $object);
|
||||||
|
|||||||
@ -536,7 +536,7 @@ class Stripe extends CommonObject
|
|||||||
|
|
||||||
//$a = \Stripe\Stripe::getApiKey();
|
//$a = \Stripe\Stripe::getApiKey();
|
||||||
//var_dump($a);var_dump($stripeacc);exit;
|
//var_dump($a);var_dump($stripeacc);exit;
|
||||||
dol_syslog("Try to create card dataforcard = ".dol_json_encode($dataforcard));
|
dol_syslog("Try to create card dataforcard = ".json_encode($dataforcard));
|
||||||
try {
|
try {
|
||||||
if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage
|
if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage
|
||||||
$card = $cu->sources->create($dataforcard);
|
$card = $cu->sources->create($dataforcard);
|
||||||
|
|||||||
@ -2374,7 +2374,7 @@ class Ticket extends CommonObject
|
|||||||
if (file_exists($dir_osencoded)) {
|
if (file_exists($dir_osencoded)) {
|
||||||
$handle = opendir($dir_osencoded);
|
$handle = opendir($dir_osencoded);
|
||||||
if (is_resource($handle)) {
|
if (is_resource($handle)) {
|
||||||
while (($file = readdir($handle)) != false) {
|
while (($file = readdir($handle)) !== false) {
|
||||||
if (!utf8_check($file)) {
|
if (!utf8_check($file)) {
|
||||||
$file = utf8_encode($file);
|
$file = utf8_encode($file);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,7 @@ require '../main.inc.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT . '/ticket/class/actions_ticket.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/ticket/class/actions_ticket.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT . '/ticket/class/ticketstats.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/ticket/class/ticketstats.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/class/dolgraph.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/core/class/dolgraph.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
|
||||||
|
|
||||||
$hookmanager = new HookManager($db);
|
$hookmanager = new HookManager($db);
|
||||||
|
|
||||||
@ -108,8 +109,8 @@ if (empty($endyear)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$startyear = $endyear - 1;
|
$startyear = $endyear - 1;
|
||||||
$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '256' : '320';
|
$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '100%' : '80%';
|
||||||
$HEIGHT = '192';
|
$HEIGHT = '228';
|
||||||
|
|
||||||
print '<div class="fichecenter"><div class="fichethirdleft">';
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
||||||
|
|
||||||
@ -126,16 +127,14 @@ $tick = array(
|
|||||||
'closed' => 0,
|
'closed' => 0,
|
||||||
'deleted' => 0,
|
'deleted' => 0,
|
||||||
);
|
);
|
||||||
$total = 0;
|
|
||||||
$sql = "SELECT t.fk_statut, COUNT(t.fk_statut) as nb";
|
$sql = "SELECT t.fk_statut, COUNT(t.fk_statut) as nb";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "ticket as t";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "ticket as t";
|
||||||
if (!$user->rights->societe->client->voir && !$socid) {
|
if (!$user->rights->societe->client->voir && !$socid) {
|
||||||
$sql .= ", " . MAIN_DB_PREFIX . "societe_commerciaux as sc";
|
$sql .= ", " . MAIN_DB_PREFIX . "societe_commerciaux as sc";
|
||||||
}
|
}
|
||||||
|
$sql .= ' WHERE t.entity IN (' . getEntity('ticket') . ')';
|
||||||
$sql .= ' WHERE t.entity IN (' . getEntity('ticket', 1) . ')';
|
$sql .= dolSqlDateFilter('datec', 0, 0, $endyear);
|
||||||
$sql .= " AND t.fk_statut IS NOT NULL";
|
|
||||||
$sql .= " AND date_format(datec,'%Y') = '" . $endyear . "'";
|
|
||||||
if (!$user->rights->societe->client->voir && !$socid) {
|
if (!$user->rights->societe->client->voir && !$socid) {
|
||||||
$sql .= " AND t.fk_soc = sc.fk_soc AND sc.fk_user = " . $user->id;
|
$sql .= " AND t.fk_soc = sc.fk_soc AND sc.fk_user = " . $user->id;
|
||||||
}
|
}
|
||||||
@ -155,44 +154,41 @@ $result = $db->query($sql);
|
|||||||
if ($result) {
|
if ($result) {
|
||||||
while ($objp = $db->fetch_object($result)) {
|
while ($objp = $db->fetch_object($result)) {
|
||||||
$found = 0;
|
$found = 0;
|
||||||
if ($objp->fk_statut == 0) {
|
if ($objp->fk_statut == Ticket::STATUS_NOT_READ) {
|
||||||
$tick['unread'] = $objp->nb;
|
$tick['unread'] = $objp->nb;
|
||||||
}
|
}
|
||||||
if ($objp->fk_statut == 1) {
|
if ($objp->fk_statut == Ticket::STATUS_READ) {
|
||||||
$tick['read'] = $objp->nb;
|
$tick['read'] = $objp->nb;
|
||||||
}
|
}
|
||||||
if ($objp->fk_statut == 3) {
|
if ($objp->fk_statut == Ticket::STATUS_NEED_MORE_INFO) {
|
||||||
$tick['answered'] = $objp->nb;
|
$tick['needmoreinfo'] = $objp->nb;
|
||||||
}
|
}
|
||||||
if ($objp->fk_statut == 4) {
|
if ($objp->fk_statut == Ticket::STATUS_ASSIGNED) {
|
||||||
$tick['assigned'] = $objp->nb;
|
$tick['assigned'] = $objp->nb;
|
||||||
}
|
}
|
||||||
if ($objp->fk_statut == 5) {
|
if ($objp->fk_statut == Ticket::STATUS_IN_PROGRESS) {
|
||||||
$tick['inprogress'] = $objp->nb;
|
$tick['inprogress'] = $objp->nb;
|
||||||
}
|
}
|
||||||
if ($objp->fk_statut == 6) {
|
if ($objp->fk_statut == Ticket::STATUS_WAITING) {
|
||||||
$tick['waiting'] = $objp->nb;
|
$tick['waiting'] = $objp->nb;
|
||||||
}
|
}
|
||||||
if ($objp->fk_statut == 8) {
|
if ($objp->fk_statut == Ticket::STATUS_CLOSED) {
|
||||||
$tick['closed'] = $objp->nb;
|
$tick['closed'] = $objp->nb;
|
||||||
}
|
}
|
||||||
if ($objp->fk_statut == 9) {
|
if ($objp->fk_statut == Ticket::STATUS_CANCELED) {
|
||||||
$tick['deleted'] = $objp->nb;
|
$tick['canceled'] = $objp->nb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((round($tick['unread']) ? 1 : 0) +(round($tick['read']) ? 1 : 0) +(round($tick['answered']) ? 1 : 0) +(round($tick['assigned']) ? 1 : 0) +(round($tick['inprogress']) ? 1 : 0) +(round($tick['waiting']) ? 1 : 0) +(round($tick['closed']) ? 1 : 0) +(round($tick['deleted']) ? 1 : 0) >= 2
|
$dataseries = array();
|
||||||
) {
|
$dataseries[] = array('label' => $langs->trans("Unread"), 'data' => round($tick['unread']));
|
||||||
$dataseries = array();
|
$dataseries[] = array('label' => $langs->trans("Read"), 'data' => round($tick['read']));
|
||||||
$dataseries[] = array('label' => $langs->trans("Unread"), 'data' => round($tick['unread']));
|
$dataseries[] = array('label' => $langs->trans("NeedMoreInformation"), 'data' => round($tick['needmoreinfo']));
|
||||||
$dataseries[] = array('label' => $langs->trans("Read"), 'data' => round($tick['read']));
|
$dataseries[] = array('label' => $langs->trans("Assigned"), 'data' => round($tick['assigned']));
|
||||||
$dataseries[] = array('label' => $langs->trans("Answered"), 'data' => round($tick['answered']));
|
$dataseries[] = array('label' => $langs->trans("InProgress"), 'data' => round($tick['inprogress']));
|
||||||
$dataseries[] = array('label' => $langs->trans("Assigned"), 'data' => round($tick['assigned']));
|
$dataseries[] = array('label' => $langs->trans("Waiting"), 'data' => round($tick['waiting']));
|
||||||
$dataseries[] = array('label' => $langs->trans("InProgress"), 'data' => round($tick['inprogress']));
|
$dataseries[] = array('label' => $langs->trans("Closed"), 'data' => round($tick['closed']));
|
||||||
$dataseries[] = array('label' => $langs->trans("Waiting"), 'data' => round($tick['waiting']));
|
$dataseries[] = array('label' => $langs->trans("Canceled"), 'data' => round($tick['canceled']));
|
||||||
$dataseries[] = array('label' => $langs->trans("Closed"), 'data' => round($tick['closed']));
|
|
||||||
$dataseries[] = array('label' => $langs->trans("Deleted"), 'data' => round($tick['deleted']));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
@ -216,11 +212,17 @@ $stringtoshow .= '</div>';
|
|||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><th >' . $langs->trans("Statistics") . ' ' . img_picto('', 'filter.png', 'id="idsubimgDOLUSERCOOKIE_ticket_by_status" class="linkobject"') . '</th></tr>';
|
print '<tr class="liste_titre"><th >' . $langs->trans("Statistics") . ' ' . img_picto('', 'filter.png', 'id="idsubimgDOLUSERCOOKIE_ticket_by_status" class="linkobject"') . '</th></tr>';
|
||||||
|
|
||||||
print '<tr><td>';
|
print '<tr><td class="center">';
|
||||||
|
print $stringtoshow;
|
||||||
|
|
||||||
// don't display graph if no series
|
// don't display graph if no series
|
||||||
if (! empty($dataseries) && count($dataseries) > 1) {
|
if (! empty($dataseries) && count($dataseries) > 1) {
|
||||||
$data = array();
|
$totalnb=0;
|
||||||
|
foreach ($dataseries as $key => $value) {
|
||||||
|
$totalnb += $value['data'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = array();
|
||||||
foreach ($dataseries as $key => $value) {
|
foreach ($dataseries as $key => $value) {
|
||||||
$data[] = array($value['label'], $value['data']);
|
$data[] = array($value['label'], $value['data']);
|
||||||
}
|
}
|
||||||
@ -250,10 +252,9 @@ if (! empty($dataseries) && count($dataseries) > 1) {
|
|||||||
//$px1->SetTitle($langs->trans("TicketStatByStatus"));
|
//$px1->SetTitle($langs->trans("TicketStatByStatus"));
|
||||||
|
|
||||||
$px1->draw($filenamenb, $fileurlnb);
|
$px1->draw($filenamenb, $fileurlnb);
|
||||||
print $px1->show();
|
print $px1->show($totalnb?0:1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print $stringtoshow;
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -309,7 +310,7 @@ if ($result) {
|
|||||||
print '<div class="div-table-responsive-no-min">';
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><th colspan="5">' . $transRecordedType . '</th>';
|
print '<tr class="liste_titre"><th colspan="5">' . $transRecordedType . '</th>';
|
||||||
print '<th class="right" colspan="2"><a href="'.DOL_URL_ROOT.'/ticket/list.php">'.$langs->trans("FullList").'</th>';
|
print '<th class="right" colspan="2"><a href="'.DOL_URL_ROOT.'/ticket/list.php?search_fk_statut[]='.Ticket::STATUS_NOT_READ.'">'.$langs->trans("FullList").'</th>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
if ($num > 0) {
|
if ($num > 0) {
|
||||||
|
|
||||||
@ -365,7 +366,7 @@ if ($result) {
|
|||||||
|
|
||||||
$db->free();
|
$db->free();
|
||||||
} else {
|
} else {
|
||||||
print '<tr><td colspan="6" class="opacitymedium">' . $langs->trans('NoTicketsFound') . '</td></tr>';
|
print '<tr><td colspan="6" class="opacitymedium">' . $langs->trans('NoUnreadTicketsFound') . '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|||||||
@ -520,8 +520,8 @@ class User extends CommonObject
|
|||||||
* Add a right to the user
|
* Add a right to the user
|
||||||
*
|
*
|
||||||
* @param int $rid Id of permission to add or 0 to add several permissions
|
* @param int $rid Id of permission to add or 0 to add several permissions
|
||||||
* @param string $allmodule Add all permissions of module $allmodule
|
* @param string $allmodule Add all permissions of module $allmodule or 'allmodules' to include all modules.
|
||||||
* @param string $allperms Add all permissions of module $allmodule, subperms $allperms only
|
* @param string $allperms Add all permissions of module $allmodule, subperms $allperms only or '' to include all permissions.
|
||||||
* @param int $entity Entity to use
|
* @param int $entity Entity to use
|
||||||
* @param int $notrigger 1=Does not execute triggers, 0=Execute triggers
|
* @param int $notrigger 1=Does not execute triggers, 0=Execute triggers
|
||||||
* @return int > 0 if OK, < 0 if KO
|
* @return int > 0 if OK, < 0 if KO
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user