Merge remote-tracking branch 'Upstream/develop' into develop-a7

Conflicts:
	htdocs/langs/en_US/accountancy.lang
This commit is contained in:
aspangaro 2015-12-31 06:07:08 +01:00
commit 2c1ff3ca47
191 changed files with 2378 additions and 1133 deletions

View File

@ -150,6 +150,8 @@ WARNING:
Dolibarr 3.9 is not yet fully compatible with PHP 7.
Mysql minimum version is now 5.0.3
Following changes may create regression for some external modules, but were necessary to make
Dolibarr better:
- Deprecated Product::setPriceExpression. Use Product::update instead

View File

@ -27,6 +27,7 @@ require '../../main.inc.php';
// Class
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
require_once DOL_DOCUMENT_ROOT . '/accountancy/class/html.formventilation.class.php';
// Langs
$langs->load("accountancy");
@ -41,12 +42,24 @@ $piece_num = GETPOST("piece_num");
$mesg = '';
$numero_compte = GETPOST('numero_compte');
$account_number = GETPOST('account_number');
$code_tiers = GETPOST('code_tiers');
if ($code_tiers==-1) {
$code_tiers=null;
}
$label_compte = GETPOST('label_compte');
$debit = price2num(GETPOST('debit'));
$credit = price2num(GETPOST('credit'));
$save=GETPOST('save');
if (!empty($save)) {
$action='add';
}
$update=GETPOST('update');
if (!empty($update)) {
$action='confirm_update';
}
if ($action == "confirm_update") {
$error = 0;
@ -63,7 +76,7 @@ if ($action == "confirm_update") {
if ($result < 0) {
setEventMessages($book->error, $book->errors, 'errors');
} else {
$book->numero_compte = $numero_compte;
$book->numero_compte = $account_number;
$book->code_tiers = $code_tiers;
$book->label_compte = $label_compte;
$book->debit = $debit;
@ -92,15 +105,15 @@ if ($action == "confirm_update") {
else if ($action == "add") {
$error = 0;
if ((intval($debit) != 0) && (intval($credit) != 0)) {
setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
$error ++;
}
if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) {
setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
$error ++;
}
if (empty($error)) {
$book = new BookKeeping($db);
$book->numero_compte = $numero_compte;
$book->numero_compte = $account_number;
$book->code_tiers = $code_tiers;
$book->label_compte = $label_compte;
$book->debit = $debit;
@ -113,11 +126,12 @@ else if ($action == "add") {
$book->fk_doc = GETPOST('fk_doc');
$book->fk_docdet = GETPOST('fk_docdet');
if (! empty($debit)) {
if (floatval($debit) != 0.0) {
$book->montant = $debit;
$book->sens = 'D';
}
if (! empty($credit)) {
if (floatval($credit) != 0.0) {
$book->montant = $credit;
$book->sens = 'C';
}
@ -179,6 +193,7 @@ else if ($action == "confirm_create") {
llxHeader();
$html = new Form($db);
$formventilation = new FormVentilation($db);
/*
* Confirmation to delete the command
@ -281,9 +296,21 @@ if ($action == 'create') {
} else {
print load_fiche_titre($langs->trans("ListeMvts"));
print '<form action="' . $_SERVER["PHP_SELF"] . '?piece_num=' . $book->piece_num . '" method="post">';
print '<input type="hidden" name="doc_date" value="' . $book->doc_date . '">' . "\n";
print '<input type="hidden" name="doc_type" value="' . $book->doc_type . '">' . "\n";
print '<input type="hidden" name="doc_ref" value="' . $book->doc_ref . '">' . "\n";
print '<input type="hidden" name="code_journal" value="' . $book->code_journal . '">' . "\n";
print '<input type="hidden" name="fk_doc" value="' . $book->fk_doc . '">' . "\n";
print '<input type="hidden" name="fk_docdet" value="' . $book->fk_docdet . '">' . "\n";
print "<table class=\"noborder\" width=\"100%\">";
if (count($book->linesmvt) > 0) {
$total_debit=0;
$total_credit=0;
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Numerocompte"));
@ -301,21 +328,26 @@ if ($action == 'create') {
$var = ! $var;
print "<tr $bc[$var]>";
$total_debit+=$line->debit;
$total_credit+=$line->credit;
if ($action == 'update' && $line->id == $id) {
print '<form action="' . $_SERVER["PHP_SELF"] . '?piece_num=' . $book->piece_num . '" method="post">';
print '<input type="hidden" name="id" value="' . $line->id . '">' . "\n";
print '<input type="hidden" name="action" value="confirm_update">' . "\n";
print '<td><input type="text" size="6" name="numero_compte" value="' . $line->numero_compte . '"/></td>';
print '<td><input type="text" size="15" name="code_tiers" value="' . $line->code_tiers . '"/></td>';
print '<td>';
print $formventilation->select_account($line->numero_compte, 'account_number', 0, array (), 1, 1,'');
print '</td>';
print '<td>';
print $formventilation->select_auxaccount($line->code_tiers, 'code_tiers',1);
print '</td>';
print '<td><input type="text" size="15" name="label_compte" value="' . $line->label_compte . '"/></td>';
print '<td><input type="text" size="6" name="debit" value="' . price($line->debit) . '"/></td>';
print '<td><input type="text" size="6" name="credit" value="' . price($line->credit) . '"/></td>';
print '<td>' . $line->montant . '</td>';
print '<td>' . $line->sens . '</td>';
print '<td>';
print '<input type="submit" class="button" value="' . $langs->trans("Update") . '">';
print '</form>';
print '<input type="hidden" name="id" value="' . $line->id . '">' . "\n";
print '<input type="submit" class="button" name="update" value="' . $langs->trans("Update") . '">';
print '</td>';
} else {
print '<td>' . $line->numero_compte . '</td>';
@ -327,10 +359,10 @@ if ($action == 'create') {
print '<td>' . $line->sens . '</td>';
print '<td>';
print '<a href="./card.php?action=update&id=' . $line->id . '&piece_num=' . $line->piece_num . '">';
print '<a href="./card.php?action=update&amp;id=' . $line->id . '&amp;piece_num=' . $line->piece_num . '">';
print img_edit();
print '</a>&nbsp;';
print '<a href="./card.php?action=delete&id=' . $line->id . '&piece_num=' . $line->piece_num . '">';
print '<a href="./card.php?action=delete&amp;id=' . $line->id . '&amp;piece_num=' . $line->piece_num . '">';
print img_delete();
print '</a>';
@ -339,34 +371,32 @@ if ($action == 'create') {
print "</tr>\n";
}
if ($total_debit!=$total_credit) {
setEventMessages(null, array('MvtNotCorrectlyBalanced',$total_credit,$total_debit),'errors');
}
if ($action == "" || $action == 'add') {
$var = ! $var;
print "<tr $bc[$var]>";
print '<form action="' . $_SERVER["PHP_SELF"] . '?piece_num=' . $book->piece_num . '" method="post">';
print '<input type="hidden" name="action" value="add">' . "\n";
print '<input type="hidden" name="doc_date" value="' . $book->doc_date . '">' . "\n";
print '<input type="hidden" name="doc_type" value="' . $book->doc_type . '">' . "\n";
print '<input type="hidden" name="doc_ref" value="' . $book->doc_ref . '">' . "\n";
print '<input type="hidden" name="code_journal" value="' . $book->code_journal . '">' . "\n";
print '<input type="hidden" name="fk_doc" value="' . $book->fk_doc . '">' . "\n";
print '<input type="hidden" name="fk_docdet" value="' . $book->fk_docdet . '">' . "\n";
print '<td><input type="text" size="6" name="numero_compte" value="' . $numero_compte . '"/></td>';
print '<td><input type="text" size="15" name="code_tiers" value="' . $code_tiers . '"/></td>';
print '<td>';
print $formventilation->select_account($account_number, 'account_number', 0, array (), 1, 1, '');
print '</td>';
print '<td>';
print $formventilation->select_auxaccount($code_tiers, 'code_tiers',1);
print '</td>';
print '<td><input type="text" size="15" name="label_compte" value="' . $label_compte . '"/></td>';
print '<td><input type="text" size="6" name="debit" value="' . price($debit) . '"/></td>';
print '<td><input type="text" size="6" name="credit" value="' . price($credit) . '"/></td>';
print '<td></td>';
print '<td></td>';
print '<td><input type="submit" class="button" value="' . $langs->trans("Save") . '"></td>';
print '<td><input type="submit" class="button" name="save" value="' . $langs->trans("Save") . '"></td>';
print '</tr>';
}
print '</table>';
print '</form>';
}
}
}
else {
} else {
print load_fiche_titre($langs->trans("NoRecords"));
}
}

View File

@ -19,18 +19,17 @@
*/
/**
* \file htdocs/accountancy/bookkeeping/list.php
* \ingroup Accounting Expert
* \brief List operation of book keeping
* \file htdocs/accountancy/bookkeeping/list.php
* \ingroup Accounting Expert
* \brief List operation of book keeping
*/
require '../../main.inc.php';
// Class
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/html.formventilation.class.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
require_once DOL_DOCUMENT_ROOT . '/accountancy/class/html.formventilation.class.php';
require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php';
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
// Langs
$langs->load("accountancy");
@ -58,11 +57,11 @@ $formother = new FormOther($db);
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
{
$search_doc_type="";
$search_doc_ref="";
$search_account="";
$search_thirdparty="";
$search_journal="";
$search_piece_num = "";
$search_doc_ref = "";
$search_account = "";
$search_thirdparty = "";
$search_journal = "";
}
/*
@ -80,8 +79,7 @@ if ($action == 'delbookkeeping') {
setEventMessages($object->error, $object->errors, 'errors');
}
}
}
elseif ($action == 'delbookkeepingyear') {
} elseif ($action == 'delbookkeepingyear') {
$delyear = GETPOST('delyear', 'int');
@ -93,8 +91,7 @@ elseif ($action == 'delbookkeepingyear') {
setEventMessages($object->error, $object->errors, 'errors');
}
}
}
elseif ($action == 'delbookkeepingyear') {
} elseif ($action == 'delbookkeepingyear') {
$delyear = GETPOST('delyear', 'int');
@ -106,7 +103,7 @@ elseif ($action == 'delbookkeepingyear') {
setEventMessages($object->error, $object->errors, 'errors');
}
}
}// Export
} // Export
else if ($action == 'export_csv') {
header('Content-Type: text/csv');
@ -118,19 +115,55 @@ else if ($action == 'export_csv') {
setEventMessages($object->error, $object->errors, 'errors');
}
foreach ( $object->linesexport as $line ) {
print $line->id . ',';
print '"' . dol_print_date($line->doc_date, '%d%m%Y') . '",';
print '"' . $line->code_journal . '",';
print '"' . $line->numero_compte . '",';
print '"' . substr($line->code_journal, 0, 2) . '",';
print '"' . substr($line->doc_ref, 0, 40) . '",';
print '"' . $line->num_piece . '",';
print '"' . $line->montant . '",';
print '"' . $line->sens . '",';
print '"' . dol_print_date($line->doc_date, '%d%m%Y') . '",';
print '"' . $conf->currency . '",';
print "\n";
// Model classic Export
if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 1) {
foreach ( $object->linesexport as $line ) {
print '"' . dol_print_date($line->doc_date, '%d%m%Y') . '",';
print '"' . $line->code_journal . '",';
print '"' . $line->numero_compte . '",';
print '"' . substr($line->code_journal, 0, 2) . '",';
print '"' . substr($line->doc_ref, 0, 40) . '",';
print '"' . $line->num_piece . '",';
print '"' . $line->debit . '",';
print '"' . $line->credit . '",';
print '"' . $conf->currency . '",';
print "\n";
}
}
// Model cegid Export
if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 2) {
foreach ( $object->linesexport as $line ) {
print $line->id . ',';
print '"' . dol_print_date($line->doc_date, '%d%m%Y') . '",';
print '"' . $line->code_journal . '",';
print '"' . $line->numero_compte . '",';
print '"' . substr($line->code_journal, 0, 2) . '",';
print '"' . substr($line->doc_ref, 0, 40) . '",';
print '"' . $line->num_piece . '",';
print '"' . $line->montant . '",';
print '"' . $line->sens . '",';
print '"' . dol_print_date($line->doc_date, '%d%m%Y') . '",';
print '"' . $conf->currency . '",';
print "\n";
}
}
// Model Coala Export
if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 3) {
foreach ( $object->linesexport as $line ) {
print $line->id . ',';
print '"' . dol_print_date($line->doc_date, '%d%m%Y') . '",';
print '"' . $line->code_journal . '",';
print '"' . $line->numero_compte . '",';
print '"' . substr($line->code_journal, 0, 2) . '",';
print '"' . substr($line->doc_ref, 0, 40) . '",';
print '"' . $line->num_piece . '",';
print '"' . $line->montant . '",';
print '"' . $line->sens . '",';
print '"' . dol_print_date($line->doc_date, '%d%m%Y') . '",';
print '"' . $conf->currency . '",';
print "\n";
}
}
}
@ -138,16 +171,16 @@ else {
llxHeader('', $langs->trans("Bookkeeping"));
/*
* List
*/
/*
* List
*/
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.code_tiers, bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num ";
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
if (dol_strlen(trim($search_doc_type))) {
$sql .= " WHERE bk.doc_type LIKE '%" . $search_doc_type . "%'";
$sql .= " WHERE bk.piece_num LIKE '%" . $search_piece_num . "%'";
if (dol_strlen(trim($search_doc_ref))) {
$sql .= " AND bk.doc_ref LIKE '%" . $search_doc_ref . "%'";
@ -177,20 +210,20 @@ else {
print_barre_liste($langs->trans("Bookkeeping"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num);
/*print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
print '<input type="hidden" name="action" value="delbookkeeping">';
print $formventilation->select_bookkeeping_importkey('importkey', GETPOST('importkey'));
print '<div class="inline-block divButAction"><input type="submit" class="butAction" value="' . $langs->trans("DelBookKeeping") . '" /></div>';
print '</form>';*/
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
print '<input type="hidden" name="action" value="delbookkeeping">';
print $formventilation->select_bookkeeping_importkey('importkey', GETPOST('importkey'));
print '<div class="inline-block divButAction"><input type="submit" class="butAction" value="' . $langs->trans("DelBookKeeping") . '" /></div>';
print '</form>';*/
print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
print '<input type="hidden" name="action" value="delbookkeepingyear">';
print $formother->select_year(GETPOST('delyear'),'delyear');
print $formother->select_year(GETPOST('delyear'), 'delyear');
print '<div class="inline-block divButAction"><input type="submit" class="butAction" value="' . $langs->trans("DelBookKeeping") . '" /></div>';
@ -204,7 +237,7 @@ else {
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Doctype"), $_SERVER['PHP_SELF'], "bk.doc_type", "", "", "", $sortfield, $sortorder);
print_liste_field_titre($langs->trans("NumPiece"), $_SERVER['PHP_SELF'], "bk.piece_num", "", "", "", $sortfield, $sortorder);
print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "bk.doc_date", "", "", "", $sortfield, $sortorder);
print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "bk.doc_ref", "", "", "", $sortfield, $sortorder);
print_liste_field_titre($langs->trans("Numerocompte"), $_SERVER['PHP_SELF'], "bk.numero_compte", "", "", "", $sortfield, $sortorder);
@ -215,12 +248,12 @@ else {
print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "bk.montant", "", "", 'align="center"', $sortfield, $sortorder);
print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "bk.sens", "", "", 'align="center"', $sortfield, $sortorder);
print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "bk.code_journal", "", "", "", $sortfield, $sortorder);
print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Action"), $_SERVER["PHP_SELF"], "", $param, "", 'width="60" align="center"', $sortfield, $sortorder);
print "</tr>\n";
print '<tr class="liste_titre">';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="GET">';
print '<td><input type="text" name="search_doc_type" size="8" value="' . $search_doc_type . '"></td>';
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="GET">';
print '<td><input type="text" name="search_doc_type" size="8" value="' . $search_piece_num . '"></td>';
print '<td>&nbsp;</td>';
print '<td><input type="text" name="search_doc_ref" size="8" value="' . $search_doc_ref . '"></td>';
print '<td><input type="text" name="search_account" size="8" value="' . $search_account . '"></td>';
@ -232,9 +265,9 @@ else {
print '<td>&nbsp;</td>';
print '<td><input type="text" name="search_journal" size="3" value="' . $search_journal . '"></td>';
print '<td align="right" colspan="2" class="liste_titre">';
print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
print '<input type="image" class="liste_titre" src="' . img_picto($langs->trans("Search"), 'search.png', '', '', 1) . '" name="button_search" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">';
print '&nbsp;';
print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
print '<input type="image" class="liste_titre" src="' . img_picto($langs->trans("Search"), 'searchclear.png', '', '', 1) . '" name="button_removefilter" value="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '" title="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '">';
print '</td>';
print '</form>';
print '</tr>';
@ -247,7 +280,16 @@ else {
print "<tr $bc[$var]>";
print '<td>' . $obj->doc_type . '</td>';
/* if ($old_piecenum!=$obj->piece_num) {
$total_debit=0;
$total_credit=0;
} else {
$total_debit+=$obj->debit;
$total_credit+=$obj->credit;
}
*/
print '<td>' . $obj->piece_num . '</td>';
print '<td align="center">' . dol_print_date($db->jdate($obj->doc_date), 'day') . '</td>';
print '<td>' . $obj->doc_ref . '</td>';
print '<td>' . length_accountg($obj->numero_compte) . '</td>';
@ -260,19 +302,23 @@ else {
print '<td>' . $obj->code_journal . '</td>';
print '<td align="center"><a href="./card.php?piece_num=' . $obj->piece_num . '">' . img_edit() . '</a></td>';
print "</tr>\n";
//$old_piecenum= $obj->piece_num;
$i ++;
}
print "</table>";
print '<div class="tabsAction">';
print '<a class="butAction" href="./card.php?action=create">'.$langs->trans("NewAccountingMvt").'</a>';
print '<a class="butAction" href="./card.php?action=create">' . $langs->trans("NewAccountingMvt") . '</a>';
print '</div>';
$db->free($resql);
} else {
dol_print_error($db);
}
llxFooter();
}
llxFooter();
$db->close();

View File

@ -265,4 +265,81 @@ class FormVentilation extends Form
$this->db->free($resql);
return $out;
}
/**
* Return list of auxilary thirdparty accounts
*
* @param string $selectid Preselected pcg_type
* @param string $htmlname Name of field in html form
* @param int $showempty Add an empty field
* @param array $event Event options
*
* @return string String with HTML select
*/
function select_auxaccount($selectid, $htmlname = 'account_num_aux', $showempty = 0, $event = array()) {
global $conf;
$out = '';
$aux_account = array ();
// Auxiliary customer account
$sql = "SELECT DISTINCT code_compta, nom ";
$sql .= " FROM " . MAIN_DB_PREFIX . "societe";
$sql .= " ORDER BY code_compta";
dol_syslog(get_class($this) . "::select_auxaccount", LOG_DEBUG);
$resql = $this->db->query($sql);
if ($resql) {
while ( $obj = $this->db->fetch_object($resql) ) {
if (! empty($obj->code_compta)) {
$aux_account[$obj->code_compta] = $obj->code_compta . ' (' . $obj->nom . ')';
}
}
} else {
$this->error = "Error " . $this->db->lasterror();
dol_syslog(get_class($this) . "::select_pcgsubtype " . $this->error, LOG_ERR);
return - 1;
}
$this->db->free($resql);
// Auxiliary supplier account
$sql = "SELECT DISTINCT code_compta_fournisseur, nom ";
$sql .= " FROM " . MAIN_DB_PREFIX . "societe";
$sql .= " ORDER BY code_compta";
dol_syslog(get_class($this) . "::select_auxaccount", LOG_DEBUG);
$resql = $this->db->query($sql);
if ($resql) {
while ( $obj = $this->db->fetch_object($resql) ) {
if (! empty($obj->code_compta_fournisseur)) {
$aux_account[$obj->code_compta_fournisseur] = $obj->code_compta_fournisseur . ' (' . $obj->nom . ')';
}
}
} else {
$this->error = "Error " . $this->db->lasterror();
dol_syslog(get_class($this) . "::select_pcgsubtype " . $this->error, LOG_ERR);
return - 1;
}
$this->db->free($resql);
//Build select
if (count($aux_account) > 0) {
$out .= ajax_combobox($htmlname, $event);
$out .= '<select id="' . $htmlname . '" class="flat" name="' . $htmlname . '">';
if ($showempty)
$out .= '<option value="-1"></option>';
foreach ( $aux_account as $key => $val ) {
if (($selectid != '') && $selectid == $key) {
$out .= '<option value="' . $key . '" selected>' . $val . '</option>';
} else {
$out .= '<option value="' . $key . '">' . $val . '</option>';
}
}
$out .= '</select>';
}
return $out;
}
}

View File

@ -72,7 +72,7 @@ if (! empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)) {
$offset = $limit * $page;
if (! $sortfield)
$sortfield = "f.facnumber";
$sortfield = "f.datef, f.facnumber, l.rowid";
if (! $sortorder) {
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {

View File

@ -355,7 +355,7 @@ if ($action == 'writebookkeeping')
$bookkeeping = new BookKeeping($db);
$bookkeeping->doc_date = $val["date"];
$bookkeeping->doc_ref = $val["ref"];
$bookkeeping->doc_type = 'banque';
$bookkeeping->doc_type = 'bank';
$bookkeeping->fk_doc = $key;
$bookkeeping->fk_docdet = $val["fk_bank"];
$bookkeeping->label_compte = $tabcompany[$key]['name'];
@ -675,6 +675,7 @@ else
print "</table>";
llxFooter();
}
llxFooter();
$db->close();

View File

@ -5,7 +5,7 @@
* Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2013-2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
*
* 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
@ -487,7 +487,9 @@ if ($action == 'export_csv')
}
print "</table>";
// End of page
llxFooter();
}
llxFooter();
$db->close();

View File

@ -531,6 +531,7 @@ if ($action == 'export_csv')
print "</table>";
llxFooter();
}
llxFooter();
$db->close();

View File

@ -93,7 +93,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -107,7 +107,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -89,7 +89,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel
/* Creation of an optional field
/* */
/* ************************************************************************** */
@ -103,7 +103,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -96,7 +96,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -110,7 +110,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -96,7 +96,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -110,7 +110,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -96,7 +96,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -110,7 +110,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -96,7 +96,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -110,7 +110,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -93,7 +93,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -107,7 +107,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -108,7 +108,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -381,7 +381,9 @@ foreach ($dirmodels as $reldir)
print "<td>\n";
require_once $dir.$file;
$module = new $classname($db,$specimenthirdparty);
print $module->description;
if (method_exists($module,'info')) print $module->info($langs);
else print $module->description;
print "</td>\n";
// Active

View File

@ -392,7 +392,8 @@ foreach ($dirmodels as $reldir)
print "<td>\n";
require_once $dir.$file;
$module = new $classname($db,$specimenthirdparty);
print $module->description;
if (method_exists($module,'info')) print $module->info($langs);
else print $module->description;
print "</td>\n";
// Active

View File

@ -97,7 +97,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -111,7 +111,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -97,7 +97,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -111,7 +111,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -93,7 +93,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -107,7 +107,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -108,7 +108,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -86,8 +86,8 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel
/* */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'create')
@ -100,7 +100,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -834,7 +834,7 @@ class ActionComm extends CommonObject
if (! empty($elementtype))
{
if ($elementtype == 'project') $sql.= ' AND a.fk_project = '.$fk_element;
else $sql.= " AND a.fk_element = ".$fk_element." AND a.elementtype = '".$elementtype."'";
else $sql.= " AND a.fk_element = ".(int) $fk_element." AND a.elementtype = '".$elementtype."'";
}
if (! empty($filter)) $sql.= $filter;
if ($sortorder && $sortfield) $sql.=$db->order($sortfield, $sortorder);

View File

@ -87,8 +87,8 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel
/* */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'create')
@ -101,7 +101,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
@ -108,7 +108,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -76,9 +76,41 @@ class Commande extends CommonOrder
var $brouillon;
var $cond_reglement_code;
var $fk_account;
/**
* It holds the label of the payment mode. Use it in case translation cannot be found.
* @var string
*/
var $mode_reglement;
/**
* Payment mode id
* @var int
*/
var $mode_reglement_id;
/**
* Payment mode code
* @var string
*/
var $mode_reglement_code;
/**
* Availability delivery time id
* @var int
*/
var $availability_id;
/**
* Availability delivery time code
* @var string
*/
var $availability_code;
/**
* Label of availability delivery time. Use it in case translation cannot be found.
* @var string
*/
var $availability;
var $demand_reason_id;
var $demand_reason_code;
var $address;
@ -1435,7 +1467,7 @@ class Commande extends CommonOrder
$sql.= ", i.libelle as libelle_incoterms";
$sql.= ', p.code as mode_reglement_code, p.libelle as mode_reglement_libelle';
$sql.= ', cr.code as cond_reglement_code, cr.libelle as cond_reglement_libelle, cr.libelle_facture as cond_reglement_libelle_doc';
$sql.= ', ca.code as availability_code';
$sql.= ', ca.code as availability_code, ca.label as availability_label';
$sql.= ', dr.code as demand_reason_code';
$sql.= ' FROM '.MAIN_DB_PREFIX.'commande as c';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_payment_term as cr ON (c.fk_cond_reglement = cr.rowid)';
@ -1492,6 +1524,7 @@ class Commande extends CommonOrder
$this->fk_account = $obj->fk_account;
$this->availability_id = $obj->fk_availability;
$this->availability_code = $obj->availability_code;
$this->availability = $obj->availability_label;
$this->demand_reason_id = $obj->fk_input_reason;
$this->demand_reason_code = $obj->demand_reason_code;
$this->date_livraison = $this->db->jdate($obj->date_livraison);

View File

@ -761,11 +761,12 @@ class Account extends CommonObject
/**
* Delete bank account from database
* Delete bank account from database
*
* @return int <0 if KO, >0 if OK
* @param User $user User deleting
* @return int <0 if KO, >0 if OK
*/
function delete()
function delete($user='')
{
global $conf;
@ -1280,12 +1281,12 @@ class AccountLine extends CommonObject
$nbko++;
}
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid=".$this->rowid;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_class WHERE lineid=".(int) $this->rowid;
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
$result = $this->db->query($sql);
if (! $result) $nbko++;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bank WHERE rowid=".$this->rowid;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bank WHERE rowid=".(int) $this->rowid;
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
$result = $this->db->query($sql);
if (! $result) $nbko++;
@ -1322,7 +1323,7 @@ class AccountLine extends CommonObject
$this->db->begin();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_url WHERE fk_bank=".$this->rowid;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_url WHERE fk_bank=".(int) $this->rowid;
dol_syslog(get_class($this)."::delete_urls", LOG_DEBUG);
$result = $this->db->query($sql);
if (! $result) $nbko++;

View File

@ -99,11 +99,14 @@ if ($action == 'rappro' && $user->rights->banque->consolidate)
if ($action == 'del')
{
$bankline=new AccountLine($db);
$bankline->fetch($_GET["rowid"]);
$result=$bankline->delete($user);
if ($result < 0)
{
dol_print_error($db,$bankline->error);
if ($bankline->fetch($_GET["rowid"]) > 0) {
$result = $bankline->delete($user);
if ($result < 0) {
dol_print_error($db, $bankline->error);
}
} else {
setEventMessage($langs->trans('ErrorRecordNotFound'), 'errors');
}
}

View File

@ -87,9 +87,9 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel
/* */
/* */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'create')
@ -101,9 +101,9 @@ if ($action == 'create')
}
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* */
/* */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))
{

View File

@ -1040,7 +1040,7 @@ class Facture extends CommonInvoice
}
else
{
$this->error='Bill with id '.$rowid.' or ref '.$ref.' not found sql='.$sql;
$this->error='Bill with id '.$rowid.' or ref '.$ref.' not found';
dol_syslog(get_class($this)."::fetch Error ".$this->error, LOG_ERR);
return 0;
}

View File

@ -140,7 +140,82 @@ $max=10;
$langs->load("boxes");
// Last trips
// Last expense report (new module)
if (! empty($conf->holiday->enabled) && $user->rights->holiday->read)
{
$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, x.rowid, x.rowid as ref, x.fk_type, x.date_debut as date_start, x.date_fin as date_end, x.halfday, x.tms as dm, x.statut as status";
$sql.= " FROM ".MAIN_DB_PREFIX."holiday as x, ".MAIN_DB_PREFIX."user as u";
$sql.= " WHERE u.rowid = x.fk_user";
$sql.= " AND x.entity = ".$conf->entity;
if (empty($user->rights->holiday->read_all)) $sql.=' AND x.fk_user IN ('.join(',',$childids).')';
//if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND x.fk_soc = s. rowid AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
//if (!empty($socid)) $sql.= " AND x.fk_soc = ".$socid;
$sql.= $db->order("x.tms","DESC");
$sql.= $db->plimit($max, 0);
$result = $db->query($sql);
if ($result)
{
$var=false;
$num = $db->num_rows($result);
$holidaystatic=new Holiday($db);
$userstatic=new User($db);
$listhalfday=array('morning'=>$langs->trans("Morning"),"afternoon"=>$langs->trans("Afternoon"));
$typeleaves=$holidaystatic->getTypes(1,-1);
$i = 0;
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="3">'.$langs->trans("BoxTitleLastLeaveRequests",min($max,$num)).'</td>';
print '<td>'.$langs->trans("from").'</td>';
print '<td>'.$langs->trans("to").'</td>';
print '<td align="right">'.$langs->trans("DateModificationShort").'</td>';
print '<td width="16">&nbsp;</td>';
print '</tr>';
if ($num)
{
while ($i < $num && $i < $max)
{
$obj = $db->fetch_object($result);
$holidaystatic->id=$obj->rowid;
$holidaystatic->ref=$obj->ref;
$userstatic->id=$obj->uid;
$userstatic->lastname=$obj->lastname;
$userstatic->firstname=$obj->firstname;
print '<tr '.$bc[$var].'>';
print '<td>'.$holidaystatic->getNomUrl(1).'</td>';
print '<td>'.$userstatic->getNomUrl(1).'</td>';
print '<td>'.$typeleaves[$obj->fk_type]['label'].'</td>';
$starthalfday=($obj->halfday == -1 || $obj->halfday == 2)?'afternoon':'morning';
$endhalfday=($obj->halfday == 1 || $obj->halfday == 2)?'morning':'afternoon';
print '<td>'.dol_print_date($obj->date_start,'day').' '.$langs->trans($listhalfday[$endhalfday]);
print '<td>'.dol_print_date($obj->date_end,'day').' '.$langs->trans($listhalfday[$endhalfday]);
print '<td align="right">'.dol_print_date($db->jdate($obj->dm),'day').'</td>';
print '<td>'.$holidaystatic->LibStatut($obj->status,3).'</td>';
print '</tr>';
$var=!$var;
$i++;
}
}
else
{
print '<tr '.$bc[$var].'><td colspan="5">'.$langs->trans("None").'</td></tr>';
}
print '</table><br>';
}
else dol_print_error($db);
}
// Last expense report (old module)
if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
{
$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, d.rowid, d.dated as date, d.tms as dm, d.km, d.fk_statut";
@ -204,6 +279,7 @@ if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
else dol_print_error($db);
}
// Last expense report (new module)
if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire)
{
$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, x.rowid, x.ref, x.date_debut as date, x.tms as dm, x.total_ttc, x.fk_statut as status";

View File

@ -376,7 +376,7 @@ class Paiement extends CommonObject
if (! $notrigger)
{
// Appel des triggers
$result=$this->call_trigger('PAYMENT_DELETE', $user);
$result=$this->call_trigger('PAYMENT_CUSTOMER_DELETE', $user);
if ($result < 0)
{
$this->db->rollback();

View File

@ -108,6 +108,12 @@ if ($typeid) {
$sql .= " AND s.fk_typepayment=".$typeid;
}
//$sql.= " GROUP BY u.rowid, u.lastname, u.firstname, s.rowid, s.fk_user, s.amount, s.label, s.datev, s.fk_typepayment, s.num_payment, pst.code";
$totalnboflines=0;
$result=$db->query($sql);
if ($result)
{
$totalnboflines = $db->num_rows($result);
}
$sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($limit+1,$offset);

View File

@ -119,6 +119,12 @@ if ($typeid) {
$sql .= " AND cs.fk_type=".$typeid;
}
$sql.= " GROUP BY cs.rowid, cs.fk_type, cs.amount, cs.date_ech, cs.libelle, cs.paye, cs.periode, c.libelle";
$totalnboflines=0;
$result=$db->query($sql);
if ($result)
{
$totalnboflines = $db->num_rows($result);
}
$sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($limit+1,$offset);

View File

@ -115,6 +115,12 @@ if ($filtre) {
if ($typeid) {
$sql .= " AND t.fk_typepayment=".$typeid;
}
$totalnboflines=0;
$result=$db->query($sql);
if ($result)
{
$totalnboflines = $db->num_rows($result);
}
$sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($limit+1,$offset);

View File

@ -90,8 +90,8 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel
/* */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'create')
@ -104,7 +104,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -136,17 +136,21 @@ if ($search_contract) {
if (!empty($search_ref_supplier)) {
$sql .= natural_search(array('c.ref_supplier'), $search_ref_supplier);
}
if ($search_sale > 0)
{
$sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
}
if ($sall) {
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
}
if ($search_user > 0) $sql.= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='contrat' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".$search_user;
$sql.= " GROUP BY c.rowid, c.ref, c.datec, c.date_contrat, c.statut, c.ref_supplier, s.nom, s.rowid";
$totalnboflines=0;
$result=$db->query($sql);
if ($result)
{
$totalnboflines = $db->num_rows($result);
}
$sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($conf->liste_limit + 1, $offset);

View File

@ -147,6 +147,12 @@ $filter_date1=dol_mktime(0,0,0,$op1month,$op1day,$op1year);
$filter_date2=dol_mktime(0,0,0,$op2month,$op2day,$op2year);
if (! empty($filter_op1) && $filter_op1 != -1 && $filter_date1 != '') $sql.= " AND date_ouverture_prevue ".$filter_op1." '".$db->idate($filter_date1)."'";
if (! empty($filter_op2) && $filter_op2 != -1 && $filter_date2 != '') $sql.= " AND date_fin_validite ".$filter_op2." '".$db->idate($filter_date2)."'";
$totalnboflines=0;
$result=$db->query($sql);
if ($result)
{
$totalnboflines = $db->num_rows($result);
}
$sql .= $db->order($sortfield,$sortorder);
$sql .= $db->plimit($limit + 1, $offset);

View File

@ -25,6 +25,7 @@
include_once(DOL_DOCUMENT_ROOT."/core/boxes/modules_boxes.php");
require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php");
/**
* Class to manage the box to show last task
*/
@ -36,6 +37,7 @@ class box_task extends ModeleBoxes
//var $depends = array("projet");
var $db;
var $param;
var $enabled = 0; // Disabled because bugged.
var $info_box_head = array();
var $info_box_contents = array();
@ -79,8 +81,8 @@ class box_task extends ModeleBoxes
// list the summary of the orders
if ($user->rights->projet->lire) {
$sql = "SELECT pt.fk_statut, count(pt.rowid) as nb, sum(ptt.task_duration) as durationtot, sum(pt.planned_workload) as plannedtot";
// FIXME fk_statut on a task is not be used. We use the percent. This means this box is useless.
$sql = "SELECT pt.fk_statut, count(DISTINCT pt.rowid) as nb, sum(ptt.task_duration) as durationtot, sum(pt.planned_workload) as plannedtot";
$sql.= " FROM ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."projet_task_time as ptt";
$sql.= " WHERE pt.datec BETWEEN '".$this->db->idate(dol_get_first_day(date("Y"), 1))."' AND '".$this->db->idate(dol_get_last_day(date("Y"), 12))."'";
$sql.= " AND pt.rowid = ptt.fk_task";

View File

@ -66,7 +66,7 @@ class dolprintIPP
*/
function list_jobs($module)
{
global $conf, $db, $bc;
global $conf, $db, $bc, $langs;
include_once DOL_DOCUMENT_ROOT.'/includes/printipp/CupsPrintIPP.php';
$ipp = new CupsPrintIPP();
$ipp->setLog(DOL_DATA_ROOT.'/printipp.log','file',3); // logging very verbose
@ -96,7 +96,8 @@ class dolprintIPP
}
catch(Exception $e)
{
print $e->getMessage();
setEventMessage('[printipp] '.$langs->trans('CoreErrorMessage'), 'errors');
dol_syslog($e->getMessage(), LOG_ERR);
}
print '<table width="100%" class="noborder">';

View File

@ -1016,6 +1016,7 @@ class Form
// Do not use textempty = ' ' or '&nbsp;' here, or search on key will search on ' key'.
//$textifempty=' ';
//if (! empty($conf->use_javascript_ajax) || $forcecombo) $textifempty='';
if (! empty($conf->global->COMPANY_USE_SEARCH_TO_SELECT)) $textifempty.=$langs->trans("NoFilter");
if ($showempty) $out.= '<option value="-1">'.$textifempty.'</option>'."\n";
$num = $this->db->num_rows($resql);
@ -1099,7 +1100,7 @@ class Form
$sql = "SELECT re.rowid, re.amount_ht, re.amount_tva, re.amount_ttc,";
$sql.= " re.description, re.fk_facture_source";
$sql.= " FROM ".MAIN_DB_PREFIX ."societe_remise_except as re";
$sql.= " WHERE fk_soc = ".$socid;
$sql.= " WHERE fk_soc = ".(int) $socid;
if ($filter) $sql.= " AND ".$filter;
$sql.= " ORDER BY re.description ASC";

View File

@ -38,7 +38,7 @@ class DoliDBMysql extends DoliDB
//! Database label
const LABEL='MySQL';
//! Version min database
const VERSIONMIN='4.1.0';
const VERSIONMIN='5.0.3';
/** @var resource Resultset of last query */
private $_results;

View File

@ -38,7 +38,7 @@ class DoliDBMysqli extends DoliDB
//! Database label
const LABEL='MySQL or MariaDB';
//! Version min database
const VERSIONMIN='4.1.3';
const VERSIONMIN='5.0.3';
/** @var mysqli_result Resultset of last query */
private $_results;

View File

@ -1034,7 +1034,7 @@ function price2numjs(amount) {
print "var dec='" . $dec . "'; var thousand='" . $thousand . "';\n"; // Set var in javascript
?>
var main_max_dec_shown = <?php echo $conf->global->MAIN_MAX_DECIMALS_SHOWN; ?>;
var main_max_dec_shown = <?php echo str_replace('.', '', $conf->global->MAIN_MAX_DECIMALS_SHOWN); ?>;
var main_rounding_unit = <?php echo $conf->global->MAIN_MAX_DECIMALS_UNIT; ?>;
var main_rounding_tot = <?php echo $conf->global->MAIN_MAX_DECIMALS_TOT; ?>;

View File

@ -2959,16 +2959,18 @@ function load_fiche_titre($titre, $mesg='', $picto='title_generic.png', $pictois
* @param int $pictoisfullpath 1=Icon name is a full absolute url of image
* @param string $morehtml More html to show
* @param string $morecss More css to the table
* @param int $limit Limit ofnumber of lines on each page
* @return void
*/
function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $center='', $num=-1, $totalnboflines=0, $picto='title_generic.png', $pictoisfullpath=0, $morehtml='', $morecss='')
function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $center='', $num=-1, $totalnboflines=0, $picto='title_generic.png', $pictoisfullpath=0, $morehtml='', $morecss='', $limit=0)
{
global $conf,$langs;
if ($picto == 'setup') $picto='title_setup.png';
if (($conf->browser->name == 'ie') && $picto=='title_generic.png') $picto='title.gif';
if (($num > $conf->liste_limit) || ($num == -1))
if ($limit < 1) $limit = $conf->liste_limit;
if (($num > $limit) || ($num == -1))
{
$nextpage = 1;
}
@ -2997,13 +2999,13 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
if ($sortorder) $options .= "&amp;sortorder=".$sortorder;
// Show navigation bar
$pagelist = '';
if ($page > 0 || $num > $conf->liste_limit)
if ($page > 0 || $num > $limit)
{
if ($totalnboflines) // If we know total nb of lines
{
$maxnbofpage=(empty($conf->dol_optimize_smallscreen) ? 6 : 3); // nb before and after selected page + ... + first or last
$nbpages=ceil($totalnboflines/$conf->liste_limit);
$nbpages=ceil($totalnboflines/$limit);
$cpt=($page-$maxnbofpage);
if ($cpt < 0) { $cpt=0; }

View File

@ -828,7 +828,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
if (! empty($conf->global->SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE))
{
$langs->load("supplier");
$newmenu->add("/fourn/commande/list.php?leftmenu=orders&amp;search_status=5", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');
$newmenu->add("/fourn/commande/list.php?leftmenu=orders&amp;search_status=5&amp;billed=0", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');
// if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire);
}
}

View File

@ -560,7 +560,7 @@ class Expedition extends CommonObject
else
{
dol_syslog(get_class($this).'::Fetch no expedition found', LOG_ERR);
$this->error='Delivery with id '.$id.' not found sql='.$sql;
$this->error='Delivery with id '.$id.' not found';
return 0;
}
}

View File

@ -89,8 +89,8 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel
/* */
/* Creation of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'create')
@ -103,7 +103,7 @@ if ($action == 'create')
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* Edition of an optional field */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))

View File

@ -123,6 +123,12 @@ if ($socid)
if ($sall) {
$sql .= natural_search(array_keys($fieldstosearchall), $sall);
}
$totalnboflines=0;
$result=$db->query($sql);
if ($result)
{
$totalnboflines = $db->num_rows($result);
}
$sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($limit+1, $offset);
//print $sql;

View File

@ -122,7 +122,9 @@ class ProductFournisseur extends Product
function remove_product_fournisseur_price($rowid)
{
global $conf, $user;
$error=0;
$this->db->begin();
// Call trigger
@ -289,7 +291,7 @@ class ProductFournisseur extends Product
$error++;
}
if (! $error && !empty($cong->global->PRODUCT_PRICE_SUPPLIER_NO_LOG))
if (! $error && !empty($conf->global->PRODUCT_PRICE_SUPPLIER_NO_LOG))
{
// Add record into log table
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_fournisseur_price_log(";
@ -353,7 +355,7 @@ class ProductFournisseur extends Product
function fetch_product_fournisseur_price($rowid, $ignore_expression = 0)
{
$sql = "SELECT pfp.rowid, pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability,";
$sql.= " pfp.fk_soc, pfp.ref_fourn, pfp.fk_product, pfp.charges, pfp.cost_price, pfp.unitcharges, pfp.fk_supplier_price_expression, pfp.delivery_time_days"; // , pfp.recuperableonly as fourn_tva_npr"; FIXME this field not exist in llx_product_fournisseur_price
$sql.= " pfp.fk_soc, pfp.ref_fourn, pfp.fk_product, pfp.charges, pfp.unitcharges, pfp.fk_supplier_price_expression, pfp.delivery_time_days"; // , pfp.recuperableonly as fourn_tva_npr"; FIXME this field not exist in llx_product_fournisseur_price
$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
$sql.= " WHERE pfp.rowid = ".$rowid;

View File

@ -251,6 +251,8 @@ class PaiementFourn extends Paiement
*/
function delete($notrigger=0)
{
global $conf, $user, $langs;
$bank_line_id = $this->bank_line;
$this->db->begin();
@ -319,6 +321,19 @@ class PaiementFourn extends Paiement
return -4;
}
}
if (! $notrigger)
{
// Appel des triggers
$result=$this->call_trigger('PAYMENT_SUPPLIER_DELETE', $user);
if ($result < 0)
{
$this->db->rollback();
return -1;
}
// Fin appel triggers
}
$this->db->commit();
return 1;
}

View File

@ -109,7 +109,7 @@ if ($sref)
}
if ($snom)
{
$sql .= natural_search('s.nom', $snom);
$sql .= natural_search('p.label', $snom);
}
if($catid)
{

View File

@ -84,7 +84,7 @@ if ($action == 'create')
$description = trim(GETPOST('description'));
$userID = GETPOST('userID');
// If no start date
// If no type
if ($type <= 0)
{
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors');
@ -136,12 +136,6 @@ if ($action == 'create')
$result = 0;
if ($type < 1)
{
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Type")), null, 'errors');
$error++;
}
if (! $error)
{
$cp->fk_user = $userid;
@ -769,7 +763,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
dol_fiche_head();
$out='';
$typeleaves=$cp->getTypes(1,1);
$typeleaves=$cp->getTypes(1,-1);
foreach($typeleaves as $key => $val)
{
$nb_type = $cp->getCPforUser($user->id, $val['rowid']);
@ -806,7 +800,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
print '<tr>';
print '<td class="fieldrequired">'.$langs->trans("Type").'</td>';
print '<td>';
$typeleaves=$cp->getTypes(1,1);
$typeleaves=$cp->getTypes(1,-1);
$arraytypeleaves=array();
foreach($typeleaves as $key => $val)
{
@ -1019,7 +1013,7 @@ else
print '<tr>';
print '<td>'.$langs->trans("Type").'</td>';
print '<td>';
$typeleaves=$cp->getTypes(1,1);
$typeleaves=$cp->getTypes(1,-1);
print $typeleaves[$cp->fk_type]['label'];
print '</td>';
print '</tr>';

View File

@ -732,6 +732,16 @@ class Holiday extends CommonObject
if ($statut == 4) return img_picto($langs->trans('CancelCP'),'statut5').' '.$langs->trans('CancelCP');
if ($statut == 5) return img_picto($langs->trans('RefuseCP'),'statut5').' '.$langs->trans('RefuseCP');
}
if ($mode == 3)
{
$pictoapproved='statut6';
if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4';
if ($statut == 1) return img_picto($langs->trans('DraftCP'),'statut0');
if ($statut == 2) return img_picto($langs->trans('ToReviewCP'),'statut1');
if ($statut == 3) return img_picto($langs->trans('ApprovedCP'),$pictoapproved);
if ($statut == 4) return img_picto($langs->trans('CancelCP'),'statut5');
if ($statut == 5) return img_picto($langs->trans('RefuseCP'),'statut5');
}
if ($mode == 5)
{
$pictoapproved='statut6';
@ -1795,7 +1805,7 @@ class Holiday extends CommonObject
* Return array with list of types
*
* @param int $active Status of type
* @param int $affect Filter on affect
* @param int $affect Filter on affect (a request will change sold or not)
* @return array Return array with list of types
*/
function getTypes($active=-1, $affect=-1)

View File

@ -39,6 +39,7 @@ $langs->load('holidays');
// Protection if external user
if ($user->societe_id > 0) accessforbidden();
$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit;
$sortfield = GETPOST("sortfield",'alpha');
$sortorder = GETPOST("sortorder",'alpha');
$page = GETPOST("page",'int');
@ -47,7 +48,7 @@ $page = $page == -1 ? 0 : $page;
if (! $sortfield) $sortfield="cp.rowid";
if (! $sortorder) $sortorder="DESC";
$offset = $conf->liste_limit * $page ;
$offset = $limit * $page;
$pageprev = $page - 1;
$pagenext = $page + 1;
@ -102,6 +103,9 @@ $holiday = new Holiday($db);
$holidaystatic=new Holiday($db);
$fuser = new User($db);
$childids = $user->getAllChildIds();
$childids[]=$user->id;
// Update sold
$result = $holiday->updateBalance();
@ -111,7 +115,7 @@ $filter='';
llxHeader(array(),$langs->trans('CPTitreMenu'));
$order = $db->order($sortfield,$sortorder).$db->plimit($conf->liste_limit + 1, $offset);
$order = $db->order($sortfield,$sortorder).$db->plimit($limit + 1, $offset);
// WHERE
if(!empty($search_ref))
@ -184,10 +188,8 @@ if (!empty($sall))
$filter.= natural_search(array_keys($fieldstosearchall), $sall);
}
if (empty($user->rights->holiday->read_all)) $filter.=' AND cp.fk_user IN ('.join(',',$childids).')';
/*************************************
* Fin des filtres de recherche
*************************************/
// Récupération de l'ID de l'utilisateur
$user_id = $user->id;
@ -200,7 +202,7 @@ if ($id > 0)
$user_id = $fuser->id;
}
// Récupération des congés payés de l'utilisateur ou de tous les users
if (empty($user->rights->holiday->write_all) || $id > 0)
if (empty($user->rights->holiday->read_all) || $id > 0)
{
$holiday_payes = $holiday->fetchByUser($user_id,$order,$filter); // Load array $holiday->holiday
}
@ -220,7 +222,8 @@ if ($holiday_payes == '-1')
// Show table of vacations
$var=true; $num = count($holiday->holiday);
$var=true;
$num = count($holiday->holiday);
$form = new Form($db);
$formother = new FormOther($db);
@ -242,7 +245,9 @@ if ($id > 0)
}
else
{
print_barre_liste($langs->trans("ListeCP"), $page, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, "", $num, 0, 'title_hrm.png');
//print $num;
//print count($holiday->holiday);
print_barre_liste($langs->trans("ListeCP"), $page, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, "", $num, count($holiday->holiday), 'title_hrm.png', 0, '', '', $limit);
dol_fiche_head('');
}

View File

@ -29,13 +29,13 @@ class FPDF_TPL extends FPDF {
* @var int
*/
var $tpl = 0;
/**
* "In Template"-Flag
* @var boolean
*/
var $_intpl = false;
/**
* Nameprefix of Templates used in Resources-Dictonary
* @var string A String defining the Prefix used as Template-Object-Names. Have to beginn with an /
@ -47,14 +47,14 @@ class FPDF_TPL extends FPDF {
* @var array
*/
var $_res = array();
/**
* Last used Template data
*
* @var array
*/
var $lastUsedTemplateData = array();
/**
* Start a Template
*
@ -74,11 +74,11 @@ class FPDF_TPL extends FPDF {
* @return int The ID of new created Template
*/
function beginTemplate($x = null, $y = null, $w = null, $h = null) {
if (is_subclass_of($this, 'TCPDF')) {
$this->Error('This method is only usable with FPDF. Use TCPDF methods startTemplate() instead.');
return;
}
if (is_subclass_of($this, 'TCPDF')) {
$this->Error('This method is only usable with FPDF. Use TCPDF methods startTemplate() instead.');
return;
}
if ($this->page <= 0)
$this->error("You have to add a page to fpdf first!");
@ -116,7 +116,7 @@ class FPDF_TPL extends FPDF {
);
$this->SetAutoPageBreak(false);
// Define own high and width to calculate possitions correct
$this->h = $h;
$this->w = $w;
@ -127,14 +127,14 @@ class FPDF_TPL extends FPDF {
if ($this->CurrentFont) {
$fontkey = $this->FontFamily . $this->FontStyle;
$this->_res['tpl'][$this->tpl]['fonts'][$fontkey] =& $this->fonts[$fontkey];
$this->_out(sprintf('BT /F%d %.2f Tf ET', $this->CurrentFont['i'], $this->FontSizePt));
$this->_res['tpl'][$this->tpl]['fonts'][$fontkey] =& $this->fonts[$fontkey];
$this->_out(sprintf('BT /F%d %.2f Tf ET', $this->CurrentFont['i'], $this->FontSizePt));
}
return $this->tpl;
}
/**
* End Template
*
@ -143,13 +143,13 @@ class FPDF_TPL extends FPDF {
* @return mixed If a template is opened, the ID is returned. If not a false is returned.
*/
function endTemplate() {
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::endTemplate'), $args);
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::endTemplate'), $args);
}
if ($this->_intpl) {
$this->_intpl = false;
$this->_intpl = false;
$tpl =& $this->tpls[$this->tpl];
$this->SetXY($tpl['o_x'], $tpl['o_y']);
$this->tMargin = $tpl['o_tMargin'];
@ -158,22 +158,22 @@ class FPDF_TPL extends FPDF {
$this->h = $tpl['o_h'];
$this->w = $tpl['o_w'];
$this->SetAutoPageBreak($tpl['o_AutoPageBreak'], $tpl['o_bMargin']);
$this->FontFamily = $tpl['o_FontFamily'];
$this->FontStyle = $tpl['o_FontStyle'];
$this->FontSizePt = $tpl['o_FontSizePt'];
$this->FontSize = $tpl['o_FontSize'];
$fontkey = $this->FontFamily . $this->FontStyle;
if ($fontkey)
$this->CurrentFont =& $this->fonts[$fontkey];
$this->FontStyle = $tpl['o_FontStyle'];
$this->FontSizePt = $tpl['o_FontSizePt'];
$this->FontSize = $tpl['o_FontSize'];
$fontkey = $this->FontFamily . $this->FontStyle;
if ($fontkey)
$this->CurrentFont =& $this->fonts[$fontkey];
return $this->tpl;
} else {
return false;
}
}
/**
* Use a Template in current Page or other Template
*
@ -193,31 +193,31 @@ class FPDF_TPL extends FPDF {
*/
function useTemplate($tplidx, $_x = null, $_y = null, $_w = 0, $_h = 0) {
if ($this->page <= 0)
$this->error('You have to add a page first!');
$this->error('You have to add a page first!');
if (!isset($this->tpls[$tplidx]))
$this->error('Template does not exist!');
if ($this->_intpl) {
$this->_res['tpl'][$this->tpl]['tpls'][$tplidx] =& $this->tpls[$tplidx];
}
$tpl =& $this->tpls[$tplidx];
$w = $tpl['w'];
$h = $tpl['h'];
if ($_x == null)
$_x = 0;
if ($_y == null)
$_y = 0;
$_x += $tpl['x'];
$_y += $tpl['y'];
$wh = $this->getTemplateSize($tplidx, $_w, $_h);
$_w = $wh['w'];
$_h = $wh['h'];
$tData = array(
'x' => $this->x,
'y' => $this->y,
@ -229,15 +229,15 @@ class FPDF_TPL extends FPDF {
'ty' => ($this->h - $_y - $_h),
'lty' => ($this->h - $_y - $_h) - ($this->h - $h) * ($_h / $h)
);
$this->_out(sprintf('q %.4F 0 0 %.4F %.4F %.4F cm', $tData['scaleX'], $tData['scaleY'], $tData['tx'] * $this->k, $tData['ty'] * $this->k)); // Translate
$this->_out(sprintf('q %.4F 0 0 %.4F %.4F %.4F cm', $tData['scaleX'], $tData['scaleY'], $tData['tx'] * $this->k, $tData['ty'] * $this->k)); // Translate
$this->_out(sprintf('%s%d Do Q', $this->tplprefix, $tplidx));
$this->lastUsedTemplateData = $tData;
return array('w' => $_w, 'h' => $_h);
}
/**
* Get The calculated Size of a Template
*
@ -255,77 +255,77 @@ class FPDF_TPL extends FPDF {
$tpl =& $this->tpls[$tplidx];
$w = $tpl['w'];
$h = $tpl['h'];
if ($_w == 0 and $_h == 0) {
$_w = $w;
$_h = $h;
}
if($_w == 0)
$_w = $_h * $w / $h;
if($_h == 0)
$_h = $_w * $h / $w;
if($_w == 0)
$_w = $_h * $w / $h;
if($_h == 0)
$_h = $_w * $h / $w;
return array("w" => $_w, "h" => $_h);
}
/**
* See FPDF/TCPDF-Documentation ;-)
*/
public function SetFont($family, $style = '', $size = 0) {
public function SetFont($family, $style = '', $size = 0, $fontfile='', $subset='default', $out=true) {
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::SetFont'), $args);
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::SetFont'), $args);
}
parent::SetFont($family, $style, $size);
$fontkey = $this->FontFamily . $this->FontStyle;
if ($this->_intpl) {
$this->_res['tpl'][$this->tpl]['fonts'][$fontkey] =& $this->fonts[$fontkey];
} else {
$this->_res['page'][$this->page]['fonts'][$fontkey] =& $this->fonts[$fontkey];
}
}
/**
* See FPDF/TCPDF-Documentation ;-)
*/
function Image(
$file, $x = '', $y = '', $w = 0, $h = 0, $type = '', $link = '', $align = '', $resize = false,
$dpi = 300, $palign = '', $ismask = false, $imgmask = false, $border = 0, $fitbox = false,
$hidden = false, $fitonpage = false, $alt = false, $altimgs = array()
$file, $x = '', $y = '', $w = 0, $h = 0, $type = '', $link = '', $align = '', $resize = false,
$dpi = 300, $palign = '', $ismask = false, $imgmask = false, $border = 0, $fitbox = false,
$hidden = false, $fitonpage = false, $alt = false, $altimgs = array()
) {
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::Image'), $args);
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::Image'), $args);
}
$ret = parent::Image($file, $x, $y, $w, $h, $type, $link);
if ($this->_intpl) {
$this->_res['tpl'][$this->tpl]['images'][$file] =& $this->images[$file];
} else {
$this->_res['page'][$this->page]['images'][$file] =& $this->images[$file];
}
return $ret;
}
/**
* See FPDF-Documentation ;-)
*
* AddPage is not available when you're "in" a template.
*/
function AddPage($orientation = '', $format = '', $keepmargins = false, $tocpage = false) {
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::AddPage'), $args);
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::AddPage'), $args);
}
if ($this->_intpl)
$this->Error('Adding pages in templates isn\'t possible!');
parent::AddPage($orientation, $format);
}
@ -334,50 +334,50 @@ class FPDF_TPL extends FPDF {
*/
function Link($x, $y, $w, $h, $link, $spaces = 0) {
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::Link'), $args);
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::Link'), $args);
}
if ($this->_intpl)
$this->Error('Using links in templates aren\'t possible!');
parent::Link($x, $y, $w, $h, $link);
}
function AddLink() {
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::AddLink'), $args);
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::AddLink'), $args);
}
if ($this->_intpl)
$this->Error('Adding links in templates aren\'t possible!');
return parent::AddLink();
}
function SetLink($link, $y = 0, $page = -1) {
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::SetLink'), $args);
if (is_subclass_of($this, 'TCPDF')) {
$args = func_get_args();
return call_user_func_array(array($this, 'TCPDF::SetLink'), $args);
}
if ($this->_intpl)
$this->Error('Setting links in templates aren\'t possible!');
parent::SetLink($link, $y, $page);
}
/**
* Private Method that writes the form xobjects
*/
function _putformxobjects() {
$filter=($this->compress) ? '/Filter /FlateDecode ' : '';
reset($this->tpls);
reset($this->tpls);
foreach($this->tpls AS $tplidx => $tpl) {
$p=($this->compress) ? gzcompress($tpl['buffer']) : $tpl['buffer'];
$this->_newobj();
$this->tpls[$tplidx]['n'] = $this->n;
$this->_out('<<'.$filter.'/Type /XObject');
$this->_newobj();
$this->tpls[$tplidx]['n'] = $this->n;
$this->_out('<<'.$filter.'/Type /XObject');
$this->_out('/Subtype /Form');
$this->_out('/FormType 1');
$this->_out(sprintf('/BBox [%.2F %.2F %.2F %.2F]',
@ -390,44 +390,44 @@ class FPDF_TPL extends FPDF {
// ury
($tpl['h'] - $tpl['y']) * $this->k
));
if ($tpl['x'] != 0 || $tpl['y'] != 0) {
$this->_out(sprintf('/Matrix [1 0 0 1 %.5F %.5F]',
-$tpl['x'] * $this->k * 2, $tpl['y'] * $this->k * 2
));
}
$this->_out('/Resources ');
$this->_out('<</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
if (isset($this->_res['tpl'][$tplidx]['fonts']) && count($this->_res['tpl'][$tplidx]['fonts'])) {
$this->_out('/Font <<');
if (isset($this->_res['tpl'][$tplidx]['fonts']) && count($this->_res['tpl'][$tplidx]['fonts'])) {
$this->_out('/Font <<');
foreach($this->_res['tpl'][$tplidx]['fonts'] as $font)
$this->_out('/F' . $font['i'] . ' ' . $font['n'] . ' 0 R');
$this->_out('>>');
$this->_out('/F' . $font['i'] . ' ' . $font['n'] . ' 0 R');
$this->_out('>>');
}
if(isset($this->_res['tpl'][$tplidx]['images']) && count($this->_res['tpl'][$tplidx]['images']) ||
isset($this->_res['tpl'][$tplidx]['tpls']) && count($this->_res['tpl'][$tplidx]['tpls']))
{
if(isset($this->_res['tpl'][$tplidx]['images']) && count($this->_res['tpl'][$tplidx]['images']) ||
isset($this->_res['tpl'][$tplidx]['tpls']) && count($this->_res['tpl'][$tplidx]['tpls']))
{
$this->_out('/XObject <<');
if (isset($this->_res['tpl'][$tplidx]['images']) && count($this->_res['tpl'][$tplidx]['images'])) {
foreach($this->_res['tpl'][$tplidx]['images'] as $image)
$this->_out('/I' . $image['i'] . ' ' . $image['n'] . ' 0 R');
$this->_out('/I' . $image['i'] . ' ' . $image['n'] . ' 0 R');
}
if (isset($this->_res['tpl'][$tplidx]['tpls']) && count($this->_res['tpl'][$tplidx]['tpls'])) {
foreach($this->_res['tpl'][$tplidx]['tpls'] as $i => $tpl)
$this->_out($this->tplprefix . $i . ' ' . $tpl['n'] . ' 0 R');
}
$this->_out('>>');
}
$this->_out('>>');
$this->_out('/Length ' . strlen($p) . ' >>');
$this->_putstream($p);
$this->_out('endobj');
}
$this->_out('>>');
$this->_out('/Length ' . strlen($p) . ' >>');
$this->_putstream($p);
$this->_out('endobj');
}
}
/**
* Overwritten to add _putformxobjects() after _putimages()
*
@ -436,10 +436,10 @@ class FPDF_TPL extends FPDF {
parent::_putimages();
$this->_putformxobjects();
}
function _putxobjectdict() {
parent::_putxobjectdict();
if (count($this->tpls)) {
foreach($this->tpls as $tplidx => $tpl) {
$this->_out(sprintf('%s%d %d 0 R', $this->tplprefix, $tplidx, $tpl['n']));
@ -457,4 +457,4 @@ class FPDF_TPL extends FPDF {
parent::_out($s);
}
}
}
}

View File

@ -571,5 +571,7 @@ insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays
insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4108, 'Mitarbeitervorsorgekasse', 1,1,'TAXATMVK' ,'41');
insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4109, 'Familienlastenausgleichsfond', 1,1,'TAXATFLAF' ,'41');
ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN doc_ref varchar(255) NOT NULL;
ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN doc_ref varchar(300) NOT NULL;
ALTER TABLE llx_holiday ADD COLUMN tms timestamp;
ALTER TABLE llx_holiday ADD COLUMN entity integer DEFAULT 1 NOT NULL;

View File

@ -22,7 +22,7 @@ CREATE TABLE llx_accounting_bookkeeping
rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
doc_date date NOT NULL,
doc_type varchar(30) NOT NULL, -- facture_client/reglement_client/facture_fournisseur/reglement_fournisseur
doc_ref varchar(255) NOT NULL, -- facture_client/reglement_client/... reference number
doc_ref varchar(300) NOT NULL, -- facture_client/reglement_client/... reference number
fk_doc integer NOT NULL, -- facture_client/reglement_client/... rowid
fk_docdet integer NOT NULL, -- facture_client/reglement_client/... line rowid
code_tiers varchar(24), -- code tiers

View File

@ -19,6 +19,7 @@
CREATE TABLE llx_holiday
(
rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
entity integer DEFAULT 1 NOT NULL, -- Multi company id
fk_user integer NOT NULL,
fk_user_create integer,
fk_type integer NOT NULL,
@ -26,7 +27,7 @@ date_create DATETIME NOT NULL,
description VARCHAR( 255 ) NOT NULL,
date_debut DATE NOT NULL,
date_fin DATE NOT NULL,
halfday integer DEFAULT 0,
halfday integer DEFAULT 0, -- 0=start morning and end afternoon, -1=start afternoon end afternoon, 1=start morning and end morning, 2=start afternoon and end morning
statut integer NOT NULL DEFAULT '1',
fk_validator integer NOT NULL,
date_valid DATETIME DEFAULT NULL,
@ -37,6 +38,7 @@ date_cancel DATETIME DEFAULT NULL,
fk_user_cancel integer DEFAULT NULL,
detail_refuse varchar( 250 ) DEFAULT NULL,
note_private text,
note_public text
note_public text,
tms timestamp
)
ENGINE=innodb;

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting accoun
FicheVentilation=Breakdown card
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Възникна грешка, вие не мо
FicheVentilation=Breakdown card
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting accoun
FicheVentilation=Breakdown card
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting accoun
FicheVentilation=Breakdown card
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Error, no pots eliminar aquest compte comptable
FicheVentilation=Desglossament de targetes
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -362,7 +362,7 @@ HideAnyVATInformationOnPDF=Amagar tota la informació relacionada amb l'IVA en l
HideDescOnPDF=Amagar descripció dels productes en la generació dels PDF
HideRefOnPDF=Amagar referència dels productes en la generació dels PDF
HideDetailsOnPDF=Amagar detalls de les línies de productes en la generació dels PDF
PlaceCustomerAddressToIsoLocation=Use french standard position (La Posteà for customer address position
PlaceCustomerAddressToIsoLocation=Utilitza la posició estàndar francesa (La Posteà per posició d'adresses de client
Library=Llibreria
UrlGenerationParameters=Seguretat de les URL
SecurityTokenIsUnique=Fer servir un paràmetre securekey únic per a cada URL?
@ -393,8 +393,8 @@ ExtrafieldLink=Enllaç a un objecte
ExtrafieldParamHelpselect=La llista ha de ser en forma clau, valor<br><br> per exemple : <br>1,text1<br>2,text2<br>3,text3<br>...
ExtrafieldParamHelpcheckbox=La llista ha de ser en forma clau, valor<br><br> per exemple : <br>1,text1<br>2,text2<br>3,text3<br>...
ExtrafieldParamHelpradio=La llista ha de ser en forma clau, valor<br><br> per exemple : <br>1,text1<br>2,text2<br>3,text3<br>...
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
ExtrafieldParamHelpchkbxlst=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
ExtrafieldParamHelpsellist=La llista de paràmetres ve d'una taula<br>Sintaxi : table_name:label_field:id_field::filter<br>Exemple : c_typent:libelle:id::filter<br><br>filtre pot ser una prova simple (p.ex, actiu=1) per mostrar només el valor actiu<br>També pots utilitzar $ID$ en filtres que son el ID actual de l'objecte seleccionat<br>Per fer un SELECT en un filtre utilitza $SEL$<br>si vols filtrar camps extra utilitza la sintaxi extra.fieldcode=... (on el codi del camp és el codi del camp extra)<br><br>Per tenir la llista en funció d'un altre:<br>c_typent:libelle:id:parent_list_code|parent_column:filter
ExtrafieldParamHelpchkbxlst=La llista de paràmetres ve d'una taula<br>Sintaxi : table_name:label_field:id_field::filter<br>Exemple : c_typent:libelle:id::filter<br><br>filtre pot ser una prova simple (p.ex, actiu=1) per mostrar només el valor actiu<br>També pots utilitzar $ID$ en filtres que son el ID actual de l'objecte seleccionat<br>Per fer un SELECT en un filtre utilitza $SEL$<br>si vols filtrar camps extra utilitza la sintaxi extra.fieldcode=... (on el codi del camp és el codi del camp extra)<br><br>Per tenir la llista en funció d'un altre:<br>c_typent:libelle:id:parent_list_code|parent_column:filter
ExtrafieldParamHelplink=Els paràmetres han de ser Nom del Objecte:Url de la Clase<br>Sintàxi: Nom Object:Url Clase<br>Exemple: Societe:societe/class/societe.class.php
LibraryToBuildPDF=Llibreria usada per a la creació d'arxius PDF
WarningUsingFPDF=Atenció: El seu arxiu <b>conf.php</b> conté la directiva <b>dolibarr_pdf_force_fpdf=1</b>. Això fa que s'usi la llibreria FPDF per generar els seus arxius PDF. Aquesta llibreria és antiga i no cobreix algunes funcionalitats (Unicode, transparència d'imatges, idiomes ciríl · lics, àrabs o asiàtics, etc.), Pel que pot tenir problemes en la generació dels PDF.<br> Per resoldre-ho, i disposar d'un suport complet de PDF, pot descarregar la <a href="http://www.tcpdf.org/" target="_blank"> llibreria TCPDF </a>, i a continuació comentar o eliminar la línia <b>$dolibarr_pdf_force_fpdf=1</b>, i afegir al seu lloc <b>$dolibarr_lib_TCPDF_PATH='ruta_a_TCPDF'</b>
@ -1220,7 +1220,7 @@ ShippableOrderIconInList=Afegir una icona en el llistat de comandes que indica s
BANK_ASK_PAYMENT_BANK_DURING_ORDER=Preguntar pel compte bancari a l'utilitzar la comanda
##### Clicktodial #####
ClickToDialSetup=Configuració del mòdul Click To Dial
ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with your clicktodial login (defined on your user card)<br><b>__PASS__</b> that will be replaced with your clicktodial password (defined on your user card).
ClickToDialUrlDesc=Url executada quan es fa clic en un picto de telèfon. En la URL pots utilitzar etiquetes<br><b>__PHONETO__</b> que seran substituides amb el número de telèfon de la persona a trucar<br><b>__PHONEFROM__</b> que serà substituit pel número de telèfon de la persona que truca (el teu)<br><b>__LOGIN__</b> que serà substituit amb el teu usuari de clicktodial (definit en la teva fitxa d'usuari)<br><b>__PASS__</b> que serà substituit amb el teu password de clicktodial (definit en la teva fitxa d'usuari).
##### Bookmark4u #####
Bookmark4uSetup=Configuració del mòdul Bookmark4u
##### Interventions #####
@ -1562,7 +1562,7 @@ AGENDA_DEFAULT_VIEW=Establir la pestanya per defecte al seleccionar el menú Age
##### ClickToDial #####
ClickToDialDesc=Aquest mòdul permet afegir una icona després del número de telèfon de contactes Dolibarr. Un clic en aquesta icona, truca a un servidor amb un URL que s'indica a continuació. Això pot ser usat per anomenar al sistema centre de Dolibarr que pot trucar al número de telèfon en un sistema SIP, per exemple.
ClickToDialUseTelLink=Utilitzar sols l'enllaç "tel:" als números de telèfon
ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
ClickToDialUseTelLinkDesc=Utilitza aquest mètode si els teus usuaris tenen un softphone o una interfície de software instal·lat en el mateix ordinador del navegador, i et truca quan fas clic en un enllaç del navegador que comença amb "tel:". Si necessites una solució amb un servidor complet (sense necessitat de instal·lació de programari en local), hauries de posar "No" i omplir el següent camp.
##### Point Of Sales (CashDesk) #####
CashDesk=TPV
CashDeskSetup=Mòdul de configuració Terminal Punt de Venda
@ -1704,4 +1704,4 @@ TitleExampleForMajorRelease=Exemple de missatge que es pot utilitzar per anuncia
TitleExampleForMaintenanceRelease=Exemple de missatge que es pot utilitzar per anunciar aquesta actualització de manteniment (ets lliure d'utilitzar-ho a les teves webs)
ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s està disponible. La versió %s és una versió principal amb un munt de noves característiques per als usuaris i desenvolupadors. Es pot descarregar des de la secció de descàrregues del portal http://www.dolibarr.org (subdirectori de versions estables). Pots llegir el <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> per veure la llista completa dels canvis.
ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s està disponible. La versió %s és una versió de manteniment que només conté correcció d'errors. Recomanem a tothom que utilitzi una versió anterior que s'actualitzi a aquesta. Com qualsevol versió de manteniment, no hi ha noves característiques ni canvis d'estructures de dades en aquesta versió. Es pot descarregar des de la secció de descàrregues del portal http://www.dolibarr.org (subdirectori de versions estables). Pots llegir el <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> per veure la llista completa dels canvis.
MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
MultiPriceRuleDesc=Quan l'opció "Varis nivells de preus per producte/servei" està activada, pots definir diferents preus (un preu per nivell) per cada producte. Per estalviar temps, pots entrar una regla per tenir preu per cada nivell autocalculat d'acord al preu del primer nivell, així només hauràs d'introduir el preu del primer nivell de cada producte. Aquesta pàgina està aqui per estalviar temps i pot ser útil només si els teus preus per cada nivell son relatius al primer nivell. Pots ignorar aquesta pàgina en la majoria dels casos.

View File

@ -5,8 +5,8 @@ PrinterDeleted=Impressora %s esborrada
TestSentToPrinter=Prova enviada a la impressora %s
ReceiptPrinterDesc=Configuració de impressores
ReceiptPrinterTemplateDesc=Configuració de plantilles
ReceiptPrinterTypeDesc=Description of Receipt Printer's type
ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile
ReceiptPrinterTypeDesc=Descripció del tipus d'impresora de tiquets
ReceiptPrinterProfileDesc=Descripció del perfil d'impresora de tiquets
ListPrinters=Llista de impressores
SetupReceiptTemplate=Configuració de plantilla
CONNECTOR_DUMMY=Impressora de proves
@ -22,7 +22,7 @@ PROFILE_SIMPLE=Perfil simpre
PROFILE_EPOSTEP=Perfil Epos Tep
PROFILE_P822D=Perfil P822D
PROFILE_STAR=Perfil Star
PROFILE_DEFAULT_HELP=Default Profile suitable for Epson printers
PROFILE_DEFAULT_HELP=Perfil per defecte per a les impresores Epson
PROFILE_SIMPLE_HELP=Perfil simple sense gràfics
PROFILE_EPOSTEP_HELP=Ajuda del perfil Epos Tep
PROFILE_P822D_HELP=Perfil P822D sense gràfics
@ -49,7 +49,7 @@ DOL_SWITCH_COLORS=Imprimeix blanc sobre negre
/DOL_SWITCH_COLORS=Fi de imprimeix blanc sobre negre
DOL_PRINT_BARCODE=Imprimeix codi de barres
DOL_PRINT_BARCODE_CUSTOMER_ID=Imprimeix codi de barres del ID de client
DOL_SET_PRINT_WIDTH_57=Ticket print width of 57mm
DOL_SET_PRINT_WIDTH_57=Ample d'impressió del ticket de 57 mm
DOL_CUT_PAPER_FULL=Talla el tiquet completament
DOL_CUT_PAPER_PARTIAL=Talla el tiquet parcialment
DOL_OPEN_DRAWER=Obrir calaix de diners
@ -69,7 +69,7 @@ DOL_PRINT_LOGO=Imprimeix el logo emmagatzemat en la impresora. Exemple : 32|32
DOL_PRINT_LOGO_OLD=Imprimeix el logo emmagatzemat en la impresora. Ha d'anar seguit pel codi de logo. Per impresores antigues.
DOL_PRINT_ORDER_LINES=Imprimeix línies de comanda
DOL_PRINT_ORDER_TAX=Imprimir impostos totals de la comanda
DOL_PRINT_ORDER_LOCAL_TAX=Print order local tax
DOL_PRINT_ORDER_LOCAL_TAX=Imprimir impostos locals de la comanda
DOL_PRINT_ORDER_TOTAL=Imprimeix total de la comanda
DOL_PRINT_ORDER_NUMBER=Imprimeix el número de comanda
DOL_PRINT_ORDER_NUMBER_UNIQUE=Imprimeix el número de comanda després de validar
@ -80,17 +80,17 @@ DOL_PRINT_CUSTOMER_PHONE=Imprimeix telèfon del client
DOL_PRINT_CUSTOMER_MOBILE=Imprimeix mòbil del client
DOL_PRINT_CUSTOMER_SKYPE=Imprimeix skype del client
DOL_PRINT_CUSTOMER_TAX_NUMBER=Imprimeix el IVA del client
DOL_PRINT_CUSTOMER_ACCOUNT_BALANCE=Print customer account balance
DOL_PRINT_VENDOR_LASTNAME=Print vendor name
DOL_PRINT_VENDOR_FIRSTNAME=Print vendor firstname
DOL_PRINT_VENDOR_MAIL=Print vendor mail
DOL_PRINT_CUSTOMER_ACCOUNT_BALANCE=Imprimir balanç contable del client
DOL_PRINT_VENDOR_LASTNAME=Imprimir cognom del venedor
DOL_PRINT_VENDOR_FIRSTNAME=Imprimir nom del venedor
DOL_PRINT_VENDOR_MAIL=Imprimir email del venedor
DOL_PRINT_CUSTOMER_POINTS=Imprimeix punts del client
DOL_PRINT_ORDER_POINTS=Imprimeix el número de punts per aquesta comanda
DOL_PRINT_IF_CUSTOMER=Print the line IF a customer is affected to the order
DOL_PRINT_IF_VENDOR=Print the line IF a vendor is affected to the order
DOL_PRINT_IF_CUSTOMER=Imprimir la línia SI un client es veu afectat la comanda
DOL_PRINT_IF_VENDOR=Imprimir la línia SI un venedor està afectat a la comanda
DOL_PRINT_IF_HAPPY_HOUR=Imprimeix la línia SI és Happy Hour
DOL_PRINT_IF_NUM_ORDER_UNIQUE=Imprimeix la línia SI la comanda està validada
DOL_PRINT_IF_CUSTOMER_POINTS=Imprimeix la línia SI els punts del client > 0
DOL_PRINT_IF_ORDER_POINTS=Imprimeix la línia SI els punts de la comanda > 0
DOL_PRINT_IF_CUSTOMER_TAX_NUMBER=Imprimeix la línia SI el client té IVA
DOL_PRINT_IF_CUSTOMER_ACCOUNT_BALANCE_POSITIVE=Print the line IF customer balance > 0
DOL_PRINT_IF_CUSTOMER_ACCOUNT_BALANCE_POSITIVE=Imprimeix la línia SI el balanç del client > 0

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Chyba, nelze odstranit tento účetní účet,
FicheVentilation=Karta členění
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Fejl, kan du ikke slette denne regnskabsmæssig
FicheVentilation=Breakdown card
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -1,6 +1,5 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
supplier_proposalDESC=Preisanfragen Lieferant verwalten
supplier_proposalMENU_LEFT_TITLE_NEW=Neue Anfrage
CommRequest=Generelle Preisanfrage
CommRequests=Generelle Preisanfragen
SearchRequest=Anfragen finden

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Fehler, Sie können dieses Buchaltungskonto nic
FicheVentilation=Abbau-Karte
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να δι
FicheVentilation=Φόρμα ανάλυσης
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -147,7 +147,7 @@ DescVentilDoneSupplier=Consult here the list of the lines of invoices supplier a
ValidateHistory=Validate Automatically
ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s
FicheVentilation=Breakdown card
GeneralLedgerIsWritten=Operations are written in the general ledger

View File

@ -82,6 +82,7 @@ UserName=Name
Employee=Employee
FirstDayOfHoliday=First day of vacation
LastDayOfHoliday=Last day of vacation
BoxTitleLastLeaveRequests=Last %s modified leave requests
HolidaysMonthlyUpdate=Monthly update
ManualUpdate=Manual update
HolidaysCancelation=Leave request cancelation

View File

@ -106,6 +106,7 @@ NotePrivate=Note (private)
PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to <b>%s</b> decimals.
DoTest=Test
ToFilter=Filter
NoFilter=No filter
WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay.
yes=yes
Yes=Yes

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -155,3 +155,19 @@ ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que est
FicheVentilation=Ficha contable
GeneralLedgerIsWritten=Operations are written in the general ledger
##Export Journal Feature
ExportFormat=Format of Export
Prefixname=Prefix of export File
Separate=Export separator
Textframe=Frame of text value
Headercol=Colname in header of file
Fieldname=Name of Field
Headername=Name in header
Type=Type of fields
Param=Additionnal parameters
EnabledProduct=In Product
EnabledTiers=In Tiers
EnabledVat=In Vat
MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s

View File

@ -394,7 +394,7 @@ ExtrafieldParamHelpselect=El listado de parámetros tiene que ser key,valor<br><
ExtrafieldParamHelpcheckbox=El listado de parámetros tiene que ser key,valor<br><br> por ejemplo:\n<br>1,value1<br>2,value2<br>3,value3<br>...
ExtrafieldParamHelpradio=El listado de parámetros tiene que ser key,valor<br><br> por ejemplo:\n<br>1,value1<br>2,value2<br>3,value3<br>...
ExtrafieldParamHelpsellist=Lista de parámetros viene de una tabla<br>Sintaxis: nombre_tabla: etiqueta_campo: identificador_campo :: filtro <br> Ejemplo: c_typent: libelle: id :: filtro <br> filtro puede ser una prueba simple (por ejemplo, activo = 1) para mostrar el valor sólo se activa <br> si desea filtrar un campo extra utilizar la sintáxis extra.fieldcode = ... (donde el código de campo es el código del campo extra) <br> para tener la lista en función de otra: <br> c_typent: libelle: id: parent_list_code | parent_column: filtro
ExtrafieldParamHelpchkbxlst=Lista de parámetros viene de una tabla<br>Sintaxis: nombre_tabla: etiqueta_campo: identificador_campo :: filtro <br> Ejemplo: c_typent: libelle: id :: filtro <br> filtro puede ser una prueba simple (por ejemplo, activo = 1) para mostrar el valor sólo se activa <br> si desea filtrar un campo extra utilizar la sintáxis extra.fieldcode = ... (donde el código de campo es el código del campo extra) <br> para tener la lista en función de otra: <br> c_typent: libelle: id: parent_list_code | parent_column: filtro
ExtrafieldParamHelpchkbxlst=Lista Parámetros viene de una tabla <br> Sintaxis: nombre_tabla: etiqueta_campo: identificador_campo :: filtro <br> Ejemplo: c_typent: libelle: id :: filtro <br> filtro puede ser una prueba simple (por ejemplo, activo = 1) para mostrar el valor sólo se activa <br> si desea filtrar un campo extra utilizar la sintáxis extra.fieldcode = ... (donde el código de campo es el código del campo extra) <br> para tener la lista en función de otra: <br> c_typent: libelle: id: parent_list_code | parent_column: filtro
ExtrafieldParamHelplink=Los parámetros deben ser ObjectName: Classpath<br>Sintaxis: ObjectName:Classpath<br>Ejemplo: Societe:societe/class/societe.class.php
LibraryToBuildPDF=Librería usada para la creación de archivos PDF
WarningUsingFPDF=Atención: Su archivo <b>conf.php</b> contiene la directiva <b>dolibarr_pdf_force_fpdf=1</b>. Esto hace que se use la librería FPDF para generar sus archivos PDF. Esta librería es antigua y no cubre algunas funcionalidades (Unicode, transparencia de imágenes, idiomas cirílicos, árabes o asiáticos, etc.), por lo que puede tener problemas en la generación de los PDF.<br>Para resolverlo, y disponer de un soporte completo de PDF, puede descargar la <a href="http://www.tcpdf.org/" target="_blank">librería TCPDF</a> , y a continuación comentar o eliminar la línea <b>$dolibarr_pdf_force_fpdf=1</b>, y añadir en su lugar <b>$dolibarr_lib_TCPDF_PATH='ruta_a_TCPDF'</b>

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

View File

@ -0,0 +1,4 @@
# Dolibarr language file - Source file is en_US - cron
CronListActive=List of active/scheduled jobs
CronDtStart=Start date
CronDtEnd=End date

View File

@ -0,0 +1,2 @@
# Dolibarr language file - Source file is en_US - supplier_proposal
SupplierProposalShort=Supplier proposal

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