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

This commit is contained in:
Florian HENRY 2021-03-29 15:49:43 +02:00
commit f25360cc4c
110 changed files with 933 additions and 509 deletions

View File

@ -7,6 +7,7 @@ English Dolibarr ChangeLog
For users: For users:
---------- ----------
NEW: Several security issues after a second private bug bounty campaign.
For developers: For developers:

View File

@ -84,12 +84,10 @@ if (!empty($canvas)) {
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
$hookmanager->initHooks(array('membercard', 'globalcard')); $hookmanager->initHooks(array('membercard', 'globalcard'));
// Security check // Fetch object
$result = restrictedArea($user, 'adherent', $id, '', '', 'socid', 'rowid', 0); if ($id > 0 || !empty($ref)) {
if ($id > 0) {
// Load member // Load member
$result = $object->fetch($id); $result = $object->fetch($id, $ref);
// Define variables to know what current user can do on users // Define variables to know what current user can do on users
$canadduser = ($user->admin || $user->rights->user->user->creer); $canadduser = ($user->admin || $user->rights->user->user->creer);
@ -110,6 +108,8 @@ if ($id) {
$caneditfieldmember = $user->rights->adherent->creer; $caneditfieldmember = $user->rights->adherent->creer;
} }
// Security check
$result = restrictedArea($user, 'adherent', $object->id, '', '', 'socid', 'rowid', 0);
/* /*

View File

@ -42,9 +42,6 @@ $ref = GETPOST('ref', 'alphanohtml');
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$confirm = GETPOST('confirm', 'alpha'); $confirm = GETPOST('confirm', 'alpha');
// Security check
$result = restrictedArea($user, 'adherent', $id);
// Get parameters // Get parameters
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST("sortfield", 'alpha'); $sortfield = GETPOST("sortfield", 'alpha');
@ -63,8 +60,6 @@ if (!$sortfield) {
$sortfield = "name"; $sortfield = "name";
} }
$form = new Form($db);
$object = new Adherent($db); $object = new Adherent($db);
$membert = new AdherentType($db); $membert = new AdherentType($db);
$result = $object->fetch($id, $ref); $result = $object->fetch($id, $ref);
@ -74,6 +69,33 @@ if ($result < 0) {
} }
$upload_dir = $conf->adherent->dir_output."/".get_exdir(0, 0, 0, 1, $object, 'member'); $upload_dir = $conf->adherent->dir_output."/".get_exdir(0, 0, 0, 1, $object, 'member');
// Fetch object
if ($id > 0 || !empty($ref)) {
// Load member
$result = $object->fetch($id, $ref);
// Define variables to know what current user can do on users
$canadduser = ($user->admin || $user->rights->user->user->creer);
// Define variables to know what current user can do on properties of user linked to edited member
if ($object->user_id) {
// $User is the user who edits, $object->user_id is the id of the related user in the edited member
$caneditfielduser = ((($user->id == $object->user_id) && $user->rights->user->self->creer)
|| (($user->id != $object->user_id) && $user->rights->user->user->creer));
$caneditpassworduser = ((($user->id == $object->user_id) && $user->rights->user->self->password)
|| (($user->id != $object->user_id) && $user->rights->user->user->password));
}
}
// Define variables to determine what the current user can do on the members
$canaddmember = $user->rights->adherent->creer;
// Define variables to determine what the current user can do on the properties of a member
if ($id) {
$caneditfieldmember = $user->rights->adherent->creer;
}
// Security check
$result = restrictedArea($user, 'adherent', $object->id, '', '', 'socid', 'rowid', 0);
/* /*
* Actions * Actions

View File

@ -26,7 +26,16 @@
require '../main.inc.php'; require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
$status = GETPOST('status', 'int');
$cotis = GETPOST('cotis', 'int');
$sortfield = GETPOST('sortfield', 'alphanohtml');
$sortorder = GETPOST('sortorder', 'aZ09');
// Security check // Security check
if (empty($conf->adherent->enabled)) {
accessforbidden();
}
if (!$user->rights->adherent->export) { if (!$user->rights->adherent->export) {
accessforbidden(); accessforbidden();
} }
@ -46,19 +55,10 @@ if (empty($sortorder)) {
if (empty($sortfield)) { if (empty($sortfield)) {
$sortfield = "d.login"; $sortfield = "d.login";
} }
if (!isset($statut)) {
$statut = 1;
}
if (!isset($cotis)) {
// by default, members must be up to date of subscription
$cotis = 1;
}
$sql = "SELECT d.login, d.pass, d.datefin"; $sql = "SELECT d.login, d.pass, d.datefin";
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d "; $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d ";
$sql .= " WHERE d.statut = ".$statut; $sql .= " WHERE d.statut = ".((int) $status);
if ($cotis == 1) { if ($cotis == 1) {
$sql .= " AND datefin > '".$db->idate($now)."'"; $sql .= " AND datefin > '".$db->idate($now)."'";
} }
@ -70,6 +70,7 @@ if ($resql) {
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
$param = '';
print_barre_liste($langs->trans("HTPasswordExport"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', 0); print_barre_liste($langs->trans("HTPasswordExport"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', 0);
print "<hr>\n"; print "<hr>\n";

View File

@ -32,7 +32,8 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
// Load translation files required by the page // Load translation files required by the page
$langs->loadLangs(array("companies", "members", "ldap", "admin")); $langs->loadLangs(array("companies", "members", "ldap", "admin"));
$rowid = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alphanohtml');
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
// Protection // Protection
@ -42,11 +43,33 @@ if ($user->socid > 0) {
} }
$object = new Adherent($db); $object = new Adherent($db);
$result = $object->fetch($rowid);
if (!$result) { // Fetch object
dol_print_error($db, "Failed to get adherent: ".$object->error); if ($id > 0 || !empty($ref)) {
exit; // Load member
$result = $object->fetch($id, $ref);
// Define variables to know what current user can do on users
$canadduser = ($user->admin || $user->rights->user->user->creer);
// Define variables to know what current user can do on properties of user linked to edited member
if ($object->user_id) {
// $User is the user who edits, $object->user_id is the id of the related user in the edited member
$caneditfielduser = ((($user->id == $object->user_id) && $user->rights->user->self->creer)
|| (($user->id != $object->user_id) && $user->rights->user->user->creer));
$caneditpassworduser = ((($user->id == $object->user_id) && $user->rights->user->self->password)
|| (($user->id != $object->user_id) && $user->rights->user->user->password));
} }
}
// Define variables to determine what the current user can do on the members
$canaddmember = $user->rights->adherent->creer;
// Define variables to determine what the current user can do on the properties of a member
if ($id) {
$caneditfieldmember = $user->rights->adherent->creer;
}
// Security check
$result = restrictedArea($user, 'adherent', $object->id, '', '', 'socid', 'rowid', 0);
/* /*

View File

@ -33,9 +33,7 @@ $langs->loadLangs(array("companies", "members", "bills"));
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$id = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alphanohtml');
// Security check
$result = restrictedArea($user, 'adherent', $id);
$object = new Adherent($db); $object = new Adherent($db);
$result = $object->fetch($id); $result = $object->fetch($id);
@ -46,6 +44,34 @@ if ($result > 0) {
$permissionnote = $user->rights->adherent->creer; // Used by the include of actions_setnotes.inc.php $permissionnote = $user->rights->adherent->creer; // Used by the include of actions_setnotes.inc.php
// Fetch object
if ($id > 0 || !empty($ref)) {
// Load member
$result = $object->fetch($id, $ref);
// Define variables to know what current user can do on users
$canadduser = ($user->admin || $user->rights->user->user->creer);
// Define variables to know what current user can do on properties of user linked to edited member
if ($object->user_id) {
// $User is the user who edits, $object->user_id is the id of the related user in the edited member
$caneditfielduser = ((($user->id == $object->user_id) && $user->rights->user->self->creer)
|| (($user->id != $object->user_id) && $user->rights->user->user->creer));
$caneditpassworduser = ((($user->id == $object->user_id) && $user->rights->user->self->password)
|| (($user->id != $object->user_id) && $user->rights->user->user->password));
}
}
// Define variables to determine what the current user can do on the members
$canaddmember = $user->rights->adherent->creer;
// Define variables to determine what the current user can do on the properties of a member
if ($id) {
$caneditfieldmember = $user->rights->adherent->creer;
}
// Security check
$result = restrictedArea($user, 'adherent', $object->id, '', '', 'socid', 'rowid', 0);
/* /*
* Actions * Actions
*/ */

View File

@ -42,7 +42,9 @@ $langs->loadLangs(array("companies", "bills", "members", "users", "mails", 'othe
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$confirm = GETPOST('confirm', 'alpha'); $confirm = GETPOST('confirm', 'alpha');
$rowid = GETPOST('rowid', 'int') ?GETPOST('rowid', 'int') : GETPOST('id', 'int'); $id = GETPOST('rowid', 'int') ?GETPOST('rowid', 'int') : GETPOST('id', 'int');
$rowid = $id;
$ref = GETPOST('ref', 'alphanohtml');
$typeid = GETPOST('typeid', 'int'); $typeid = GETPOST('typeid', 'int');
$cancel = GETPOST('cancel'); $cancel = GETPOST('cancel');
@ -66,10 +68,6 @@ if (!$sortorder) {
$sortorder = "DESC"; $sortorder = "DESC";
} }
// Security check
$result = restrictedArea($user, 'adherent', $rowid, '', 'cotisation');
$object = new Adherent($db); $object = new Adherent($db);
$extrafields = new ExtraFields($db); $extrafields = new ExtraFields($db);
$adht = new AdherentType($db); $adht = new AdherentType($db);
@ -82,29 +80,6 @@ $errmsg = '';
$defaultdelay = 1; $defaultdelay = 1;
$defaultdelayunit = 'y'; $defaultdelayunit = 'y';
if ($rowid) {
// Load member
$result = $object->fetch($rowid);
// Define variables to know what current user can do on users
$canadduser = ($user->admin || $user->rights->user->user->creer);
// Define variables to know what current user can do on properties of user linked to edited member
if ($object->user_id) {
// $user is the user editing, $object->user_id is the user's id linked to the edited member
$caneditfielduser = ((($user->id == $object->user_id) && $user->rights->user->self->creer)
|| (($user->id != $object->user_id) && $user->rights->user->user->creer));
$caneditpassworduser = ((($user->id == $object->user_id) && $user->rights->user->self->password)
|| (($user->id != $object->user_id) && $user->rights->user->user->password));
}
}
// Define variables to know what current user can do on members
$canaddmember = $user->rights->adherent->creer;
// Define variables to know what current user can do on properties of a member
if ($rowid) {
$caneditfieldmember = $user->rights->adherent->creer;
}
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
$hookmanager->initHooks(array('subscription')); $hookmanager->initHooks(array('subscription'));
@ -117,6 +92,33 @@ $datefrom = 0;
$dateto = 0; $dateto = 0;
$paymentdate = -1; $paymentdate = -1;
// Fetch object
if ($id > 0 || !empty($ref)) {
// Load member
$result = $object->fetch($id, $ref);
// Define variables to know what current user can do on users
$canadduser = ($user->admin || $user->rights->user->user->creer);
// Define variables to know what current user can do on properties of user linked to edited member
if ($object->user_id) {
// $User is the user who edits, $object->user_id is the id of the related user in the edited member
$caneditfielduser = ((($user->id == $object->user_id) && $user->rights->user->self->creer)
|| (($user->id != $object->user_id) && $user->rights->user->user->creer));
$caneditpassworduser = ((($user->id == $object->user_id) && $user->rights->user->self->password)
|| (($user->id != $object->user_id) && $user->rights->user->user->password));
}
}
// Define variables to determine what the current user can do on the members
$canaddmember = $user->rights->adherent->creer;
// Define variables to determine what the current user can do on the properties of a member
if ($id) {
$caneditfieldmember = $user->rights->adherent->creer;
}
// Security check
$result = restrictedArea($user, 'adherent', $object->id, '', '', 'socid', 'rowid', 0);
/* /*
* Actions * Actions

View File

@ -30,71 +30,100 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/vcard.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/vcard.class.php';
$adherent = new adherent($db);
$id = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alphanohtml');
$object = new adherent($db);
// Fetch object
if ($id > 0 || !empty($ref)) {
// Load member
$result = $object->fetch($id, $ref);
// Define variables to know what current user can do on users
$canadduser = ($user->admin || $user->rights->user->user->creer);
// Define variables to know what current user can do on properties of user linked to edited member
if ($object->user_id) {
// $User is the user who edits, $object->user_id is the id of the related user in the edited member
$caneditfielduser = ((($user->id == $object->user_id) && $user->rights->user->self->creer)
|| (($user->id != $object->user_id) && $user->rights->user->user->creer));
$caneditpassworduser = ((($user->id == $object->user_id) && $user->rights->user->self->password)
|| (($user->id != $object->user_id) && $user->rights->user->user->password));
}
}
// Define variables to determine what the current user can do on the members
$canaddmember = $user->rights->adherent->creer;
// Define variables to determine what the current user can do on the properties of a member
if ($id) {
$caneditfieldmember = $user->rights->adherent->creer;
}
// Security check // Security check
$result = restrictedArea($user, 'adherent', $id, '', '', 'socid', 'rowid', $objcanvas); $result = restrictedArea($user, 'adherent', $object->id, '', '', 'socid', 'rowid', 0);
$result = $adherent->fetch($id); /*
if ($result <= 0) { * Actions
dol_print_error($adherent->error); */
exit;
}
$physicalperson = 1; // None
/*
* View
*/
$company = new Societe($db); $company = new Societe($db);
if ($adherent->socid) { if ($object->socid) {
$result = $company->fetch($adherent->socid); $result = $company->fetch($object->socid);
} }
// We create VCard // We create VCard
$v = new vCard(); $v = new vCard();
$v->setProdId('Dolibarr '.DOL_VERSION); $v->setProdId('Dolibarr '.DOL_VERSION);
$v->setUid('DOLIBARR-ADHERENTID-'.$adherent->id); $v->setUid('DOLIBARR-ADHERENTID-'.$object->id);
$v->setName($adherent->lastname, $adherent->firstname, "", $adherent->civility, ""); $v->setName($object->lastname, $object->firstname, "", $object->civility, "");
$v->setFormattedName($adherent->getFullName($langs, 1)); $v->setFormattedName($object->getFullName($langs, 1));
$v->setPhoneNumber($adherent->phone_pro, "TYPE=WORK;VOICE"); $v->setPhoneNumber($object->phone_pro, "TYPE=WORK;VOICE");
//$v->setPhoneNumber($adherent->phone_perso,"TYPE=HOME;VOICE"); //$v->setPhoneNumber($object->phone_perso,"TYPE=HOME;VOICE");
$v->setPhoneNumber($adherent->phone_mobile, "TYPE=CELL;VOICE"); $v->setPhoneNumber($object->phone_mobile, "TYPE=CELL;VOICE");
$v->setPhoneNumber($adherent->fax, "TYPE=WORK;FAX"); $v->setPhoneNumber($object->fax, "TYPE=WORK;FAX");
$country = $adherent->country_code ? $adherent->country : ''; $country = $object->country_code ? $object->country : '';
$v->setAddress("", "", $adherent->address, $adherent->town, $adherent->state, $adherent->zip, $country, "TYPE=WORK;POSTAL"); $v->setAddress("", "", $object->address, $object->town, $object->state, $object->zip, $country, "TYPE=WORK;POSTAL");
$v->setLabel("", "", $adherent->address, $adherent->town, $adherent->state, $adherent->zip, $country, "TYPE=WORK"); $v->setLabel("", "", $object->address, $object->town, $object->state, $object->zip, $country, "TYPE=WORK");
$v->setEmail($adherent->email); $v->setEmail($object->email);
$v->setNote($adherent->note_public); $v->setNote($object->note_public);
$v->setTitle($adherent->poste); $v->setTitle($object->poste);
// Data from linked company // Data from linked company
if ($company->id) { if ($company->id) {
$v->setURL($company->url, "TYPE=WORK"); $v->setURL($company->url, "TYPE=WORK");
if (!$adherent->phone_pro) { if (!$object->phone_pro) {
$v->setPhoneNumber($company->phone, "TYPE=WORK;VOICE"); $v->setPhoneNumber($company->phone, "TYPE=WORK;VOICE");
} }
if (!$adherent->fax) { if (!$object->fax) {
$v->setPhoneNumber($company->fax, "TYPE=WORK;FAX"); $v->setPhoneNumber($company->fax, "TYPE=WORK;FAX");
} }
if (!$adherent->zip) { if (!$object->zip) {
$v->setAddress("", "", $company->address, $company->town, $company->state, $company->zip, $company->country, "TYPE=WORK;POSTAL"); $v->setAddress("", "", $company->address, $company->town, $company->state, $company->zip, $company->country, "TYPE=WORK;POSTAL");
} }
// when company e-mail is empty, use only adherent e-mail // when company e-mail is empty, use only adherent e-mail
if (empty(trim($company->email))) { if (empty(trim($company->email))) {
// was set before, don't set twice // was set before, don't set twice
} elseif (empty(trim($adherent->email))) { } elseif (empty(trim($object->email))) {
// when adherent e-mail is empty, use only company e-mail // when adherent e-mail is empty, use only company e-mail
$v->setEmail($company->email); $v->setEmail($company->email);
} elseif (strtolower(end(explode("@", $adherent->email))) == strtolower(end(explode("@", $company->email)))) { } elseif (strtolower(end(explode("@", $object->email))) == strtolower(end(explode("@", $company->email)))) {
// when e-mail domain of adherent and company are the same, use adherent e-mail at first (and company e-mail at second) // when e-mail domain of adherent and company are the same, use adherent e-mail at first (and company e-mail at second)
$v->setEmail($adherent->email); $v->setEmail($object->email);
// support by Microsoft Outlook (2019 and possible earlier) // support by Microsoft Outlook (2019 and possible earlier)
$v->setEmail($company->email, 'INTERNET'); $v->setEmail($company->email, 'INTERNET');
@ -103,7 +132,7 @@ if ($company->id) {
$v->setEmail($company->email); $v->setEmail($company->email);
// support by Microsoft Outlook (2019 and possible earlier) // support by Microsoft Outlook (2019 and possible earlier)
$v->setEmail($adherent->email, 'INTERNET'); $v->setEmail($object->email, 'INTERNET');
} }
// Si adherent lie a un tiers non de type "particulier" // Si adherent lie a un tiers non de type "particulier"
@ -113,9 +142,9 @@ if ($company->id) {
} }
// Personal informations // Personal informations
$v->setPhoneNumber($adherent->phone_perso, "TYPE=HOME;VOICE"); $v->setPhoneNumber($object->phone_perso, "TYPE=HOME;VOICE");
if ($adherent->birth) { if ($object->birth) {
$v->setBirthday($adherent->birth); $v->setBirthday($object->birth);
} }
$db->close(); $db->close();

View File

@ -1387,7 +1387,7 @@ if (empty($reshook)) {
} elseif ($action == 'swapstatut') { } elseif ($action == 'swapstatut') {
// Toggle the status of a contact // Toggle the status of a contact
if ($object->fetch($id) > 0) { if ($object->fetch($id) > 0) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }

View File

@ -3843,7 +3843,7 @@ class PropaleLigne extends CommonObjectLine
$sql .= ' pd.date_start, pd.date_end, pd.product_type'; $sql .= ' pd.date_start, pd.date_end, pd.product_type';
$sql .= ' FROM '.MAIN_DB_PREFIX.'propaldet as pd'; $sql .= ' FROM '.MAIN_DB_PREFIX.'propaldet as pd';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pd.fk_product = p.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pd.fk_product = p.rowid';
$sql .= ' WHERE pd.rowid = '.$rowid; $sql .= ' WHERE pd.rowid = '.((int) $rowid);
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) { if ($result) {

View File

@ -93,7 +93,7 @@ if ($action == 'addcontact' && $user->rights->propale->creer) {
} elseif ($action == 'swapstatut' && $user->rights->propale->creer) { } elseif ($action == 'swapstatut' && $user->rights->propale->creer) {
// Toggle the status of a contact // Toggle the status of a contact
if ($object->id > 0) { if ($object->id > 0) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} }
} elseif ($action == 'deletecontact' && $user->rights->propale->creer) { } elseif ($action == 'deletecontact' && $user->rights->propale->creer) {
// Deletes a contact // Deletes a contact

View File

@ -843,31 +843,31 @@ if ($resql) {
if ($user->rights->societe->client->voir || $socid) { 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').': '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative');
$moreforfilter .= $formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
// If the user can view prospects other than his' // If the user can view prospects other than his'
if ($user->rights->societe->client->voir || $socid) { if ($user->rights->societe->client->voir || $socid) {
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('LinkedToSpecificUsers').': '; $tmptitle = $langs->trans('LinkedToSpecificUsers');
$moreforfilter .= $form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
// If the user can view products // If the user can view products
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) {
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('IncludingProductWithTag').': '; $tmptitle = $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, 'maxwidth300', 1); $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1);
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
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('CustomersProspectsCategoriesShort').': '; $tmptitle = $langs->trans('CustomersProspectsCategoriesShort');
$moreforfilter .= $formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1); $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1, $tmptitle);
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
$parameters = array(); $parameters = array();

View File

@ -33,7 +33,7 @@ if (!empty($conf->facture->enabled)) {
} }
// Security check // Security check
$socid = $_GET["socid"]; $socid = GETPOST("socid", 'int');
if ($user->socid > 0) { if ($user->socid > 0) {
$action = ''; $action = '';
$socid = $user->socid; $socid = $user->socid;

View File

@ -1370,7 +1370,7 @@ if (empty($reshook)) {
} elseif ($action == 'swapstatut') { } elseif ($action == 'swapstatut') {
// bascule du statut d'un contact // bascule du statut d'un contact
if ($object->id > 0) { if ($object->id > 0) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }

View File

@ -4126,7 +4126,7 @@ class OrderLine extends CommonOrderLine
$sql .= ' cd.date_start, cd.date_end'; $sql .= ' cd.date_start, cd.date_end';
$sql .= ' FROM '.MAIN_DB_PREFIX.'commandedet as cd'; $sql .= ' FROM '.MAIN_DB_PREFIX.'commandedet as cd';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON cd.fk_product = p.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON cd.fk_product = p.rowid';
$sql .= ' WHERE cd.rowid = '.$rowid; $sql .= ' WHERE cd.rowid = '.((int) $rowid);
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) { if ($result) {
$objp = $this->db->fetch_object($result); $objp = $this->db->fetch_object($result);

View File

@ -75,14 +75,14 @@ if ($action == 'addcontact' && $user->rights->commande->creer) {
} elseif ($action == 'swapstatut' && $user->rights->commande->creer) { } elseif ($action == 'swapstatut' && $user->rights->commande->creer) {
// bascule du statut d'un contact // bascule du statut d'un contact
if ($object->fetch($id)) { if ($object->fetch($id)) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
} elseif ($action == 'deletecontact' && $user->rights->commande->creer) { } elseif ($action == 'deletecontact' && $user->rights->commande->creer) {
// Efface un contact // Efface un contact
$object->fetch($id); $object->fetch($id);
$result = $object->delete_contact($_GET["lineid"]); $result = $object->delete_contact(GETPOST("lineid", 'int'));
if ($result >= 0) { if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);

View File

@ -211,7 +211,6 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
$search_thirdparty_user = ''; $search_thirdparty_user = '';
$search_num_releve = ''; $search_num_releve = '';
$search_conciliated = ''; $search_conciliated = '';
$thirdparty = '';
$search_account = ""; $search_account = "";
if ($id > 0 || !empty($ref)) { if ($id > 0 || !empty($ref)) {
@ -992,9 +991,9 @@ if ($resql) {
// Bank line // Bank line
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('RubriquesTransactions').' : '; $tmptitle = $langs->trans('RubriquesTransactions');
$cate_arbo = $form->select_all_categories(Categorie::TYPE_BANK_LINE, $search_bid, 'parent', null, null, 1); $cate_arbo = $form->select_all_categories(Categorie::TYPE_BANK_LINE, $search_bid, 'parent', null, null, 1);
$moreforfilter .= $form->selectarray('search_bid', $cate_arbo, $search_bid, 1, 0, 0, '', 0, 0, 0, '', '', 1); $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_bid', $cate_arbo, $search_bid, $tmptitle, 0, 0, '', 0, 0, 0, '', '', 1);
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
} }
@ -1561,12 +1560,12 @@ if ($resql) {
// Debit // Debit
if (!empty($arrayfields['b.debit']['checked'])) { if (!empty($arrayfields['b.debit']['checked'])) {
print '<td class="nowrap right">'; print '<td class="nowrap right"><span class="amount">';
if ($objp->amount < 0) { if ($objp->amount < 0) {
print price($objp->amount * -1); print price($objp->amount * -1);
$totalarray['totaldeb'] += $objp->amount; $totalarray['totaldeb'] += $objp->amount;
} }
print "</td>\n"; print "</span></td>\n";
if (!$i) { if (!$i) {
$totalarray['nbfield']++; $totalarray['nbfield']++;
} }
@ -1577,12 +1576,12 @@ if ($resql) {
// Credit // Credit
if (!empty($arrayfields['b.credit']['checked'])) { if (!empty($arrayfields['b.credit']['checked'])) {
print '<td class="nowrap right">'; print '<td class="nowrap right"><span class="amount">';
if ($objp->amount > 0) { if ($objp->amount > 0) {
print price($objp->amount); print price($objp->amount);
$totalarray['totalcred'] += $objp->amount; $totalarray['totalcred'] += $objp->amount;
} }
print "</td>\n"; print "</span></td>\n";
if (!$i) { if (!$i) {
$totalarray['nbfield']++; $totalarray['nbfield']++;
} }
@ -1717,9 +1716,9 @@ if ($resql) {
print '<td class="left tdoverflowmax50" title="'.$langs->trans("Totalforthispage").'">'.$langs->trans("Totalforthispage").'</td>'; print '<td class="left tdoverflowmax50" title="'.$langs->trans("Totalforthispage").'">'.$langs->trans("Totalforthispage").'</td>';
} }
} elseif ($totalarray['totaldebfield'] == $i) { } elseif ($totalarray['totaldebfield'] == $i) {
print '<td class="right">'.price(-1 * $totalarray['totaldeb']).'</td>'; print '<td class="right"><span class="amount">'.price(-1 * $totalarray['totaldeb']).'</span></td>';
} elseif ($totalarray['totalcredfield'] == $i) { } elseif ($totalarray['totalcredfield'] == $i) {
print '<td class="right">'.price($totalarray['totalcred']).'</td>'; print '<td class="right"><span class="amount">'.price($totalarray['totalcred']).'</span></td>';
} elseif ($i == $posconciliatecol) { } elseif ($i == $posconciliatecol) {
print '<td class="center">'; print '<td class="center">';
if ($user->rights->banque->consolidate && $action == 'reconcile') { if ($user->rights->banque->consolidate && $action == 'reconcile') {

View File

@ -82,8 +82,8 @@ if ($result) {
print '<tr class="oddeven">'; print '<tr class="oddeven">';
print "<td><a href=\"".DOL_URL_ROOT."/compta/bank/bankentries_list.php?bid=$objp->rowid\">$objp->label</a></td>"; print "<td><a href=\"".DOL_URL_ROOT."/compta/bank/bankentries_list.php?bid=$objp->rowid\">$objp->label</a></td>";
print '<td class="right">'.$objp->nombre.'</td>'; print '<td class="right">'.$objp->nombre.'</td>';
print '<td class="right">'.price(abs($objp->somme))."</td>"; print '<td class="right"><span class="amount">'.price(abs($objp->somme))."</span></td>";
print '<td class="right">'.price(abs(price2num($objp->somme / $objp->nombre, 'MT')))."</td>"; print '<td class="right"><span class="amount">'.price(abs(price2num($objp->somme / $objp->nombre, 'MT')))."</span></td>";
print "</tr>"; print "</tr>";
$i++; $i++;
$total += abs($objp->somme); $total += abs($objp->somme);

View File

@ -346,7 +346,7 @@ if (empty($numref)) {
$balancestart[$objp->numr] = $obj->amount; $balancestart[$objp->numr] = $obj->amount;
$db->free($resql); $db->free($resql);
} }
print '<td class="right">'.price($balancestart[$objp->numr], '', $langs, 1, -1, -1, $conf->currency).'</td>'; print '<td class="right"><span class="amount">'.price($balancestart[$objp->numr], '', $langs, 1, -1, -1, $conf->currency).'</span></td>';
// Calculate end amount // Calculate end amount
$sql = "SELECT sum(b.amount) as amount"; $sql = "SELECT sum(b.amount) as amount";
@ -359,7 +359,7 @@ if (empty($numref)) {
$content[$objp->numr] = $obj->amount; $content[$objp->numr] = $obj->amount;
$db->free($resql); $db->free($resql);
} }
print '<td class="right">'.price(($balancestart[$objp->numr] + $content[$objp->numr]), '', $langs, 1, -1, -1, $conf->currency).'</td>'; print '<td class="right"><span class="amount">'.price(($balancestart[$objp->numr] + $content[$objp->numr]), '', $langs, 1, -1, -1, $conf->currency).'</span></td>';
print '<td class="center">'; print '<td class="center">';
if ($user->rights->banque->consolidate && $action != 'editbankreceipt') { if ($user->rights->banque->consolidate && $action != 'editbankreceipt') {

View File

@ -671,7 +671,7 @@ if ($result) {
if ($arrayfields['debit']['checked']) { if ($arrayfields['debit']['checked']) {
print '<td class="nowrap right">'; print '<td class="nowrap right">';
if ($obj->sens == 0) { if ($obj->sens == 0) {
print price($obj->amount); print '<span class="amount">'.price($obj->amount).'</span>';
$totalarray['val']['total_deb'] += $obj->amount; $totalarray['val']['total_deb'] += $obj->amount;
} }
if (!$i) { if (!$i) {
@ -687,7 +687,7 @@ if ($result) {
if ($arrayfields['credit']['checked']) { if ($arrayfields['credit']['checked']) {
print '<td class="nowrap right">'; print '<td class="nowrap right">';
if ($obj->sens == 1) { if ($obj->sens == 1) {
print price($obj->amount); print '<span class="amount">'.price($obj->amount).'</span>';
$totalarray['val']['total_cred'] += $obj->amount; $totalarray['val']['total_cred'] += $obj->amount;
} }
if (!$i) { if (!$i) {

View File

@ -31,14 +31,17 @@
//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). //if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on).
//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) //if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on)
//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data //if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data
//if (! defined('NOIPCHECK')) define('NOIPCHECK','1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip
//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu //if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu
//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php //if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php
//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library //if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library
//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) //if (! defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session). This include the NOIPCHECK too.
//if (! defined('NOIPCHECK')) define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip
//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT','auto'); // Force lang to a particular value //if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT','auto'); // Force lang to a particular value
//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule'); // Force authentication handler //if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule'); // Force authentication handler
//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN',1); // The main.inc.php does not make a redirect if not logged, instead show simple error message //if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN',1); // The main.inc.php does not make a redirect if not logged, instead show simple error message
//if (! defined("FORCECSP")) define('FORCECSP', 'none'); // Disable all Content Security Policies
//if (! defined('CSRFCHECK_WITH_TOKEN')) define('CSRFCHECK_WITH_TOKEN', '1'); // Force use of CSRF protection with tokens even for GET
//if (! defined('NOBROWSERNOTIF')) define('NOBROWSERNOTIF', '1'); // Disable browser notification
require '../../main.inc.php'; require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php';
@ -66,7 +69,7 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST('sortfield', 'aZ09comma'); $sortfield = GETPOST('sortfield', 'aZ09comma');
$sortorder = GETPOST('sortorder', 'aZ09comma'); $sortorder = GETPOST('sortorder', 'aZ09comma');
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int'); $page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { if (empty($page) || $page < 0 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) {
$page = 0; $page = 0;
} // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
$offset = $limit * $page; $offset = $limit * $page;
@ -83,11 +86,13 @@ $hookmanager->initHooks(array('cashcontrol')); // Note that conf->hooks_modules
// Fetch optionals attributes and labels // Fetch optionals attributes and labels
$extrafields->fetch_name_optionals_label($object->table_element); $extrafields->fetch_name_optionals_label($object->table_element);
//$extrafields->fetch_name_optionals_label($object->table_element_line);
$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
// Default sort order (if not yet defined by previous GETPOST) // Default sort order (if not yet defined by previous GETPOST)
if (!$sortfield) { if (!$sortfield) {
reset($object->fields); // Reset is required to avoid key() to return null.
$sortfield = "t.".key($object->fields); // Set here default search field. By default 1st field in definition. $sortfield = "t.".key($object->fields); // Set here default search field. By default 1st field in definition.
} }
if (!$sortorder) { if (!$sortorder) {
@ -95,12 +100,16 @@ if (!$sortorder) {
} }
// Initialize array of search criterias // Initialize array of search criterias
$search_all = GETPOST("search_all", 'alpha'); $search_all = GETPOST('search_all', 'alphanohtml') ? GETPOST('search_all', 'alphanohtml') : GETPOST('sall', 'alphanohtml');
$search = array(); $search = array();
foreach ($object->fields as $key => $val) { foreach ($object->fields as $key => $val) {
if (GETPOST('search_'.$key, 'alpha')) { if (GETPOST('search_'.$key, 'alpha') !== '') {
$search[$key] = GETPOST('search_'.$key, 'alpha'); $search[$key] = GETPOST('search_'.$key, 'alpha');
} }
if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) {
$search[$key.'_dtstart'] = dol_mktime(0, 0, 0, GETPOST('search_'.$key.'_dtstartmonth', 'int'), GETPOST('search_'.$key.'_dtstartday', 'int'), GETPOST('search_'.$key.'_dtstartyear', 'int'));
$search[$key.'_dtend'] = dol_mktime(23, 59, 59, GETPOST('search_'.$key.'_dtendmonth', 'int'), GETPOST('search_'.$key.'_dtendday', 'int'), GETPOST('search_'.$key.'_dtendyear', 'int'));
}
} }
// List of fields to search into when doing a "search in all" // List of fields to search into when doing a "search in all"
@ -161,6 +170,10 @@ if (empty($reshook)) {
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
foreach ($object->fields as $key => $val) { foreach ($object->fields as $key => $val) {
$search[$key] = ''; $search[$key] = '';
if (preg_match('/^(date|timestamp|datetime)/', $val['type'])) {
$search[$key.'_dtstart'] = '';
$search[$key.'_dtend'] = '';
}
} }
$toselect = ''; $toselect = '';
$search_array_options = array(); $search_array_options = array();
@ -198,9 +211,7 @@ $title = $langs->trans('CashControl');
// Build and execute select // Build and execute select
// -------------------------------------------------------------------- // --------------------------------------------------------------------
$sql = 'SELECT '; $sql = 'SELECT ';
foreach ($object->fields as $key => $val) { $sql .= $object->getFieldList('t');
$sql .= 't.'.$key.', ';
}
// Add fields from extrafields // Add fields from extrafields
if (!empty($extrafields->attributes[$object->table_element]['label'])) { if (!empty($extrafields->attributes[$object->table_element]['label'])) {
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
@ -210,25 +221,49 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) {
// Add fields from hooks // Add fields from hooks
$parameters = array(); $parameters = array();
$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook
$sql .= $hookmanager->resPrint; $sql .= preg_replace('/^,/', '', $hookmanager->resPrint);
$sql = preg_replace('/, $/', '', $sql); $sql = preg_replace('/,\s*$/', '', $sql);
$sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; $sql .= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t";
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) {
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)";
} }
// Add table from hooks
$parameters = array();
$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object); // Note that $action and $object may have been modified by hook
$sql .= $hookmanager->resPrint;
if ($object->ismultientitymanaged == 1) { if ($object->ismultientitymanaged == 1) {
$sql .= " WHERE t.entity IN (".getEntity($object->element).")"; $sql .= " WHERE t.entity IN (".getEntity($object->element).")";
} else { } else {
$sql .= " WHERE 1 = 1"; $sql .= " WHERE 1 = 1";
} }
foreach ($search as $key => $val) { foreach ($search as $key => $val) {
if (array_key_exists($key, $object->fields)) {
if ($key == 'status' && $search[$key] == -1) { if ($key == 'status' && $search[$key] == -1) {
continue; continue;
} }
$mode_search = (($object->isInt($object->fields[$key]) || $object->isFloat($object->fields[$key])) ? 1 : 0); $mode_search = (($object->isInt($object->fields[$key]) || $object->isFloat($object->fields[$key])) ? 1 : 0);
if ((strpos($object->fields[$key]['type'], 'integer:') === 0) || (strpos($object->fields[$key]['type'], 'sellist:') === 0)) {
if ($search[$key] == '-1' || $search[$key] === '0') {
$search[$key] = '';
}
$mode_search = 2;
}
if ($search[$key] != '') { if ($search[$key] != '') {
$sql .= natural_search($key, $search[$key], (($key == 'status') ? 2 : $mode_search)); $sql .= natural_search($key, $search[$key], (($key == 'status') ? 2 : $mode_search));
} }
} else {
if (preg_match('/(_dtstart|_dtend)$/', $key) && $search[$key] != '') {
$columnName=preg_replace('/(_dtstart|_dtend)$/', '', $key);
if (preg_match('/^(date|timestamp|datetime)/', $object->fields[$columnName]['type'])) {
if (preg_match('/_dtstart$/', $key)) {
$sql .= " AND t." . $columnName . " >= '" . $db->idate($search[$key]) . "'";
}
if (preg_match('/_dtend$/', $key)) {
$sql .= " AND t." . $columnName . " <= '" . $db->idate($search[$key]) . "'";
}
}
}
}
} }
if ($search_all) { if ($search_all) {
$sql .= natural_search(array_keys($fieldstosearchall), $search_all); $sql .= natural_search(array_keys($fieldstosearchall), $search_all);
@ -241,19 +276,19 @@ $reshook = $hookmanager->executeHooks('printFieldListWhere', $parameters, $objec
$sql .= $hookmanager->resPrint; $sql .= $hookmanager->resPrint;
/* If a group by is required /* If a group by is required
$sql.= " GROUP BY " $sql.= " GROUP BY ";
foreach($object->fields as $key => $val) foreach($object->fields as $key => $val) {
{
$sql.='t.'.$key.', '; $sql.='t.'.$key.', ';
} }
// Add fields from extrafields // Add fields from extrafields
if (! empty($extrafields->attributes[$object->table_element]['label'])) { if (! empty($extrafields->attributes[$object->table_element]['label'])) {
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : '');
}
// Add where from hooks // Add where from hooks
$parameters=array(); $parameters=array();
$reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook $reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters, $object); // Note that $action and $object may have been modified by hook
$sql.=$hookmanager->resPrint; $sql.=$hookmanager->resPrint;
$sql=preg_replace('/, $/','', $sql); $sql=preg_replace('/,\s*$/','', $sql);
*/ */
$sql .= $db->order($sortfield, $sortorder); $sql .= $db->order($sortfield, $sortorder);
@ -269,10 +304,12 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
} }
} }
// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. // if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) { if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) {
$num = $nbtotalofrecords; $num = $nbtotalofrecords;
} else { } else {
if ($limit) {
$sql .= $db->plimit($limit + 1, $offset); $sql .= $db->plimit($limit + 1, $offset);
}
$resql = $db->query($sql); $resql = $db->query($sql);
if (!$resql) { if (!$resql) {
@ -284,10 +321,10 @@ if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) {
} }
// Direct jump if only one record found // Direct jump if only one record found
if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all) { if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) {
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$id = $obj->rowid; $id = $obj->rowid;
header("Location: ".dol_buildpath('/compta/cashcontrol/cashcontrol_card.php', 1).'?id='.$id); header("Location: ".DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?id='.$id);
exit; exit;
} }
@ -295,7 +332,7 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $
// Output page // Output page
// -------------------------------------------------------------------- // --------------------------------------------------------------------
llxHeader('', $title, $help_url); llxHeader('', $title, $help_url, '', 0, 0, $morejs, $morecss, '', 'classforhorizontalscrolloftabs');
// Example : Adding jquery code // Example : Adding jquery code
print '<script type="text/javascript" language="javascript"> print '<script type="text/javascript" language="javascript">
@ -322,13 +359,23 @@ if ($limit > 0 && $limit != $conf->liste_limit) {
$param .= '&limit='.urlencode($limit); $param .= '&limit='.urlencode($limit);
} }
foreach ($search as $key => $val) { foreach ($search as $key => $val) {
if (is_array($search[$key]) && count($search[$key])) {
foreach ($search[$key] as $skey) {
$param .= '&search_'.$key.'[]='.urlencode($skey);
}
} else {
$param .= '&search_'.$key.'='.urlencode($search[$key]); $param .= '&search_'.$key.'='.urlencode($search[$key]);
} }
}
if ($optioncss != '') { if ($optioncss != '') {
$param .= '&optioncss='.urlencode($optioncss); $param .= '&optioncss='.urlencode($optioncss);
} }
// Add $param from extra fields // Add $param from extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
// Add $param from hooks
$parameters = array();
$reshook = $hookmanager->executeHooks('printFieldListSearchParam', $parameters, $object); // Note that $action and $object may have been modified by hook
$param .= $hookmanager->resPrint;
// List of mass actions available // List of mass actions available
$arrayofmassactions = array( $arrayofmassactions = array(
@ -341,7 +388,7 @@ if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'pr
} }
$massactionbutton = $form->selectMassAction('', $arrayofmassactions); $massactionbutton = $form->selectMassAction('', $arrayofmassactions);
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'."\n";
if ($optioncss != '') { if ($optioncss != '') {
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
} }
@ -365,11 +412,11 @@ $objecttmp = new CashControl($db);
$trackid = 'cashfence'.$object->id; $trackid = 'cashfence'.$object->id;
include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
if ($sall) { if ($search_all) {
foreach ($fieldstosearchall as $key => $val) { foreach ($fieldstosearchall as $key => $val) {
$fieldstosearchall[$key] = $langs->trans($val); $fieldstosearchall[$key] = $langs->trans($val);
} }
print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall).join(', ', $fieldstosearchall).'</div>'; print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $search_all).join(', ', $fieldstosearchall).'</div>';
} }
$moreforfilter = ''; $moreforfilter = '';
@ -396,7 +443,7 @@ $selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfi
$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
print '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n"; print '<table class="tagtable nobottomiftotal liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
// Fields title search // Fields title search
@ -417,8 +464,17 @@ foreach ($object->fields as $key => $val) {
print '<td class="liste_titre'.($cssforfield ? ' '.$cssforfield : '').'">'; print '<td class="liste_titre'.($cssforfield ? ' '.$cssforfield : '').'">';
if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { if (!empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) {
print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1); print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth100', 1);
} else { } elseif ((strpos($val['type'], 'integer:') === 0) || (strpos($val['type'], 'sellist:')=== 0)) {
print $object->showInputField($val, $key, $search[$key], '', '', 'search_', 'maxwidth125', 1);
} elseif (!preg_match('/^(date|timestamp|datetime)/', $val['type'])) {
print '<input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'">'; print '<input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'">';
} elseif (preg_match('/^(date|timestamp|datetime)/', $val['type'])) {
print '<div class="nowrap">';
print $form->selectDate($search[$key.'_dtstart'] ? $search[$key.'_dtstart'] : '', "search_".$key."_dtstart", 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('From'));
print '</div>';
print '<div class="nowrap">';
print $form->selectDate($search[$key.'_dtend'] ? $search[$key.'_dtend'] : '', "search_".$key."_dtend", 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans('to'));
print '</div>';
} }
print '</td>'; print '</td>';
} }
@ -442,7 +498,7 @@ print '</tr>'."\n";
// -------------------------------------------------------------------- // --------------------------------------------------------------------
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
foreach ($object->fields as $key => $val) { foreach ($object->fields as $key => $val) {
$cssforfield = (empty($val['css']) ? '' : $val['css']); $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
if ($key == 'status') { if ($key == 'status') {
$cssforfield .= ($cssforfield ? ' ' : '').'center'; $cssforfield .= ($cssforfield ? ' ' : '').'center';
} elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { } elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) {
@ -462,6 +518,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder); $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint; print $hookmanager->resPrint;
// Action column
print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ')."\n"; print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ')."\n";
print '</tr>'."\n"; print '</tr>'."\n";
@ -481,24 +538,19 @@ if (is_array($extrafields->attributes[$object->table_element]['computed']) && co
// -------------------------------------------------------------------- // --------------------------------------------------------------------
$i = 0; $i = 0;
$totalarray = array(); $totalarray = array();
while ($i < min($num, $limit)) { while ($i < ($limit ? min($num, $limit) : $num)) {
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
if (empty($obj)) { if (empty($obj)) {
break; // Should not happen break; // Should not happen
} }
// Store properties in $object // Store properties in $object
$object->id = $obj->rowid; $object->setVarsFromFetchObj($obj);
foreach ($object->fields as $key => $val) {
if (property_exists($obj, $key)) {
$object->$key = $obj->$key;
}
}
// Show here line of result // Show here line of result
print '<tr class="oddeven">'; print '<tr class="oddeven">';
foreach ($object->fields as $key => $val) { foreach ($object->fields as $key => $val) {
$cssforfield = (empty($val['css']) ? '' : $val['css']); $cssforfield = (empty($val['csslist']) ? (empty($val['css']) ? '' : $val['css']) : $val['csslist']);
if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) { if (in_array($val['type'], array('date', 'datetime', 'timestamp'))) {
$cssforfield .= ($cssforfield ? ' ' : '').'center'; $cssforfield .= ($cssforfield ? ' ' : '').'center';
} elseif ($key == 'status') { } elseif ($key == 'status') {
@ -511,7 +563,7 @@ while ($i < min($num, $limit)) {
$cssforfield .= ($cssforfield ? ' ' : '').'nowrap'; $cssforfield .= ($cssforfield ? ' ' : '').'nowrap';
} }
if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'status') { if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && !in_array($key, array('rowid', 'status'))) {
$cssforfield .= ($cssforfield ? ' ' : '').'right'; $cssforfield .= ($cssforfield ? ' ' : '').'right';
} }
@ -519,10 +571,8 @@ while ($i < min($num, $limit)) {
print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'>'; print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'>';
if ($key == 'status') { if ($key == 'status') {
print $object->getLibStatut(5); print $object->getLibStatut(5);
} elseif (in_array($val['type'], array('date', 'datetime', 'timestamp'))) {
print $object->showOutputField($val, $key, $db->jdate($obj->$key), '');
} else { } else {
print $object->showOutputField($val, $key, $obj->$key, ''); print $object->showOutputField($val, $key, $object->$key, '');
} }
print '</td>'; print '</td>';
if (!$i) { if (!$i) {
@ -532,21 +582,21 @@ while ($i < min($num, $limit)) {
if (!$i) { if (!$i) {
$totalarray['pos'][$totalarray['nbfield']] = 't.'.$key; $totalarray['pos'][$totalarray['nbfield']] = 't.'.$key;
} }
$totalarray['val']['t.'.$key] += $obj->$key; $totalarray['val']['t.'.$key] += $object->$key;
} }
} }
} }
// Extra fields // Extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
// Fields from hook // Fields from hook
$parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray); $parameters = array('arrayfields'=>$arrayfields, 'object'=>$object, 'obj'=>$obj, 'i'=>$i, 'totalarray'=>&$totalarray);
$reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook $reshook = $hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint; print $hookmanager->resPrint;
// Action column // Action column
print '<td class="nowrap" align="center">'; print '<td class="nowrap center">';
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->rowid, $arrayofselected)) { if (in_array($object->id, $arrayofselected)) {
$selected = 1; $selected = 1;
} }
print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>'; print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected ? ' checked="checked"' : '').'>';
@ -587,6 +637,7 @@ print '</div>'."\n";
print '</form>'."\n"; print '</form>'."\n";
/*
if (in_array('builddoc', $arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords)) { if (in_array('builddoc', $arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords)) {
$hidegeneratedfilelistifempty = 1; $hidegeneratedfilelistifempty = 1;
if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) {
@ -601,11 +652,12 @@ if (in_array('builddoc', $arrayofmassactions) && ($nbtotalofrecords === '' || $n
$urlsource .= str_replace('&amp;', '&', $param); $urlsource .= str_replace('&amp;', '&', $param);
$filedir = $diroutputmassaction; $filedir = $diroutputmassaction;
$genallowed = $user->rights->monmodule->read; $genallowed = $permissiontoread;
$delallowed = $user->rights->monmodule->create; $delallowed = $permissiontoadd;
print $formfile->showdocuments('massfilesarea_monmodule', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); print $formfile->showdocuments('massfilesarea_monmodule', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty);
} }
*/
// End of page // End of page
llxFooter(); llxFooter();

View File

@ -54,7 +54,31 @@ class CashControl extends CommonObject
*/ */
public $picto = 'cash-register'; public $picto = 'cash-register';
/**
* 'type' field format ('integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter]]', 'sellist:TableName:LabelFieldName[:KeyFieldName[:KeyFieldParent[:Filter]]]', 'varchar(x)', 'double(24,8)', 'real', 'price', 'text', 'text:none', 'html', 'date', 'datetime', 'timestamp', 'duration', 'mail', 'phone', 'url', 'password')
* Note: Filter can be a string like "(t.ref:like:'SO-%') or (t.date_creation:<:'20160101') or (t.nature:is:NULL)"
* 'label' the translation key.
* 'picto' is code of a picto to show before value in forms
* 'enabled' is a condition when the field must be managed (Example: 1 or '$conf->global->MY_SETUP_PARAM)
* 'position' is the sort order of field.
* 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0).
* 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create). 5=Visible on list and view only (not create/not update). Using a negative value means field is not shown by default on list but can be selected for viewing)
* 'noteditable' says if field is not editable (1 or 0)
* 'default' is a default value for creation (can still be overwrote by the Setup of Default Values if field is editable in creation form). Note: If default is set to '(PROV)' and field is 'ref', the default value will be set to '(PROVid)' where id is rowid when a new record is created.
* 'index' if we want an index in database.
* 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...).
* 'searchall' is 1 if we want to search in this field when making a search from the quick search button.
* 'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8).
* 'css' and 'cssview' and 'csslist' is the CSS style to use on field. 'css' is used in creation and update. 'cssview' is used in view mode. 'csslist' is used for columns in lists. For example: 'maxwidth200', 'wordbreak', 'tdoverflowmax200'
* 'help' is a 'TranslationString' to use to show a tooltip on field. You can also use 'TranslationString:keyfortooltiponlick' for a tooltip on click.
* 'showoncombobox' if value of the field must be visible into the label of the combobox that list record
* 'disabled' is 1 if we want to have the field locked by a 'disabled' attribute. In most cases, this is never set into the definition of $fields into class, but is set dynamically by some part of code.
* 'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel")
* 'autofocusoncreate' to have field having the focus on a create form. Only 1 field should have this property set to 1.
* 'comment' is not used. You can store here any text of your choice. It is not used by application.
*
* Note: To have value dynamic, you can set value to 0 in definition and edit the value on the fly into the constructor.
*/
public $fields = array( public $fields = array(
'rowid' =>array('type'=>'integer', 'label'=>'ID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>10), 'rowid' =>array('type'=>'integer', 'label'=>'ID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>10),
'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>15), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>15),
@ -62,10 +86,10 @@ class CashControl extends CommonObject
'posmodule' =>array('type'=>'varchar(30)', 'label'=>'Module', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>19), 'posmodule' =>array('type'=>'varchar(30)', 'label'=>'Module', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>19),
'posnumber' =>array('type'=>'varchar(30)', 'label'=>'Terminal', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>20, 'css'=>'center'), 'posnumber' =>array('type'=>'varchar(30)', 'label'=>'Terminal', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>20, 'css'=>'center'),
'label' =>array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>0, 'position'=>24), 'label' =>array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>0, 'position'=>24),
'opening' =>array('type'=>'price', 'label'=>'Opening', 'enabled'=>1, 'visible'=>1, 'position'=>25), 'opening' =>array('type'=>'price', 'label'=>'Opening', 'enabled'=>1, 'visible'=>1, 'position'=>25, 'csslist'=>'amount'),
'cash' =>array('type'=>'price', 'label'=>'Cash', 'enabled'=>1, 'visible'=>1, 'position'=>30), 'cash' =>array('type'=>'price', 'label'=>'Cash', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'csslist'=>'amount'),
'cheque' =>array('type'=>'price', 'label'=>'Cheque', 'enabled'=>1, 'visible'=>1, 'position'=>33), 'cheque' =>array('type'=>'price', 'label'=>'Cheque', 'enabled'=>1, 'visible'=>1, 'position'=>33, 'csslist'=>'amount'),
'card' =>array('type'=>'price', 'label'=>'CreditCard', 'enabled'=>1, 'visible'=>1, 'position'=>36), 'card' =>array('type'=>'price', 'label'=>'CreditCard', 'enabled'=>1, 'visible'=>1, 'position'=>36, 'csslist'=>'amount'),
'year_close' =>array('type'=>'integer', 'label'=>'Year close', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>50, 'css'=>'center'), 'year_close' =>array('type'=>'integer', 'label'=>'Year close', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>50, 'css'=>'center'),
'month_close' =>array('type'=>'integer', 'label'=>'Month close', 'enabled'=>1, 'visible'=>1, 'position'=>55, 'css'=>'center'), 'month_close' =>array('type'=>'integer', 'label'=>'Month close', 'enabled'=>1, 'visible'=>1, 'position'=>55, 'css'=>'center'),
'day_close' =>array('type'=>'integer', 'label'=>'Day close', 'enabled'=>1, 'visible'=>1, 'position'=>60, 'css'=>'center'), 'day_close' =>array('type'=>'integer', 'label'=>'Day close', 'enabled'=>1, 'visible'=>1, 'position'=>60, 'css'=>'center'),

View File

@ -204,7 +204,7 @@ if ($resql) {
{ {
print '<tr class="oddeven">'; print '<tr class="oddeven">';
print '<td>'.$langs->trans("InitialBankBalance").' - '.$langs->trans("Cash").'</td>'; print '<td>'.$langs->trans("InitialBankBalance").' - '.$langs->trans("Cash").'</td>';
print '<td></td><td></td><td></td><td class="right">'.price($cashcontrol->opening).'</td>'; print '<td></td><td></td><td></td><td class="right"><span class="amount">'.price($cashcontrol->opening).'</span></td>';
print '</tr>'; print '</tr>';
$first = "no"; $first = "no";
}*/ }*/

View File

@ -206,7 +206,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) {
// Type // Type
print '<td><a href="../sociales/list.php?filtre=cs.fk_type:'.$obj->type.'">'.$obj->label.'</a></td>'; print '<td><a href="../sociales/list.php?filtre=cs.fk_type:'.$obj->type.'">'.$obj->label.'</a></td>';
// Expected to pay // Expected to pay
print '<td class="right">'.price($obj->total).'</td>'; print '<td class="right"><span class="amount">'.price($obj->total).'</span></td>';
// Ref payment // Ref payment
$payment_sc_static->id = $obj->pid; $payment_sc_static->id = $obj->pid;
$payment_sc_static->ref = $obj->pid; $payment_sc_static->ref = $obj->pid;
@ -323,7 +323,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) {
$tva_static->ref = $obj->label; $tva_static->ref = $obj->label;
print "<td>".$tva_static->getNomUrl(1)."</td>\n"; print "<td>".$tva_static->getNomUrl(1)."</td>\n";
print '<td class="right">'.price($obj->amount_tva)."</td>"; print '<td class="right"><span class="amount">'.price($obj->amount_tva)."</span></td>";
// Ref payment // Ref payment
$ptva_static->id = $obj->rowid; $ptva_static->id = $obj->rowid;
@ -359,7 +359,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) {
} }
// Paid // Paid
print '<td class="right">'.price($obj->amount)."</td>"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>";
print "</tr>\n"; print "</tr>\n";
$i++; $i++;
@ -442,7 +442,7 @@ while ($j < $numlt) {
print "<td>".$obj->label."</td>\n"; print "<td>".$obj->label."</td>\n";
print '<td class="right">'.price($obj->amount)."</td>"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>";
// Ref payment // Ref payment
$ptva_static->id = $obj->rowid; $ptva_static->id = $obj->rowid;
@ -450,7 +450,7 @@ while ($j < $numlt) {
print '<td class="left">'.$ptva_static->getNomUrl(1)."</td>\n"; print '<td class="left">'.$ptva_static->getNomUrl(1)."</td>\n";
print '<td class="center">'.dol_print_date($db->jdate($obj->dp), 'day')."</td>\n"; print '<td class="center">'.dol_print_date($db->jdate($obj->dp), 'day')."</td>\n";
print '<td class="right">'.price($obj->amount)."</td>"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>";
print "</tr>\n"; print "</tr>\n";
$i++; $i++;

View File

@ -268,7 +268,7 @@ print '<br><br>';
print '<div class="div-table-responsive-no-min">'; print '<div class="div-table-responsive-no-min">';
print '<table class="border centpercent">'; print '<table class="border centpercent">';
print '<tr height="24">'; print '<tr>';
print '<td class="center">'.$langs->trans("Year").'</td>'; print '<td class="center">'.$langs->trans("Year").'</td>';
print '<td class="center">'.$langs->trans("Number").'</td>'; print '<td class="center">'.$langs->trans("Number").'</td>';
print '<td class="center">'.$langs->trans("AmountTotal").'</td>'; print '<td class="center">'.$langs->trans("AmountTotal").'</td>';
@ -280,14 +280,16 @@ foreach ($data as $val) {
$year = $val['year']; $year = $val['year'];
while ($year && $oldyear > $year + 1) { // If we have empty year while ($year && $oldyear > $year + 1) { // If we have empty year
$oldyear--; $oldyear--;
print '<tr height="24">'; print '<tr>';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.'">'.$oldyear.'</a></td>'; print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.'">'.$oldyear.'</a></td>';
print '<td class="right">0</td>'; print '<td class="right">0</td>';
print '<td class="right">0</td>'; print '<td class="right">0</td>';
print '<td class="right">0</td>'; print '<td class="right">0</td>';
print '</tr>'; print '</tr>';
} }
print '<tr height="24">';
// Total
print '<tr>';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.'">'.$year.'</a></td>'; print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.'">'.$year.'</a></td>';
print '<td class="right">'.$val['nb'].'</td>'; print '<td class="right">'.$val['nb'].'</td>';
print '<td class="right">'.price(price2num($val['total'], 'MT'), 1).'</td>'; print '<td class="right">'.price(price2num($val['total'], 'MT'), 1).'</td>';

View File

@ -2773,7 +2773,7 @@ if (empty($reshook)) {
} elseif ($action == 'swapstatut') { } elseif ($action == 'swapstatut') {
// bascule du statut d'un contact // bascule du statut d'un contact
if ($object->fetch($id)) { if ($object->fetch($id)) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
@ -4733,8 +4733,8 @@ if ($action == 'create') {
if (!empty($conf->banque->enabled)) { if (!empty($conf->banque->enabled)) {
print '<td class="right"></td>'; print '<td class="right"></td>';
} }
print '<td class="right">'.price($prev_invoice->total_ht).'</td>'; print '<td class="right"><span class="amount">'.price($prev_invoice->total_ht).'</span></td>';
print '<td class="right">'.price($prev_invoice->total_ttc).'</td>'; print '<td class="right"><span class="amount">'.price($prev_invoice->total_ttc).'</span></td>';
print '<td class="right">'.$prev_invoice->getLibStatut(3, $tmptotalpaidforthisinvoice).'</td>'; print '<td class="right">'.$prev_invoice->getLibStatut(3, $tmptotalpaidforthisinvoice).'</td>';
print '</tr>'; print '</tr>';
} }
@ -4753,8 +4753,8 @@ if ($action == 'create') {
if (!empty($conf->banque->enabled)) { if (!empty($conf->banque->enabled)) {
print '<td class="right"></td>'; print '<td class="right"></td>';
} }
print '<td class="right">'.price($object->total_ht).'</td>'; print '<td class="right"><span class="amount">'.price($object->total_ht).'</span></td>';
print '<td class="right">'.price($object->total_ttc).'</td>'; print '<td class="right"><span class="amount">'.price($object->total_ttc).'</span></td>';
print '<td class="right">'.$object->getLibStatut(3, $object->getSommePaiement()).'</td>'; print '<td class="right">'.$object->getLibStatut(3, $object->getSommePaiement()).'</td>';
print '</tr>'; print '</tr>';
@ -4808,8 +4808,8 @@ if ($action == 'create') {
if (!empty($conf->banque->enabled)) { if (!empty($conf->banque->enabled)) {
print '<td class="right"></td>'; print '<td class="right"></td>';
} }
print '<td class="right">'.price($next_invoice->total_ht).'</td>'; print '<td class="right"><span class="amount">'.price($next_invoice->total_ht).'</span></td>';
print '<td class="right">'.price($next_invoice->total_ttc).'</td>'; print '<td class="right"><span class="amount">'.price($next_invoice->total_ttc).'</span></td>';
print '<td class="right">'.$next_invoice->getLibStatut(3, $totalpaye).'</td>'; print '<td class="right">'.$next_invoice->getLibStatut(3, $totalpaye).'</td>';
print '</tr>'; print '</tr>';
} }
@ -4914,7 +4914,7 @@ if ($action == 'create') {
} }
print '</td>'; print '</td>';
} }
print '<td class="right">'.price($sign * $objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($sign * $objp->amount).'</span></td>';
print '<td class="center">'; print '<td class="center">';
if ($object->statut == Facture::STATUS_VALIDATED && $object->paye == 0 && $user->socid == 0) { if ($object->statut == Facture::STATUS_VALIDATED && $object->paye == 0 && $user->socid == 0) {
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=deletepayment&token='.newToken().'&paiement_id='.$objp->rowid.'">'; print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=deletepayment&token='.newToken().'&paiement_id='.$objp->rowid.'">';
@ -4972,7 +4972,7 @@ if ($action == 'create') {
print $invoice->getNomUrl(0); print $invoice->getNomUrl(0);
print '</span>'; print '</span>';
print '</td>'; print '</td>';
print '<td class="right">'.price($obj->amount_ttc).'</td>'; print '<td class="right"><span class="amount">'.price($obj->amount_ttc).'</span></td>';
print '<td class="right">'; print '<td class="right">';
print '<a href="'.$_SERVER["PHP_SELF"].'?facid='.$object->id.'&action=unlinkdiscount&discountid='.$obj->rowid.'">'.img_delete().'</a>'; print '<a href="'.$_SERVER["PHP_SELF"].'?facid='.$object->id.'&action=unlinkdiscount&discountid='.$obj->rowid.'">'.img_delete().'</a>';
print '</td></tr>'; print '</td></tr>';
@ -4994,7 +4994,7 @@ if ($action == 'create') {
print '<span class="opacitymedium">'; print '<span class="opacitymedium">';
print $form->textwithpicto($langs->trans("Discount"), $langs->trans("HelpEscompte"), - 1); print $form->textwithpicto($langs->trans("Discount"), $langs->trans("HelpEscompte"), - 1);
print '</span>'; print '</span>';
print '</td><td class="right">'.price(price2num($object->total_ttc - $creditnoteamount - $depositamount - $totalpaye, 'MT')).'</td><td>&nbsp;</td></tr>'; print '</td><td class="right"><span class="amount">'.price(price2num($object->total_ttc - $creditnoteamount - $depositamount - $totalpaye, 'MT')).'</span></td><td>&nbsp;</td></tr>';
$resteapayeraffiche = 0; $resteapayeraffiche = 0;
$cssforamountpaymentcomplete = 'amountpaymentneutral'; $cssforamountpaymentcomplete = 'amountpaymentneutral';
} }
@ -5014,7 +5014,7 @@ if ($action == 'create') {
print '<span class="opacitymedium">'; print '<span class="opacitymedium">';
print $form->textwithpicto($langs->trans("ProductReturned"), $langs->trans("HelpAbandonProductReturned"), - 1); print $form->textwithpicto($langs->trans("ProductReturned"), $langs->trans("HelpAbandonProductReturned"), - 1);
print '</span>'; print '</span>';
print '</td><td class="right">'.price(price2num($object->total_ttc - $creditnoteamount - $depositamount - $totalpaye, 'MT')).'</td><td>&nbsp;</td></tr>'; print '</td><td class="right"><span class="amount">'.price(price2num($object->total_ttc - $creditnoteamount - $depositamount - $totalpaye, 'MT')).'</span></td><td>&nbsp;</td></tr>';
$resteapayeraffiche = 0; $resteapayeraffiche = 0;
$cssforamountpaymentcomplete = 'amountpaymentneutral'; $cssforamountpaymentcomplete = 'amountpaymentneutral';
} }
@ -5028,7 +5028,7 @@ if ($action == 'create') {
print '<span class="opacitymedium">'; print '<span class="opacitymedium">';
print $form->textwithpicto($langs->trans("Abandoned"), $text, - 1); print $form->textwithpicto($langs->trans("Abandoned"), $text, - 1);
print '</span>'; print '</span>';
print '</td><td class="right">'.price(price2num($object->total_ttc - $creditnoteamount - $depositamount - $totalpaye, 'MT')).'</td><td>&nbsp;</td></tr>'; print '</td><td class="right"><span class="amount">'.price(price2num($object->total_ttc - $creditnoteamount - $depositamount - $totalpaye, 'MT')).'</span></td><td>&nbsp;</td></tr>';
$resteapayeraffiche = 0; $resteapayeraffiche = 0;
$cssforamountpaymentcomplete = 'amountpaymentneutral'; $cssforamountpaymentcomplete = 'amountpaymentneutral';
} }
@ -5037,7 +5037,7 @@ if ($action == 'create') {
print '<tr><td colspan="'.$nbcols.'" class="right">'; print '<tr><td colspan="'.$nbcols.'" class="right">';
print '<span class="opacitymedium">'; print '<span class="opacitymedium">';
print $langs->trans("Billed"); print $langs->trans("Billed");
print '</td><td class="right">'.price($object->total_ttc).'</td><td>&nbsp;</td></tr>'; print '</td><td class="right"><span class="amount">'.price($object->total_ttc).'</span></td><td>&nbsp;</td></tr>';
// Remainder to pay // Remainder to pay
print '<tr><td colspan="'.$nbcols.'" class="right">'; print '<tr><td colspan="'.$nbcols.'" class="right">';
print '<span class="opacitymedium">'; print '<span class="opacitymedium">';
@ -5047,7 +5047,7 @@ if ($action == 'create') {
} }
print '</span>'; print '</span>';
print '</td>'; print '</td>';
print '<td class="right'.($resteapayeraffiche ? ' amountremaintopay' : (' '.$cssforamountpaymentcomplete)).'">'.price($resteapayeraffiche).'</td>'; print '<td class="right'.($resteapayeraffiche ? ' amountremaintopay' : (' '.$cssforamountpaymentcomplete)).'"><span class="amount">'.price($resteapayeraffiche).'</span></td>';
print '<td class="nowrap">&nbsp;</td></tr>'; print '<td class="nowrap">&nbsp;</td></tr>';
// Retained warranty : usualy use on construction industry // Retained warranty : usualy use on construction industry
@ -5076,10 +5076,10 @@ if ($action == 'create') {
// Total already paid back // Total already paid back
print '<tr><td colspan="'.$nbcols.'" class="right">'; print '<tr><td colspan="'.$nbcols.'" class="right">';
print $langs->trans('AlreadyPaidBack'); print $langs->trans('AlreadyPaidBack');
print ' :</td><td class="right">'.price($sign * $totalpaye).'</td><td>&nbsp;</td></tr>'; print ' :</td><td class="right"><span class="amount">'.price($sign * $totalpaye).'</span></td><td>&nbsp;</td></tr>';
// Billed // Billed
print '<tr><td colspan="'.$nbcols.'" class="right">'.$langs->trans("Billed").' :</td><td class="right">'.price($sign * $object->total_ttc).'</td><td>&nbsp;</td></tr>'; print '<tr><td colspan="'.$nbcols.'" class="right">'.$langs->trans("Billed").' :</td><td class="right"><span class="amount">'.price($sign * $object->total_ttc).'</span></td><td>&nbsp;</td></tr>';
// Remainder to pay back // Remainder to pay back
print '<tr><td colspan="'.$nbcols.'" class="right">'; print '<tr><td colspan="'.$nbcols.'" class="right">';

View File

@ -2007,7 +2007,7 @@ class FactureLigneRec extends CommonInvoiceLine
$sql .= ' p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as product_label, p.description as product_desc'; $sql .= ' p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as product_label, p.description as product_desc';
$sql .= ' FROM '.MAIN_DB_PREFIX.'facturedet_rec as l'; $sql .= ' FROM '.MAIN_DB_PREFIX.'facturedet_rec as l';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product = p.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product = p.rowid';
$sql .= ' WHERE l.rowid = '.$rowid; $sql .= ' WHERE l.rowid = '.((int) $rowid);
$sql .= ' ORDER BY l.rang'; $sql .= ' ORDER BY l.rang';
dol_syslog('FactureRec::fetch', LOG_DEBUG); dol_syslog('FactureRec::fetch', LOG_DEBUG);

View File

@ -2289,7 +2289,7 @@ class Facture extends CommonInvoice
dol_syslog(get_class($this)."::delete", LOG_DEBUG); dol_syslog(get_class($this)."::delete", LOG_DEBUG);
if ($this->db->query($sqlef) && $this->db->query($sql) && $this->delete_linked_contact()) { if ($this->db->query($sqlef) && $this->db->query($sql) && $this->delete_linked_contact()) {
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture WHERE rowid = '.$rowid; $sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture WHERE rowid = '.((int) $rowid);
dol_syslog(get_class($this)."::delete", LOG_DEBUG); dol_syslog(get_class($this)."::delete", LOG_DEBUG);
@ -4982,7 +4982,7 @@ class FactureLigne extends CommonInvoiceLine
$sql .= ' p.ref as product_ref, p.label as product_label, p.description as product_desc'; $sql .= ' p.ref as product_ref, p.label as product_label, p.description as product_desc';
$sql .= ' FROM '.MAIN_DB_PREFIX.'facturedet as fd'; $sql .= ' FROM '.MAIN_DB_PREFIX.'facturedet as fd';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON fd.fk_product = p.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON fd.fk_product = p.rowid';
$sql .= ' WHERE fd.rowid = '.$rowid; $sql .= ' WHERE fd.rowid = '.((int) $rowid);
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) { if ($result) {

View File

@ -82,7 +82,7 @@ if ($action == 'addcontact' && $user->rights->facture->creer) {
} }
} elseif ($action == 'swapstatut' && $user->rights->facture->creer) { } elseif ($action == 'swapstatut' && $user->rights->facture->creer) {
// Toggle the status of a contact // Toggle the status of a contact
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} elseif ($action == 'deletecontact' && $user->rights->facture->creer) { } elseif ($action == 'deletecontact' && $user->rights->facture->creer) {
// Deletes a contact // Deletes a contact
$result = $object->delete_contact($lineid); $result = $object->delete_contact($lineid);

View File

@ -285,7 +285,7 @@ function getDraftTable($maxCount = 500, $socid = 0)
$result .= '<tr class="oddeven">'; $result .= '<tr class="oddeven">';
$result .= '<td class="nowrap">'.$objectstatic->getNomUrl(1).'</td>'; $result .= '<td class="nowrap">'.$objectstatic->getNomUrl(1).'</td>';
$result .= '<td>'.$companystatic->getNomUrl(1, 'customer', 24).'</td>'; $result .= '<td>'.$companystatic->getNomUrl(1, 'customer', 24).'</td>';
$result .= '<td class="right">'.price($obj->total_ttc).'</td>'; $result .= '<td class="right"><span class="amount">'.price($obj->total_ttc).'</span></td>';
$result .= '</tr>'; $result .= '</tr>';
$i++; $i++;
@ -299,7 +299,7 @@ function getDraftTable($maxCount = 500, $socid = 0)
} elseif ($total > 0) { } elseif ($total > 0) {
$result .= '<tr class="liste_total">'; $result .= '<tr class="liste_total">';
$result .= '<td colspan="2" class="right">'.$langs->trans("Total").'</td>'; $result .= '<td colspan="2" class="right">'.$langs->trans("Total").'</td>';
$result .= '<td class="right">'.price($total).'</td>'; $result .= '<td class="right"><span class="amount">'.price($total).'</span></td>';
$result .= '</tr>'; $result .= '</tr>';
} }
@ -508,7 +508,7 @@ function getOpenTable($maxCount = 500, $socid = 0)
$result .= '<td class="left">'.$companystatic->getNomUrl(1, 'customer', 44).'</td>'; $result .= '<td class="left">'.$companystatic->getNomUrl(1, 'customer', 44).'</td>';
$result .= '<td class="right">'.dol_print_date($db->jdate($obj->df), 'day').'</td>'; $result .= '<td class="right">'.dol_print_date($db->jdate($obj->df), 'day').'</td>';
$result .= '<td class="right">'.price($obj->total_ttc).'</td>'; $result .= '<td class="right"><span class="amount">'.price($obj->total_ttc).'</span></td>';
$result .= '</tr>'; $result .= '</tr>';

View File

@ -384,9 +384,9 @@ foreach ($data as $val) {
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.($socid > 0 ? '&socid='.$socid : '').($userid > 0 ? '&userid='.$userid : '').'">'.$year.'</a></td>'; print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.($socid > 0 ? '&socid='.$socid : '').($userid > 0 ? '&userid='.$userid : '').'">'.$year.'</a></td>';
print '<td class="right">'.$val['nb'].'</td>'; print '<td class="right">'.$val['nb'].'</td>';
print '<td class="right" style="'.(($val['nb_diff'] >= 0) ? 'color: green;' : 'color: red;').'">'.round($val['nb_diff']).'</td>'; print '<td class="right" style="'.(($val['nb_diff'] >= 0) ? 'color: green;' : 'color: red;').'">'.round($val['nb_diff']).'</td>';
print '<td class="right">'.price(price2num($val['total'], 'MT'), 1).'</td>'; print '<td class="right"><span class="amount">'.price(price2num($val['total'], 'MT'), 1).'</span></td>';
print '<td class="right" style="'.(($val['total_diff'] >= 0) ? 'color: green;' : 'color: red;').'">'.round($val['total_diff']).'</td>'; print '<td class="right" style="'.(($val['total_diff'] >= 0) ? 'color: green;' : 'color: red;').'">'.round($val['total_diff']).'</td>';
print '<td class="right">'.price(price2num($val['avg'], 'MT'), 1).'</td>'; print '<td class="right"><span class="amount">'.price(price2num($val['avg'], 'MT'), 1).'</span></td>';
print '<td class="right" style="'.(($val['avg_diff'] >= 0) ? 'color: green;' : 'color: red;').'">'.round($val['avg_diff']).'</td>'; print '<td class="right" style="'.(($val['avg_diff'] >= 0) ? 'color: green;' : 'color: red;').'">'.round($val['avg_diff']).'</td>';
print '</tr>'; print '</tr>';
$oldyear = $year; $oldyear = $year;

View File

@ -351,7 +351,7 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU
print '<td class="nowrap tdoverflowmax100">'; print '<td class="nowrap tdoverflowmax100">';
print $companystatic->getNomUrl(1, 'supplier'); print $companystatic->getNomUrl(1, 'supplier');
print '</td>'; print '</td>';
print '<td class="right">'.price($obj->total_ttc).'</td>'; print '<td class="right"><span class="amount">'.price($obj->total_ttc).'</span></td>';
print '</tr>'; print '</tr>';
$tot_ttc += $obj->total_ttc; $tot_ttc += $obj->total_ttc;
$i++; $i++;
@ -620,7 +620,7 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU
print $thirdpartystatic->getNomUrl(1, 'supplier'); print $thirdpartystatic->getNomUrl(1, 'supplier');
print '</td>'; print '</td>';
if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) { if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) {
print '<td class="right">'.price($obj->total_ht).'</td>'; print '<td class="right"><span class="amount">'.price($obj->total_ht).'</span></td>';
} }
print '<td class="nowrap right">'.price($obj->total_ttc).'</td>'; print '<td class="nowrap right">'.price($obj->total_ttc).'</td>';
print '<td class="right">'.dol_print_date($db->jdate($obj->tms), 'day').'</td>'; print '<td class="right">'.dol_print_date($db->jdate($obj->tms), 'day').'</td>';
@ -951,7 +951,7 @@ if (!empty($conf->facture->enabled) && !empty($conf->commande->enabled) && $user
print $societestatic->getNomUrl(1, 'customer'); print $societestatic->getNomUrl(1, 'customer');
print '</td>'; print '</td>';
if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) { if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) {
print '<td class="right">'.price($obj->total_ht).'</td>'; print '<td class="right"><span class="amount">'.price($obj->total_ht).'</span></td>';
} }
print '<td class="nowrap right">'.price($obj->total_ttc).'</td>'; print '<td class="nowrap right">'.price($obj->total_ttc).'</td>';
print '<td class="nowrap right">'.price($obj->total_ttc - $obj->tot_fttc).'</td>'; print '<td class="nowrap right">'.price($obj->total_ttc - $obj->tot_fttc).'</td>';
@ -974,10 +974,10 @@ if (!empty($conf->facture->enabled) && !empty($conf->commande->enabled) && $user
print '<tr class="liste_total"><td colspan="2">'.$langs->trans("Total").' &nbsp; <font style="font-weight: normal">('.$langs->trans("RemainderToBill").': '.price($tot_tobill).')</font> </td>'; print '<tr class="liste_total"><td colspan="2">'.$langs->trans("Total").' &nbsp; <font style="font-weight: normal">('.$langs->trans("RemainderToBill").': '.price($tot_tobill).')</font> </td>';
if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) { if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) {
print '<td class="right">'.price($tot_ht).'</td>'; print '<td class="right"><span class="amount">'.price($tot_ht).'</span></td>';
} }
print '<td class="nowrap right">'.price($tot_ttc).'</td>'; print '<td class="nowrap right"><span class="amount">'.price($tot_ttc).'</span></td>';
print '<td class="nowrap right">'.price($tot_tobill).'</td>'; print '<td class="nowrap right"><span class="amount">'.price($tot_tobill).'</span></td>';
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
print '</tr>'; print '</tr>';
print '</table></div><br>'; print '</table></div><br>';
@ -1110,10 +1110,10 @@ if (!empty($conf->facture->enabled) && $user->rights->facture->lire) {
print '</td>'; print '</td>';
print '<td class="right">'.dol_print_date($db->jdate($obj->datelimite), 'day').'</td>'; print '<td class="right">'.dol_print_date($db->jdate($obj->datelimite), 'day').'</td>';
if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) { if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) {
print '<td class="right">'.price($obj->total_ht).'</td>'; print '<td class="right"><span class="amount">'.price($obj->total_ht).'</span></td>';
} }
print '<td class="nowrap right">'.price($obj->total_ttc).'</td>'; print '<td class="nowrap right"><span class="amount">'.price($obj->total_ttc).'</span></td>';
print '<td class="nowrap right">'.price($obj->am).'</td>'; print '<td class="nowrap right"><span class="amount">'.price($obj->am).'</span></td>';
print '<td>'.$tmpinvoice->getLibStatut(3, $obj->am).'</td>'; print '<td>'.$tmpinvoice->getLibStatut(3, $obj->am).'</td>';
print '</tr>'; print '</tr>';
@ -1139,10 +1139,10 @@ if (!empty($conf->facture->enabled) && $user->rights->facture->lire) {
print '<tr class="liste_total"><td colspan="2">'.$langs->trans("Total").' &nbsp; <font style="font-weight: normal">('.$langs->trans("RemainderToTake").': '.price($total_ttc - $totalam).')</font> </td>'; print '<tr class="liste_total"><td colspan="2">'.$langs->trans("Total").' &nbsp; <font style="font-weight: normal">('.$langs->trans("RemainderToTake").': '.price($total_ttc - $totalam).')</font> </td>';
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) { if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) {
print '<td class="right">'.price($total).'</td>'; print '<td class="right"><span class="amount">'.price($total).'</span></td>';
} }
print '<td class="nowrap right">'.price($total_ttc).'</td>'; print '<td class="nowrap right"><span class="amount">'.price($total_ttc).'</span></td>';
print '<td class="nowrap right">'.price($totalam).'</td>'; print '<td class="nowrap right"><span class="amount">'.price($totalam).'</span></td>';
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
print '</tr>'; print '</tr>';
} else { } else {
@ -1260,10 +1260,10 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU
print '<td class="nowrap tdoverflowmax100">'.$societestatic->getNomUrl(1, 'supplier').'</td>'; print '<td class="nowrap tdoverflowmax100">'.$societestatic->getNomUrl(1, 'supplier').'</td>';
print '<td class="right">'.dol_print_date($db->jdate($obj->date_lim_reglement), 'day').'</td>'; print '<td class="right">'.dol_print_date($db->jdate($obj->date_lim_reglement), 'day').'</td>';
if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) { if (!empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) {
print '<td class="right">'.price($obj->total_ht).'</td>'; print '<td class="right"><span class="amount">'.price($obj->total_ht).'</span></td>';
} }
print '<td class="nowrap right">'.price($obj->total_ttc).'</td>'; print '<td class="nowrap right"><span class="amount">'.price($obj->total_ttc).'</span></td>';
print '<td class="nowrap right">'.price($obj->am).'</td>'; print '<td class="nowrap right"><span class="amount">'.price($obj->am).'</span></td>';
print '<td>'.$facstatic->getLibStatut(3, $obj->am).'</td>'; print '<td>'.$facstatic->getLibStatut(3, $obj->am).'</td>';
print '</tr>'; print '</tr>';
$total += $obj->total_ht; $total += $obj->total_ht;

View File

@ -91,7 +91,7 @@ if ($result) {
$i++; $i++;
} }
print '<tr class="liste_total"><td colspan="4">'.$langs->trans("Total").'</td>'; print '<tr class="liste_total"><td colspan="4">'.$langs->trans("Total").'</td>';
print '<td class="right">'.price($total).'</td></tr>'; print '<td class="right"><span class="amount">'.price($total).'</span></td></tr>';
print "</table>"; print "</table>";
$db->free($result); $db->free($result);

View File

@ -492,8 +492,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num($subtot_coll_total_ht, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num($subtot_coll_total_ht, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($subtot_coll_vat, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($subtot_coll_vat, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }
@ -505,8 +505,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num(0, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num(0, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num(0, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num(0, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }
@ -643,8 +643,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num($subtot_paye_total_ht, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num($subtot_paye_total_ht, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($subtot_paye_vat, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($subtot_paye_vat, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }
@ -656,8 +656,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num(0, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num(0, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num(0, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num(0, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }

View File

@ -713,17 +713,17 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
} }
// Price // Price
print '<td class="right">'.price($sign * $objp->total_ttc).'</td>'; print '<td class="right"><span class="amount">'.price($sign * $objp->total_ttc).'</span></td>';
// Received + already paid // Received + already paid
print '<td class="right">'.price($sign * $paiement); print '<td class="right"><span class="amount">'.price($sign * $paiement);
if ($creditnotes) { if ($creditnotes) {
print '<span class="opacitymedium">+'.price($creditnotes).'</span>'; print '<span class="opacitymedium">+'.price($creditnotes).'</span>';
} }
if ($deposits) { if ($deposits) {
print '<span class="opacitymedium">+'.price($deposits).'</span>'; print '<span class="opacitymedium">+'.price($deposits).'</span>';
} }
print '</td>'; print '</span></td>';
// Remain to take or to pay back // Remain to take or to pay back
print '<td class="right">'.price($sign * $remaintopay).'</td>'; print '<td class="right">'.price($sign * $remaintopay).'</td>';
@ -901,7 +901,7 @@ if (!GETPOST('action', 'aZ09')) {
print '<td><a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$objp->facid.'">'.$objp->ref."</a></td>\n"; print '<td><a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$objp->facid.'">'.$objp->ref."</a></td>\n";
print '<td>'.dol_print_date($db->jdate($objp->dp))."</td>\n"; print '<td>'.dol_print_date($db->jdate($objp->dp))."</td>\n";
print '<td>'.$objp->paiement_type.' '.$objp->num_payment."</td>\n"; print '<td>'.$objp->paiement_type.' '.$objp->num_payment."</td>\n";
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
print '</tr>'; print '</tr>';

View File

@ -365,13 +365,13 @@ if ($resql) {
print '</td>'; print '</td>';
} }
// Expected to pay // Expected to pay
print '<td class="right">'.price($objp->total_ttc).'</td>'; print '<td class="right"><span class="amount">'.price($objp->total_ttc).'</span></td>';
// Amount payed // Amount payed
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
// Remain to pay // Remain to pay
print '<td class="right">'.price($remaintopay).'</td>'; print '<td class="right"><span class="amount">'.price($remaintopay).'</span></td>';
// Status // Status
print '<td class="right">'.$invoice->getLibStatut(5, $alreadypayed).'</td>'; print '<td class="right">'.$invoice->getLibStatut(5, $alreadypayed).'</td>';

View File

@ -462,7 +462,7 @@ if ($action == 'new') {
print '<td>'.$value["numero"]."</td>\n"; print '<td>'.$value["numero"]."</td>\n";
print '<td>'.$value["emetteur"]."</td>\n"; print '<td>'.$value["emetteur"]."</td>\n";
print '<td>'.$value["banque"]."</td>\n"; print '<td>'.$value["banque"]."</td>\n";
print '<td class="right">'.price($value["amount"], 0, $langs, 1, -1, -1, $conf->currency).'</td>'; print '<td class="right"><span class="amount">'.price($value["amount"], 0, $langs, 1, -1, -1, $conf->currency).'</span></td>';
// Link to payment // Link to payment
print '<td class="center">'; print '<td class="center">';
@ -639,7 +639,7 @@ if ($action == 'new') {
print '<td class="center">'.($objp->num_chq ? $objp->num_chq : '&nbsp;').'</td>'; print '<td class="center">'.($objp->num_chq ? $objp->num_chq : '&nbsp;').'</td>';
print '<td>'.dol_trunc($objp->emetteur, 24).'</td>'; print '<td>'.dol_trunc($objp->emetteur, 24).'</td>';
print '<td>'.dol_trunc($objp->banque, 24).'</td>'; print '<td>'.dol_trunc($objp->banque, 24).'</td>';
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
// Link to payment // Link to payment
print '<td class="center">'; print '<td class="center">';
$paymentstatic->id = $objp->pid; $paymentstatic->id = $objp->pid;

View File

@ -131,7 +131,7 @@ if ($resql) {
print '<td>'.dol_print_date($db->jdate($objp->db), 'day').'</td>'; print '<td>'.dol_print_date($db->jdate($objp->db), 'day').'</td>';
print '<td class="nowraponall">'.$accountstatic->getNomUrl(1).'</td>'; print '<td class="nowraponall">'.$accountstatic->getNomUrl(1).'</td>';
print '<td class="right">'.$objp->nbcheque.'</td>'; print '<td class="right">'.$objp->nbcheque.'</td>';
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
print '<td class="right">'.$checkdepositstatic->LibStatut($objp->statut, 3).'</td>'; print '<td class="right">'.$checkdepositstatic->LibStatut($objp->statut, 3).'</td>';
print '</tr>'; print '</tr>';

View File

@ -228,7 +228,7 @@ if ($resql) {
print '<td class="right">'.$objp->nbcheque.'</td>'; print '<td class="right">'.$objp->nbcheque.'</td>';
// Amount // Amount
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
// Statut // Statut
print '<td class="right">'; print '<td class="right">';

View File

@ -547,7 +547,7 @@ while ($i < min($num, $limit)) {
// Amount // Amount
if (!empty($arrayfields['p.amount']['checked'])) { if (!empty($arrayfields['p.amount']['checked'])) {
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
if (!$i) { if (!$i) {
$totalarray['nbfield']++; $totalarray['nbfield']++;
} }

View File

@ -120,7 +120,7 @@ if ($resql) {
print '<td><a href="'.DOL_URL_ROOT.'/compta/paiement/card.php?id='.$objp->rowid.'">'.img_object($langs->trans("ShowPayment"), "payment").' '.$objp->rowid.'</a></td>'; print '<td><a href="'.DOL_URL_ROOT.'/compta/paiement/card.php?id='.$objp->rowid.'">'.img_object($langs->trans("ShowPayment"), "payment").' '.$objp->rowid.'</a></td>';
print '<td width="80" align="center">'.dol_print_date($db->jdate($objp->dp), 'day')."</td>\n"; print '<td width="80" align="center">'.dol_print_date($db->jdate($objp->dp), 'day')."</td>\n";
print "<td>$objp->paiement_type $objp->num_payment</td>\n"; print "<td>$objp->paiement_type $objp->num_payment</td>\n";
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
print '<td class="center">'; print '<td class="center">';
if ($objp->statut == 0) { if ($objp->statut == 0) {

View File

@ -266,11 +266,11 @@ if ($action == 'create') {
print "<td align=\"center\"><b>!!!</b></td>\n"; print "<td align=\"center\"><b>!!!</b></td>\n";
} }
print '<td class="right">'.price($objp->amount)."</td>"; print '<td class="right"><span class="amount">'.price($objp->amount)."</span></td>";
print '<td class="right">'.price($sumpaid)."</td>"; print '<td class="right"><span class="amount">'.price($sumpaid)."</span></td>";
print '<td class="right">'.price($objp->amount - $sumpaid)."</td>"; print '<td class="right"><span class="amount">'.price($objp->amount - $sumpaid)."</span></td>";
print '<td class="center">'; print '<td class="center">';
if ($sumpaid < $objp->amount) { if ($sumpaid < $objp->amount) {

View File

@ -262,11 +262,11 @@ if ($action == 'create') {
print "<td align=\"center\"><b>!!!</b></td>\n"; print "<td align=\"center\"><b>!!!</b></td>\n";
} }
print '<td class="right">'.price($objp->amount)."</td>"; print '<td class="right"><span class="amount">'.price($objp->amount)."</span></td>";
print '<td class="right">'.price($sumpaid)."</td>"; print '<td class="right"><span class="amount">'.price($sumpaid)."</span></td>";
print '<td class="right">'.price($objp->amount - $sumpaid)."</td>"; print '<td class="right"><span class="amount">'.price($objp->amount - $sumpaid)."</span></td>";
print '<td class="center">'; print '<td class="center">';

View File

@ -207,11 +207,11 @@ if ($resql) {
// Label // Label
print '<td>'.$objp->label.'</td>'; print '<td>'.$objp->label.'</td>';
// Expected to pay // Expected to pay
print '<td class="right">'.price($objp->sc_amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->sc_amount).'</span></td>';
// Status // Status
print '<td class="center">'.$socialcontrib->getLibStatut(4, $objp->amount).'</td>'; print '<td class="center">'.$socialcontrib->getLibStatut(4, $objp->amount).'</td>';
// Amount paid // Amount paid
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
print "</tr>\n"; print "</tr>\n";
if ($objp->paye == 1) { // If at least one invoice is paid, disable delete if ($objp->paye == 1) { // If at least one invoice is paid, disable delete
$disable_delete = 1; $disable_delete = 1;

View File

@ -263,11 +263,11 @@ if ($resql) {
// Label // Label
print '<td>'.$objp->label.'</td>'; print '<td>'.$objp->label.'</td>';
// Expected to pay // Expected to pay
print '<td class="right">'.price($objp->tva_amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->tva_amount).'</span></td>';
// Status // Status
print '<td class="center">'.$tva->getLibStatut(4, $objp->amount).'</td>'; print '<td class="center">'.$tva->getLibStatut(4, $objp->amount).'</td>';
// Amount payed // Amount payed
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
print "</tr>\n"; print "</tr>\n";
if ($objp->paye == 1) { // If at least one invoice is paid, disable delete if ($objp->paye == 1) { // If at least one invoice is paid, disable delete
$disable_delete = 1; $disable_delete = 1;

View File

@ -84,9 +84,9 @@ print '</a>';
print '</td></tr>'; print '</td></tr>';
print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>'; print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>';
print '<td class="right">'; print '<td class="right"><span class="amount">';
print price($bprev->SommeAPrelever('bank-transfer'), '', '', 1, -1, -1, 'auto'); print price($bprev->SommeAPrelever('bank-transfer'), '', '', 1, -1, -1, 'auto');
print '</td></tr></table></div><br>'; print '</span></td></tr></table></div><br>';
@ -216,8 +216,8 @@ if ($result) {
print $bprev->getNomUrl(1); print $bprev->getNomUrl(1);
print "</td>\n"; print "</td>\n";
print '<td>'.dol_print_date($db->jdate($obj->datec), "dayhour")."</td>\n"; print '<td>'.dol_print_date($db->jdate($obj->datec), "dayhour")."</td>\n";
print '<td class="right">'.price($obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>\n";
print '<td class="right">'.$bprev->getLibStatut(3)."</td>\n"; print '<td class="right"><span class="amount">'.$bprev->getLibStatut(3)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
$i++; $i++;

View File

@ -423,7 +423,7 @@ if ($id > 0 || $ref) {
print $thirdparty->getNomUrl(1); print $thirdparty->getNomUrl(1);
print "</td>\n"; print "</td>\n";
print '<td class="right">'.price($obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>\n";
print '<td class="right">'; print '<td class="right">';

View File

@ -503,7 +503,7 @@ if ($result)
print '<td class="center">'.dol_print_date($db->jdate($obj->datec),'day')."</td>\n"; print '<td class="center">'.dol_print_date($db->jdate($obj->datec),'day')."</td>\n";
print '<td class="right">'.price($obj->amount,0,$langs,0,0,-1,$conf->currency)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount,0,$langs,0,0,-1,$conf->currency)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
$i++; $i++;

View File

@ -281,10 +281,10 @@ if ($resql) {
print "</td>\n"; print "</td>\n";
// Amount of invoice // Amount of invoice
print '<td class="right">'.price($obj->total_ttc)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->total_ttc)."</span></td>\n";
// Amount requested // Amount requested
print '<td class="right">'.price($obj->amount_requested)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount_requested)."</span></td>\n";
// Status of requests // Status of requests
print '<td class="center">'; print '<td class="center">';

View File

@ -222,7 +222,7 @@ if ($resql) {
print '</a></td>'; print '</a></td>';
print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid.'">'.$obj->name."</a></td>\n"; print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid.'">'.$obj->name."</a></td>\n";
print '<td class="right">'.price($obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>\n";
print '<td>'.$rej->motifs[$obj->motif].'</td>'; print '<td>'.$rej->motifs[$obj->motif].'</td>';
print '<td class="center">'.yn($obj->afacturer).'</td>'; print '<td class="center">'.yn($obj->afacturer).'</td>';
@ -240,7 +240,7 @@ if ($resql) {
if ($num > 0) { if ($num > 0) {
print '<tr class="liste_total"><td>&nbsp;</td>'; print '<tr class="liste_total"><td>&nbsp;</td>';
print '<td class="liste_total">'.$langs->trans("Total").'</td>'; print '<td class="liste_total">'.$langs->trans("Total").'</td>';
print '<td class="right">'.price($total)."</td>\n"; print '<td class="right"><span class="amount">'.price($total)."</span></td>\n";
print '<td colspan="3">&nbsp;</td>'; print '<td colspan="3">&nbsp;</td>';
print "</tr>\n"; print "</tr>\n";
} }

View File

@ -84,9 +84,9 @@ print '</a>';
print '</td></tr>'; print '</td></tr>';
print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>'; print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>';
print '<td class="right">'; print '<td class="right"><span class="amount">';
print price($bprev->SommeAPrelever('direct-debit'), '', '', 1, -1, -1, 'auto'); print price($bprev->SommeAPrelever('direct-debit'), '', '', 1, -1, -1, 'auto');
print '</td></tr></table></div><br>'; print '</span></td></tr></table></div><br>';
@ -218,7 +218,7 @@ if ($result) {
print $bprev->getNomUrl(1); print $bprev->getNomUrl(1);
print "</td>\n"; print "</td>\n";
print '<td>'.dol_print_date($db->jdate($obj->datec), "dayhour")."</td>\n"; print '<td>'.dol_print_date($db->jdate($obj->datec), "dayhour")."</td>\n";
print '<td class="right">'.price($obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>\n";
print '<td class="right">'.$bprev->getLibStatut(3)."</td>\n"; print '<td class="right">'.$bprev->getLibStatut(3)."</td>\n";
print "</tr>\n"; print "</tr>\n";

View File

@ -301,7 +301,7 @@ if ($id) {
print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid.'">'; print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid.'">';
print img_object($langs->trans("ShowCompany"), "company").' '.$obj->name."</a></td>\n"; print img_object($langs->trans("ShowCompany"), "company").' '.$obj->name."</a></td>\n";
print '<td class="right">'.price($obj->total_ttc)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->total_ttc)."</span></td>\n";
print '<td class="right">'; print '<td class="right">';
$invoicestatic->fetch($obj->facid); $invoicestatic->fetch($obj->facid);

View File

@ -266,7 +266,7 @@ if ($result) {
print '<td class="center">'.dol_print_date($db->jdate($obj->datec), 'day')."</td>\n"; print '<td class="center">'.dol_print_date($db->jdate($obj->datec), 'day')."</td>\n";
print '<td class="right">'.price($obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>\n";
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';

View File

@ -205,7 +205,7 @@ if ($result) {
print '<td class="center">'.dol_print_date($db->jdate($obj->datec), 'day')."</td>\n"; print '<td class="center">'.dol_print_date($db->jdate($obj->datec), 'day')."</td>\n";
print '<td class="right">'.price($obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>\n";
print '<td class="right">'; print '<td class="right">';
print $bon->LibStatut($obj->statut, 3); print $bon->LibStatut($obj->statut, 3);

View File

@ -286,7 +286,7 @@ if ($id > 0) {
$totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']); $totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']);
// Balance // Balance
print '<td class="right">'.price($data['balance'])."</td>\n"; print '<td class="right"><span class="amount">'.price($data['balance'])."</span></td>\n";
// Author // Author
print '<td class="nowrap right">'; print '<td class="nowrap right">';

View File

@ -311,7 +311,7 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr class="oddeven">'; print '<tr class="oddeven">';
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
print '<td>'.$objp->pcg_type.($objp->name ? ' ('.$objp->name.')' : '')."</td>\n"; print '<td>'.$objp->pcg_type.($objp->name ? ' ('.$objp->name.')' : '')."</td>\n";
print '<td class="right">'.price($objp->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($objp->amount)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
$total_ht += (isset($objp->amount) ? $objp->amount : 0); $total_ht += (isset($objp->amount) ? $objp->amount : 0);
@ -350,7 +350,7 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr>'; print '<tr>';
print '<td></td>'; print '<td></td>';
print '<td class="tdoverflowmax200"> &nbsp; &nbsp; '.length_accountg($cpt['account_number']).' - '.$cpt['account_label'].'</td>'; print '<td class="tdoverflowmax200"> &nbsp; &nbsp; '.length_accountg($cpt['account_number']).' - '.$cpt['account_label'].'</td>';
print '<td class="right">'.price($resultN).'</td>'; print '<td class="right"><span class="amount">'.price($resultN).'</span></td>';
print "</tr>\n"; print "</tr>\n";
} }
} }
@ -420,9 +420,9 @@ if ($modecompta == 'BOOKKEEPING') {
print "<td>".$langs->trans("Bills").' <a href="'.DOL_URL_ROOT.'/compta/facture/list.php?socid='.$objp->socid.'">'.$objp->name."</td>\n"; print "<td>".$langs->trans("Bills").' <a href="'.DOL_URL_ROOT.'/compta/facture/list.php?socid='.$objp->socid.'">'.$objp->name."</td>\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price($objp->amount_ht)."</td>\n"; print '<td class="right"><span class="amount">'.price($objp->amount_ht)."</span></td>\n";
} }
print '<td class="right">'.price($objp->amount_ttc)."</td>\n"; print '<td class="right"><span class="amount">'.price($objp->amount_ttc)."</span></td>\n";
$total_ht += (isset($objp->amount_ht) ? $objp->amount_ht : 0); $total_ht += (isset($objp->amount_ht) ? $objp->amount_ht : 0);
$total_ttc += $objp->amount_ttc; $total_ttc += $objp->amount_ttc;
@ -465,9 +465,9 @@ if ($modecompta == 'BOOKKEEPING') {
print "<td>".$langs->trans("Bills")." ".$langs->trans("Other")." (".$langs->trans("PaymentsNotLinkedToInvoice").")\n"; print "<td>".$langs->trans("Bills")." ".$langs->trans("Other")." (".$langs->trans("PaymentsNotLinkedToInvoice").")\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price($objp->amount_ht)."</td>\n"; print '<td class="right"><span class="amount">'.price($objp->amount_ht)."</span></td>\n";
} }
print '<td class="right">'.price($objp->amount_ttc)."</td>\n"; print '<td class="right"><span class="amount">'.price($objp->amount_ttc)."</span></td>\n";
$total_ht += (isset($objp->amount_ht) ? $objp->amount_ht : 0); $total_ht += (isset($objp->amount_ht) ? $objp->amount_ht : 0);
$total_ttc += $objp->amount_ttc; $total_ttc += $objp->amount_ttc;
@ -557,9 +557,9 @@ if ($modecompta == 'BOOKKEEPING') {
print "<td>".$langs->trans("Donation")." <a href=\"".DOL_URL_ROOT."/don/list.php?search_company=".$obj->name."&search_name=".$obj->firstname." ".$obj->lastname."\">".$obj->name." ".$obj->firstname." ".$obj->lastname."</a></td>\n"; print "<td>".$langs->trans("Donation")." <a href=\"".DOL_URL_ROOT."/don/list.php?search_company=".$obj->name."&search_name=".$obj->firstname." ".$obj->lastname."\">".$obj->name." ".$obj->firstname." ".$obj->lastname."</a></td>\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price($obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price($obj->amount).'</span></td>';
} }
print '<td class="right">'.price($obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price($obj->amount).'</span></td>';
print '</tr>'; print '</tr>';
$i++; $i++;
} }
@ -638,9 +638,9 @@ if ($modecompta == 'BOOKKEEPING') {
print "<td>".$langs->trans("Bills")." <a href=\"".DOL_URL_ROOT."/fourn/facture/list.php?socid=".$objp->socid."\">".$objp->name."</a></td>\n"; print "<td>".$langs->trans("Bills")." <a href=\"".DOL_URL_ROOT."/fourn/facture/list.php?socid=".$objp->socid."\">".$objp->name."</a></td>\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price(-$objp->amount_ht)."</td>\n"; print '<td class="right"><span class="amount">'.price(-$objp->amount_ht)."</span></td>\n";
} }
print '<td class="right">'.price(-$objp->amount_ttc)."</td>\n"; print '<td class="right"><span class="amount">'.price(-$objp->amount_ttc)."</span></td>\n";
$total_ht -= (isset($objp->amount_ht) ? $objp->amount_ht : 0); $total_ht -= (isset($objp->amount_ht) ? $objp->amount_ht : 0);
$total_ttc -= $objp->amount_ttc; $total_ttc -= $objp->amount_ttc;
@ -733,9 +733,9 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr class="oddeven"><td>&nbsp;</td>'; print '<tr class="oddeven"><td>&nbsp;</td>';
print '<td>'.$obj->label.'</td>'; print '<td>'.$obj->label.'</td>';
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price(-$obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount).'</span></td>';
} }
print '<td class="right">'.price(-$obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount).'</span></td>';
print '</tr>'; print '</tr>';
$i++; $i++;
} }
@ -820,9 +820,9 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr class="oddeven"><td>&nbsp;</td>'; print '<tr class="oddeven"><td>&nbsp;</td>';
print '<td>'.$obj->label.'</td>'; print '<td>'.$obj->label.'</td>';
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price(-$obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount).'</span></td>';
} }
print '<td class="right">'.price(-$obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount).'</span></td>';
print '</tr>'; print '</tr>';
$i++; $i++;
} }
@ -903,9 +903,9 @@ if ($modecompta == 'BOOKKEEPING') {
print "<td>".$langs->trans("Salary")." <a href=\"".DOL_URL_ROOT."/salaries/list.php?filtre=s.fk_user=".$obj->fk_user."\">".$obj->firstname." ".$obj->lastname."</a></td>\n"; print "<td>".$langs->trans("Salary")." <a href=\"".DOL_URL_ROOT."/salaries/list.php?filtre=s.fk_user=".$obj->fk_user."\">".$obj->firstname." ".$obj->lastname."</a></td>\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price(-$obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount).'</span></td>';
} }
print '<td class="right">'.price(-$obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount).'</span></td>';
print '</tr>'; print '</tr>';
$i++; $i++;
} }
@ -989,9 +989,9 @@ if ($modecompta == 'BOOKKEEPING') {
print "<td>".$langs->trans("ExpenseReport")." <a href=\"".DOL_URL_ROOT."/expensereport/list.php?search_user=".$obj->userid."\">".$obj->firstname." ".$obj->lastname."</a></td>\n"; print "<td>".$langs->trans("ExpenseReport")." <a href=\"".DOL_URL_ROOT."/expensereport/list.php?search_user=".$obj->userid."\">".$obj->firstname." ".$obj->lastname."</a></td>\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price(-$obj->amount_ht).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount_ht).'</span></td>';
} }
print '<td class="right">'.price(-$obj->amount_ttc).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount_ttc).'</span></td>';
print '</tr>'; print '</tr>';
} }
} else { } else {
@ -1050,9 +1050,9 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr class="oddeven"><td>&nbsp;</td>'; print '<tr class="oddeven"><td>&nbsp;</td>';
print "<td>".$langs->trans("Debit")."</td>\n"; print "<td>".$langs->trans("Debit")."</td>\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price(-$obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount).'</span></td>';
} }
print '<td class="right">'.price(-$obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price(-$obj->amount)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
// Credit (payment received from customer for example) // Credit (payment received from customer for example)
@ -1067,9 +1067,9 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr class="oddeven"><td>&nbsp;</td>'; print '<tr class="oddeven"><td>&nbsp;</td>';
print "<td>".$langs->trans("Credit")."</td>\n"; print "<td>".$langs->trans("Credit")."</td>\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price($obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price($obj->amount).'</span></td>';
} }
print '<td class="right">'.price($obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($obj->amount)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
// Total // Total
@ -1117,9 +1117,9 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr class="oddeven"><td>&nbsp;</td>'; print '<tr class="oddeven"><td>&nbsp;</td>';
print "<td>".$loan_static->getNomUrl(1).' - '.$obj->label."</td>\n"; print "<td>".$loan_static->getNomUrl(1).' - '.$obj->label."</td>\n";
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right">'.price(-$obj->amount).'</td>'; print '<td class="right"><span class="amount">'.price(-$obj->amount).'</span></td>';
} }
print '<td class="right">'.price(-$obj->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price(-$obj->amount)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
$subtotal_ht -= $obj->amount; $subtotal_ht -= $obj->amount;
$subtotal_ttc -= $obj->amount; $subtotal_ttc -= $obj->amount;
@ -1205,7 +1205,7 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr class="oddeven"><td>&nbsp;</td>'; print '<tr class="oddeven"><td>&nbsp;</td>';
print "<td>".$langs->trans("VATToPay")."</td>\n"; print "<td>".$langs->trans("VATToPay")."</td>\n";
print '<td class="right">&nbsp;</td>'."\n"; print '<td class="right">&nbsp;</td>'."\n";
print '<td class="right">'.price($amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($amount)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
// VAT to retreive // VAT to retreive
@ -1263,7 +1263,7 @@ if ($modecompta == 'BOOKKEEPING') {
print '<tr class="oddeven"><td>&nbsp;</td>'; print '<tr class="oddeven"><td>&nbsp;</td>';
print '<td>'.$langs->trans("VATToCollect")."</td>\n"; print '<td>'.$langs->trans("VATToCollect")."</td>\n";
print '<td class="right">&nbsp;</td>'."\n"; print '<td class="right">&nbsp;</td>'."\n";
print '<td class="right">'.price($amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($amount)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
} else { } else {
// VAT really already paid // VAT really already paid
@ -1319,7 +1319,7 @@ if ($modecompta == 'BOOKKEEPING') {
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td <class="right"></td>'."\n"; print '<td <class="right"></td>'."\n";
} }
print '<td class="right">'.price($amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($amount)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
// VAT really received // VAT really received
@ -1375,7 +1375,7 @@ if ($modecompta == 'BOOKKEEPING') {
if ($modecompta == 'CREANCES-DETTES') { if ($modecompta == 'CREANCES-DETTES') {
print '<td class="right"></td>'."\n"; print '<td class="right"></td>'."\n";
} }
print '<td class="right">'.price($amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($amount)."</span></td>\n";
print "</tr>\n"; print "</tr>\n";
} }
} }

View File

@ -500,18 +500,18 @@ if ($modecompta == 'CREANCES-DETTES') {
} }
print '</td>'; print '</td>';
print '<td class="right">'.price($totCat['NP']).'</td>'; print '<td class="right"><span class="amount">'.price($totCat['NP']).'</span></td>';
print '<td class="right">'.price($totCat['N']).'</td>'; print '<td class="right"><span class="amount">'.price($totCat['N']).'</span></td>';
// Each month // Each month
foreach ($totCat['M'] as $k => $v) { foreach ($totCat['M'] as $k => $v) {
if (($k + 1) >= $date_startmonth) { if (($k + 1) >= $date_startmonth) {
print '<td class="right">'.price($v).'</td>'; print '<td class="right"><span class="amount">'.price($v).'</span></td>';
} }
} }
foreach ($totCat['M'] as $k => $v) { foreach ($totCat['M'] as $k => $v) {
if (($k + 1) < $date_startmonth) { if (($k + 1) < $date_startmonth) {
print '<td class="right">'.price($v).'</td>'; print '<td class="right"><span class="amount">'.price($v).'</span></td>';
} }
} }
@ -531,20 +531,20 @@ if ($modecompta == 'CREANCES-DETTES') {
print ' - '; print ' - ';
print $cpt['account_label']; print $cpt['account_label'];
print '</td>'; print '</td>';
print '<td class="right">'.price($resultNP).'</td>'; print '<td class="right"><span class="amount">'.price($resultNP).'</span></td>';
print '<td class="right">'.price($resultN).'</td>'; print '<td class="right"><span class="amount">'.price($resultN).'</span></td>';
// Make one call for each month // Make one call for each month
foreach ($months as $k => $v) { foreach ($months as $k => $v) {
if (($k + 1) >= $date_startmonth) { if (($k + 1) >= $date_startmonth) {
$resultM = $totPerAccount[$cpt['account_number']]['M'][$k]; $resultM = $totPerAccount[$cpt['account_number']]['M'][$k];
print '<td class="right">'.price($resultM).'</td>'; print '<td class="right"><span class="amount">'.price($resultM).'</span>/td>';
} }
} }
foreach ($months as $k => $v) { foreach ($months as $k => $v) {
if (($k + 1) < $date_startmonth) { if (($k + 1) < $date_startmonth) {
$resultM = $totPerAccount[$cpt['account_number']]['M'][$k]; $resultM = $totPerAccount[$cpt['account_number']]['M'][$k];
print '<td class="right">'.price($resultM).'</td>'; print '<td class="right"><span class="amount">'.price($resultM).'</span></td>';
} }
} }
print "</tr>\n"; print "</tr>\n";

View File

@ -677,7 +677,7 @@ if ($id > 0) {
} }
print '</td>'; print '</td>';
} }
print '<td class="right">'.price($objp->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($objp->amount)."</span></td>\n";
print "</tr>"; print "</tr>";
$totalpaye += $objp->amount; $totalpaye += $objp->amount;
$i++; $i++;

View File

@ -262,7 +262,7 @@ while ($i < min($num, $limit)) {
// Type // Type
print '<td title="'.dol_escape_htmltag($obj->label).'" class="tdmaxoverflow300">'.$obj->label.'</td>'; print '<td title="'.dol_escape_htmltag($obj->label).'" class="tdmaxoverflow300">'.$obj->label.'</td>';
// Expected to pay // Expected to pay
print '<td class="right">'.price($obj->total).'</td>'; print '<td class="right"><span class="amount">'.price($obj->total).'</span></td>';
// Ref payment // Ref payment
$payment_sc_static->id = $obj->pid; $payment_sc_static->id = $obj->pid;
$payment_sc_static->ref = $obj->pid; $payment_sc_static->ref = $obj->pid;

View File

@ -675,7 +675,7 @@ if ($id) {
} }
print '</td>'; print '</td>';
} }
print '<td class="right">'.price($objp->amount)."</td>\n"; print '<td class="right"><span class="amount">'.price($objp->amount)."</span></td>\n";
print "</tr>"; print "</tr>";
$totalpaye += $objp->amount; $totalpaye += $objp->amount;
$i++; $i++;

View File

@ -558,8 +558,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num($subtot_coll_total_ht, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num($subtot_coll_total_ht, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($subtot_coll_vat, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($subtot_coll_vat, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }
} }
@ -748,8 +748,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num($subtot_paye_total_ht, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num($subtot_paye_total_ht, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($subtot_paye_vat, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($subtot_paye_vat, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }
} }

View File

@ -204,7 +204,7 @@ if (!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) {
$date = $obj->datev; $date = $obj->datev;
print '<td>'.dol_print_date($date, 'day').'</td>'; print '<td>'.dol_print_date($date, 'day').'</td>';
// Expected to pay // Expected to pay
print '<td class="right">'.price($obj->total).'</td>'; print '<td class="right"><span class="amount">'.price($obj->total).'</span></td>';
// Paid // Paid
print '<td class="right">'; print '<td class="right">';
if ($obj->totalpaye) { if ($obj->totalpaye) {

View File

@ -595,8 +595,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num($subtot_coll_total_ht, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num($subtot_coll_total_ht, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($subtot_coll_vat, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($subtot_coll_vat, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }
@ -831,8 +831,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num($subtot_paye_total_ht, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num($subtot_paye_total_ht, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($subtot_paye_vat, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($subtot_paye_vat, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }
@ -844,8 +844,8 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
print '<td class="nowrap right">&nbsp;</td>'; print '<td class="nowrap right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>'; print '<td class="right">&nbsp;</td>';
} }
print '<td class="right">'.price(price2num(0, 'MT')).'</td>'; print '<td class="right"><span class="amount">'.price(price2num(0, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num(0, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num(0, 'MT')).'</span></td>';
print '</tr>'; print '</tr>';
} }

View File

@ -54,6 +54,8 @@ $langs->loadLangs(array("contracts", "orders", "companies", "bills", "products",
$action = GETPOST('action', 'aZ09'); $action = GETPOST('action', 'aZ09');
$confirm = GETPOST('confirm', 'alpha'); $confirm = GETPOST('confirm', 'alpha');
$cancel = GETPOST('cancel', 'alpha');
$socid = GETPOST('socid', 'int'); $socid = GETPOST('socid', 'int');
$id = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alpha'); $ref = GETPOST('ref', 'alpha');
@ -113,7 +115,7 @@ if (empty($reshook)) {
include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once
if ($action == 'confirm_active' && $confirm == 'yes' && $user->rights->contrat->activer) { if ($action == 'confirm_active' && $confirm == 'yes' && $user->rights->contrat->activer) {
$result = $object->active_line($user, GETPOST('ligne'), GETPOST('date'), GETPOST('dateend'), GETPOST('comment')); $result = $object->active_line($user, GETPOST('ligne', 'int'), GETPOST('date'), GETPOST('dateend'), GETPOST('comment'));
if ($result > 0) { if ($result > 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
@ -127,7 +129,7 @@ if (empty($reshook)) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), null, 'errors'); setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), null, 'errors');
} }
if (!$error) { if (!$error) {
$result = $object->close_line($user, GETPOST('ligne'), GETPOST('dateend'), urldecode(GETPOST('comment'))); $result = $object->close_line($user, GETPOST('ligne', 'int'), GETPOST('dateend'), urldecode(GETPOST('comment')));
if ($result > 0) { if ($result > 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
exit; exit;
@ -931,10 +933,10 @@ if (empty($reshook)) {
} }
} elseif ($action == 'swapstatut') { } elseif ($action == 'swapstatut') {
// bascule du statut d'un contact // bascule du statut d'un contact
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} elseif ($action == 'deletecontact') { } elseif ($action == 'deletecontact') {
// Efface un contact // Efface un contact
$result = $object->delete_contact(GETPOST('lineid')); $result = $object->delete_contact(GETPOST('lineid', 'int'));
if ($result >= 0) { if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
@ -1747,25 +1749,25 @@ if ($action == 'create') {
'text' => $langs->trans("ConfirmMoveToAnotherContractQuestion"), 'text' => $langs->trans("ConfirmMoveToAnotherContractQuestion"),
array('type' => 'select', 'name' => 'newcid', 'values' => $arraycontractid)); array('type' => 'select', 'name' => 'newcid', 'values' => $arraycontractid));
print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&lineid=".GETPOST('rowid'), $langs->trans("MoveToAnotherContract"), $langs->trans("ConfirmMoveToAnotherContract"), "confirm_move", $formquestion); print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&lineid=".GETPOST('rowid', 'int'), $langs->trans("MoveToAnotherContract"), $langs->trans("ConfirmMoveToAnotherContract"), "confirm_move", $formquestion);
print '<table class="notopnoleftnoright" width="100%"><tr class="oddeven" height="6"><td></td></tr></table>'; print '<table class="notopnoleftnoright" width="100%"><tr class="oddeven" height="6"><td></td></tr></table>';
} }
/* /*
* Confirmation de la validation activation * Confirmation de la validation activation
*/ */
if ($action == 'active' && !$_REQUEST["cancel"] && $user->rights->contrat->activer && $object->lines[$cursorline - 1]->id == GETPOST('ligne')) { if ($action == 'active' && !$cancel && $user->rights->contrat->activer && $object->lines[$cursorline - 1]->id == GETPOST('ligne', 'int')) {
$dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); $dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
$dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear')); $dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear'));
$comment = GETPOST('comment', 'alpha'); $comment = GETPOST('comment', 'alpha');
print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&ligne=".GETPOST('ligne')."&date=".$dateactstart."&dateend=".$dateactend."&comment=".urlencode($comment), $langs->trans("ActivateService"), $langs->trans("ConfirmActivateService", dol_print_date($dateactstart, "%A %d %B %Y")), "confirm_active", '', 0, 1); print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id."&ligne=".GETPOST('ligne', 'int')."&date=".$dateactstart."&dateend=".$dateactend."&comment=".urlencode($comment), $langs->trans("ActivateService"), $langs->trans("ConfirmActivateService", dol_print_date($dateactstart, "%A %d %B %Y")), "confirm_active", '', 0, 1);
print '<table class="notopnoleftnoright" width="100%"><tr class="oddeven" height="6"><td></td></tr></table>'; print '<table class="notopnoleftnoright" width="100%"><tr class="oddeven" height="6"><td></td></tr></table>';
} }
/* /*
* Confirmation de la validation fermeture * Confirmation de la validation fermeture
*/ */
if ($action == 'closeline' && !$_REQUEST["cancel"] && $user->rights->contrat->activer && $object->lines[$cursorline - 1]->id == GETPOST('ligne')) { if ($action == 'closeline' && !$cancel && $user->rights->contrat->activer && $object->lines[$cursorline - 1]->id == GETPOST('ligne', 'int')) {
$dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); $dateactstart = dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
$dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear')); $dateactend = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear'));
$comment = GETPOST('comment', 'alpha'); $comment = GETPOST('comment', 'alpha');
@ -1843,8 +1845,8 @@ if ($action == 'create') {
} }
// Form to activate line // Form to activate line
if ($user->rights->contrat->activer && $action == 'activateline' && $object->lines[$cursorline - 1]->id == GETPOST('ligne')) { if ($user->rights->contrat->activer && $action == 'activateline' && $object->lines[$cursorline - 1]->id == GETPOST('ligne', 'int')) {
print '<form name="active" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;ligne='.GETPOST('ligne').'&amp;action=active" method="post">'; print '<form name="active" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;ligne='.GETPOST('ligne', 'int').'&amp;action=active" method="post">';
print '<input type="hidden" name="token" value="'.newToken().'">'; print '<input type="hidden" name="token" value="'.newToken().'">';
print '<table class="noborder tableforservicepart2'.($cursorline < $nbofservices ? ' boxtablenobottom' : '').'" width="100%">'; print '<table class="noborder tableforservicepart2'.($cursorline < $nbofservices ? ' boxtablenobottom' : '').'" width="100%">';
@ -1893,7 +1895,7 @@ if ($action == 'create') {
print '</form>'; print '</form>';
} }
if ($user->rights->contrat->activer && $action == 'unactivateline' && $object->lines[$cursorline - 1]->id == GETPOST('ligne')) { if ($user->rights->contrat->activer && $action == 'unactivateline' && $object->lines[$cursorline - 1]->id == GETPOST('ligne', 'int')) {
/** /**
* Disable a contract line * Disable a contract line
*/ */

View File

@ -85,7 +85,7 @@ if ($action == 'addcontact' && $user->rights->contrat->creer) {
// bascule du statut d'un contact // bascule du statut d'un contact
if ($action == 'swapstatut' && $user->rights->contrat->creer) { if ($action == 'swapstatut' && $user->rights->contrat->creer) {
if ($object->fetch($id)) { if ($object->fetch($id)) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db, $object->error); dol_print_error($db, $object->error);
} }
@ -94,7 +94,7 @@ if ($action == 'swapstatut' && $user->rights->contrat->creer) {
// Delete contact // Delete contact
if ($action == 'deletecontact' && $user->rights->contrat->creer) { if ($action == 'deletecontact' && $user->rights->contrat->creer) {
$object->fetch($id); $object->fetch($id);
$result = $object->delete_contact($_GET["lineid"]); $result = $object->delete_contact(GETPOST("lineid", 'int'));
if ($result >= 0) { if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);

View File

@ -488,24 +488,24 @@ $moreforfilter = '';
if ($user->rights->societe->client->voir || $socid) { 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').': '; $tmpttile = $langs->trans('ThirdPartiesOfSaleRepresentative');
$moreforfilter .= $formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmpttile, 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
// If the user can view other users // If the user can view other users
if ($user->rights->user->user->lire) { if ($user->rights->user->user->lire) {
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('LinkedToSpecificUsers').': '; $tmpttile = $langs->trans('LinkedToSpecificUsers');
$moreforfilter .= $form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmpttile, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
// If the user can view categories of products // If the user can view categories of products
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) {
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('IncludingProductWithTag').': '; $tmpttile = $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, 'maxwidth300', 1); $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmpttile, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1);
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }

View File

@ -1338,7 +1338,7 @@ abstract class CommonObject
$sql = "SELECT ec.datecreate, ec.statut, ec.fk_socpeople, ec.fk_c_type_contact,"; $sql = "SELECT ec.datecreate, ec.statut, ec.fk_socpeople, ec.fk_c_type_contact,";
$sql .= " tc.code, tc.libelle"; $sql .= " tc.code, tc.libelle";
$sql .= " FROM (".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as tc)"; $sql .= " FROM (".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as tc)";
$sql .= " WHERE ec.rowid =".$rowid; $sql .= " WHERE ec.rowid =".((int) $rowid);
$sql .= " AND ec.fk_c_type_contact=tc.rowid"; $sql .= " AND ec.fk_c_type_contact=tc.rowid";
$sql .= " AND tc.element = '".$this->db->escape($this->element)."'"; $sql .= " AND tc.element = '".$this->db->escape($this->element)."'";
@ -3067,7 +3067,7 @@ abstract class CommonObject
$sql .= ' AND rang = '.($rang - 1); $sql .= ' AND rang = '.($rang - 1);
if ($this->db->query($sql)) { if ($this->db->query($sql)) {
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.($rang - 1); $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.($rang - 1);
$sql .= ' WHERE rowid = '.$rowid; $sql .= ' WHERE rowid = '.((int) $rowid);
if (!$this->db->query($sql)) { if (!$this->db->query($sql)) {
dol_print_error($this->db); dol_print_error($this->db);
} }
@ -3098,7 +3098,7 @@ abstract class CommonObject
$sql .= ' AND rang = '.($rang + 1); $sql .= ' AND rang = '.($rang + 1);
if ($this->db->query($sql)) { if ($this->db->query($sql)) {
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.($rang + 1); $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.($rang + 1);
$sql .= ' WHERE rowid = '.$rowid; $sql .= ' WHERE rowid = '.((int) $rowid);
if (!$this->db->query($sql)) { if (!$this->db->query($sql)) {
dol_print_error($this->db); dol_print_error($this->db);
} }

View File

@ -49,11 +49,13 @@ class FormCategory extends Form
$categoryArray = $this->select_all_categories($type, "", "", 64, 0, 1); $categoryArray = $this->select_all_categories($type, "", "", 64, 0, 1);
$categoryArray[-2] = "- ".$langs->trans('NotCategorized')." -"; $categoryArray[-2] = "- ".$langs->trans('NotCategorized')." -";
$tmptitle = $langs->trans("Category");
$filter = ''; $filter = '';
$filter .= '<div class="divsearchfield">'; $filter .= '<div class="divsearchfield">';
$filter .= img_picto($langs->trans("Categories"), 'category', 'class="pictofixedwidth"'); $filter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"');
//$filter .= $langs->trans('Categories').": "; //$filter .= $langs->trans('Categories').": ";
$filter .= Form::multiselectarray($htmlName, $categoryArray, $preSelected, 0, 0, "minwidth300"); $filter .= Form::multiselectarray($htmlName, $categoryArray, $preSelected, 0, 0, "minwidth300", 0, 0, '', '', $tmptitle);
$filter .= "</div>"; $filter .= "</div>";
return $filter; return $filter;

View File

@ -2243,6 +2243,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity,
$modulepart = 'user'; $modulepart = 'user';
} }
//print 'dol_check_secure_access_document modulepart='.$modulepart.' original_file='.$original_file.' entity='.$entity;
dol_syslog('dol_check_secure_access_document modulepart='.$modulepart.' original_file='.$original_file.' entity='.$entity); dol_syslog('dol_check_secure_access_document modulepart='.$modulepart.' original_file='.$original_file.' entity='.$entity);
// We define $accessallowed and $sqlprotectagainstexternals // We define $accessallowed and $sqlprotectagainstexternals
@ -2727,7 +2728,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity,
} elseif ($modulepart == 'export' && !empty($conf->export->dir_temp)) { } elseif ($modulepart == 'export' && !empty($conf->export->dir_temp)) {
// Wrapping for export module // Wrapping for export module
// Note that a test may not be required because we force the dir of download on the directory of the user that export // Note that a test may not be required because we force the dir of download on the directory of the user that export
$accessallowed = $user->rights->export->run; $accessallowed = $user->rights->export->lire;
$original_file = $conf->export->dir_temp.'/'.$fuser->id.'/'.$original_file; $original_file = $conf->export->dir_temp.'/'.$fuser->id.'/'.$original_file;
} elseif ($modulepart == 'import' && !empty($conf->import->dir_temp)) { } elseif ($modulepart == 'import' && !empty($conf->import->dir_temp)) {
// Wrapping for import module // Wrapping for import module

View File

@ -746,12 +746,14 @@ function checkVal($out = '', $check = 'alphanohtml', $filter = null, $options =
case 'alpha': // No html and no ../ and " case 'alpha': // No html and no ../ and "
case 'alphanohtml': // Recommended for most scalar parameters and search parameters case 'alphanohtml': // Recommended for most scalar parameters and search parameters
if (!is_array($out)) { if (!is_array($out)) {
$out = dol_string_nohtmltag($out, 0);
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
// '../' is dangerous because it allows dir transversals
$out = trim($out); $out = trim($out);
do { do {
$oldstringtoclean = $out; $oldstringtoclean = $out;
// Remove html tags
$out = dol_string_nohtmltag($out, 0);
// Remove also other dangerous string sequences
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
// '../' is dangerous because it allows dir transversals
// Note &#38, '&#0000038', '&#x26'... is a simple char like '&' alone but there is no reason to accept such way to encode input data. // Note &#38, '&#0000038', '&#x26'... is a simple char like '&' alone but there is no reason to accept such way to encode input data.
$out = str_ireplace(array('&#38', '&#0000038', '&#x26', '&quot', '&#34', '&#0000034', '&#x22', '"', '&#47', '&#0000047', '&#x2F', '../'), '', $out); $out = str_ireplace(array('&#38', '&#0000038', '&#x26', '&quot', '&#34', '&#0000034', '&#x22', '"', '&#47', '&#0000047', '&#x2F', '../'), '', $out);
} while ($oldstringtoclean != $out); } while ($oldstringtoclean != $out);
@ -760,25 +762,28 @@ function checkVal($out = '', $check = 'alphanohtml', $filter = null, $options =
break; break;
case 'alphawithlgt': // No " and no ../ but we keep balanced < > tags with no special chars inside. Can be used for email string like "Name <email>" case 'alphawithlgt': // No " and no ../ but we keep balanced < > tags with no special chars inside. Can be used for email string like "Name <email>"
if (!is_array($out)) { if (!is_array($out)) {
$out = dol_html_entity_decode($out, ENT_COMPAT | ENT_HTML5, 'UTF-8');
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
// '../' is dangerous because it allows dir transversals
$out = trim($out); $out = trim($out);
do { do {
$oldstringtoclean = $out; $oldstringtoclean = $out;
// Remove html tags
$out = dol_html_entity_decode($out, ENT_COMPAT | ENT_HTML5, 'UTF-8');
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
// '../' is dangerous because it allows dir transversals
// Note &#38, '&#0000038', '&#x26'... is a simple char like '&' alone but there is no reason to accept such way to encode input data. // Note &#38, '&#0000038', '&#x26'... is a simple char like '&' alone but there is no reason to accept such way to encode input data.
$out = str_ireplace(array('&#38', '&#0000038', '&#x26', '&quot', '&#34', '&#0000034', '&#x22', '"', '&#47', '&#0000047', '&#x2F', '../'), '', $out); $out = str_ireplace(array('&#38', '&#0000038', '&#x26', '&quot', '&#34', '&#0000034', '&#x22', '"', '&#47', '&#0000047', '&#x2F', '../'), '', $out);
} while ($oldstringtoclean != $out); } while ($oldstringtoclean != $out);
} }
break; break;
case 'restricthtml': // Recommended for most html textarea case 'restricthtml': // Recommended for most html textarea
do {
$oldstringtoclean = $out;
$out = dol_string_onlythesehtmltags($out, 0, 1, 1); $out = dol_string_onlythesehtmltags($out, 0, 1, 1);
// We should also exclude non expected attributes // We should also exclude non expected attributes
if (!empty($conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES)) { if (!empty($conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES)) {
$out = dol_string_onlythesehtmlattributes($out); $out = dol_string_onlythesehtmlattributes($out);
} }
} while ($oldstringtoclean != $out);
break; break;
case 'custom': case 'custom':
if (empty($filter)) { if (empty($filter)) {

View File

@ -90,20 +90,27 @@ function loan_prepare_head($object)
/** /**
* Calculate remaining loan mensuality and interests * Calculate remaining loan mensuality and interests
* *
* @param int $mens Value of this mensuality (interests include, set 0 if we don't paid interests for this mensuality) * @param float $mens Value of this mensuality (interests include, set 0 if we don't paid interests for this mensuality)
* @param float $capital Remaining capital for this mensuality * @param float $capital Remaining capital for this mensuality
* @param float $rate Loan rate * @param float $rate Loan rate
* @param int $echance Actual loan term * @param int $numactualloadterm Actual loan term
* @param int $nbterm Total number of term for this loan * @param int $nbterm Total number of term for this loan
* @return array Array with remaining capital, interest, and mensuality for each remaining terms * @return array Array with remaining capital, interest, and mensuality for each remaining terms
*/ */
function loanCalcMonthlyPayment($mens, $capital, $rate, $echance, $nbterm) function loanCalcMonthlyPayment($mens, $capital, $rate, $numactualloadterm, $nbterm)
{ {
global $conf, $db; global $conf, $db;
require_once DOL_DOCUMENT_ROOT.'/loan/class/loanschedule.class.php'; require_once DOL_DOCUMENT_ROOT.'/loan/class/loanschedule.class.php';
$object = new LoanSchedule($db); $object = new LoanSchedule($db);
$output = array(); $output = array();
// Sanitize data in case of
$mens = price2num($mens);
$capital = price2num($capital);
$rate = price2num($rate);
$numactualloadterm = ((int) $numactualloadterm);
$nbterm = ((int) $nbterm);
// If mensuality is 0 we don't pay interests and remaining capital not modified // If mensuality is 0 we don't pay interests and remaining capital not modified
if ($mens == 0) { if ($mens == 0) {
$int = 0; $int = 0;
@ -113,18 +120,18 @@ function loanCalcMonthlyPayment($mens, $capital, $rate, $echance, $nbterm)
$int = round($int, 2, PHP_ROUND_HALF_UP); $int = round($int, 2, PHP_ROUND_HALF_UP);
$cap_rest = round($capital - ($mens - $int), 2, PHP_ROUND_HALF_UP); $cap_rest = round($capital - ($mens - $int), 2, PHP_ROUND_HALF_UP);
} }
$output[$echance] = array('cap_rest'=>$cap_rest, 'cap_rest_str'=>price($cap_rest, 0, '', 1, -1, -1, $conf->currency), 'interet'=>$int, 'interet_str'=>price($int, 0, '', 1, -1, -1, $conf->currency), 'mens'=>$mens); $output[$numactualloadterm] = array('cap_rest'=>$cap_rest, 'cap_rest_str'=>price($cap_rest, 0, '', 1, -1, -1, $conf->currency), 'interet'=>$int, 'interet_str'=>price($int, 0, '', 1, -1, -1, $conf->currency), 'mens'=>$mens);
$echance++; $numactualloadterm++;
$capital = $cap_rest; $capital = $cap_rest;
while ($echance <= $nbterm) { while ($numactualloadterm <= $nbterm) {
$mens = round($object->calcMonthlyPayments($capital, $rate, $nbterm - $echance + 1), 2, PHP_ROUND_HALF_UP); $mens = round($object->calcMonthlyPayments($capital, $rate, $nbterm - $numactualloadterm + 1), 2, PHP_ROUND_HALF_UP);
$int = ($capital * ($rate / 12)); $int = ($capital * ($rate / 12));
$int = round($int, 2, PHP_ROUND_HALF_UP); $int = round($int, 2, PHP_ROUND_HALF_UP);
$cap_rest = round($capital - ($mens - $int), 2, PHP_ROUND_HALF_UP); $cap_rest = round($capital - ($mens - $int), 2, PHP_ROUND_HALF_UP);
$output[$echance] = array( $output[$numactualloadterm] = array(
'cap_rest' => $cap_rest, 'cap_rest' => $cap_rest,
'cap_rest_str' => price($cap_rest, 0, '', 1, -1, -1, $conf->currency), 'cap_rest_str' => price($cap_rest, 0, '', 1, -1, -1, $conf->currency),
'interet' => $int, 'interet' => $int,
@ -133,7 +140,7 @@ function loanCalcMonthlyPayment($mens, $capital, $rate, $echance, $nbterm)
); );
$capital = $cap_rest; $capital = $cap_rest;
$echance++; $numactualloadterm++;
} }
return $output; return $output;

View File

@ -78,14 +78,14 @@ class modExport extends DolibarrModules
$r++; $r++;
$this->rights[$r][0] = 1201; $this->rights[$r][0] = 1201;
$this->rights[$r][1] = 'Lire les exports'; $this->rights[$r][1] = 'Read exports';
$this->rights[$r][2] = 'r'; $this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0; $this->rights[$r][3] = 0;
$this->rights[$r][4] = 'lire'; $this->rights[$r][4] = 'lire';
$r++; $r++;
$this->rights[$r][0] = 1202; $this->rights[$r][0] = 1202;
$this->rights[$r][1] = 'Creer/modifier un export'; $this->rights[$r][1] = 'Creeate/modify export';
$this->rights[$r][2] = 'w'; $this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0; $this->rights[$r][3] = 0;
$this->rights[$r][4] = 'creer'; $this->rights[$r][4] = 'creer';

View File

@ -292,7 +292,7 @@ if ($resql) {
} }
print "</td>\n"; print "</td>\n";
} }
print '<td class="right">'.price($objp->amount).'</td>'; print '<td class="right"><span class="amount">'.price($objp->amount).'</span></td>';
print '<td class="right">'.$donationstatic->LibStatut($objp->status, 5).'</td>'; print '<td class="right">'.$donationstatic->LibStatut($objp->status, 5).'</td>';
print '<td></td>'; print '<td></td>';
print "</tr>"; print "</tr>";

View File

@ -0,0 +1,216 @@
<?php
/* Copyright (C) 2007-2017 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) ---Put here your own copyright and developer email---
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/**
* \file conferenceorbooth_contact.php
* \ingroup eventorganization
* \brief Tab for contacts linked to ConferenceOrBooth
*/
// Load Dolibarr environment
$res = 0;
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
$res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
}
// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1;
while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
$i--; $j--;
}
if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) {
$res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
}
if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) {
$res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
}
// Try main.inc.php using relative path
if (!$res && file_exists("../main.inc.php")) {
$res = @include "../main.inc.php";
}
if (!$res && file_exists("../../main.inc.php")) {
$res = @include "../../main.inc.php";
}
if (!$res && file_exists("../../../main.inc.php")) {
$res = @include "../../../main.inc.php";
}
if (!$res) {
die("Include of main fails");
}
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
dol_include_once('/eventorganization/class/conferenceorbooth.class.php');
dol_include_once('/eventorganization/lib/eventorganization_conferenceorbooth.lib.php');
// Load translation files required by the page
$langs->loadLangs(array("eventorganization@eventorganization", "companies", "other", "mails"));
$id = (GETPOST('id') ?GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility
$ref = GETPOST('ref', 'alpha');
$lineid = GETPOST('lineid', 'int');
$socid = GETPOST('socid', 'int');
$action = GETPOST('action', 'aZ09');
// Initialize technical objects
$object = new ConferenceOrBooth($db);
$extrafields = new ExtraFields($db);
$diroutputmassaction = $conf->eventorganization->dir_output.'/temp/massgeneration/'.$user->id;
$hookmanager->initHooks(array('conferenceorboothcontact', 'globalcard')); // Note that conf->hooks_modules contains array
// Fetch optionals attributes and labels
$extrafields->fetch_name_optionals_label($object->table_element);
// Load object
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
// Security check
if ($user->socid > 0) {
accessforbidden();
}
$isdraft = (($object->status== $object::STATUS_DRAFT) ? 1 : 0);
$result = restrictedArea($user, 'eventorganization', $object->id, '', '', 'fk_soc', 'rowid', $isdraft);
$permission = $user->rights->eventorganization->conferenceorbooth->write;
/*
* Actions
*/
if ($action == 'addcontact' && $permission) { // Add a new contact
$contactid = (GETPOST('userid') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int'));
$typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type'));
$result = $object->add_contact($contactid, $typeid, GETPOST("source", 'aZ09'));
if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
exit;
} else {
if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
$langs->load("errors");
setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
} else {
setEventMessages($object->error, $object->errors, 'errors');
}
}
} elseif ($action == 'swapstatut' && $permission) {
// Toggle the status of a contact
$result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} elseif ($action == 'deletecontact' && $permission) {
// Deletes a contact
$result = $object->delete_contact($lineid);
if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
exit;
} else {
dol_print_error($db);
}
}
/*
* View
*/
$title = $langs->trans('ConferenceOrBooth')." - ".$langs->trans('ContactsAddresses');
$help_url = '';
//$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
llxHeader('', $title, $help_url);
$form = new Form($db);
$formcompany = new FormCompany($db);
$contactstatic = new Contact($db);
$userstatic = new User($db);
/* *************************************************************************** */
/* */
/* View and edit mode */
/* */
/* *************************************************************************** */
if ($object->id) {
/*
* Show tabs
*/
$head = conferenceorboothPrepareHead($object);
print dol_get_fiche_head($head, 'contact', $langs->trans("ConferenceOrBooth"), -1, $object->picto);
$linkback = '<a href="'.dol_buildpath('/eventorganization/conferenceorbooth_list.php', 1).'?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
$morehtmlref = '<div class="refidno">';
/*
// Ref customer
$morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : '');
// Project
if (! empty($conf->projet->enabled))
{
$langs->load("projects");
$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
if ($permissiontoadd)
{
if ($action != 'classify')
//$morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
$morehtmlref.=' : ';
if ($action == 'classify') {
//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
$morehtmlref.='<input type="hidden" name="action" value="classin">';
$morehtmlref.='<input type="hidden" name="token" value="'.newToken().'">';
$morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
$morehtmlref.='</form>';
} else {
$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else {
if (! empty($object->fk_project)) {
$proj = new Project($db);
$proj->fetch($object->fk_project);
$morehtmlref .= ': '.$proj->getNomUrl();
} else {
$morehtmlref .= '';
}
}
}*/
$morehtmlref .= '</div>';
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
print dol_get_fiche_end();
print '<br>';
// Contacts lines (modules that overwrite templates must declare this into descriptor)
$dirtpls = array_merge($conf->modules_parts['tpl'], array('/core/tpl'));
foreach ($dirtpls as $reldir) {
$res = @include dol_buildpath($reldir.'/contacts.tpl.php');
if ($res) {
break;
}
}
}
// End of page
llxFooter();
$db->close();

View File

@ -2682,7 +2682,7 @@ class ExpeditionLigne extends CommonObjectLine
{ {
$sql = 'SELECT ed.rowid, ed.fk_expedition, ed.fk_entrepot, ed.fk_origin_line, ed.qty, ed.rang'; $sql = 'SELECT ed.rowid, ed.fk_expedition, ed.fk_entrepot, ed.fk_origin_line, ed.qty, ed.rang';
$sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as ed'; $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as ed';
$sql .= ' WHERE ed.rowid = '.$rowid; $sql .= ' WHERE ed.rowid = '.((int) $rowid);
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) { if ($result) {
$objp = $this->db->fetch_object($result); $objp = $this->db->fetch_object($result);

View File

@ -96,7 +96,7 @@ if ($action == 'addcontact' && $user->rights->expedition->creer) {
} }
} elseif ($action == 'swapstatut' && $user->rights->expedition->creer) { } elseif ($action == 'swapstatut' && $user->rights->expedition->creer) {
// bascule du statut d'un contact // bascule du statut d'un contact
$result = $objectsrc->swapContactStatus(GETPOST('ligne')); $result = $objectsrc->swapContactStatus(GETPOST('ligne', 'int'));
} elseif ($action == 'deletecontact' && $user->rights->expedition->creer) { } elseif ($action == 'deletecontact' && $user->rights->expedition->creer) {
// Efface un contact // Efface un contact
$result = $objectsrc->delete_contact(GETPOST("lineid")); $result = $objectsrc->delete_contact(GETPOST("lineid"));

View File

@ -49,18 +49,15 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport_ik.class.php'
// Load translation files required by the page // Load translation files required by the page
$langs->loadlangs(array('errors', 'trips')); $langs->loadlangs(array('errors', 'trips'));
/* /*
* View * View
*/ */
top_httphead(); top_httphead();
$fk_expense = GETPOST('fk_expense', 'int');
dol_syslog(join(',', $_POST)); $fk_c_exp_tax_cat = GETPOST('fk_c_exp_tax_cat', 'int');
$fk_expense = GETPOST('fk_expense');
$fk_c_exp_tax_cat = GETPOST('fk_c_exp_tax_cat');
if (empty($fk_expense) || $fk_expense < 0) { if (empty($fk_expense) || $fk_expense < 0) {
echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorBadValueForParameter', $fk_expense, 'fk_expense'))); echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorBadValueForParameter', $fk_expense, 'fk_expense')));
@ -82,7 +79,7 @@ if (empty($fk_expense) || $fk_expense < 0) {
echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorRecordNotFound'), 'range' => $range)); echo json_encode(array('error' => $langs->transnoentitiesnoconv('ErrorRecordNotFound'), 'range' => $range));
} else { } else {
$ikoffset = price($range->ikoffset, 0, $langs, 1, -1, -1, $conf->currency); $ikoffset = price($range->ikoffset, 0, $langs, 1, -1, -1, $conf->currency);
echo json_encode(array('up' => $range->coef, 'ikoffset' => $range->ikoffset, 'title' => $langs->transnoentitiesnoconv('ExpenseRangeOffset', $offset), 'comment' => 'offset should be apply on addline or updateline')); echo json_encode(array('up' => $range->coef, 'ikoffset' => $range->ikoffset, 'title' => $langs->transnoentitiesnoconv('ExpenseRangeOffset', $ikoffset), 'comment' => 'offset should be applied on addline or updateline'));
} }
} }
} }

View File

@ -2173,7 +2173,7 @@ class ExpenseReport extends CommonObject
$this->db->begin(); $this->db->begin();
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element_line; $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element_line;
$sql .= ' WHERE rowid = '.$rowid; $sql .= ' WHERE rowid = '.((int) $rowid);
dol_syslog(get_class($this)."::deleteline sql=".$sql); dol_syslog(get_class($this)."::deleteline sql=".$sql);
$result = $this->db->query($sql); $result = $this->db->query($sql);
@ -2628,7 +2628,7 @@ class ExpenseReportLine
$sql .= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde'; $sql .= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_type_fees as ctf ON fde.fk_c_type_fees=ctf.id'; // Sometimes type of expense report has been removed, so we use a left join here. $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_type_fees as ctf ON fde.fk_c_type_fees=ctf.id'; // Sometimes type of expense report has been removed, so we use a left join here.
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'projet as pjt ON fde.fk_projet=pjt.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'projet as pjt ON fde.fk_projet=pjt.rowid';
$sql .= ' WHERE fde.rowid = '.$rowid; $sql .= ' WHERE fde.rowid = '.((int) $rowid);
$result = $this->db->query($sql); $result = $this->db->query($sql);

View File

@ -137,7 +137,7 @@ class ExpenseReportIk extends CoreObject
* @param int $fk_c_exp_tax_cat category * @param int $fk_c_exp_tax_cat category
* @return boolean|array * @return boolean|array
*/ */
public static function getRangeByUser(User $userauthor, $fk_c_exp_tax_cat) public static function getRangeByUser(User $userauthor, int $fk_c_exp_tax_cat)
{ {
$default_range = (int) $userauthor->default_range; // if not defined, then 0 $default_range = (int) $userauthor->default_range; // if not defined, then 0
$ranges = self::getRangesByCategory($fk_c_exp_tax_cat); $ranges = self::getRangesByCategory($fk_c_exp_tax_cat);
@ -157,23 +157,24 @@ class ExpenseReportIk extends CoreObject
* @param int $active active * @param int $active active
* @return array * @return array
*/ */
public static function getRangesByCategory($fk_c_exp_tax_cat, $active = 1) public static function getRangesByCategory(int $fk_c_exp_tax_cat, $active = 1)
{ {
global $db; global $db;
$ranges = array(); $ranges = array();
dol_syslog(get_called_class().'::getRangesByCategory for fk_c_exp_tax_cat='.$fk_c_exp_tax_cat, LOG_DEBUG);
$sql = 'SELECT r.rowid FROM '.MAIN_DB_PREFIX.'c_exp_tax_range r'; $sql = 'SELECT r.rowid FROM '.MAIN_DB_PREFIX.'c_exp_tax_range r';
if ($active) { if ($active) {
$sql .= ' INNER JOIN '.MAIN_DB_PREFIX.'c_exp_tax_cat c ON (r.fk_c_exp_tax_cat = c.rowid)'; $sql .= ' INNER JOIN '.MAIN_DB_PREFIX.'c_exp_tax_cat c ON (r.fk_c_exp_tax_cat = c.rowid)';
} }
$sql .= ' WHERE r.fk_c_exp_tax_cat = '.$fk_c_exp_tax_cat; $sql .= ' WHERE r.fk_c_exp_tax_cat = '.((int) $fk_c_exp_tax_cat);
if ($active) { if ($active) {
$sql .= ' AND r.active = 1 AND c.active = 1'; $sql .= ' AND r.active = 1 AND c.active = 1';
} }
$sql .= ' ORDER BY r.range_ik'; $sql .= ' ORDER BY r.range_ik';
dol_syslog(get_called_class().'::getRangesByCategory sql='.$sql, LOG_DEBUG);
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) { if ($resql) {
$num = $db->num_rows($resql); $num = $db->num_rows($resql);

View File

@ -83,17 +83,17 @@ $extrafields = new ExtraFields($db);
$arrayfields = array( $arrayfields = array(
'f.titre'=>array('label'=>$langs->trans("Ref"), 'checked'=>1), 'f.titre'=>array('label'=>"Ref", 'checked'=>1),
's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1), 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1),
'f.fk_contrat'=>array('label'=>$langs->trans("Contract"), 'checked'=>1), 'f.fk_contrat'=>array('label'=>"Contract", 'checked'=>1),
'f.duree'=>array('label'=>$langs->trans("Duration"), 'checked'=>1), 'f.duree'=>array('label'=>"Duration", 'checked'=>1),
'f.total_ttc'=>array('label'=>$langs->trans("AmountTTC"), 'checked'=>1), 'f.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>1),
'f.frequency'=>array('label'=>$langs->trans("RecurringInvoiceTemplate"), 'checked'=>1), 'f.frequency'=>array('label'=>"RecurringInvoiceTemplate", 'checked'=>1),
'f.nb_gen_done'=>array('label'=>$langs->trans("NbOfGenerationDone"), 'checked'=>1), 'f.nb_gen_done'=>array('label'=>"NbOfGenerationDoneShort", 'checked'=>1),
'f.date_last_gen'=>array('label'=>$langs->trans("DateLastGeneration"), 'checked'=>1), 'f.date_last_gen'=>array('label'=>"DateLastGeneration", 'checked'=>1),
'f.date_when'=>array('label'=>$langs->trans("NextDateToExecution"), 'checked'=>1), 'f.date_when'=>array('label'=>"NextDateToExecution", 'checked'=>1),
'f.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), 'f.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500),
'f.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500), 'f.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500),
); );
@ -580,15 +580,13 @@ if ($action == 'create') {
print '<div class="ficheaddleft">'; print '<div class="ficheaddleft">';
print '<div class="underbanner clearboth"></div>'; print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent">';
$title = $langs->trans("Recurrence"); $title = $langs->trans("Recurrence");
print load_fiche_titre($title, '', 'calendar'); print load_fiche_titre($title, '', 'calendar');
print '<table class="border centpercent">'; print '<table class="border centpercent">';
// if "frequency" is empty or = 0, the reccurence is disabled // if "frequency" is empty or = 0, the reccurence is disabled
print '<tr><td style="width: 50%">'; print '<tr><td class="titlefield">';
print '<table class="nobordernopadding" width="100%"><tr><td>'; print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('Frequency'); print $langs->trans('Frequency');
print '</td>'; print '</td>';
@ -663,7 +661,7 @@ if ($action == 'create') {
print '<table class="border centpercent">'; print '<table class="border centpercent">';
// Nb of generation already done // Nb of generation already done
print '<tr><td style="width: 50%">'.$langs->trans("NbOfGenerationDone").'</td>'; print '<tr><td class="titlefield">'.$langs->trans("NbOfGenerationOfRecordDone").'</td>';
print '<td>'; print '<td>';
print $object->nb_gen_done ? $object->nb_gen_done : '0'; print $object->nb_gen_done ? $object->nb_gen_done : '0';
print '</td>'; print '</td>';
@ -817,7 +815,7 @@ if ($action == 'create') {
print_liste_field_titre("Duration", $_SERVER['PHP_SELF'], 'f.duree', '', '', 'width="50px"', $sortfield, $sortorder, 'right '); print_liste_field_titre("Duration", $_SERVER['PHP_SELF'], 'f.duree', '', '', 'width="50px"', $sortfield, $sortorder, 'right ');
// Recurring or not // Recurring or not
print_liste_field_titre("Frequency", $_SERVER['PHP_SELF'], "f.frequency", "", "", 'width="100px"', $sortfield, $sortorder, 'center '); print_liste_field_titre("Frequency", $_SERVER['PHP_SELF'], "f.frequency", "", "", 'width="100px"', $sortfield, $sortorder, 'center ');
print_liste_field_titre("NbOfGenerationDone", $_SERVER['PHP_SELF'], "f.nb_gen_done", "", "", 'width="100px"', $sortfield, $sortorder, 'center '); print_liste_field_titre("NbOfGenerationDoneShort", $_SERVER['PHP_SELF'], "f.nb_gen_done", "", "", 'width="100px"', $sortfield, $sortorder, 'center ');
print_liste_field_titre("DateLastGeneration", $_SERVER['PHP_SELF'], "f.date_last_gen", "", "", 'width="100px"', $sortfield, $sortorder, 'center '); print_liste_field_titre("DateLastGeneration", $_SERVER['PHP_SELF'], "f.date_last_gen", "", "", 'width="100px"', $sortfield, $sortorder, 'center ');
print_liste_field_titre("NextDateToIntervention", $_SERVER['PHP_SELF'], "f.date_when", "", "", 'width="100px"', $sortfield, $sortorder, 'center '); print_liste_field_titre("NextDateToIntervention", $_SERVER['PHP_SELF'], "f.date_when", "", "", 'width="100px"', $sortfield, $sortorder, 'center ');
print '<th width="100px"></th>'; print '<th width="100px"></th>';
@ -908,7 +906,7 @@ if ($action == 'create') {
} }
} }
} else { } else {
print '<tr class="oddeven"><td colspan="10">'.$langs->trans("NoneF").'</td></tr>'; print '<tr class="oddeven"><td colspan="10"><span class="opacitymedium">'.$langs->trans("None").'</span></td></tr>';
} }
print "</table>"; print "</table>";

View File

@ -1438,7 +1438,7 @@ class FichinterLigne extends CommonObjectLine
$sql = 'SELECT ft.rowid, ft.fk_fichinter, ft.description, ft.duree, ft.rang,'; $sql = 'SELECT ft.rowid, ft.fk_fichinter, ft.description, ft.duree, ft.rang,';
$sql .= ' ft.date as datei'; $sql .= ' ft.date as datei';
$sql .= ' FROM '.MAIN_DB_PREFIX.'fichinterdet as ft'; $sql .= ' FROM '.MAIN_DB_PREFIX.'fichinterdet as ft';
$sql .= ' WHERE ft.rowid = '.$rowid; $sql .= ' WHERE ft.rowid = '.((int) $rowid);
dol_syslog("FichinterLigne::fetch", LOG_DEBUG); dol_syslog("FichinterLigne::fetch", LOG_DEBUG);
$result = $this->db->query($sql); $result = $this->db->query($sql);

View File

@ -3495,7 +3495,7 @@ class CommandeFournisseurLigne extends CommonOrderLine
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) { if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) {
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON cd.fk_product = pfp.fk_product and cd.ref = pfp.ref_fourn"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON cd.fk_product = pfp.fk_product and cd.ref = pfp.ref_fourn";
} }
$sql .= ' WHERE cd.rowid = '.$rowid; $sql .= ' WHERE cd.rowid = '.((int) $rowid);
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) { if ($result) {
$objp = $this->db->fetch_object($result); $objp = $this->db->fetch_object($result);

View File

@ -1208,13 +1208,13 @@ class FactureFournisseur extends CommonInvoice
if (!$error) { if (!$error) {
$main = MAIN_DB_PREFIX.'facture_fourn_det'; $main = MAIN_DB_PREFIX.'facture_fourn_det';
$ef = $main."_extrafields"; $ef = $main."_extrafields";
$sqlef = "DELETE FROM $ef WHERE fk_object IN (SELECT rowid FROM $main WHERE fk_facture_fourn = $rowid)"; $sqlef = "DELETE FROM $ef WHERE fk_object IN (SELECT rowid FROM ".$main." WHERE fk_facture_fourn = ".((int) $rowid).")";
$resqlef = $this->db->query($sqlef); $resqlef = $this->db->query($sqlef);
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn_det WHERE fk_facture_fourn = '.$rowid.';'; $sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn_det WHERE fk_facture_fourn = '.((int) $rowid);
dol_syslog(get_class($this)."::delete", LOG_DEBUG); dol_syslog(get_class($this)."::delete", LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resqlef && $resql) { if ($resqlef && $resql) {
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn WHERE rowid = '.$rowid; $sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn WHERE rowid = '.((int) $rowid);
dol_syslog(get_class($this)."::delete", LOG_DEBUG); dol_syslog(get_class($this)."::delete", LOG_DEBUG);
$resql2 = $this->db->query($sql); $resql2 = $this->db->query($sql);
if (!$resql2) { if (!$resql2) {
@ -3093,7 +3093,7 @@ class SupplierInvoiceLine extends CommonObjectLine
$sql .= ', f.multicurrency_subprice, f.multicurrency_total_ht, f.multicurrency_total_tva, multicurrency_total_ttc'; $sql .= ', f.multicurrency_subprice, f.multicurrency_total_ht, f.multicurrency_total_tva, multicurrency_total_ttc';
$sql .= ' FROM '.MAIN_DB_PREFIX.'facture_fourn_det as f'; $sql .= ' FROM '.MAIN_DB_PREFIX.'facture_fourn_det as f';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON f.fk_product = p.rowid'; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON f.fk_product = p.rowid';
$sql .= ' WHERE f.rowid = '.$rowid; $sql .= ' WHERE f.rowid = '.((int) $rowid);
$sql .= ' ORDER BY f.rang, f.rowid'; $sql .= ' ORDER BY f.rang, f.rowid';
$query = $this->db->query($sql); $query = $this->db->query($sql);

View File

@ -1436,10 +1436,10 @@ if (empty($reshook)) {
} }
} elseif ($action == 'swapstatut' && $object->id > 0) { } elseif ($action == 'swapstatut' && $object->id > 0) {
// bascule du statut d'un contact // bascule du statut d'un contact
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} elseif ($action == 'deletecontact' && $object->id > 0) { } elseif ($action == 'deletecontact' && $object->id > 0) {
// Efface un contact // Efface un contact
$result = $object->delete_contact($_GET["lineid"]); $result = $object->delete_contact(GETPOST("lineid", 'int'));
if ($result >= 0) { if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);

View File

@ -76,14 +76,14 @@ if ($action == 'addcontact' && $user->rights->fournisseur->commande->creer) {
} elseif ($action == 'swapstatut' && $user->rights->fournisseur->commande->creer) { } elseif ($action == 'swapstatut' && $user->rights->fournisseur->commande->creer) {
// Toggle the status of a contact // Toggle the status of a contact
if ($object->fetch($id)) { if ($object->fetch($id)) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
} elseif ($action == 'deletecontact' && $user->rights->fournisseur->commande->creer) { } elseif ($action == 'deletecontact' && $user->rights->fournisseur->commande->creer) {
// Deleting a contact // Deleting a contact
$object->fetch($id); $object->fetch($id);
$result = $object->delete_contact($_GET["lineid"]); $result = $object->delete_contact(GETPOST("lineid", 'int'));
if ($result >= 0) { if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);

View File

@ -970,24 +970,24 @@ if ($resql) {
if ($user->rights->societe->client->voir || $socid) { 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').': '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative');
$moreforfilter .= $formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
// If the user can view other users // If the user can view other users
if ($user->rights->user->user->lire) { if ($user->rights->user->user->lire) {
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('LinkedToSpecificUsers').': '; $tmptitle = $langs->trans('LinkedToSpecificUsers');
$moreforfilter .= $form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_user, 'search_user', $tmptitle, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
// If the user can view prospects other than his' // If the user can view prospects other than his'
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) { if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) {
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('IncludingProductWithTag').': '; $tmptitle = $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, 'maxwidth300', 1); $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1);
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
$parameters = array(); $parameters = array();

View File

@ -1588,14 +1588,14 @@ if (empty($reshook)) {
} elseif ($action == 'swapstatut') { } elseif ($action == 'swapstatut') {
// bascule du statut d'un contact // bascule du statut d'un contact
if ($object->fetch($id)) { if ($object->fetch($id)) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
} elseif ($action == 'deletecontact') { } elseif ($action == 'deletecontact') {
// Efface un contact // Efface un contact
$object->fetch($id); $object->fetch($id);
$result = $object->delete_contact($_GET["lineid"]); $result = $object->delete_contact(GETPOST("lineid", 'int'));
if ($result >= 0) { if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);

View File

@ -76,14 +76,14 @@ if ($action == 'addcontact' && $user->rights->fournisseur->facture->creer) {
} elseif ($action == 'swapstatut' && $user->rights->fournisseur->facture->creer) { } elseif ($action == 'swapstatut' && $user->rights->fournisseur->facture->creer) {
// bascule du statut d'un contact // bascule du statut d'un contact
if ($object->fetch($id)) { if ($object->fetch($id)) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
} elseif ($action == 'deletecontact' && $user->rights->fournisseur->facture->creer) { } elseif ($action == 'deletecontact' && $user->rights->fournisseur->facture->creer) {
// Efface un contact // Efface un contact
$object->fetch($id); $object->fetch($id);
$result = $object->delete_contact($_GET["lineid"]); $result = $object->delete_contact(GETPOST("lineid", 'int'));
if ($result >= 0) { if ($result >= 0) {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);

View File

@ -82,6 +82,8 @@ PaymentsAlreadyDone=Payments already done
PaymentsBackAlreadyDone=Refunds already done PaymentsBackAlreadyDone=Refunds already done
PaymentRule=Payment rule PaymentRule=Payment rule
PaymentMode=Payment Type PaymentMode=Payment Type
DefaultPaymentMode=Default Payment Type
DefaultBankAccount=Default Bank Account
PaymentTypeDC=Debit/Credit Card PaymentTypeDC=Debit/Credit Card
PaymentTypePP=PayPal PaymentTypePP=PayPal
IdPaymentMode=Payment Type (id) IdPaymentMode=Payment Type (id)
@ -374,6 +376,7 @@ DateLastGeneration=Date of latest generation
DateLastGenerationShort=Date latest gen. DateLastGenerationShort=Date latest gen.
MaxPeriodNumber=Max. number of invoice generation MaxPeriodNumber=Max. number of invoice generation
NbOfGenerationDone=Number of invoice generation already done NbOfGenerationDone=Number of invoice generation already done
NbOfGenerationOfRecordDone=Number of record generation already done
NbOfGenerationDoneShort=Number of generation done NbOfGenerationDoneShort=Number of generation done
MaxGenerationReached=Maximum number of generations reached MaxGenerationReached=Maximum number of generations reached
InvoiceAutoValidate=Validate invoices automatically InvoiceAutoValidate=Validate invoices automatically

View File

@ -37,11 +37,11 @@ if (!defined('NOREQUIREAJAX')) {
require '../main.inc.php'; require '../main.inc.php';
require DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php'; require DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php';
$mens = GETPOST('mens'); $mens = price2num(GETPOST('mens'));
$capital = GETPOST('capital'); $capital = price2num(GETPOST('capital'));
$rate = GETPOST('rate'); $rate = price2num(GETPOST('rate'));
$echance = GETPOST('echeance'); $echance = GETPOST('echeance', 'int');
$nbterm = GETPOST('nbterm'); $nbterm = GETPOST('nbterm', 'int');
top_httphead(); top_httphead();

View File

@ -252,7 +252,7 @@ if ($resql) {
print '<td>'.dol_trunc($obj->label, 42).'</td>'; print '<td>'.dol_trunc($obj->label, 42).'</td>';
// Capital // Capital
print '<td class="right maxwidth100">'.price($obj->capital).'</td>'; print '<td class="right maxwidth100"><span class="amount">'.price($obj->capital).'</span></td>';
// Date start // Date start
print '<td class="center width100">'.dol_print_date($db->jdate($obj->datestart), 'day').'</td>'; print '<td class="center width100">'.dol_print_date($db->jdate($obj->datestart), 'day').'</td>';

View File

@ -197,7 +197,7 @@ $sql .= $db->order($sortfield, $sortorder);
print '<br>'; print '<br>';
print img_info('').' '.$langs->trans("MarginPerSaleRepresentativeWarning").'<br>'; print '<span class="opacitymedium">'.$langs->trans("MarginPerSaleRepresentativeWarning").'</span><br>';
$param = ''; $param = '';
if (!empty($agentid)) { if (!empty($agentid)) {
@ -326,9 +326,9 @@ if ($result) {
print '<tr class="oddeven">'; print '<tr class="oddeven">';
print "<td>".$group_array['htmlname']."</td>\n"; print "<td>".$group_array['htmlname']."</td>\n";
print '<td class="nowrap right">'.price(price2num($pv, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($pv, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($pa, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($pa, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($marge, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($marge, 'MT')).'</span></td>';
if (!empty($conf->global->DISPLAY_MARGIN_RATES)) { if (!empty($conf->global->DISPLAY_MARGIN_RATES)) {
print '<td class="nowrap right">'.(($marginRate === '') ? 'n/a' : price(price2num($marginRate, 'MT'))."%").'</td>'; print '<td class="nowrap right">'.(($marginRate === '') ? 'n/a' : price(price2num($marginRate, 'MT'))."%").'</td>';
} }

View File

@ -209,8 +209,8 @@ $massactionbutton = '';
$invoice_status_except_list = array(Facture::STATUS_DRAFT, Facture::STATUS_ABANDONED); $invoice_status_except_list = array(Facture::STATUS_DRAFT, Facture::STATUS_ABANDONED);
$sql = "SELECT"; $sql = "SELECT";
$sql .= " f.ref, f.rowid as invoiceid, d.rowid as invoicedetid, d.buy_price_ht, d.total_ht, d.subprice, d.label, d.description , d.qty"; $sql .= " f.ref, f.rowid as invoiceid,";
$sql .= " ,d.fk_product"; $sql .= " d.rowid as invoicedetid, d.product_type, d.buy_price_ht, d.total_ht, d.subprice, d.label, d.description, d.qty, d.fk_product";
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f "; $sql .= " FROM ".MAIN_DB_PREFIX."facture as f ";
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."facturedet as d ON d.fk_facture = f.rowid"; $sql .= " INNER JOIN ".MAIN_DB_PREFIX."facturedet as d ON d.fk_facture = f.rowid";
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON d.fk_product = p.rowid"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON d.fk_product = p.rowid";
@ -279,12 +279,12 @@ if ($result) {
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder);
print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "", "", $param, 'width=20%', $sortfield, $sortorder); print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder);
print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "d.subprice", "", $param, 'align="right"', $sortfield, $sortorder); print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "d.subprice", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $param, 'align="right"', $sortfield, $sortorder); print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $param, 'align="right"', $sortfield, $sortorder); print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"], "d.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"], "d.total_ht", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch center ');
print "</tr>\n"; print "</tr>\n";
$i = 0; $i = 0;
@ -309,6 +309,12 @@ if ($result) {
print $productstatic->getNomUrl(1); print $productstatic->getNomUrl(1);
} }
} else { } else {
if ($objp->product_type == $productstatic::TYPE_PRODUCT) {
print img_picto('', 'product');
}
if ($objp->product_type == $productstatic::TYPE_SERVICE) {
print img_picto('', 'service');
}
print $objp->label; print $objp->label;
print '&nbsp;'; print '&nbsp;';
print $objp->description; print $objp->description;
@ -324,7 +330,7 @@ if ($result) {
print $objp->qty; print $objp->qty;
print '</td>'; print '</td>';
print '<td class="right">'; print '<td class="right">';
print price($objp->total_ht); print '<span class="amount">'.price($objp->total_ht).'</span>';
print '</td>'; print '</td>';
print '<td></td>'; print '<td></td>';

View File

@ -344,9 +344,9 @@ if ($result) {
print '<td>'.$companystatic->getNomUrl(1, 'margin').'</td>'; print '<td>'.$companystatic->getNomUrl(1, 'margin').'</td>';
} }
print '<td class="nowrap right">'.price(price2num($pv, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($pv, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($pa, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($pa, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($marge, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($marge, 'MT')).'</span></td>';
if (!empty($conf->global->DISPLAY_MARGIN_RATES)) { if (!empty($conf->global->DISPLAY_MARGIN_RATES)) {
print '<td class="nowrap right">'.(($marginRate === '') ? 'n/a' : price(price2num($marginRate, 'MT'))."%").'</td>'; print '<td class="nowrap right">'.(($marginRate === '') ? 'n/a' : price(price2num($marginRate, 'MT'))."%").'</td>';
} }

View File

@ -310,9 +310,9 @@ if ($result) {
//print "<td>".$product_static->getNomUrl(1)."</td>\n"; //print "<td>".$product_static->getNomUrl(1)."</td>\n";
} }
print '<td class="center">'.$qty.'</td>'; print '<td class="center">'.$qty.'</td>';
print '<td class="nowrap right">'.price(price2num($pv, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($pv, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($pa, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($pa, 'MT')).'</span></td>';
print '<td class="nowrap right">'.price(price2num($marge, 'MT')).'</td>'; print '<td class="nowrap right"><span class="amount">'.price(price2num($marge, 'MT')).'</span></td>';
if (!empty($conf->global->DISPLAY_MARGIN_RATES)) { if (!empty($conf->global->DISPLAY_MARGIN_RATES)) {
print '<td class="nowrap right">'.(($marginRate === '') ? 'n/a' : price(price2num($marginRate, 'MT'))."%").'</td>'; print '<td class="nowrap right">'.(($marginRate === '') ? 'n/a' : price(price2num($marginRate, 'MT'))."%").'</td>';
} }

View File

@ -107,7 +107,7 @@ if ($action == 'addcontact' && $permission) {
} }
} elseif ($action == 'swapstatut' && $permission) { } elseif ($action == 'swapstatut' && $permission) {
// Toggle the status of a contact // Toggle the status of a contact
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} elseif ($action == 'deletecontact' && $permission) { } elseif ($action == 'deletecontact' && $permission) {
// Deletes a contact // Deletes a contact
$result = $object->delete_contact($lineid); $result = $object->delete_contact($lineid);

View File

@ -678,32 +678,32 @@ if ($search_all) {
$moreforfilter = ''; $moreforfilter = '';
// Filter on categories
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
$formcategory = new FormCategory($db);
$moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PROJECT, $search_category_array);
}
// If the user can view user other than himself // If the user can view user other than himself
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('ProjectsWithThisUserAsContact').': '; $tmptitle = $langs->trans('ProjectsWithThisUserAsContact');
//$includeonly = 'hierarchyme'; //$includeonly = 'hierarchyme';
$includeonly = ''; $includeonly = '';
if (empty($user->rights->user->user->lire)) { if (empty($user->rights->user->user->lire)) {
$includeonly = array($user->id); $includeonly = array($user->id);
} }
$moreforfilter .= $form->select_dolusers($search_project_user ? $search_project_user : '', 'search_project_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_project_user ? $search_project_user : '', 'search_project_user', $tmptitle, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
// If the user can view thirdparties other than his' // If the user can view thirdparties other than his'
if ($user->rights->societe->client->voir || $socid) { 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').': '; $tmptitle = $langs->trans('ThirdPartiesOfSaleRepresentative');
$moreforfilter .= $formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, $tmptitle, 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
// Filter on categories
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
$formcategory = new FormCategory($db);
$moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PROJECT, $search_category_array);
}
if (!empty($moreforfilter)) { if (!empty($moreforfilter)) {
print '<div class="liste_titre liste_titre_bydiv centpercent">'; print '<div class="liste_titre liste_titre_bydiv centpercent">';
print $moreforfilter; print $moreforfilter;
@ -1243,7 +1243,7 @@ while ($i < min($num, $limit)) {
$totalarray['pos'][$totalarray['nbfield']] = 'p.price_registration'; $totalarray['pos'][$totalarray['nbfield']] = 'p.price_registration';
} }
} }
// PriceOfBooth // Price of booth
if (!empty($arrayfields['p.price_booth']['checked'])) { if (!empty($arrayfields['p.price_booth']['checked'])) {
print '<td class="right">'; print '<td class="right">';
if ($obj->price_booth != '') { if ($obj->price_booth != '') {
@ -1266,7 +1266,7 @@ while ($i < min($num, $limit)) {
print $hookmanager->resPrint; print $hookmanager->resPrint;
// Date creation // Date creation
if (!empty($arrayfields['p.datec']['checked'])) { if (!empty($arrayfields['p.datec']['checked'])) {
print '<td class="center">'; print '<td class="center nowraponall">';
print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser'); print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
print '</td>'; print '</td>';
if (!$i) { if (!$i) {
@ -1275,7 +1275,7 @@ while ($i < min($num, $limit)) {
} }
// Date modification // Date modification
if (!empty($arrayfields['p.tms']['checked'])) { if (!empty($arrayfields['p.tms']['checked'])) {
print '<td class="center">'; print '<td class="center nowraponall">';
print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser'); print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
print '</td>'; print '</td>';
if (!$i) { if (!$i) {

View File

@ -104,7 +104,7 @@ if ($action == 'addcontact' && $user->rights->projet->creer) {
// bascule du statut d'un contact // bascule du statut d'un contact
if ($action == 'swapstatut' && $user->rights->projet->creer) { if ($action == 'swapstatut' && $user->rights->projet->creer) {
if ($object->fetch($id, $ref)) { if ($object->fetch($id, $ref)) {
$result = $object->swapContactStatus(GETPOST('ligne')); $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
} else { } else {
dol_print_error($db); dol_print_error($db);
} }
@ -113,7 +113,7 @@ if ($action == 'swapstatut' && $user->rights->projet->creer) {
// Efface un contact // Efface un contact
if ($action == 'deleteline' && $user->rights->projet->creer) { if ($action == 'deleteline' && $user->rights->projet->creer) {
$object->fetch($id, $ref); $object->fetch($id, $ref);
$result = $object->delete_contact($_GET["lineid"]); $result = $object->delete_contact(GETPOST("lineid", 'int'));
if ($result >= 0) { if ($result >= 0) {
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object->id.($withproject ? '&withproject=1' : '')); header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object->id.($withproject ? '&withproject=1' : ''));

View File

@ -588,29 +588,29 @@ $morehtmlfilter = '';
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) { if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
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').': '; $tmptitle = $langs->trans('ProjectCategories');
$moreforfilter .= $formother->select_categories('project', $search_categ, 'search_categ', 1, 'maxwidth300'); $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$formother->select_categories('project', $search_categ, 'search_categ', 0, $tmptitle, 'maxwidth300');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
} }
// If the user can view users // If the user can view users
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('ProjectsWithThisUserAsContact').' '; $tmptitle = $langs->trans('ProjectsWithThisUserAsContact');
$includeonly = ''; $includeonly = '';
if (empty($user->rights->user->user->lire)) { if (empty($user->rights->user->user->lire)) {
$includeonly = array($user->id); $includeonly = array($user->id);
} }
$moreforfilter .= $form->select_dolusers($search_project_user ? $search_project_user : '', 'search_project_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_project_user ? $search_project_user : '', 'search_project_user', $tmptitle, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
// If the user can view users // If the user can view users
$moreforfilter .= '<div class="divsearchfield">'; $moreforfilter .= '<div class="divsearchfield">';
$moreforfilter .= $langs->trans('TasksWithThisUserAsContact').': '; $tmptitle = $langs->trans('TasksWithThisUserAsContact');
$includeonly = ''; $includeonly = '';
if (empty($user->rights->user->user->lire)) { if (empty($user->rights->user->user->lire)) {
$includeonly = array($user->id); $includeonly = array($user->id);
} }
$moreforfilter .= $form->select_dolusers($search_task_user, 'search_task_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter .= img_picto($tmptitle, 'user', 'class="pictofixedwidth"').$form->select_dolusers($search_task_user, 'search_task_user', $tmptitle, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth250');
$moreforfilter .= '</div>'; $moreforfilter .= '</div>';
if (!empty($moreforfilter)) { if (!empty($moreforfilter)) {
@ -658,7 +658,7 @@ if (!empty($arrayfields['t.dateo']['checked'])) {
print '<input class="flat" type="text" size="1" maxlength="2" name="search_sday" value="'.$search_sday.'">'; print '<input class="flat" type="text" size="1" maxlength="2" name="search_sday" value="'.$search_sday.'">';
} }
print '<input class="flat" type="text" size="1" maxlength="2" name="search_smonth" value="'.$search_smonth.'">'; print '<input class="flat" type="text" size="1" maxlength="2" name="search_smonth" value="'.$search_smonth.'">';
$formother->select_year($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5); print $formother->selectyear($search_syear ? $search_syear : -1, 'search_syear', 1, 20, 5, 0, 0, '', 'valignmiddle width75', 1);
print '</td>'; print '</td>';
} }
// End date // End date
@ -668,7 +668,7 @@ if (!empty($arrayfields['t.datee']['checked'])) {
print '<input class="flat" type="text" size="1" maxlength="2" name="search_eday" value="'.$search_eday.'">'; print '<input class="flat" type="text" size="1" maxlength="2" name="search_eday" value="'.$search_eday.'">';
} }
print '<input class="flat" type="text" size="1" maxlength="2" name="search_emonth" value="'.$search_emonth.'">'; print '<input class="flat" type="text" size="1" maxlength="2" name="search_emonth" value="'.$search_emonth.'">';
$formother->select_year($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5); print $formother->selectyear($search_eyear ? $search_eyear : -1, 'search_eyear', 1, 20, 5, 0, 0, '', 'valignmiddle width75', 1);
print '</td>'; print '</td>';
} }
if (!empty($arrayfields['p.ref']['checked'])) { if (!empty($arrayfields['p.ref']['checked'])) {

View File

@ -107,7 +107,7 @@ if ($action == 'addcontact' && $user->rights->reception->creer) {
} }
} elseif ($action == 'swapstatut' && $user->rights->reception->creer) { } elseif ($action == 'swapstatut' && $user->rights->reception->creer) {
// bascule du statut d'un contact // bascule du statut d'un contact
$result = $objectsrc->swapContactStatus(GETPOST('ligne')); $result = $objectsrc->swapContactStatus(GETPOST('ligne', 'int'));
} elseif ($action == 'deletecontact' && $user->rights->reception->creer) { } elseif ($action == 'deletecontact' && $user->rights->reception->creer) {
// Efface un contact // Efface un contact
$result = $objectsrc->delete_contact(GETPOST("lineid")); $result = $objectsrc->delete_contact(GETPOST("lineid"));

Some files were not shown because too many files have changed in this diff Show More