Merge remote-tracking branch 'Upstream/develop' into develop-a7
Conflicts: htdocs/langs/en_US/accountancy.lang
This commit is contained in:
commit
2c1ff3ca47
@ -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
|
||||
|
||||
@ -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&id=' . $line->id . '&piece_num=' . $line->piece_num . '">';
|
||||
print img_edit();
|
||||
print '</a> ';
|
||||
print '<a href="./card.php?action=delete&id=' . $line->id . '&piece_num=' . $line->piece_num . '">';
|
||||
print '<a href="./card.php?action=delete&id=' . $line->id . '&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"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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> </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> </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 ' ';
|
||||
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();
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -531,6 +531,7 @@ if ($action == 'export_csv')
|
||||
|
||||
print "</table>";
|
||||
|
||||
llxFooter();
|
||||
}
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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++;
|
||||
|
||||
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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))
|
||||
{
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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"> </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";
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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";
|
||||
|
||||
@ -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">';
|
||||
|
||||
@ -1016,6 +1016,7 @@ class Form
|
||||
// Do not use textempty = ' ' or ' ' 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";
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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; ?>;
|
||||
|
||||
|
||||
@ -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 .= "&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; }
|
||||
|
||||
|
||||
@ -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&search_status=5", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders');
|
||||
$newmenu->add("/fourn/commande/list.php?leftmenu=orders&search_status=5&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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ if ($sref)
|
||||
}
|
||||
if ($snom)
|
||||
{
|
||||
$sql .= natural_search('s.nom', $snom);
|
||||
$sql .= natural_search('p.label', $snom);
|
||||
}
|
||||
if($catid)
|
||||
{
|
||||
|
||||
@ -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>';
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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('');
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
2
htdocs/langs/de_AT/supplier_proposal.lang
Normal file
2
htdocs/langs/de_AT/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
4
htdocs/langs/en_AU/cron.lang
Normal file
4
htdocs/langs/en_AU/cron.lang
Normal 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
|
||||
2
htdocs/langs/en_AU/supplier_proposal.lang
Normal file
2
htdocs/langs/en_AU/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
4
htdocs/langs/en_CA/cron.lang
Normal file
4
htdocs/langs/en_CA/cron.lang
Normal 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
|
||||
2
htdocs/langs/en_CA/supplier_proposal.lang
Normal file
2
htdocs/langs/en_CA/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
4
htdocs/langs/en_GB/cron.lang
Normal file
4
htdocs/langs/en_GB/cron.lang
Normal 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
|
||||
2
htdocs/langs/en_GB/supplier_proposal.lang
Normal file
2
htdocs/langs/en_GB/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
4
htdocs/langs/en_IN/cron.lang
Normal file
4
htdocs/langs/en_IN/cron.lang
Normal 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
|
||||
2
htdocs/langs/en_IN/supplier_proposal.lang
Normal file
2
htdocs/langs/en_IN/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
4
htdocs/langs/es_AR/cron.lang
Normal file
4
htdocs/langs/es_AR/cron.lang
Normal 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
|
||||
2
htdocs/langs/es_AR/supplier_proposal.lang
Normal file
2
htdocs/langs/es_AR/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
4
htdocs/langs/es_BO/cron.lang
Normal file
4
htdocs/langs/es_BO/cron.lang
Normal 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
|
||||
2
htdocs/langs/es_BO/supplier_proposal.lang
Normal file
2
htdocs/langs/es_BO/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
4
htdocs/langs/es_CL/cron.lang
Normal file
4
htdocs/langs/es_CL/cron.lang
Normal 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
|
||||
2
htdocs/langs/es_CL/supplier_proposal.lang
Normal file
2
htdocs/langs/es_CL/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
4
htdocs/langs/es_CO/cron.lang
Normal file
4
htdocs/langs/es_CO/cron.lang
Normal 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
|
||||
2
htdocs/langs/es_CO/supplier_proposal.lang
Normal file
2
htdocs/langs/es_CO/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
4
htdocs/langs/es_DO/cron.lang
Normal file
4
htdocs/langs/es_DO/cron.lang
Normal 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
|
||||
2
htdocs/langs/es_DO/supplier_proposal.lang
Normal file
2
htdocs/langs/es_DO/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
4
htdocs/langs/es_MX/cron.lang
Normal file
4
htdocs/langs/es_MX/cron.lang
Normal 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
|
||||
2
htdocs/langs/es_MX/supplier_proposal.lang
Normal file
2
htdocs/langs/es_MX/supplier_proposal.lang
Normal file
@ -0,0 +1,2 @@
|
||||
# Dolibarr language file - Source file is en_US - supplier_proposal
|
||||
SupplierProposalShort=Supplier proposal
|
||||
4
htdocs/langs/es_PE/cron.lang
Normal file
4
htdocs/langs/es_PE/cron.lang
Normal 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
|
||||
2
htdocs/langs/es_PE/supplier_proposal.lang
Normal file
2
htdocs/langs/es_PE/supplier_proposal.lang
Normal 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
Loading…
Reference in New Issue
Block a user