Merge branch 'develop' of https://github.com/Dolibarr/dolibarr.git into
develop_dict Conflicts: htdocs/compta/resultat/clientfourn.php htdocs/core/lib/functions.lib.php htdocs/install/mysql/migration/6.0.0-7.0.0.sql
This commit is contained in:
commit
66e548427c
@ -5,6 +5,11 @@ English Dolibarr ChangeLog
|
|||||||
|
|
||||||
***** ChangeLog for 7.0.0 compared to 6.0.* *****
|
***** ChangeLog for 7.0.0 compared to 6.0.* *****
|
||||||
|
|
||||||
|
WARNING:
|
||||||
|
|
||||||
|
Following changes may create regression for some external modules, but were necessary to make Dolibarr better:
|
||||||
|
* The methode "cloture" on contact were renamed into "closeAll".
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 6.0.0 compared to 5.0.* *****
|
***** ChangeLog for 6.0.0 compared to 5.0.* *****
|
||||||
@ -14,7 +19,7 @@ NEW: Add a payment module for Stripe.
|
|||||||
NEW: Add module "Product variant" (like red, blue for the product shoes)
|
NEW: Add module "Product variant" (like red, blue for the product shoes)
|
||||||
NEW: Accountancy - Activate multi-journal & Add journal_label to database (FEC)
|
NEW: Accountancy - Activate multi-journal & Add journal_label to database (FEC)
|
||||||
NEW: Add a tracking id into mass emailing.
|
NEW: Add a tracking id into mass emailing.
|
||||||
NEW: Tax system more compatible with the new tax roollout in India (IGST / CGST / SGST).
|
NEW: Tax system more compatible with the new tax rollout in India (IGST / CGST / SGST).
|
||||||
NEW: Add calculation function for Loan schedule
|
NEW: Add calculation function for Loan schedule
|
||||||
NEW: Add "depends on" and "required by" into module informations
|
NEW: Add "depends on" and "required by" into module informations
|
||||||
NEW: Add hidden option THIRDPARTY_INCLUDE_PARENT_IN_LINKTO
|
NEW: Add hidden option THIRDPARTY_INCLUDE_PARENT_IN_LINKTO
|
||||||
|
|||||||
@ -334,7 +334,7 @@ foreach my $target (sort keys %CHOOSEDTARGET) {
|
|||||||
}
|
}
|
||||||
foreach my $target (sort keys %CHOOSEDPUBLISH) {
|
foreach my $target (sort keys %CHOOSEDPUBLISH) {
|
||||||
if ($CHOOSEDPUBLISH{$target} < 0) { next; }
|
if ($CHOOSEDPUBLISH{$target} < 0) { next; }
|
||||||
if ($target eq 'ASSO') { $nbofpublishneedchangelog++; $nbofpublishneedtag++; }
|
if ($target eq 'ASSO') { $nbofpublishneedchangelog++; }
|
||||||
if ($target eq 'SF') { $nbofpublishneedchangelog++; $nbofpublishneedtag++; }
|
if ($target eq 'SF') { $nbofpublishneedchangelog++; $nbofpublishneedtag++; }
|
||||||
$nboftargetok++;
|
$nboftargetok++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -163,6 +163,7 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/bookmarks
|
%_datadir/dolibarr/htdocs/bookmarks
|
||||||
%_datadir/dolibarr/htdocs/cashdesk
|
%_datadir/dolibarr/htdocs/cashdesk
|
||||||
%_datadir/dolibarr/htdocs/categories
|
%_datadir/dolibarr/htdocs/categories
|
||||||
|
%_datadir/dolibarr/htdocs/collab
|
||||||
%_datadir/dolibarr/htdocs/comm
|
%_datadir/dolibarr/htdocs/comm
|
||||||
%_datadir/dolibarr/htdocs/commande
|
%_datadir/dolibarr/htdocs/commande
|
||||||
%_datadir/dolibarr/htdocs/compta
|
%_datadir/dolibarr/htdocs/compta
|
||||||
|
|||||||
@ -69,8 +69,8 @@ $arrayfields=array(
|
|||||||
'aa.account_number'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1),
|
'aa.account_number'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1),
|
||||||
'aa.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
|
'aa.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
|
||||||
'aa.account_parent'=>array('label'=>$langs->trans("Accountparent"), 'checked'=>0),
|
'aa.account_parent'=>array('label'=>$langs->trans("Accountparent"), 'checked'=>0),
|
||||||
'aa.pcg_type'=>array('label'=>$langs->trans("Pcgtype"), 'checked'=>0),
|
'aa.pcg_type'=>array('label'=>$langs->trans("Pcgtype"), 'checked'=>0, 'help'=>'PcgtypeDesc'),
|
||||||
'aa.pcg_subtype'=>array('label'=>$langs->trans("Pcgsubtype"), 'checked'=>0),
|
'aa.pcg_subtype'=>array('label'=>$langs->trans("Pcgsubtype"), 'checked'=>0, 'help'=>'PcgtypeDesc'),
|
||||||
'aa.active'=>array('label'=>$langs->trans("Activated"), 'checked'=>1)
|
'aa.active'=>array('label'=>$langs->trans("Activated"), 'checked'=>1)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -94,9 +94,9 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
|
|||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
if (! empty($cancel)) $action = '';
|
if (! empty($cancel)) $action = '';
|
||||||
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All test are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All test are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
$search_account = "";
|
$search_account = "";
|
||||||
@ -106,13 +106,13 @@ if (empty($reshook))
|
|||||||
$search_pcgsubtype = "";
|
$search_pcgsubtype = "";
|
||||||
$search_array_options=array();
|
$search_array_options=array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GETPOST('change_chart'))
|
if (GETPOST('change_chart'))
|
||||||
{
|
{
|
||||||
$chartofaccounts = GETPOST('chartofaccounts', 'int');
|
$chartofaccounts = GETPOST('chartofaccounts', 'int');
|
||||||
|
|
||||||
if (! empty($chartofaccounts)) {
|
if (! empty($chartofaccounts)) {
|
||||||
|
|
||||||
if (! dolibarr_set_const($db, 'CHARTOFACCOUNTS', $chartofaccounts, 'chaine', 0, '', $conf->entity)) {
|
if (! dolibarr_set_const($db, 'CHARTOFACCOUNTS', $chartofaccounts, 'chaine', 0, '', $conf->entity)) {
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
@ -120,12 +120,12 @@ if (empty($reshook))
|
|||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'disable') {
|
if ($action == 'disable') {
|
||||||
if ($accounting->fetch($id)) {
|
if ($accounting->fetch($id)) {
|
||||||
$result = $accounting->account_desactivate($id);
|
$result = $accounting->account_desactivate($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$action = 'update';
|
$action = 'update';
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($accounting->error, $accounting->errors, 'errors');
|
setEventMessages($accounting->error, $accounting->errors, 'errors');
|
||||||
@ -179,7 +179,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
|||||||
{
|
{
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($resql);
|
$nbtotalofrecords = $db->num_rows($resql);
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql .= $db->plimit($limit + 1, $offset);
|
$sql .= $db->plimit($limit + 1, $offset);
|
||||||
|
|
||||||
@ -190,13 +190,14 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
|
|
||||||
$params='';
|
$param='';
|
||||||
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
||||||
if ($search_account) $params.= '&search_account='.urlencode($search_account);
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
||||||
if ($search_label) $params.= '&search_label='.urlencode($search_label);
|
if ($search_account) $param.= '&search_account='.urlencode($search_account);
|
||||||
if ($search_accountparent) $params.= '&search_accountparent='.urlencode($search_accountparent);
|
if ($search_label) $param.= '&search_label='.urlencode($search_label);
|
||||||
if ($search_pcgtype) $params.= '&search_pcgtype='.urlencode($search_pcgtype);
|
if ($search_accountparent) $param.= '&search_accountparent='.urlencode($search_accountparent);
|
||||||
if ($search_pcgsubtype) $params.= '&search_pcgsubtype='.urlencode($search_pcgsubtype);
|
if ($search_pcgtype) $param.= '&search_pcgtype='.urlencode($search_pcgtype);
|
||||||
|
if ($search_pcgsubtype) $param.= '&search_pcgsubtype='.urlencode($search_pcgsubtype);
|
||||||
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
||||||
|
|
||||||
|
|
||||||
@ -209,11 +210,11 @@ if ($resql)
|
|||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
|
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
|
||||||
|
|
||||||
$htmlbuttonadd = '<a class="butAction" href="./card.php?action=create">' . $langs->trans("Addanaccount") . '</a>';
|
$htmlbuttonadd = '<a class="butAction" href="./card.php?action=create">' . $langs->trans("Addanaccount") . '</a>';
|
||||||
|
|
||||||
print_barre_liste($langs->trans('ListAccounts'), $page, $_SERVER["PHP_SELF"], $params, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, $htmlbuttonadd);
|
print_barre_liste($langs->trans('ListAccounts'), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, $htmlbuttonadd, '', $limit);
|
||||||
|
|
||||||
// Box to select active chart of account
|
// Box to select active chart of account
|
||||||
print $langs->trans("Selectchartofaccounts") . " : ";
|
print $langs->trans("Selectchartofaccounts") . " : ";
|
||||||
print '<select class="flat" name="chartofaccounts" id="chartofaccounts">';
|
print '<select class="flat" name="chartofaccounts" id="chartofaccounts">';
|
||||||
@ -227,22 +228,22 @@ if ($resql)
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
while ( $i < $numbis ) {
|
while ( $i < $numbis ) {
|
||||||
$row = $db->fetch_row($resqlchart);
|
$row = $db->fetch_row($resqlchart);
|
||||||
|
|
||||||
print '<option value="' . $row[0] . '"';
|
print '<option value="' . $row[0] . '"';
|
||||||
print $pcgver == $row[0] ? ' selected' : '';
|
print $pcgver == $row[0] ? ' selected' : '';
|
||||||
print '>' . $row[1] . ' - ' . $row[2] . '</option>';
|
print '>' . $row[1] . ' - ' . $row[2] . '</option>';
|
||||||
|
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "</select>";
|
print "</select>";
|
||||||
print '<input type="submit" class="button" name="change_chart" value="'.dol_escape_htmltag($langs->trans("ChangeAndLoad")).'">';
|
print '<input type="submit" class="button" name="change_chart" value="'.dol_escape_htmltag($langs->trans("ChangeAndLoad")).'">';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
|
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
|
||||||
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
||||||
|
|
||||||
@ -259,13 +260,13 @@ if ($resql)
|
|||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (! empty($arrayfields['aa.account_number']['checked'])) print_liste_field_titre($arrayfields['aa.account_number']['label'], $_SERVER["PHP_SELF"],"aa.account_number","",$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['aa.account_number']['checked'])) print_liste_field_titre($arrayfields['aa.account_number']['label'], $_SERVER["PHP_SELF"],"aa.account_number","",$param,'',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['aa.label']['checked'])) print_liste_field_titre($arrayfields['aa.label']['label'], $_SERVER["PHP_SELF"],"aa.label","",$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['aa.label']['checked'])) print_liste_field_titre($arrayfields['aa.label']['label'], $_SERVER["PHP_SELF"],"aa.label","",$param,'',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['aa.account_parent']['checked'])) print_liste_field_titre($arrayfields['aa.account_parent']['label'], $_SERVER["PHP_SELF"],"aa.account_parent", "", $param,'align="left"',$sortfield,$sortorder);
|
if (! empty($arrayfields['aa.account_parent']['checked'])) print_liste_field_titre($arrayfields['aa.account_parent']['label'], $_SERVER["PHP_SELF"],"aa.account_parent", "", $param,'align="left"',$sortfield,$sortorder);
|
||||||
if (! empty($arrayfields['aa.pcg_type']['checked'])) print_liste_field_titre($arrayfields['aa.pcg_type']['label'],$_SERVER["PHP_SELF"],'aa.pcg_type','',$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['aa.pcg_type']['checked'])) print_liste_field_titre($arrayfields['aa.pcg_type']['label'],$_SERVER["PHP_SELF"],'aa.pcg_type','',$param,'',$sortfield,$sortorder,'',$arrayfields['aa.pcg_type']['help']);
|
||||||
if (! empty($arrayfields['aa.pcg_subtype']['checked'])) print_liste_field_titre($arrayfields['aa.pcg_subtype']['label'],$_SERVER["PHP_SELF"],'aa.pcg_subtype','',$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['aa.pcg_subtype']['checked'])) print_liste_field_titre($arrayfields['aa.pcg_subtype']['label'],$_SERVER["PHP_SELF"],'aa.pcg_subtype','',$param,'',$sortfield,$sortorder,'',$arrayfields['aa.pcg_subtype']['help']);
|
||||||
if (! empty($arrayfields['aa.active']['checked'])) print_liste_field_titre($arrayfields['aa.active']['label'],$_SERVER["PHP_SELF"],'aa.active','',$param,'',$sortfield,$sortorder);
|
if (! empty($arrayfields['aa.active']['checked'])) print_liste_field_titre($arrayfields['aa.active']['label'],$_SERVER["PHP_SELF"],'aa.active','',$param,'',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
|
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
@ -274,14 +275,14 @@ if ($resql)
|
|||||||
$accountparent = new AccountingAccount($db);
|
$accountparent = new AccountingAccount($db);
|
||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
while ($i < min($num, $limit))
|
while ($i < min($num, $limit))
|
||||||
{
|
{
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
|
|
||||||
$accountstatic->id = $obj->rowid;
|
$accountstatic->id = $obj->rowid;
|
||||||
$accountstatic->label = $obj->label;
|
$accountstatic->label = $obj->label;
|
||||||
$accountstatic->account_number = $obj->account_number;
|
$accountstatic->account_number = $obj->account_number;
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Account number
|
// Account number
|
||||||
@ -310,7 +311,7 @@ if ($resql)
|
|||||||
$accountparent->id = $obj->rowid2;
|
$accountparent->id = $obj->rowid2;
|
||||||
$accountparent->label = $obj->label2;
|
$accountparent->label = $obj->label2;
|
||||||
$accountparent->account_number = $obj->account_number2;
|
$accountparent->account_number = $obj->account_number2;
|
||||||
|
|
||||||
print "<td>";
|
print "<td>";
|
||||||
print $accountparent->getNomUrl(1);
|
print $accountparent->getNomUrl(1);
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
@ -371,11 +372,11 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
print '</td>' . "\n";
|
print '</td>' . "\n";
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print "</div>";
|
print "</div>";
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -602,6 +602,7 @@ if ($id)
|
|||||||
print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$id.'" method="POST">';
|
print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$id.'" method="POST">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
// Form to add a new line
|
// Form to add a new line
|
||||||
@ -1139,6 +1140,7 @@ if ($id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,7 +63,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount)
|
|||||||
{
|
{
|
||||||
if (! $cancel) {
|
if (! $cancel) {
|
||||||
$sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS;
|
$sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS;
|
||||||
|
|
||||||
dol_syslog('accountancy/admin/card.php:: $sql=' . $sql);
|
dol_syslog('accountancy/admin/card.php:: $sql=' . $sql);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$obj = $db->fetch_object($result);
|
$obj = $db->fetch_object($result);
|
||||||
@ -172,16 +172,16 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount)
|
|||||||
}
|
}
|
||||||
} else if ($action == 'delete' && $user->rights->accounting->chartofaccount) {
|
} else if ($action == 'delete' && $user->rights->accounting->chartofaccount) {
|
||||||
$result = $object->fetch($id);
|
$result = $object->fetch($id);
|
||||||
|
|
||||||
if (! empty($object->id)) {
|
if (! empty($object->id)) {
|
||||||
$result = $object->delete($user);
|
$result = $object->delete($user);
|
||||||
|
|
||||||
if ($result > 0) {
|
if ($result > 0) {
|
||||||
header("Location: account.php");
|
header("Location: account.php");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
@ -270,7 +270,7 @@ if ($action == 'create') {
|
|||||||
$head = accounting_prepare_head($object);
|
$head = accounting_prepare_head($object);
|
||||||
|
|
||||||
// Edit mode
|
// Edit mode
|
||||||
if ($action == 'update')
|
if ($action == 'update')
|
||||||
{
|
{
|
||||||
dol_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr');
|
dol_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr');
|
||||||
|
|
||||||
@ -327,7 +327,7 @@ if ($action == 'create') {
|
|||||||
print '</form>';
|
print '</form>';
|
||||||
} else {
|
} else {
|
||||||
// View mode
|
// View mode
|
||||||
$linkback = '<a href="../admin/account.php">' . $langs->trans("BackToChartofaccounts") . '</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/accountancy/admin/account.php">' . $langs->trans("BackToList") . '</a>';
|
||||||
|
|
||||||
dol_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr');
|
dol_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr');
|
||||||
|
|
||||||
|
|||||||
@ -98,7 +98,7 @@ dol_fiche_head();
|
|||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
// Category
|
// Category
|
||||||
print '<tr><td>' . $langs->trans("AccountingCategory") . '</td>';
|
print '<tr><td class="titlefield">' . $langs->trans("AccountingCategory") . '</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 1);
|
$formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 1);
|
||||||
print '<input class="button" type="submit" value="' . $langs->trans("Select") . '">';
|
print '<input class="button" type="submit" value="' . $langs->trans("Select") . '">';
|
||||||
@ -110,14 +110,26 @@ if (! empty($cat_id))
|
|||||||
if ($return < 0) {
|
if ($return < 0) {
|
||||||
setEventMessages(null, $accountingcategory->errors, 'errors');
|
setEventMessages(null, $accountingcategory->errors, 'errors');
|
||||||
}
|
}
|
||||||
print '<tr><td>' . $langs->trans("AddAccountFromBookKeepingWithNoCategories") . '</td>';
|
print '<tr><td class="tdtop">' . $langs->trans("AddAccountFromBookKeepingWithNoCategories") . '</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
|
|
||||||
|
$arraykeyvalue=array();
|
||||||
|
foreach($accountingcategory->lines_cptbk as $key => $val)
|
||||||
|
{
|
||||||
|
$arraykeyvalue[length_accountg($val->numero_compte)] = length_accountg($val->numero_compte) . ' (' . $val->label_compte . ($val->doc_ref?' '.$val->doc_ref:'').')';
|
||||||
|
}
|
||||||
|
|
||||||
if (is_array($accountingcategory->lines_cptbk) && count($accountingcategory->lines_cptbk) > 0) {
|
if (is_array($accountingcategory->lines_cptbk) && count($accountingcategory->lines_cptbk) > 0) {
|
||||||
print '<select class="flat minwidth200" size="' . count($obj) . '" name="cpt_bk[]" multiple>';
|
|
||||||
|
print $form->multiselectarray('cpt_bk', $arraykeyvalue, GETPOST('cpt_bk', 'array'), null, null, null, null, "90%");
|
||||||
|
print '<br>';
|
||||||
|
/*print '<select class="flat minwidth200" size="8" name="cpt_bk[]" multiple>';
|
||||||
foreach ( $accountingcategory->lines_cptbk as $cpt ) {
|
foreach ( $accountingcategory->lines_cptbk as $cpt ) {
|
||||||
print '<option value="' . length_accountg($cpt->numero_compte) . '">' . length_accountg($cpt->numero_compte) . ' (' . $cpt->label_compte . ' ' . $cpt->doc_ref . ')</option>';
|
print '<option value="' . length_accountg($cpt->numero_compte) . '">' . length_accountg($cpt->numero_compte) . ' (' . $cpt->label_compte . ' ' . $cpt->doc_ref . ')</option>';
|
||||||
}
|
}
|
||||||
print '</select><br>';
|
print '</select><br>';
|
||||||
|
print ajax_combobox('cpt_bk');
|
||||||
|
*/
|
||||||
print '<input class="button" type="submit" id="" class="action-delete" value="' . $langs->trans("Add") . '"> ';
|
print '<input class="button" type="submit" id="" class="action-delete" value="' . $langs->trans("Add") . '"> ';
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|||||||
@ -1,16 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2011-2017 Alexandre Spangaro <aspangaro@zendsi.com>
|
||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
|
||||||
* Copyright (C) 2010-2016 Juanjo Menent <jmenent@2byte.es>
|
|
||||||
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
|
||||||
* Copyright (C) 2011 Remy Younes <ryounes@gmail.com>
|
|
||||||
* Copyright (C) 2012-2015 Marcos García <marcosgdf@gmail.com>
|
|
||||||
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@ltairis.fr>
|
|
||||||
* Copyright (C) 2011-2016 Alexandre Spangaro <aspangaro@zendsi.com>
|
|
||||||
* Copyright (C) 2015 Ferran Marcet <fmarcet@2byte.es>
|
|
||||||
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -52,7 +42,7 @@ $langs->load("hrm");
|
|||||||
|
|
||||||
$action=GETPOST('action','alpha')?GETPOST('action','alpha'):'view';
|
$action=GETPOST('action','alpha')?GETPOST('action','alpha'):'view';
|
||||||
$confirm=GETPOST('confirm','alpha');
|
$confirm=GETPOST('confirm','alpha');
|
||||||
$id=GETPOST('id','int');
|
$id=32;
|
||||||
$rowid=GETPOST('rowid','alpha');
|
$rowid=GETPOST('rowid','alpha');
|
||||||
$code=GETPOST('code','alpha');
|
$code=GETPOST('code','alpha');
|
||||||
|
|
||||||
@ -100,7 +90,7 @@ $tablib[32]= "DictionaryAccountancyCategory";
|
|||||||
|
|
||||||
// Requests to extract data
|
// Requests to extract data
|
||||||
$tabsql=array();
|
$tabsql=array();
|
||||||
$tabsql[32]= "SELECT a.rowid as rowid, a.code as code, a.label, a.range_account, a.sens, a.category_type, a.formula, a.position as position, a.fk_country as country_id, c.code as country_code, c.label as country, a.active FROM ".MAIN_DB_PREFIX."c_accounting_category as a, ".MAIN_DB_PREFIX."c_country as c WHERE a.fk_country=c.rowid and c.active=1";
|
$tabsql[32]= "SELECT a.rowid as rowid, a.code as code, a.label, a.range_account, a.category_type, a.formula, a.position as position, a.fk_country as country_id, c.code as country_code, c.label as country, a.active FROM ".MAIN_DB_PREFIX."c_accounting_category as a, ".MAIN_DB_PREFIX."c_country as c WHERE a.fk_country=c.rowid and c.active=1";
|
||||||
|
|
||||||
// Criteria to sort dictionaries
|
// Criteria to sort dictionaries
|
||||||
$tabsqlsort=array();
|
$tabsqlsort=array();
|
||||||
@ -108,15 +98,15 @@ $tabsqlsort[32]="position ASC";
|
|||||||
|
|
||||||
// Nom des champs en resultat de select pour affichage du dictionnaire
|
// Nom des champs en resultat de select pour affichage du dictionnaire
|
||||||
$tabfield=array();
|
$tabfield=array();
|
||||||
$tabfield[32]= "code,label,range_account,sens,category_type,formula,position,country_id,country";
|
$tabfield[32]= "code,label,range_account,category_type,formula,position,country";
|
||||||
|
|
||||||
// Nom des champs d'edition pour modification d'un enregistrement
|
// Nom des champs d'edition pour modification d'un enregistrement
|
||||||
$tabfieldvalue=array();
|
$tabfieldvalue=array();
|
||||||
$tabfieldvalue[32]= "code,label,range_account,sens,category_type,formula,position,country";
|
$tabfieldvalue[32]= "code,label,range_account,category_type,formula,position,country_id";
|
||||||
|
|
||||||
// Nom des champs dans la table pour insertion d'un enregistrement
|
// Nom des champs dans la table pour insertion d'un enregistrement
|
||||||
$tabfieldinsert=array();
|
$tabfieldinsert=array();
|
||||||
$tabfieldinsert[32]= "code,label,range_account,sens,category_type,formula,position,fk_country";
|
$tabfieldinsert[32]= "code,label,range_account,category_type,formula,position,fk_country";
|
||||||
|
|
||||||
// Nom du rowid si le champ n'est pas de type autoincrement
|
// Nom du rowid si le champ n'est pas de type autoincrement
|
||||||
// Example: "" if id field is "rowid" and has autoincrement on
|
// Example: "" if id field is "rowid" and has autoincrement on
|
||||||
@ -167,24 +157,17 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$ok=1;
|
$ok=1;
|
||||||
foreach ($listfield as $f => $value)
|
foreach ($listfield as $f => $value)
|
||||||
{
|
{
|
||||||
if ($value == 'country_id' && in_array($tablib[$id],array('DictionaryVAT','DictionaryRegion','DictionaryCompanyType','DictionaryHolidayTypes','DictionaryRevenueStamp','DictionaryAccountancysystem','DictionaryAccountancyCategory'))) continue; // For some pages, country is not mandatory
|
|
||||||
if ($value == 'country' && in_array($tablib[$id],array('DictionaryCanton','DictionaryCompanyType','DictionaryRevenueStamp'))) continue; // For some pages, country is not mandatory
|
|
||||||
if ($value == 'formula' && empty($_POST['formula'])) continue;
|
if ($value == 'formula' && empty($_POST['formula'])) continue;
|
||||||
if ((! isset($_POST[$value]) || $_POST[$value]=='')
|
if ($value == 'range_account' && empty($_POST['range_account'])) continue;
|
||||||
&& (! in_array($listfield[$f], array('decalage','module','accountancy_code','accountancy_code_sell','accountancy_code_buy')) // Fields that are not mandatory
|
if ($value == 'country') continue; // country_id required but not country
|
||||||
&& (! ($id == 10 && $listfield[$f] == 'code')) // Code is mandatory fir table 10
|
if (! isset($_POST[$value]) || $_POST[$value]=='')
|
||||||
)
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
$ok=0;
|
$ok=0;
|
||||||
$fieldnamekey=$listfield[$f];
|
$fieldnamekey=$listfield[$f];
|
||||||
// We take translate key of field
|
// We take translate key of field
|
||||||
if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey='Label';
|
if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey='Label';
|
||||||
if ($fieldnamekey == 'libelle_facture') $fieldnamekey = 'LabelOnDocuments';
|
|
||||||
if ($fieldnamekey == 'module') $fieldnamekey='Module';
|
|
||||||
if ($fieldnamekey == 'code') $fieldnamekey = 'Code';
|
if ($fieldnamekey == 'code') $fieldnamekey = 'Code';
|
||||||
if ($fieldnamekey == 'note') $fieldnamekey = 'Note';
|
if ($fieldnamekey == 'note') $fieldnamekey = 'Note';
|
||||||
if ($fieldnamekey == 'taux') $fieldnamekey = 'Rate';
|
|
||||||
if ($fieldnamekey == 'type') $fieldnamekey = 'Type';
|
if ($fieldnamekey == 'type') $fieldnamekey = 'Type';
|
||||||
if ($fieldnamekey == 'position') $fieldnamekey = 'Position';
|
if ($fieldnamekey == 'position') $fieldnamekey = 'Position';
|
||||||
if ($fieldnamekey == 'category_type') $fieldnamekey = 'Calculated';
|
if ($fieldnamekey == 'category_type') $fieldnamekey = 'Calculated';
|
||||||
@ -192,11 +175,6 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors');
|
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Other checks
|
|
||||||
if ($tabname[$id] == MAIN_DB_PREFIX."c_actioncomm" && isset($_POST["type"]) && in_array($_POST["type"],array('system','systemauto'))) {
|
|
||||||
$ok=0;
|
|
||||||
setEventMessages($langs->transnoentities('ErrorReservedTypeSystemSystemAuto'), null, 'errors');
|
|
||||||
}
|
|
||||||
if (isset($_POST["code"]))
|
if (isset($_POST["code"]))
|
||||||
{
|
{
|
||||||
if ($_POST["code"]=='0')
|
if ($_POST["code"]=='0')
|
||||||
@ -210,17 +188,10 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br />';
|
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br />';
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
if (isset($_POST["country"]) && ($_POST["country"]=='0'))
|
if (isset($_POST["country"]) && ($_POST["country"] <= 0))
|
||||||
{
|
{
|
||||||
if (in_array($tablib[$id],array('DictionaryCompanyType','DictionaryHolidayTypes'))) // Field country is no mandatory for such dictionaries
|
$ok=0;
|
||||||
{
|
setEventMessages($langs->transnoentities("ErrorFieldRequired",$langs->transnoentities("Country")), null, 'errors');
|
||||||
$_POST["country"]='';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$ok=0;
|
|
||||||
setEventMessages($langs->transnoentities("ErrorFieldRequired",$langs->transnoentities("Country")), null, 'errors');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean some parameters
|
// Clean some parameters
|
||||||
@ -262,14 +233,11 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$i=0;
|
$i=0;
|
||||||
foreach ($listfieldinsert as $f => $value)
|
foreach ($listfieldinsert as $f => $value)
|
||||||
{
|
{
|
||||||
if ($value == 'price' || preg_match('/^amount/i',$value) || $value == 'taux') {
|
if ($value == 'entity') {
|
||||||
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]],'MU');
|
|
||||||
}
|
|
||||||
else if ($value == 'entity') {
|
|
||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql.=",";
|
if ($i) $sql.=",";
|
||||||
if ($_POST[$listfieldvalue[$i]] == '' && ! ($listfieldvalue[$i] == 'code' && $id == 10)) $sql.="null"; // For vat, we want/accept code = ''
|
if ($_POST[$listfieldvalue[$i]] == '' && ! $listfieldvalue[$i] == 'formula') $sql.="null"; // For vat, we want/accept code = ''
|
||||||
else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
@ -310,15 +278,15 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldmodify as $field)
|
foreach ($listfieldmodify as $field)
|
||||||
{
|
{
|
||||||
if ($field == 'price' || preg_match('/^amount/i',$field) || $field == 'taux') {
|
if ($field == 'fk_country' && $_POST['country'] > 0) {
|
||||||
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]],'MU');
|
$_POST[$listfieldvalue[$i]] = $_POST['country'];
|
||||||
}
|
}
|
||||||
else if ($field == 'entity') {
|
else if ($field == 'entity') {
|
||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql.=",";
|
if ($i) $sql.=",";
|
||||||
$sql.= $field."=";
|
$sql.= $field."=";
|
||||||
if ($_POST[$listfieldvalue[$i]] == '' && ! ($listfieldvalue[$i] == 'code' && $id == 10)) $sql.="null"; // For vat, we want/accept code = ''
|
if ($_POST[$listfieldvalue[$i]] == '' && ! $listfieldvalue[$i] == 'range_account') $sql.="null"; // For range_account, we want/accept code = ''
|
||||||
else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
@ -458,11 +426,15 @@ $titlepicto='title_setup';
|
|||||||
|
|
||||||
print load_fiche_titre($titre,$linkback,$titlepicto);
|
print load_fiche_titre($titre,$linkback,$titlepicto);
|
||||||
|
|
||||||
|
if ($id == 32)
|
||||||
|
{
|
||||||
|
print $langs->trans("AccountingAccountGroupsDesc", $langs->transnoentitiesnoconv("ByPersonalizedAccountGroups")).'<br><br>';
|
||||||
|
}
|
||||||
|
|
||||||
// Confirmation de la suppression de la ligne
|
// Confirmation de la suppression de la ligne
|
||||||
if ($action == 'delete')
|
if ($action == 'delete')
|
||||||
{
|
{
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete','',0,1);
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id.($search_country_id>0?'&search_country_id='.$search_country_id:''), $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete','',0,1);
|
||||||
}
|
}
|
||||||
//var_dump($elementList);
|
//var_dump($elementList);
|
||||||
|
|
||||||
@ -508,6 +480,7 @@ if ($id)
|
|||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="from" value="'.dol_escape_htmltag(GETPOST('from','alpha')).'">';
|
print '<input type="hidden" name="from" value="'.dol_escape_htmltag(GETPOST('from','alpha')).'">';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
// Form to add a new line
|
// Form to add a new line
|
||||||
@ -536,18 +509,15 @@ if ($id)
|
|||||||
{
|
{
|
||||||
$valuetoshow=$langs->trans("Label");
|
$valuetoshow=$langs->trans("Label");
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field]=='libelle_facture') { $valuetoshow=$langs->trans("LabelOnDocuments")."*"; }
|
if ($fieldlist[$field]=='libelle_facture') { $valuetoshow=$langs->trans("LabelOnDocuments"); }
|
||||||
if ($fieldlist[$field]=='country') {
|
if ($fieldlist[$field]=='country') {
|
||||||
if (in_array('region_id',$fieldlist)) { print '<td> </td>'; continue; } // For region page, we do not show the country input
|
|
||||||
$valuetoshow=$langs->trans("Country");
|
$valuetoshow=$langs->trans("Country");
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field]=='region_id' || $fieldlist[$field]=='country_id') { $valuetoshow=''; }
|
|
||||||
if ($fieldlist[$field]=='accountancy_code'){ $valuetoshow=$langs->trans("AccountancyCode"); }
|
if ($fieldlist[$field]=='accountancy_code'){ $valuetoshow=$langs->trans("AccountancyCode"); }
|
||||||
if ($fieldlist[$field]=='accountancy_code_sell'){ $valuetoshow=$langs->trans("AccountancyCodeSell"); }
|
if ($fieldlist[$field]=='accountancy_code_sell'){ $valuetoshow=$langs->trans("AccountancyCodeSell"); }
|
||||||
if ($fieldlist[$field]=='accountancy_code_buy'){ $valuetoshow=$langs->trans("AccountancyCodeBuy"); }
|
if ($fieldlist[$field]=='accountancy_code_buy'){ $valuetoshow=$langs->trans("AccountancyCodeBuy"); }
|
||||||
if ($fieldlist[$field]=='pcg_version' || $fieldlist[$field]=='fk_pcg_version') { $valuetoshow=$langs->trans("Pcg_version"); }
|
if ($fieldlist[$field]=='pcg_version' || $fieldlist[$field]=='fk_pcg_version') { $valuetoshow=$langs->trans("Pcg_version"); }
|
||||||
if ($fieldlist[$field]=='range_account') { $valuetoshow=$langs->trans("Range"); }
|
if ($fieldlist[$field]=='range_account') { $valuetoshow=$langs->trans("Comment"); }
|
||||||
if ($fieldlist[$field]=='sens') { $valuetoshow=$langs->trans("Direction"); }
|
|
||||||
if ($fieldlist[$field]=='category_type') { $valuetoshow=$langs->trans("Calculated"); }
|
if ($fieldlist[$field]=='category_type') { $valuetoshow=$langs->trans("Calculated"); }
|
||||||
|
|
||||||
if ($valuetoshow != '')
|
if ($valuetoshow != '')
|
||||||
@ -617,8 +587,7 @@ if ($id)
|
|||||||
$paramwithsearch = $param;
|
$paramwithsearch = $param;
|
||||||
if ($sortorder) $paramwithsearch.= '&sortorder='.$sortorder;
|
if ($sortorder) $paramwithsearch.= '&sortorder='.$sortorder;
|
||||||
if ($sortfield) $paramwithsearch.= '&sortfield='.$sortfield;
|
if ($sortfield) $paramwithsearch.= '&sortfield='.$sortfield;
|
||||||
if (GETPOST('from')) $paramwithsearch.= '&from='.GETPOST('from','alpha');
|
if (GETPOST('from','alpha')) $paramwithsearch.= '&from='.GETPOST('from','alpha');
|
||||||
|
|
||||||
// There is several pages
|
// There is several pages
|
||||||
if ($num > $listlimit)
|
if ($num > $listlimit)
|
||||||
{
|
{
|
||||||
@ -700,8 +669,7 @@ if ($id)
|
|||||||
if ($fieldlist[$field]=='pcg_type') { $valuetoshow=$langs->trans("Pcg_type"); }
|
if ($fieldlist[$field]=='pcg_type') { $valuetoshow=$langs->trans("Pcg_type"); }
|
||||||
if ($fieldlist[$field]=='pcg_subtype') { $valuetoshow=$langs->trans("Pcg_subtype"); }
|
if ($fieldlist[$field]=='pcg_subtype') { $valuetoshow=$langs->trans("Pcg_subtype"); }
|
||||||
if ($fieldlist[$field]=='type_template') { $valuetoshow=$langs->trans("TypeOfTemplate"); }
|
if ($fieldlist[$field]=='type_template') { $valuetoshow=$langs->trans("TypeOfTemplate"); }
|
||||||
if ($fieldlist[$field]=='range_account') { $valuetoshow=$langs->trans("Range"); }
|
if ($fieldlist[$field]=='range_account') { $valuetoshow=$langs->trans("Comment"); }
|
||||||
if ($fieldlist[$field]=='sens') { $valuetoshow=$langs->trans("Direction"); }
|
|
||||||
if ($fieldlist[$field]=='category_type') { $valuetoshow=$langs->trans("Calculated"); }
|
if ($fieldlist[$field]=='category_type') { $valuetoshow=$langs->trans("Calculated"); }
|
||||||
// Affiche nom du champ
|
// Affiche nom du champ
|
||||||
if ($showfield)
|
if ($showfield)
|
||||||
@ -742,6 +710,7 @@ if ($id)
|
|||||||
print '<div name="'.(! empty($obj->rowid)?$obj->rowid:$obj->code).'"></div>';
|
print '<div name="'.(! empty($obj->rowid)?$obj->rowid:$obj->code).'"></div>';
|
||||||
print '<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
print '<td></td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -759,17 +728,9 @@ if ($id)
|
|||||||
$showfield=1;
|
$showfield=1;
|
||||||
$align="left";
|
$align="left";
|
||||||
$valuetoshow=$obj->{$fieldlist[$field]};
|
$valuetoshow=$obj->{$fieldlist[$field]};
|
||||||
if ($value == 'type_template')
|
if ($value == 'category_type')
|
||||||
{
|
{
|
||||||
$valuetoshow = isset($elementList[$valuetoshow])?$elementList[$valuetoshow]:$valuetoshow;
|
$valuetoshow = yn($valuetoshow);
|
||||||
}
|
|
||||||
if ($value == 'element')
|
|
||||||
{
|
|
||||||
$valuetoshow = isset($elementList[$valuetoshow])?$elementList[$valuetoshow]:$valuetoshow;
|
|
||||||
}
|
|
||||||
else if ($value == 'source')
|
|
||||||
{
|
|
||||||
$valuetoshow = isset($sourceList[$valuetoshow])?$sourceList[$valuetoshow]:$valuetoshow;
|
|
||||||
}
|
}
|
||||||
else if ($valuetoshow=='all') {
|
else if ($valuetoshow=='all') {
|
||||||
$valuetoshow=$langs->trans('All');
|
$valuetoshow=$langs->trans('All');
|
||||||
@ -785,12 +746,6 @@ if ($id)
|
|||||||
$valuetoshow=($key != "Country".strtoupper($obj->country_code)?$obj->country_code." - ".$key:$obj->country);
|
$valuetoshow=($key != "Country".strtoupper($obj->country_code)?$obj->country_code." - ".$key:$obj->country);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($fieldlist[$field]=='libelle_facture') {
|
|
||||||
$langs->load("bills");
|
|
||||||
$key=$langs->trans("PaymentCondition".strtoupper($obj->code));
|
|
||||||
$valuetoshow=($obj->code && $key != "PaymentCondition".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
$valuetoshow=nl2br($valuetoshow);
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_country') {
|
else if ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_country') {
|
||||||
$key=$langs->trans("Country".strtoupper($obj->code));
|
$key=$langs->trans("Country".strtoupper($obj->code));
|
||||||
$valuetoshow=($obj->code && $key != "Country".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
$valuetoshow=($obj->code && $key != "Country".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
||||||
@ -804,83 +759,11 @@ if ($id)
|
|||||||
$key=$langs->trans("Action".strtoupper($obj->code));
|
$key=$langs->trans("Action".strtoupper($obj->code));
|
||||||
$valuetoshow=($obj->code && $key != "Action".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
$valuetoshow=($obj->code && $key != "Action".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
||||||
}
|
}
|
||||||
else if (! empty($obj->code_iso) && $fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_currencies') {
|
|
||||||
$key=$langs->trans("Currency".strtoupper($obj->code_iso));
|
|
||||||
$valuetoshow=($obj->code_iso && $key != "Currency".strtoupper($obj->code_iso)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_typent') {
|
|
||||||
$key=$langs->trans(strtoupper($obj->code));
|
|
||||||
$valuetoshow=($key != strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_prospectlevel') {
|
|
||||||
$key=$langs->trans(strtoupper($obj->code));
|
|
||||||
$valuetoshow=($key != strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_civility') {
|
|
||||||
$key=$langs->trans("Civility".strtoupper($obj->code));
|
|
||||||
$valuetoshow=($obj->code && $key != "Civility".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_type_contact') {
|
|
||||||
$langs->load('agenda');
|
|
||||||
$key=$langs->trans("TypeContact_".$obj->element."_".$obj->source."_".strtoupper($obj->code));
|
|
||||||
$valuetoshow=($obj->code && $key != "TypeContact_".$obj->element."_".$obj->source."_".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_payment_term') {
|
|
||||||
$langs->load("bills");
|
|
||||||
$key=$langs->trans("PaymentConditionShort".strtoupper($obj->code));
|
|
||||||
$valuetoshow=($obj->code && $key != "PaymentConditionShort".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_paiement') {
|
|
||||||
$langs->load("bills");
|
|
||||||
$key=$langs->trans("PaymentType".strtoupper($obj->code));
|
|
||||||
$valuetoshow=($obj->code && $key != "PaymentType".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_input_reason') {
|
|
||||||
$key=$langs->trans("DemandReasonType".strtoupper($obj->code));
|
|
||||||
$valuetoshow=($obj->code && $key != "DemandReasonType".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_input_method') {
|
|
||||||
$langs->load("orders");
|
|
||||||
$key=$langs->trans($obj->code);
|
|
||||||
$valuetoshow=($obj->code && $key != $obj->code)?$key:$obj->{$fieldlist[$field]};
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_shipment_mode') {
|
|
||||||
$langs->load("sendings");
|
|
||||||
$key=$langs->trans("SendingMethod".strtoupper($obj->code));
|
|
||||||
$valuetoshow=($obj->code && $key != "SendingMethod".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field] == 'libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_paper_format')
|
|
||||||
{
|
|
||||||
$key = $langs->trans('PaperFormat'.strtoupper($obj->code));
|
|
||||||
$valuetoshow = ($obj->code && $key != 'PaperFormat'.strtoupper($obj->code) ? $key : $obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field] == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_type_fees')
|
|
||||||
{
|
|
||||||
$langs->load('trips');
|
|
||||||
$key = $langs->trans(strtoupper($obj->code));
|
|
||||||
$valuetoshow = ($obj->code && $key != strtoupper($obj->code) ? $key : $obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='region_id' || $fieldlist[$field]=='country_id') {
|
else if ($fieldlist[$field]=='region_id' || $fieldlist[$field]=='country_id') {
|
||||||
$showfield=0;
|
$showfield=0;
|
||||||
}
|
}
|
||||||
else if ($fieldlist[$field]=='label' && $tabname[$_GET["id"]]==MAIN_DB_PREFIX.'c_units') {
|
|
||||||
$langs->load("products");
|
|
||||||
$valuetoshow=$langs->trans($obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='short_label' && $tabname[$_GET["id"]]==MAIN_DB_PREFIX.'c_units') {
|
|
||||||
$langs->load("products");
|
|
||||||
$valuetoshow = $langs->trans($obj->{$fieldlist[$field]});
|
|
||||||
}
|
|
||||||
else if (in_array($fieldlist[$field],array('recuperableonly')))
|
|
||||||
{
|
|
||||||
$align="center";
|
|
||||||
}
|
|
||||||
else if ($fieldlist[$field]=='accountancy_code' || $fieldlist[$field]=='accountancy_code_sell' || $fieldlist[$field]=='accountancy_code_buy') {
|
|
||||||
$valuetoshow = length_accountg($valuetoshow);
|
|
||||||
}
|
|
||||||
|
|
||||||
$class='tddict';
|
$class='tddict';
|
||||||
if ($fieldlist[$field] == 'tracking') $class.=' tdoverflowauto';
|
|
||||||
// Show value for field
|
// Show value for field
|
||||||
if ($showfield) print '<!-- '.$fieldlist[$field].' --><td align="'.$align.'" class="'.$class.'">'.$valuetoshow.'</td>';
|
if ($showfield) print '<!-- '.$fieldlist[$field].' --><td align="'.$align.'" class="'.$class.'">'.$valuetoshow.'</td>';
|
||||||
}
|
}
|
||||||
@ -891,14 +774,9 @@ if ($id)
|
|||||||
if (isset($obj->code))
|
if (isset($obj->code))
|
||||||
{
|
{
|
||||||
if (($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i',$obj->code))) { $iserasable = 0; $canbedisabled = 0; }
|
if (($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i',$obj->code))) { $iserasable = 0; $canbedisabled = 0; }
|
||||||
else if ($obj->code == 'RECEP') { $iserasable = 0; $canbedisabled = 0; }
|
|
||||||
else if ($obj->code == 'EF0') { $iserasable = 0; $canbedisabled = 0; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($obj->type) && in_array($obj->type, array('system', 'systemauto'))) { $iserasable=0; }
|
|
||||||
if (in_array($obj->code, array('AC_OTH','AC_OTH_AUTO')) || in_array($obj->type, array('systemauto'))) { $canbedisabled=0; $canbedisabled = 0; }
|
|
||||||
$canbemodified=$iserasable;
|
$canbemodified=$iserasable;
|
||||||
if ($obj->code == 'RECEP') $canbemodified=1;
|
|
||||||
|
|
||||||
$url = $_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(! empty($obj->rowid)?$obj->rowid:(! empty($obj->code)?$obj->code:'')).'&code='.(! empty($obj->code)?urlencode($obj->code):'');
|
$url = $_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(! empty($obj->rowid)?$obj->rowid:(! empty($obj->code)?$obj->code:'')).'&code='.(! empty($obj->code)?urlencode($obj->code):'');
|
||||||
if ($param) $url .= '&'.$param;
|
if ($param) $url .= '&'.$param;
|
||||||
@ -909,10 +787,7 @@ if ($id)
|
|||||||
if ($canbedisabled) print '<a href="'.$url.'action='.$acts[$obj->active].'">'.$actl[$obj->active].'</a>';
|
if ($canbedisabled) print '<a href="'.$url.'action='.$acts[$obj->active].'">'.$actl[$obj->active].'</a>';
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (in_array($obj->code, array('AC_OTH','AC_OTH_AUTO'))) print $langs->trans("AlwaysActive");
|
print $langs->trans("AlwaysActive");
|
||||||
else if (isset($obj->type) && in_array($obj->type, array('systemauto')) && empty($obj->active)) print $langs->trans("Deprecated");
|
|
||||||
else if (isset($obj->type) && in_array($obj->type, array('system')) && ! empty($obj->active) && $obj->code != 'AC_OTH') print $langs->trans("UsedOnlyWithTypeOption");
|
|
||||||
else print $langs->trans("AlwaysActive");
|
|
||||||
}
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
@ -937,8 +812,8 @@ if ($id)
|
|||||||
print '<a href="'.DOL_URL_ROOT.'/accountancy/admin/categories.php?action=display&account_category='.$obj->rowid.'">'.$langs->trans("Setup").'</a>';
|
print '<a href="'.DOL_URL_ROOT.'/accountancy/admin/categories.php?action=display&account_category='.$obj->rowid.'">'.$langs->trans("Setup").'</a>';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>\n";
|
|
||||||
}
|
}
|
||||||
|
print "</tr>\n";
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -948,6 +823,7 @@ if ($id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
@ -984,16 +860,17 @@ function fieldListAccountingCategories($fieldlist, $obj='', $tabname='', $contex
|
|||||||
{
|
{
|
||||||
if ($fieldlist[$field] == 'country')
|
if ($fieldlist[$field] == 'country')
|
||||||
{
|
{
|
||||||
if (in_array('region_id',$fieldlist))
|
|
||||||
{
|
|
||||||
print '<td>';
|
|
||||||
//print join(',',$fieldlist);
|
|
||||||
print '</td>';
|
|
||||||
continue;
|
|
||||||
} // For state page, we do not show the country input (we link to region, not country)
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$fieldname='country';
|
$fieldname='country';
|
||||||
print $form->select_country((! empty($obj->country_code)?$obj->country_code:(! empty($obj->country)?$obj->country:$mysoc->country_code)), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
if ($context == 'add')
|
||||||
|
{
|
||||||
|
$fieldname='country_id';
|
||||||
|
print $form->select_country(GETPOST('country_id','int'), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $form->select_country((! empty($obj->country_code)?$obj->country_code:(! empty($obj->country)?$obj->country:$mysoc->country_code)), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
elseif ($fieldlist[$field] == 'country_id')
|
elseif ($fieldlist[$field] == 'country_id')
|
||||||
@ -1006,130 +883,14 @@ function fieldListAccountingCategories($fieldlist, $obj='', $tabname='', $contex
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($fieldlist[$field] == 'region')
|
elseif ($fieldlist[$field] == 'category_type') {
|
||||||
{
|
print '<td>';
|
||||||
print '<td>';
|
print $form->selectyesno($fieldlist[$field],(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''),1);
|
||||||
$formcompany->select_region($region_id,'region');
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
elseif ($fieldlist[$field] == 'region_id')
|
|
||||||
{
|
|
||||||
$region_id = (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:0);
|
|
||||||
print '<td>';
|
|
||||||
print '<input type="hidden" name="'.$fieldlist[$field].'" value="'.$region_id.'">';
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
elseif ($fieldlist[$field] == 'lang')
|
|
||||||
{
|
|
||||||
print '<td>';
|
|
||||||
print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT,'lang');
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
// Le type de template
|
|
||||||
elseif ($fieldlist[$field] == 'type_template')
|
|
||||||
{
|
|
||||||
print '<td>';
|
|
||||||
print $form->selectarray('type_template', $elementList,(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''));
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
// Le type de l'element (pour les type de contact)
|
|
||||||
elseif ($fieldlist[$field] == 'element')
|
|
||||||
{
|
|
||||||
print '<td>';
|
|
||||||
print $form->selectarray('element', $elementList,(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''));
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
// La source de l'element (pour les type de contact)
|
|
||||||
elseif ($fieldlist[$field] == 'source')
|
|
||||||
{
|
|
||||||
print '<td>';
|
|
||||||
print $form->selectarray('source', $sourceList,(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''));
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
elseif ($fieldlist[$field] == 'type' && $tabname == MAIN_DB_PREFIX."c_actioncomm")
|
|
||||||
{
|
|
||||||
print '<td>';
|
|
||||||
print 'user<input type="hidden" name="type" value="user">';
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
elseif ($fieldlist[$field] == 'recuperableonly' || $fieldlist[$field] == 'type_cdr' || $fieldlist[$field] == 'deductible' || $fieldlist[$field] == 'category_type') {
|
|
||||||
if ($fieldlist[$field] == 'type_cdr') print '<td align="center">';
|
|
||||||
else print '<td>';
|
|
||||||
if ($fieldlist[$field] == 'type_cdr') {
|
|
||||||
print $form->selectarray($fieldlist[$field], array(0=>$langs->trans('None'), 1=>$langs->trans('AtEndOfMonth'), 2=>$langs->trans('CurrentNext')), (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''));
|
|
||||||
} else {
|
|
||||||
print $form->selectyesno($fieldlist[$field],(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''),1);
|
|
||||||
}
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
elseif (in_array($fieldlist[$field],array('nbjour','decalage','taux','localtax1','localtax2'))) {
|
|
||||||
$align="left";
|
|
||||||
if (in_array($fieldlist[$field],array('taux','localtax1','localtax2'))) $align="center"; // Fields aligned on right
|
|
||||||
print '<td align="'.$align.'">';
|
|
||||||
print '<input type="text" class="flat" value="'.(isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]} : '').'" size="3" name="'.$fieldlist[$field].'">';
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
elseif (in_array($fieldlist[$field], array('libelle_facture'))) {
|
|
||||||
print '<td><textarea cols="30" rows="'.ROWS_2.'" class="flat" name="'.$fieldlist[$field].'">'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'</textarea></td>';
|
|
||||||
}
|
|
||||||
elseif (in_array($fieldlist[$field], array('content')))
|
|
||||||
{
|
|
||||||
if ($tabname == MAIN_DB_PREFIX.'c_email_templates')
|
|
||||||
{
|
|
||||||
print '<td colspan="4"></td></tr><tr class="pair nohover"><td colspan="5">'; // To create an artificial CR for the current tr we are on
|
|
||||||
}
|
|
||||||
else print '<td>';
|
|
||||||
if ($context != 'hide')
|
|
||||||
{
|
|
||||||
//print '<textarea cols="3" rows="'.ROWS_2.'" class="flat" name="'.$fieldlist[$field].'">'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'</textarea>';
|
|
||||||
$okforextended=true;
|
|
||||||
if ($tabname == MAIN_DB_PREFIX.'c_email_templates' && empty($conf->global->FCKEDITOR_ENABLE_MAIL)) $okforextended=false;
|
|
||||||
$doleditor = new DolEditor($fieldlist[$field], (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''), '', 140, 'dolibarr_mailings', 'In', 0, false, $okforextended, ROWS_5, '90%');
|
|
||||||
print $doleditor->Create(1);
|
|
||||||
}
|
|
||||||
else print ' ';
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
elseif ($fieldlist[$field] == 'price' || preg_match('/^amount/i',$fieldlist[$field])) {
|
|
||||||
print '<td><input type="text" class="flat minwidth75" value="'.price((! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'')).'" name="'.$fieldlist[$field].'"></td>';
|
|
||||||
}
|
|
||||||
elseif ($fieldlist[$field] == 'code' && isset($obj->{$fieldlist[$field]})) {
|
elseif ($fieldlist[$field] == 'code' && isset($obj->{$fieldlist[$field]})) {
|
||||||
print '<td><input type="text" class="flat minwidth100" value="'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'"></td>';
|
print '<td><input type="text" class="flat minwidth100" value="'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'"></td>';
|
||||||
}
|
}
|
||||||
elseif ($fieldlist[$field]=='unit') {
|
|
||||||
print '<td>';
|
|
||||||
$units = array(
|
|
||||||
'mm' => $langs->trans('SizeUnitmm'),
|
|
||||||
'cm' => $langs->trans('SizeUnitcm'),
|
|
||||||
'point' => $langs->trans('SizeUnitpoint'),
|
|
||||||
'inch' => $langs->trans('SizeUnitinch')
|
|
||||||
);
|
|
||||||
print $form->selectarray('unit', $units, (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''), 0, 0, 0);
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
// Le type de taxe locale
|
|
||||||
elseif ($fieldlist[$field] == 'localtax1_type' || $fieldlist[$field] == 'localtax2_type')
|
|
||||||
{
|
|
||||||
print '<td align="center">';
|
|
||||||
print $form->selectarray($fieldlist[$field], $localtax_typeList, (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''));
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
elseif ($fieldlist[$field] == 'accountancy_code' || $fieldlist[$field] == 'accountancy_code_sell' || $fieldlist[$field] == 'accountancy_code_buy')
|
|
||||||
{
|
|
||||||
print '<td>';
|
|
||||||
if (! empty($conf->accounting->enabled))
|
|
||||||
{
|
|
||||||
$fieldname = $fieldlist[$field];
|
|
||||||
$accountancy_account = (! empty($obj->$fieldname) ? $obj->$fieldname : 0);
|
|
||||||
print $formaccounting->select_account($accountancy_account, $fieldlist[$field], 1, '', 1, 1, 'maxwidth200 maxwidthonsmartphone');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$fieldname = $fieldlist[$field];
|
|
||||||
print '<input type="text" size="10" class="flat" value="'.(isset($obj->$fieldname)?$obj->$fieldname:'').'" name="'.$fieldlist[$field].'">';
|
|
||||||
}
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -1137,8 +898,7 @@ function fieldListAccountingCategories($fieldlist, $obj='', $tabname='', $contex
|
|||||||
if ($fieldlist[$field]=='code') $class='maxwidth100';
|
if ($fieldlist[$field]=='code') $class='maxwidth100';
|
||||||
if ($fieldlist[$field]=='position') $class='maxwidth50';
|
if ($fieldlist[$field]=='position') $class='maxwidth50';
|
||||||
if ($fieldlist[$field]=='libelle') $class='quatrevingtpercent';
|
if ($fieldlist[$field]=='libelle') $class='quatrevingtpercent';
|
||||||
if ($fieldlist[$field]=='tracking') $class='quatrevingtpercent';
|
if ($fieldlist[$field]=='sortorder' || $fieldlist[$field]=='category_type') $size='size="2" ';
|
||||||
if ($fieldlist[$field]=='sortorder' || $fieldlist[$field]=='sens' || $fieldlist[$field]=='category_type') $size='size="2" ';
|
|
||||||
print '<input type="text" '.$size.'class="flat'.($class?' '.$class:'').'" value="'.(isset($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
print '<input type="text" '.$size.'class="flat'.($class?' '.$class:'').'" value="'.(isset($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -423,6 +423,7 @@ if ($id)
|
|||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="from" value="'.dol_escape_htmltag(GETPOST('from','alpha')).'">';
|
print '<input type="hidden" name="from" value="'.dol_escape_htmltag(GETPOST('from','alpha')).'">';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
// Form to add a new line
|
// Form to add a new line
|
||||||
@ -691,6 +692,7 @@ if ($id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -312,6 +312,7 @@ if ($result)
|
|||||||
$texte=$langs->trans("ListOfProductsServices");
|
$texte=$langs->trans("ListOfProductsServices");
|
||||||
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit);
|
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit);
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
|
print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
|
||||||
|
|
||||||
print '<tr class="liste_titre_filter">';
|
print '<tr class="liste_titre_filter">';
|
||||||
@ -448,6 +449,7 @@ if ($result)
|
|||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
// Example : Adding jquery code
|
// Example : Adding jquery code
|
||||||
print '<script type="text/javascript" language="javascript">
|
print '<script type="text/javascript" language="javascript">
|
||||||
|
|||||||
@ -370,6 +370,7 @@ print '<div class="inline-block divButAction"><a class="butActionDelete" name="b
|
|||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
print '<tr class="liste_titre_filter">';
|
print '<tr class="liste_titre_filter">';
|
||||||
@ -501,6 +502,7 @@ print '<td colspan="2"></td>';
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -286,7 +286,7 @@ class AccountancyCategory
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($mysoc->country_id)) {
|
if (! empty($mysoc->country_id)) {
|
||||||
$sql = "SELECT t.rowid, t.account_number, t.label as name_cpt, cat.code, cat.position, cat.label as name_cat, cat.sens ";
|
$sql = "SELECT t.rowid, t.account_number, t.label as account_label, cat.code, cat.position, cat.label as name_cat, cat.sens ";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t, " . MAIN_DB_PREFIX . "c_accounting_category as cat";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t, " . MAIN_DB_PREFIX . "c_accounting_category as cat";
|
||||||
$sql .= " WHERE t.fk_accounting_category IN ( SELECT c.rowid ";
|
$sql .= " WHERE t.fk_accounting_category IN ( SELECT c.rowid ";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c";
|
||||||
@ -316,7 +316,7 @@ class AccountancyCategory
|
|||||||
'code' => $obj->code,
|
'code' => $obj->code,
|
||||||
'position' => $obj->position,
|
'position' => $obj->position,
|
||||||
'account_number' => $obj->account_number,
|
'account_number' => $obj->account_number,
|
||||||
'name_cpt' => $obj->name_cpt,
|
'account_label' => $obj->account_label,
|
||||||
'sens' => $obj->sens
|
'sens' => $obj->sens
|
||||||
);
|
);
|
||||||
$i ++;
|
$i ++;
|
||||||
@ -334,22 +334,28 @@ class AccountancyCategory
|
|||||||
/**
|
/**
|
||||||
* Function to show result of an accounting account from the ledger with a direction and a period
|
* Function to show result of an accounting account from the ledger with a direction and a period
|
||||||
*
|
*
|
||||||
* @param int $cpt Id accounting account
|
* @param int $cpt Id accounting account
|
||||||
* @param string $month Specifig month - Can be empty
|
* @param string $month Specifig month - Can be empty
|
||||||
* @param string $year Specific year
|
* @param string $date_start Date start
|
||||||
* @param int $sens Sens of the account 0: credit - debit 1: debit - credit
|
* @param string $date_end Date end
|
||||||
*
|
* @param int $sens Sens of the account: 0: credit - debit, 1: debit - credit
|
||||||
* @return integer Result in table
|
* @param string $thirdparty_code Thirdparty code
|
||||||
|
* @return integer Result in table
|
||||||
*/
|
*/
|
||||||
public function getResult($cpt, $month, $year, $sens) {
|
public function getResult($cpt, $month, $date_start, $date_end, $sens, $thirdparty_code='nofilter')
|
||||||
|
{
|
||||||
$sql = "SELECT SUM(t.debit) as debit, SUM(t.credit) as credit";
|
$sql = "SELECT SUM(t.debit) as debit, SUM(t.credit) as credit";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as t";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as t";
|
||||||
$sql .= " WHERE t.numero_compte = '" . $cpt."'";
|
$sql .= " WHERE t.numero_compte = '" . $cpt."'";
|
||||||
$sql .= " AND YEAR(t.doc_date) = " . $year;
|
if (! empty($date_start) && ! empty($date_end))
|
||||||
|
$sql.= " AND t.doc_date >= '".$this->db->idate($date_start)."' AND t.doc_date <= '".$this->db->idate($date_end)."'";
|
||||||
if (! empty($month)) {
|
if (! empty($month)) {
|
||||||
$sql .= " AND MONTH(t.doc_date) = " . $month;
|
$sql .= " AND MONTH(t.doc_date) = " . $month;
|
||||||
}
|
}
|
||||||
|
if ($thirdparty_code != 'nofilter')
|
||||||
|
{
|
||||||
|
$sql .= " AND thirdparty_code = '".$ths->db->escape($thirdparty_code)."'";
|
||||||
|
}
|
||||||
|
|
||||||
dol_syslog(__METHOD__ . " sql=" . $sql, LOG_DEBUG);
|
dol_syslog(__METHOD__ . " sql=" . $sql, LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
@ -375,62 +381,13 @@ class AccountancyCategory
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to call category from a specific country
|
* Return list of personalized groups
|
||||||
*
|
*
|
||||||
* @return array Result in table
|
* @return int $categorytype -1=All, 0=Only non computed groups, 1=Only computed groups
|
||||||
|
* @return array|int Array of personalized groups or < 0 if KO
|
||||||
*/
|
*/
|
||||||
public function getCatsCal() {
|
public function getCats($categorytype=-1)
|
||||||
global $db, $langs, $user, $mysoc;
|
{
|
||||||
|
|
||||||
if (empty($mysoc->country_id) && empty($mysoc->country_code)) {
|
|
||||||
dol_print_error('', 'Call to select_accounting_account with mysoc country not yet defined');
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! empty($mysoc->country_id)) {
|
|
||||||
$sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position";
|
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c";
|
|
||||||
$sql .= " WHERE c.active = 1 AND c.category_type = 1 ";
|
|
||||||
$sql .= " AND c.fk_country = " . $mysoc->country_id;
|
|
||||||
$sql .= " ORDER BY c.position ASC";
|
|
||||||
} else {
|
|
||||||
$sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position";
|
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c, " . MAIN_DB_PREFIX . "c_country as co";
|
|
||||||
$sql .= " WHERE c.active = 1 AND c.category_type = 1 AND c.fk_country = co.rowid";
|
|
||||||
$sql .= " AND co.code = '" . $mysoc->country_code . "'";
|
|
||||||
$sql .= " ORDER BY c.position ASC";
|
|
||||||
}
|
|
||||||
|
|
||||||
dol_syslog(__METHOD__ . " sql=" . $sql, LOG_DEBUG);
|
|
||||||
$resql = $this->db->query($sql);
|
|
||||||
if ($resql) {
|
|
||||||
$i = 0;
|
|
||||||
$obj = '';
|
|
||||||
$num = $this->db->num_rows($resql);
|
|
||||||
$data = array ();
|
|
||||||
if ($num) {
|
|
||||||
while ( $i < $num ) {
|
|
||||||
$obj = $this->db->fetch_object($resql);
|
|
||||||
$position = $obj->position;
|
|
||||||
$data[$position] = array (
|
|
||||||
'code' => $obj->code,
|
|
||||||
'label' => $obj->label,
|
|
||||||
'formula' => $obj->formula
|
|
||||||
);
|
|
||||||
$i ++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $data;
|
|
||||||
} else {
|
|
||||||
$this->error = "Error " . $this->db->lasterror();
|
|
||||||
$this->errors[] = $this->error;
|
|
||||||
dol_syslog(__METHOD__ . " " . implode(',', $this->errors), LOG_ERR);
|
|
||||||
|
|
||||||
return - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCats() {
|
|
||||||
global $db, $langs, $user, $mysoc;
|
global $db, $langs, $user, $mysoc;
|
||||||
|
|
||||||
if (empty($mysoc->country_id) && empty($mysoc->country_code)) {
|
if (empty($mysoc->country_id) && empty($mysoc->country_code)) {
|
||||||
@ -442,17 +399,18 @@ class AccountancyCategory
|
|||||||
$sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position, c.category_type";
|
$sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position, c.category_type";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c";
|
||||||
$sql .= " WHERE c.active = 1 ";
|
$sql .= " WHERE c.active = 1 ";
|
||||||
|
if ($categorytype >= 0) $sql.=" AND c.category_type = 1";
|
||||||
$sql .= " AND c.fk_country = " . $mysoc->country_id;
|
$sql .= " AND c.fk_country = " . $mysoc->country_id;
|
||||||
$sql .= " ORDER BY c.position ASC";
|
$sql .= " ORDER BY c.position ASC";
|
||||||
} else {
|
} else { // Note: this should not happen
|
||||||
$sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position, c.category_type";
|
$sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position, c.category_type";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c, " . MAIN_DB_PREFIX . "c_country as co";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c, " . MAIN_DB_PREFIX . "c_country as co";
|
||||||
$sql .= " WHERE c.active = 1 AND c.fk_country = co.rowid";
|
$sql .= " WHERE c.active = 1 AND c.fk_country = co.rowid";
|
||||||
|
if ($categorytype >= 0) $sql.=" AND c.category_type = 1";
|
||||||
$sql .= " AND co.code = '" . $mysoc->country_code . "'";
|
$sql .= " AND co.code = '" . $mysoc->country_code . "'";
|
||||||
$sql .= " ORDER BY c.position ASC";
|
$sql .= " ORDER BY c.position ASC";
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog(__METHOD__ . " sql=" . $sql, LOG_DEBUG);
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$i = 0;
|
$i = 0;
|
||||||
@ -466,9 +424,9 @@ class AccountancyCategory
|
|||||||
$data[] = array (
|
$data[] = array (
|
||||||
'rowid' => $obj->rowid,
|
'rowid' => $obj->rowid,
|
||||||
'code' => $obj->code,
|
'code' => $obj->code,
|
||||||
'position' => $obj->position,
|
|
||||||
'label' => $obj->label,
|
'label' => $obj->label,
|
||||||
'formula' => $obj->formula,
|
'formula' => $obj->formula,
|
||||||
|
'position' => $obj->position,
|
||||||
'category_type' => $obj->category_type
|
'category_type' => $obj->category_type
|
||||||
);
|
);
|
||||||
$i ++;
|
$i ++;
|
||||||
@ -487,13 +445,19 @@ class AccountancyCategory
|
|||||||
|
|
||||||
// calcule
|
// calcule
|
||||||
|
|
||||||
|
/* I try to replace this with dol_eval()
|
||||||
|
|
||||||
const PATTERN = '/(?:\-?\d+(?:\.?\d+)?[\+\-\*\/])+\-?\d+(?:\.?\d+)?/';
|
const PATTERN = '/(?:\-?\d+(?:\.?\d+)?[\+\-\*\/])+\-?\d+(?:\.?\d+)?/';
|
||||||
|
|
||||||
const PARENTHESIS_DEPTH = 10;
|
const PARENTHESIS_DEPTH = 10;
|
||||||
|
|
||||||
public function calculate($input){
|
public function calculate($input)
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
|
||||||
if(strpos($input, '+') != null || strpos($input, '-') != null || strpos($input, '/') != null || strpos($input, '*') != null){
|
if(strpos($input, '+') != null || strpos($input, '-') != null || strpos($input, '/') != null || strpos($input, '*') != null){
|
||||||
// Remove white spaces and invalid math chars
|
// Remove white spaces and invalid math chars
|
||||||
|
$input = str_replace($langs->trans("ThousandSeparator"), '', $input);
|
||||||
$input = str_replace(',', '.', $input);
|
$input = str_replace(',', '.', $input);
|
||||||
$input = preg_replace('[^0-9\.\+\-\*\/\(\)]', '', $input);
|
$input = preg_replace('[^0-9\.\+\-\*\/\(\)]', '', $input);
|
||||||
|
|
||||||
@ -535,28 +499,41 @@ class AccountancyCategory
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get cpts of category
|
* Get all accounting account of a group.
|
||||||
|
* You must choose between first parameter (personalized group) or the second (free criteria filter)
|
||||||
*
|
*
|
||||||
* @param int $cat_id Id accounting account category
|
* @param int $cat_id Id if personalized accounting group/category
|
||||||
*
|
* @param string $predefinedgroup Sql criteria filter to select accounting accounts
|
||||||
* @return array Result in table
|
* @return array Array of accounting accounts
|
||||||
*/
|
*/
|
||||||
public function getCptsCat($cat_id) {
|
public function getCptsCat($cat_id, $predefinedgroupwhere='')
|
||||||
|
{
|
||||||
global $mysoc;
|
global $mysoc;
|
||||||
$sql = "";
|
$sql = '';
|
||||||
|
|
||||||
if (empty($mysoc->country_id) && empty($mysoc->country_code)) {
|
if (empty($mysoc->country_id) && empty($mysoc->country_code)) {
|
||||||
dol_print_error('', 'Call to select_accounting_account with mysoc country not yet defined');
|
dol_print_error('', 'Call to select_accounting_account with mysoc country not yet defined');
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT t.rowid, t.account_number, t.label as name_cpt";
|
if (! empty($cat_id))
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t";
|
{
|
||||||
$sql .= " WHERE t.fk_accounting_category = ".$cat_id;
|
$sql = "SELECT t.rowid, t.account_number, t.label as account_label";
|
||||||
$sql .= " ORDER BY t.account_number ";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t";
|
||||||
|
$sql .= " WHERE t.fk_accounting_category = ".$cat_id;
|
||||||
|
$sql .= " ORDER BY t.account_number ";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sql = "SELECT t.rowid, t.account_number, t.label as account_label";
|
||||||
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t";
|
||||||
|
$sql .= " WHERE ".$predefinedgroupwhere;
|
||||||
|
$sql .= " ORDER BY t.account_number ";
|
||||||
|
}
|
||||||
//echo $sql;
|
//echo $sql;
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
@ -564,14 +541,15 @@ class AccountancyCategory
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
$obj = '';
|
$obj = '';
|
||||||
$num = $this->db->num_rows($resql);
|
$num = $this->db->num_rows($resql);
|
||||||
$data = array ();
|
$data = array();
|
||||||
if ($num) {
|
if ($num) {
|
||||||
while ( $obj = $this->db->fetch_object($resql) ) {
|
while ($obj = $this->db->fetch_object($resql))
|
||||||
|
{
|
||||||
$name_cat = $obj->name_cat;
|
$name_cat = $obj->name_cat;
|
||||||
$data[] = array (
|
$data[] = array (
|
||||||
'id' => $obj->rowid,
|
'id' => $obj->rowid,
|
||||||
'account_number' => $obj->account_number,
|
'account_number' => $obj->account_number,
|
||||||
'name_cpt' => $obj->name_cpt,
|
'account_label' => $obj->account_label,
|
||||||
);
|
);
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1224,18 +1224,17 @@ class BookKeeping extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Delete bookkepping by piece number
|
* Delete bookkepping by piece number
|
||||||
*
|
*
|
||||||
* @param int $piecenum peicenum to delete
|
* @param int $piecenum Piecenum to delete
|
||||||
* @param string $mode Mode
|
* @return int Result
|
||||||
* @return int Result
|
|
||||||
*/
|
*/
|
||||||
function deleteMvtNum($piecenum, $mode) {
|
function deleteMvtNum($piecenum) {
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
// first check if line not yet in bookkeeping
|
// first check if line not yet in bookkeeping
|
||||||
$sql = "DELETE";
|
$sql = "DELETE";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element. $mode;
|
$sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element;
|
||||||
$sql .= " WHERE piece_num = " . $piecenum;
|
$sql .= " WHERE piece_num = " . $piecenum;
|
||||||
$sql .= " AND entity IN (" . getEntity('accountancy') . ")";
|
$sql .= " AND entity IN (" . getEntity('accountancy') . ")";
|
||||||
|
|
||||||
|
|||||||
@ -205,6 +205,7 @@ $buttonreset = '<a class="butActionDelete" href="' . $_SERVER['PHP_SELF'] . '?ye
|
|||||||
|
|
||||||
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
|
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
||||||
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
||||||
@ -254,13 +255,14 @@ if ($resql) {
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), $buttonreset, '');
|
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), $buttonreset, '');
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
||||||
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
||||||
@ -310,7 +312,7 @@ if ($resql) {
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. Why showing a report that should rely on result of this step ?
|
if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. Why showing a report that should rely on result of this step ?
|
||||||
@ -321,6 +323,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print_fiche_titre($langs->trans("OtherInfo"), '', '');
|
print_fiche_titre($langs->trans("OtherInfo"), '', '');
|
||||||
|
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("TotalVente") . '</td>';
|
print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("TotalVente") . '</td>';
|
||||||
for($i = 1; $i <= 12; $i ++) {
|
for($i = 1; $i <= 12; $i ++) {
|
||||||
@ -362,10 +365,11 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
if (! empty($conf->margin->enabled)) {
|
if (! empty($conf->margin->enabled)) {
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="400">' . $langs->trans("TotalMarge") . '</td>';
|
print '<tr class="liste_titre"><td width="400">' . $langs->trans("TotalMarge") . '</td>';
|
||||||
for($i = 1; $i <= 12; $i ++) {
|
for($i = 1; $i <= 12; $i ++) {
|
||||||
@ -408,6 +412,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -130,6 +130,8 @@ if (is_array($changeaccount) && count($changeaccount) > 0) {
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
llxHeader('', $langs->trans("CustomersVentilation") . ' - ' . $langs->trans("Dispatched"));
|
llxHeader('', $langs->trans("CustomersVentilation") . ' - ' . $langs->trans("Dispatched"));
|
||||||
|
|
||||||
print '<script type="text/javascript">
|
print '<script type="text/javascript">
|
||||||
|
|||||||
@ -94,7 +94,7 @@ if ($action == 'validatehistory') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog('htdocs/accountancy/expensereport/index.php');
|
dol_syslog('htdocs/accountancy/expensereport/index.php');
|
||||||
|
|
||||||
$resql1 = $db->query($sql1);
|
$resql1 = $db->query($sql1);
|
||||||
if (! $resql1) {
|
if (! $resql1) {
|
||||||
$error ++;
|
$error ++;
|
||||||
@ -139,7 +139,7 @@ if ($action == 'validatehistory') {
|
|||||||
$sql1.= " AND er.date_debut <= '" . $db->idate(dol_get_last_day($year_current, 12, false)) . "'";
|
$sql1.= " AND er.date_debut <= '" . $db->idate(dol_get_last_day($year_current, 12, false)) . "'";
|
||||||
$sql1.= " AND er.entity IN (" . getEntity('accountancy') . ")";
|
$sql1.= " AND er.entity IN (" . getEntity('accountancy') . ")";
|
||||||
$sql1.=")";
|
$sql1.=")";
|
||||||
|
|
||||||
dol_syslog("htdocs/accountancy/customer/index.php fixaccountancycode", LOG_DEBUG);
|
dol_syslog("htdocs/accountancy/customer/index.php fixaccountancycode", LOG_DEBUG);
|
||||||
|
|
||||||
$resql1 = $db->query($sql1);
|
$resql1 = $db->query($sql1);
|
||||||
@ -186,6 +186,7 @@ $buttonreset = '<a class="butActionDelete" href="' . $_SERVER['PHP_SELF'] . '?ye
|
|||||||
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
|
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
|
||||||
|
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
||||||
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
||||||
@ -231,7 +232,7 @@ if ($resql) {
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
@ -239,6 +240,7 @@ print '<br>';
|
|||||||
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), $buttonreset, '');
|
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), $buttonreset, '');
|
||||||
|
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
||||||
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
||||||
@ -284,7 +286,7 @@ if ($resql) {
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -292,17 +294,18 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
{
|
{
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print_fiche_titre($langs->trans("OtherInfo"), '', '');
|
print_fiche_titre($langs->trans("OtherInfo"), '', '');
|
||||||
|
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("Total") . '</td>';
|
print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("Total") . '</td>';
|
||||||
for($i = 1; $i <= 12; $i ++) {
|
for($i = 1; $i <= 12; $i ++) {
|
||||||
print '<td width="60" align="right">' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '</td>';
|
print '<td width="60" align="right">' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" align="right"><b>' . $langs->trans("Total") . '</b></td></tr>';
|
print '<td width="60" align="right"><b>' . $langs->trans("Total") . '</b></td></tr>';
|
||||||
|
|
||||||
$sql = "SELECT '" . $langs->trans("TotalExpenseReport") . "' AS label,";
|
$sql = "SELECT '" . $langs->trans("TotalExpenseReport") . "' AS label,";
|
||||||
for($i = 1; $i <= 12; $i ++) {
|
for($i = 1; $i <= 12; $i ++) {
|
||||||
$sql .= " SUM(" . $db->ifsql('MONTH(er.date_create)=' . $i, 'erd.total_ht', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ",";
|
$sql .= " SUM(" . $db->ifsql('MONTH(er.date_create)=' . $i, 'erd.total_ht', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ",";
|
||||||
@ -314,12 +317,12 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
$sql .= " AND er.date_debut <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'";
|
$sql .= " AND er.date_debut <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'";
|
||||||
$sql .= " AND er.fk_statut > 0 ";
|
$sql .= " AND er.fk_statut > 0 ";
|
||||||
$sql .= " AND er.entity IN (" . getEntity('expensereport', 0) . ")"; // We don't share object for accountancy
|
$sql .= " AND er.entity IN (" . getEntity('expensereport', 0) . ")"; // We don't share object for accountancy
|
||||||
|
|
||||||
dol_syslog('htdocs/accountancy/expensereport/index.php');
|
dol_syslog('htdocs/accountancy/expensereport/index.php');
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
|
|
||||||
while ( $row = $db->fetch_row($resql)) {
|
while ( $row = $db->fetch_row($resql)) {
|
||||||
print '<tr><td>' . $row[0] . '</td>';
|
print '<tr><td>' . $row[0] . '</td>';
|
||||||
for($i = 1; $i <= 12; $i ++) {
|
for($i = 1; $i <= 12; $i ++) {
|
||||||
@ -328,12 +331,13 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print '<td align="right"><b>' . price($row[13]) . '</b></td>';
|
print '<td align="right"><b>' . price($row[13]) . '</b></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
} else {
|
} else {
|
||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -87,7 +87,7 @@ print "<br>\n";
|
|||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
$step++;
|
$step++;
|
||||||
print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescMisc", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>')."\n";
|
print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescMisc", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>')."\n";
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
$step++;
|
$step++;
|
||||||
$textlink = '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuVatAccounts").'</strong>';
|
$textlink = '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuVatAccounts").'</strong>';
|
||||||
@ -138,6 +138,9 @@ print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBank", $step,
|
|||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
print_fiche_titre($langs->trans("AccountancyAreaDescActionFreq"), '', 'object_calendarweek');
|
print_fiche_titre($langs->trans("AccountancyAreaDescActionFreq"), '', 'object_calendarweek');
|
||||||
print '<hr>';
|
print '<hr>';
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
use Stripe\BankAccount;
|
|
||||||
|
|
||||||
/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2007-2010 Jean Heimburger <jean@tiaris.info>
|
* Copyright (C) 2007-2010 Jean Heimburger <jean@tiaris.info>
|
||||||
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
||||||
@ -726,7 +724,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
llxHeader('', $langs->trans("FinanceJournal"));
|
llxHeader('', $langs->trans("FinanceJournal"));
|
||||||
|
|
||||||
$nom = $langs->trans("FinanceJournal") . ' - ' . $accountingjournalstatic->getNomUrl(1);
|
$nom = $langs->trans("FinanceJournal") . ' - ' . $accountingjournalstatic->getNomUrl(1);
|
||||||
$builddate = time();
|
$builddate=dol_now();
|
||||||
//$description = $langs->trans("DescFinanceJournal") . '<br>';
|
//$description = $langs->trans("DescFinanceJournal") . '<br>';
|
||||||
$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
||||||
|
|
||||||
@ -742,7 +740,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
|| empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1'
|
|| empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1'
|
||||||
|| empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
|
|| empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
|
||||||
print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
|
print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
|
||||||
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -774,6 +772,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print "<table class=\"noborder\" width=\"100%\">";
|
print "<table class=\"noborder\" width=\"100%\">";
|
||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
print "<td></td>";
|
print "<td></td>";
|
||||||
@ -924,6 +923,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -498,7 +498,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$nomlink = '';
|
$nomlink = '';
|
||||||
$periodlink = '';
|
$periodlink = '';
|
||||||
$exportlink = '';
|
$exportlink = '';
|
||||||
$builddate = time();
|
$builddate=dol_now();
|
||||||
$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
||||||
|
|
||||||
$listofchoices=array('already'=>$langs->trans("AlreadyInGeneralLedger"), 'notyet'=>$langs->trans("NotYetInGeneralLedger"));
|
$listofchoices=array('already'=>$langs->trans("AlreadyInGeneralLedger"), 'notyet'=>$langs->trans("NotYetInGeneralLedger"));
|
||||||
@ -511,7 +511,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Button to write into Ledger
|
// Button to write into Ledger
|
||||||
if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
|
if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
|
||||||
print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
|
print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
|
||||||
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
||||||
}
|
}
|
||||||
print '<div class="tabsAction tabsActionNoBottom">';
|
print '<div class="tabsAction tabsActionNoBottom">';
|
||||||
if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
|
if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
|
||||||
@ -543,6 +543,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print "<table class=\"noborder\" width=\"100%\">";
|
print "<table class=\"noborder\" width=\"100%\">";
|
||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
print "<td></td>";
|
print "<td></td>";
|
||||||
@ -668,6 +669,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -514,7 +514,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$nomlink = '';
|
$nomlink = '';
|
||||||
$periodlink = '';
|
$periodlink = '';
|
||||||
$exportlink = '';
|
$exportlink = '';
|
||||||
$builddate = time();
|
$builddate=dol_now();
|
||||||
$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||||
$description .= $langs->trans("DepositsAreNotIncluded");
|
$description .= $langs->trans("DepositsAreNotIncluded");
|
||||||
@ -532,7 +532,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Button to write into Ledger
|
// Button to write into Ledger
|
||||||
if (empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
|
if (empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
|
||||||
print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
|
print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
|
||||||
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
||||||
}
|
}
|
||||||
print '<div class="tabsAction tabsActionNoBottom">';
|
print '<div class="tabsAction tabsActionNoBottom">';
|
||||||
if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
|
if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
|
||||||
@ -564,6 +564,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print "<table class=\"noborder\" width=\"100%\">";
|
print "<table class=\"noborder\" width=\"100%\">";
|
||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
print "<td></td>";
|
print "<td></td>";
|
||||||
@ -692,6 +693,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -535,7 +535,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$nomlink = '';
|
$nomlink = '';
|
||||||
$periodlink = '';
|
$periodlink = '';
|
||||||
$exportlink = '';
|
$exportlink = '';
|
||||||
$builddate = time();
|
$builddate=dol_now();
|
||||||
$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS))
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS))
|
||||||
$description .= $langs->trans("DepositsAreNotIncluded");
|
$description .= $langs->trans("DepositsAreNotIncluded");
|
||||||
@ -552,7 +552,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Button to write into Ledger
|
// Button to write into Ledger
|
||||||
if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
|
if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
|
||||||
print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
|
print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
|
||||||
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
||||||
}
|
}
|
||||||
print '<div class="tabsAction tabsActionNoBottom">';
|
print '<div class="tabsAction tabsActionNoBottom">';
|
||||||
if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
|
if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
|
||||||
@ -584,6 +584,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print "<table class=\"noborder\" width=\"100%\">";
|
print "<table class=\"noborder\" width=\"100%\">";
|
||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
print "<td></td>";
|
print "<td></td>";
|
||||||
@ -708,6 +709,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|||||||
@ -1,302 +0,0 @@
|
|||||||
<?php
|
|
||||||
/* Copyright (C) 2016/17 Jamal Elbaz <jamelbaz@gmail.com>
|
|
||||||
* Copyright (C) 2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file htdocs/accountancy/report/result.php
|
|
||||||
* \ingroup Advanced accountancy
|
|
||||||
* \brief Page for accounting result
|
|
||||||
*/
|
|
||||||
require '../../main.inc.php';
|
|
||||||
|
|
||||||
// Class
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountancycategory.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php';
|
|
||||||
|
|
||||||
$error = 0;
|
|
||||||
|
|
||||||
// Langs
|
|
||||||
$langs->load("accountancy");
|
|
||||||
$langs->load("compta");
|
|
||||||
|
|
||||||
$mesg = '';
|
|
||||||
$action = GETPOST('action','aZ09');
|
|
||||||
$cat_id = GETPOST('account_category');
|
|
||||||
$selectcpt = GETPOST('cpt_bk');
|
|
||||||
$id = GETPOST('id', 'int');
|
|
||||||
$rowid = GETPOST('rowid', 'int');
|
|
||||||
$cancel = GETPOST('cancel');
|
|
||||||
$simple_report = GETPOST('simple_report');
|
|
||||||
|
|
||||||
|
|
||||||
// Filter
|
|
||||||
$year = GETPOST('year','int');
|
|
||||||
if ($year == 0) {
|
|
||||||
$year_current = strftime("%Y", time());
|
|
||||||
$year_start = $year_current;
|
|
||||||
} else {
|
|
||||||
$year_current = $year;
|
|
||||||
$year_start = $year;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($cat_id == 0){
|
|
||||||
$cat_id = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Security check
|
|
||||||
if ($user->societe_id > 0)
|
|
||||||
accessforbidden();
|
|
||||||
if (! $user->rights->accounting->comptarapport->lire)
|
|
||||||
accessforbidden();
|
|
||||||
|
|
||||||
$AccCat = new AccountancyCategory($db);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* View
|
|
||||||
*/
|
|
||||||
|
|
||||||
llxheader('', $langs->trans('ReportInOut'));
|
|
||||||
|
|
||||||
$formaccounting = new FormAccounting($db);
|
|
||||||
$form = new Form($db);
|
|
||||||
|
|
||||||
$textprevyear = '<a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current - 1) . '">' . img_previous() . '</a>';
|
|
||||||
$textnextyear = ' <a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current + 1) . '">' . img_next() . '</a>';
|
|
||||||
|
|
||||||
$nom = $langs->trans("ReportInOut").', '.$langs->trans("ByAccounts");
|
|
||||||
$nomlink = '';
|
|
||||||
$periodlink = '';
|
|
||||||
$exportlink = '';
|
|
||||||
$builddate = time();
|
|
||||||
$description = '';
|
|
||||||
$period = $langs->trans("Detail").' '. $form->selectyesno('simple_report',$simple_report,0) . " " .$textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear ;
|
|
||||||
report_header($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''));
|
|
||||||
|
|
||||||
$moreforfilter='';
|
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
|
||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
|
||||||
|
|
||||||
$months = array( $langs->trans("JanuaryMin"),
|
|
||||||
$langs->trans("FebruaryMin"),
|
|
||||||
$langs->trans("MarchMin"),
|
|
||||||
$langs->trans("AprilMin"),
|
|
||||||
$langs->trans("MayMin"),
|
|
||||||
$langs->trans("JuneMin"),
|
|
||||||
$langs->trans("JulyMin"),
|
|
||||||
$langs->trans("AugustMin"),
|
|
||||||
$langs->trans("SeptemberMin"),
|
|
||||||
$langs->trans("OctoberMin"),
|
|
||||||
$langs->trans("NovemberMin"),
|
|
||||||
$langs->trans("DecemberMin"),
|
|
||||||
);
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<th class="liste_titre">'.$langs->trans("Account").'</th>';
|
|
||||||
print '<th class="liste_titre">'.$langs->trans("Description").'</th>';
|
|
||||||
print '<th class="liste_titre" align="center">N-1</th>';
|
|
||||||
print '<th class="liste_titre" align="center">'.$langs->trans("NReal").'</th>';
|
|
||||||
foreach($months as $k => $v){
|
|
||||||
print '<th class="liste_titre" align="center">'.$langs->trans($v).'</th>';
|
|
||||||
}
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//All categories
|
|
||||||
$cats = $AccCat->getCats();
|
|
||||||
if ($catsCalcule < 0) dol_print_error($db, $AccCat->error, $AccCat->errors);
|
|
||||||
|
|
||||||
$j=1;
|
|
||||||
$sommes = array();
|
|
||||||
|
|
||||||
foreach($cats as $cat ){
|
|
||||||
if(!empty($cat['category_type'])){ // category calculed
|
|
||||||
|
|
||||||
$formula = $cat['formula'];
|
|
||||||
|
|
||||||
print "<tr class='liste_titre'>";
|
|
||||||
print '<td colspan="2">' . $cat['label'] . '</td>';
|
|
||||||
|
|
||||||
$vars = array();
|
|
||||||
|
|
||||||
// Previous Fiscal year (N-1)
|
|
||||||
foreach($sommes as $code => $det){
|
|
||||||
$vars[$code] = $det['NP'];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$result = strtr($formula, $vars);
|
|
||||||
|
|
||||||
|
|
||||||
$r = $AccCat->calculate($result);
|
|
||||||
|
|
||||||
print '<td align="right"><font color="blue">' . price($r) . '</td>';
|
|
||||||
$code = $cat['code']; // code categorie de calcule
|
|
||||||
$sommes[$code]['NP'] += $r;
|
|
||||||
|
|
||||||
// Current fiscal year (N)
|
|
||||||
if (is_array($sommes) && ! empty($sommes)){
|
|
||||||
foreach($sommes as $code => $det){
|
|
||||||
$vars[$code] = $det['N'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$result = strtr($formula, $vars);
|
|
||||||
|
|
||||||
$r = $AccCat->calculate($result);
|
|
||||||
|
|
||||||
print '<td align="right"><font color="blue">' . price($r) . '</td>';
|
|
||||||
$sommes[$code]['N'] += $r;
|
|
||||||
|
|
||||||
// Detail by month
|
|
||||||
foreach($months as $k => $v){
|
|
||||||
foreach($sommes as $code => $det){
|
|
||||||
$vars[$code] = $det['M'][$k];
|
|
||||||
}
|
|
||||||
$result = strtr($formula, $vars);
|
|
||||||
$r = $AccCat->calculate($result);
|
|
||||||
print '<td align="right"><font color="blue">' . price($r) . '</td>';
|
|
||||||
$sommes[$code]['M'][$k] += $r;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
print "</tr>\n";
|
|
||||||
|
|
||||||
|
|
||||||
}else{ // normal category
|
|
||||||
|
|
||||||
$totCat = array();
|
|
||||||
$totCat['M'] = array();
|
|
||||||
|
|
||||||
// get cpts of category
|
|
||||||
$cpts = $AccCat->getCptsCat($cat['rowid']);
|
|
||||||
|
|
||||||
|
|
||||||
print "<tr class='liste_titre'>";
|
|
||||||
print '<td colspan="2">' . $cat['label'] . '</td>';
|
|
||||||
|
|
||||||
foreach($cpts as $i => $cpt){
|
|
||||||
$var = ! $var;
|
|
||||||
|
|
||||||
$code = $cat['code'];
|
|
||||||
|
|
||||||
// N-1
|
|
||||||
$return = $AccCat->getResult($cpt['account_number'], 0, $year_current -1, $cpt['dc']);
|
|
||||||
|
|
||||||
if ($return < 0) {
|
|
||||||
setEventMessages(null, $AccCat->errors, 'errors');
|
|
||||||
$resultNP=0;
|
|
||||||
} else {
|
|
||||||
$resultNP=$AccCat->sdc;
|
|
||||||
}
|
|
||||||
|
|
||||||
//N
|
|
||||||
$return = $AccCat->getResult($cpt['account_number'], 0, $year_current, $cpt['dc']);
|
|
||||||
if ($return < 0) {
|
|
||||||
setEventMessages(null, $AccCat->errors, 'errors');
|
|
||||||
$resultN=0;
|
|
||||||
} else {
|
|
||||||
$resultN=$AccCat->sdc;
|
|
||||||
}
|
|
||||||
|
|
||||||
$totCat['NP'] += $resultNP;
|
|
||||||
$totCat['N'] += $resultN;
|
|
||||||
|
|
||||||
foreach($months as $k => $v){
|
|
||||||
$return = $AccCat->getResult($cpt['account_number'], $k+1, $year_current, $cpt['dc']);
|
|
||||||
if ($return < 0) {
|
|
||||||
setEventMessages(null, $AccCat->errors, 'errors');
|
|
||||||
$resultM=0;
|
|
||||||
} else {
|
|
||||||
$resultM=$AccCat->sdc;
|
|
||||||
}
|
|
||||||
$totCat['M'][$k] += $resultM;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print '<td align="right">' . price($totCat['NP']) . '</td>';
|
|
||||||
print '<td align="right">' . price($totCat['N']) . '</td>';
|
|
||||||
|
|
||||||
foreach($totCat['M'] as $k => $v){
|
|
||||||
print '<td align="right">' . price($v) . '</td>';
|
|
||||||
}
|
|
||||||
print "</tr>\n";
|
|
||||||
|
|
||||||
foreach($cpts as $i => $cpt){
|
|
||||||
$var = ! $var;
|
|
||||||
|
|
||||||
$code = $cat['code'];
|
|
||||||
|
|
||||||
// N-1
|
|
||||||
$return = $AccCat->getResult($cpt['account_number'], 0, $year_current -1, $cpt['dc']);
|
|
||||||
|
|
||||||
if ($return < 0) {
|
|
||||||
setEventMessages(null, $AccCat->errors, 'errors');
|
|
||||||
$resultNP=0;
|
|
||||||
} else {
|
|
||||||
$resultNP=$AccCat->sdc;
|
|
||||||
}
|
|
||||||
|
|
||||||
//N
|
|
||||||
$return = $AccCat->getResult($cpt['account_number'], 0, $year_current, $cpt['dc']);
|
|
||||||
if ($return < 0) {
|
|
||||||
setEventMessages(null, $AccCat->errors, 'errors');
|
|
||||||
$resultN=0;
|
|
||||||
} else {
|
|
||||||
$resultN=$AccCat->sdc;
|
|
||||||
}
|
|
||||||
|
|
||||||
$sommes[$code]['NP'] += $resultNP;
|
|
||||||
$sommes[$code]['N'] += $resultN;
|
|
||||||
print '<tr'. $bc[$var].'>';
|
|
||||||
if ($simple_report == 'yes') {
|
|
||||||
print '<td>' . length_accountg($cpt['account_number']) . '</td>';
|
|
||||||
print '<td>' . $cpt['name_cpt'] . '</td>';
|
|
||||||
print '<td align="right">' . price($resultNP) . '</td>';
|
|
||||||
print '<td align="right">' . price($resultN) . '</td>';
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($months as $k => $v){
|
|
||||||
$return = $AccCat->getResult($cpt['account_number'], $k+1, $year_current, $cpt['dc']);
|
|
||||||
if ($return < 0) {
|
|
||||||
setEventMessages(null, $AccCat->errors, 'errors');
|
|
||||||
$resultM=0;
|
|
||||||
} else {
|
|
||||||
$resultM=$AccCat->sdc;
|
|
||||||
}
|
|
||||||
$sommes[$code]['M'][$k] += $resultM;
|
|
||||||
if ($simple_report == 'yes') {
|
|
||||||
print '<td align="right">' . price($resultM) . '</td>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print "</tr>\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
print "</table>";
|
|
||||||
print '</div>';
|
|
||||||
|
|
||||||
llxFooter();
|
|
||||||
$db->close();
|
|
||||||
@ -182,6 +182,7 @@ $buttonreset = '<a class="butActionDelete" href="' . $_SERVER['PHP_SELF'] . '?ye
|
|||||||
|
|
||||||
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
|
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
||||||
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
||||||
@ -227,8 +228,7 @@ if ($resql) {
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
@ -236,6 +236,7 @@ print '<br>';
|
|||||||
|
|
||||||
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), $buttonreset, '');
|
print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), $buttonreset, '');
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
print '<tr class="liste_titre"><td width="200">' . $langs->trans("Account") . '</td>';
|
||||||
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
print '<td width="200" align="left">' . $langs->trans("Label") . '</td>';
|
||||||
@ -281,7 +282,7 @@ if ($resql) {
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -293,6 +294,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print_fiche_titre($langs->trans("OtherInfo"), '', '');
|
print_fiche_titre($langs->trans("OtherInfo"), '', '');
|
||||||
|
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("Total") . '</td>';
|
print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("Total") . '</td>';
|
||||||
for($i = 1; $i <= 12; $i ++) {
|
for($i = 1; $i <= 12; $i ++) {
|
||||||
@ -333,6 +335,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print $db->lasterror(); // Show last sql error
|
print $db->lasterror(); // Show last sql error
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -49,7 +49,7 @@ $error=0;
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ( ($action == 'update' && empty($_POST["cancel"]))
|
if ( ($action == 'update' && ! GETPOST("cancel",'alpha'))
|
||||||
|| ($action == 'updateedit') )
|
|| ($action == 'updateedit') )
|
||||||
{
|
{
|
||||||
$tmparray=getCountry(GETPOST('country_id','int'),'all',$db,$langs,0);
|
$tmparray=getCountry(GETPOST('country_id','int'),'all',$db,$langs,0);
|
||||||
@ -63,19 +63,19 @@ if ( ($action == 'update' && empty($_POST["cancel"]))
|
|||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_COUNTRY", $s,'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_COUNTRY", $s,'chaine',0,'',$conf->entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM",$_POST["nom"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM", GETPOST("nom",'nohtml'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADDRESS",$_POST["address"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADDRESS", GETPOST("address",'nohtml'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TOWN",$_POST["town"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TOWN", GETPOST("town",'nohtml'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ZIP",$_POST["zipcode"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ZIP", GETPOST("zipcode",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_STATE",$_POST["state_id"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_STATE", GETPOST("state_id",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_MONNAIE",$_POST["currency"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_MONNAIE", GETPOST("currency",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TEL",$_POST["tel"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TEL", GETPOST("tel",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FAX",$_POST["fax"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FAX", GETPOST("fax",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MAIL",$_POST["mail"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MAIL", GETPOST("mail",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_WEB",$_POST["web"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_WEB", GETPOST("web",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOTE",$_POST["note"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOTE", GETPOST("note",'none'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_GENCOD",$_POST["barcode"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_GENCOD", GETPOST("barcode",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
$varforimage='logo'; $dirforimage=$conf->mycompany->dir_output.'/logos/';
|
$varforimage='logo'; $dirforimage=$conf->mycompany->dir_output.'/logos/';
|
||||||
if ($_FILES[$varforimage]["tmp_name"])
|
if ($_FILES[$varforimage]["tmp_name"])
|
||||||
{
|
{
|
||||||
@ -100,8 +100,8 @@ if ( ($action == 'update' && empty($_POST["cancel"]))
|
|||||||
if ($isimage > 0)
|
if ($isimage > 0)
|
||||||
{
|
{
|
||||||
// Create thumbs
|
// Create thumbs
|
||||||
//$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retreive value with get...
|
//$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retreive value with get...
|
||||||
|
|
||||||
// Create small thumb, Used on logon for example
|
// Create small thumb, Used on logon for example
|
||||||
$imgThumbSmall = vignette($dirforimage.$original_file, $maxwidthsmall, $maxheightsmall, '_small', $quality);
|
$imgThumbSmall = vignette($dirforimage.$original_file, $maxwidthsmall, $maxheightsmall, '_small', $quality);
|
||||||
if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i',$imgThumbSmall,$reg))
|
if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i',$imgThumbSmall,$reg))
|
||||||
@ -143,27 +143,27 @@ if ( ($action == 'update' && empty($_POST["cancel"]))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MANAGERS",$_POST["MAIN_INFO_SOCIETE_MANAGERS"],'chaine',0,'',$conf->entity);
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_CAPITAL",$_POST["capital"],'chaine',0,'',$conf->entity);
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FORME_JURIDIQUE",$_POST["forme_juridique_code"],'chaine',0,'',$conf->entity);
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SIREN",$_POST["siren"],'chaine',0,'',$conf->entity);
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SIRET",$_POST["siret"],'chaine',0,'',$conf->entity);
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_APE",$_POST["ape"],'chaine',0,'',$conf->entity);
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_RCS",$_POST["rcs"],'chaine',0,'',$conf->entity);
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_PROFID5",$_POST["MAIN_INFO_PROFID5"],'chaine',0,'',$conf->entity);
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_PROFID6",$_POST["MAIN_INFO_PROFID6"],'chaine',0,'',$conf->entity);
|
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_TVAINTRA",$_POST["tva"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MANAGERS", GETPOST("MAIN_INFO_SOCIETE_MANAGERS",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT",$_POST["object"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_CAPITAL", GETPOST("capital",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FORME_JURIDIQUE", GETPOST("forme_juridique_code",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_INFO_SIREN", GETPOST("siren",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_INFO_SIRET", GETPOST("siret",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_INFO_APE", GETPOST("ape",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_INFO_RCS", GETPOST("rcs",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_INFO_PROFID5", GETPOST("MAIN_INFO_PROFID5",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_INFO_PROFID6", GETPOST("MAIN_INFO_PROFID6",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START",$_POST["fiscalmonthstart"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT", GETPOST("object",'nohtml'),'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "FACTURE_TVAOPTION",$_POST["optiontva"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START", GETPOST("fiscalmonthstart",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
|
dolibarr_set_const($db, "FACTURE_TVAOPTION", GETPOST("optiontva",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
// Local taxes
|
// Local taxes
|
||||||
dolibarr_set_const($db, "FACTURE_LOCAL_TAX1_OPTION",$_POST["optionlocaltax1"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "FACTURE_LOCAL_TAX1_OPTION", GETPOST("optionlocaltax1",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "FACTURE_LOCAL_TAX2_OPTION",$_POST["optionlocaltax2"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "FACTURE_LOCAL_TAX2_OPTION", GETPOST("optionlocaltax2",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
if($_POST["optionlocaltax1"]=="localtax1on")
|
if($_POST["optionlocaltax1"]=="localtax1on")
|
||||||
{
|
{
|
||||||
@ -173,9 +173,9 @@ if ( ($action == 'update' && empty($_POST["cancel"]))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX1", GETPOST('lt1'),'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX1", GETPOST('lt1','alpha'),'chaine',0,'',$conf->entity);
|
||||||
}
|
}
|
||||||
dolibarr_set_const($db,"MAIN_INFO_LOCALTAX_CALC1", $_POST["clt1"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db,"MAIN_INFO_LOCALTAX_CALC1", GETPOST("clt1",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
}
|
}
|
||||||
if($_POST["optionlocaltax2"]=="localtax2on")
|
if($_POST["optionlocaltax2"]=="localtax2on")
|
||||||
{
|
{
|
||||||
@ -185,9 +185,9 @@ if ( ($action == 'update' && empty($_POST["cancel"]))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX2", GETPOST('lt2'),'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX2", GETPOST('lt2','alpha'),'chaine',0,'',$conf->entity);
|
||||||
}
|
}
|
||||||
dolibarr_set_const($db,"MAIN_INFO_LOCALTAX_CALC2", $_POST["clt2"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db,"MAIN_INFO_LOCALTAX_CALC2", GETPOST("clt2",'alpha'),'chaine',0,'',$conf->entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action != 'updateedit' && ! $error)
|
if ($action != 'updateedit' && ! $error)
|
||||||
@ -207,7 +207,7 @@ if ($action == 'addthumb') // Regenerate thumbs
|
|||||||
if ($isimage > 0)
|
if ($isimage > 0)
|
||||||
{
|
{
|
||||||
// Create thumbs
|
// Create thumbs
|
||||||
//$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retreive value with get...
|
//$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retreive value with get...
|
||||||
|
|
||||||
// Create small thumb. Used on logon for example
|
// Create small thumb. Used on logon for example
|
||||||
$imgThumbSmall = vignette($conf->mycompany->dir_output.'/logos/'.$_GET["file"], $maxwidthsmall, $maxheightsmall, '_small',$quality);
|
$imgThumbSmall = vignette($conf->mycompany->dir_output.'/logos/'.$_GET["file"], $maxwidthsmall, $maxheightsmall, '_small',$quality);
|
||||||
@ -309,72 +309,72 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print '<tr class="liste_titre"><th class="titlefield">'.$langs->trans("CompanyInfo").'</th><th>'.$langs->trans("Value").'</th></tr>'."\n";
|
print '<tr class="liste_titre"><th class="titlefield">'.$langs->trans("CompanyInfo").'</th><th>'.$langs->trans("Value").'</th></tr>'."\n";
|
||||||
|
|
||||||
// Name
|
// Name
|
||||||
|
|
||||||
print '<tr class="oddeven"><td class="fieldrequired"><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
|
print '<tr class="oddeven"><td class="fieldrequired"><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
|
||||||
print '<input name="nom" id="name" class="minwidth200" value="'. ($conf->global->MAIN_INFO_SOCIETE_NOM?$conf->global->MAIN_INFO_SOCIETE_NOM:$_POST["nom"]) . '" autofocus="autofocus"></td></tr>'."\n";
|
print '<input name="nom" id="name" class="minwidth200" value="'. ($conf->global->MAIN_INFO_SOCIETE_NOM?$conf->global->MAIN_INFO_SOCIETE_NOM: GETPOST("nom",'nohtml')) . '" autofocus="autofocus"></td></tr>'."\n";
|
||||||
|
|
||||||
// Addresse
|
// Addresse
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="address">'.$langs->trans("CompanyAddress").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="address">'.$langs->trans("CompanyAddress").'</label></td><td>';
|
||||||
print '<textarea name="address" id="address" class="quatrevingtpercent" rows="'.ROWS_3.'">'. ($conf->global->MAIN_INFO_SOCIETE_ADDRESS?$conf->global->MAIN_INFO_SOCIETE_ADDRESS:$_POST["address"]) . '</textarea></td></tr>'."\n";
|
print '<textarea name="address" id="address" class="quatrevingtpercent" rows="'.ROWS_3.'">'. ($conf->global->MAIN_INFO_SOCIETE_ADDRESS?$conf->global->MAIN_INFO_SOCIETE_ADDRESS: GETPOST("address",'nohtml')) . '</textarea></td></tr>'."\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="zipcode">'.$langs->trans("CompanyZip").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="zipcode">'.$langs->trans("CompanyZip").'</label></td><td>';
|
||||||
print '<input class="minwidth100" name="zipcode" id="zipcode" value="'. ($conf->global->MAIN_INFO_SOCIETE_ZIP?$conf->global->MAIN_INFO_SOCIETE_ZIP:$_POST["zipcode"]) . '"></td></tr>'."\n";
|
print '<input class="minwidth100" name="zipcode" id="zipcode" value="'. ($conf->global->MAIN_INFO_SOCIETE_ZIP?$conf->global->MAIN_INFO_SOCIETE_ZIP: GETPOST("zipcode",'alpha')) . '"></td></tr>'."\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="town">'.$langs->trans("CompanyTown").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="town">'.$langs->trans("CompanyTown").'</label></td><td>';
|
||||||
print '<input name="town" class="minwidth100" id="town" value="'. ($conf->global->MAIN_INFO_SOCIETE_TOWN?$conf->global->MAIN_INFO_SOCIETE_TOWN:$_POST["town"]) . '"></td></tr>'."\n";
|
print '<input name="town" class="minwidth100" id="town" value="'. ($conf->global->MAIN_INFO_SOCIETE_TOWN?$conf->global->MAIN_INFO_SOCIETE_TOWN: GETPOST("town",'nohtml')) . '"></td></tr>'."\n";
|
||||||
|
|
||||||
// Country
|
// Country
|
||||||
|
|
||||||
print '<tr class="oddeven"><td class="fieldrequired"><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td class="maxwidthonsmartphone">';
|
print '<tr class="oddeven"><td class="fieldrequired"><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td class="maxwidthonsmartphone">';
|
||||||
//if (empty($country_selected)) $country_selected=substr($langs->defaultlang,-2); // By default, country of localization
|
//if (empty($country_selected)) $country_selected=substr($langs->defaultlang,-2); // By default, country of localization
|
||||||
print $form->select_country($mysoc->country_id,'country_id');
|
print $form->select_country($mysoc->country_id,'country_id');
|
||||||
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="state_id">'.$langs->trans("State").'</label></td><td class="maxwidthonsmartphone">';
|
print '<tr class="oddeven"><td><label for="state_id">'.$langs->trans("State").'</label></td><td class="maxwidthonsmartphone">';
|
||||||
$formcompany->select_departement($conf->global->MAIN_INFO_SOCIETE_STATE,$mysoc->country_code,'state_id');
|
$formcompany->select_departement($conf->global->MAIN_INFO_SOCIETE_STATE,$mysoc->country_code,'state_id');
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="currency">'.$langs->trans("CompanyCurrency").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="currency">'.$langs->trans("CompanyCurrency").'</label></td><td>';
|
||||||
print $form->selectCurrency($conf->currency,"currency");
|
print $form->selectCurrency($conf->currency,"currency");
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="phone">'.$langs->trans("Phone").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="phone">'.$langs->trans("Phone").'</label></td><td>';
|
||||||
print '<input name="tel" id="phone" value="'. $conf->global->MAIN_INFO_SOCIETE_TEL . '"></td></tr>';
|
print '<input name="tel" id="phone" value="'. $conf->global->MAIN_INFO_SOCIETE_TEL . '"></td></tr>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="fax">'.$langs->trans("Fax").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="fax">'.$langs->trans("Fax").'</label></td><td>';
|
||||||
print '<input name="fax" id="fax" value="'. $conf->global->MAIN_INFO_SOCIETE_FAX . '"></td></tr>';
|
print '<input name="fax" id="fax" value="'. $conf->global->MAIN_INFO_SOCIETE_FAX . '"></td></tr>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="email">'.$langs->trans("EMail").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="email">'.$langs->trans("EMail").'</label></td><td>';
|
||||||
print '<input name="mail" id="email" class="minwidth200" value="'. $conf->global->MAIN_INFO_SOCIETE_MAIL . '"></td></tr>';
|
print '<input name="mail" id="email" class="minwidth200" value="'. $conf->global->MAIN_INFO_SOCIETE_MAIL . '"></td></tr>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// Web
|
// Web
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="web">'.$langs->trans("Web").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="web">'.$langs->trans("Web").'</label></td><td>';
|
||||||
print '<input name="web" id="web" class="minwidth300" value="'. $conf->global->MAIN_INFO_SOCIETE_WEB . '"></td></tr>';
|
print '<input name="web" id="web" class="minwidth300" value="'. $conf->global->MAIN_INFO_SOCIETE_WEB . '"></td></tr>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// Barcode
|
// Barcode
|
||||||
if (! empty($conf->barcode->enabled)) {
|
if (! empty($conf->barcode->enabled)) {
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="barcode">'.$langs->trans("Gencod").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="barcode">'.$langs->trans("Gencod").'</label></td><td>';
|
||||||
print '<input name="barcode" id="barcode" class="minwidth150" value="'. $conf->global->MAIN_INFO_SOCIETE_GENCOD . '"></td></tr>';
|
print '<input name="barcode" id="barcode" class="minwidth150" value="'. $conf->global->MAIN_INFO_SOCIETE_GENCOD . '"></td></tr>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Logo
|
// Logo
|
||||||
|
|
||||||
print '<tr'.dol_bc($var,'hideonsmartphone').'><td><label for="logo">'.$langs->trans("Logo").' (png,jpg)</label></td><td>';
|
print '<tr'.dol_bc($var,'hideonsmartphone').'><td><label for="logo">'.$langs->trans("Logo").' (png,jpg)</label></td><td>';
|
||||||
print '<table width="100%" class="nobordernopadding"><tr class="nocellnopadd"><td valign="middle" class="nocellnopadd">';
|
print '<table width="100%" class="nobordernopadding"><tr class="nocellnopadd"><td valign="middle" class="nocellnopadd">';
|
||||||
print '<input type="file" class="flat class=minwidth200" name="logo" id="logo">';
|
print '<input type="file" class="flat class=minwidth200" name="logo" id="logo">';
|
||||||
@ -392,9 +392,9 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Note
|
// Note
|
||||||
|
|
||||||
print '<tr class="oddeven"><td class="tdtop"><label for="note">'.$langs->trans("Note").'</label></td><td>';
|
print '<tr class="oddeven"><td class="tdtop"><label for="note">'.$langs->trans("Note").'</label></td><td>';
|
||||||
print '<textarea class="flat quatrevingtpercent" name="note" id="note" rows="'.ROWS_5.'">'.(! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? $conf->global->MAIN_INFO_SOCIETE_NOTE : '').'</textarea></td></tr>';
|
print '<textarea class="flat quatrevingtpercent" name="note" id="note" rows="'.ROWS_5.'">'.(GETPOST('note','none') ? GETPOST('note','none') : $conf->global->MAIN_INFO_SOCIETE_NOTE).'</textarea></td></tr>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -409,17 +409,17 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
|
|
||||||
// Managing Director(s)
|
// Managing Director(s)
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="director">'.$langs->trans("ManagingDirectors").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="director">'.$langs->trans("ManagingDirectors").'</label></td><td>';
|
||||||
print '<input name="MAIN_INFO_SOCIETE_MANAGERS" id="director" class="minwidth200" value="' . $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '"></td></tr>';
|
print '<input name="MAIN_INFO_SOCIETE_MANAGERS" id="director" class="minwidth200" value="' . $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '"></td></tr>';
|
||||||
|
|
||||||
// Capital
|
// Capital
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="capital">'.$langs->trans("Capital").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="capital">'.$langs->trans("Capital").'</label></td><td>';
|
||||||
print '<input name="capital" id="capital" class="minwidth100" value="' . $conf->global->MAIN_INFO_CAPITAL . '"></td></tr>';
|
print '<input name="capital" id="capital" class="minwidth100" value="' . $conf->global->MAIN_INFO_CAPITAL . '"></td></tr>';
|
||||||
|
|
||||||
// Juridical Status
|
// Juridical Status
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="forme_juridique_code">'.$langs->trans("JuridicalStatus").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="forme_juridique_code">'.$langs->trans("JuridicalStatus").'</label></td><td>';
|
||||||
if ($mysoc->country_code) {
|
if ($mysoc->country_code) {
|
||||||
print $formcompany->select_juridicalstatus($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE, $mysoc->country_code, '', 'forme_juridique_code');
|
print $formcompany->select_juridicalstatus($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE, $mysoc->country_code, '', 'forme_juridique_code');
|
||||||
@ -431,7 +431,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
// ProfID1
|
// ProfID1
|
||||||
if ($langs->transcountry("ProfId1",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId1",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="profid1">'.$langs->transcountry("ProfId1",$mysoc->country_code).'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="profid1">'.$langs->transcountry("ProfId1",$mysoc->country_code).'</label></td><td>';
|
||||||
if (! empty($mysoc->country_code))
|
if (! empty($mysoc->country_code))
|
||||||
{
|
{
|
||||||
@ -447,7 +447,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
// ProfId2
|
// ProfId2
|
||||||
if ($langs->transcountry("ProfId2",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId2",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="profid2">'.$langs->transcountry("ProfId2",$mysoc->country_code).'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="profid2">'.$langs->transcountry("ProfId2",$mysoc->country_code).'</label></td><td>';
|
||||||
if (! empty($mysoc->country_code))
|
if (! empty($mysoc->country_code))
|
||||||
{
|
{
|
||||||
@ -463,7 +463,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
// ProfId3
|
// ProfId3
|
||||||
if ($langs->transcountry("ProfId3",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId3",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="profid3">'.$langs->transcountry("ProfId3",$mysoc->country_code).'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="profid3">'.$langs->transcountry("ProfId3",$mysoc->country_code).'</label></td><td>';
|
||||||
if (! empty($mysoc->country_code))
|
if (! empty($mysoc->country_code))
|
||||||
{
|
{
|
||||||
@ -479,7 +479,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
// ProfId4
|
// ProfId4
|
||||||
if ($langs->transcountry("ProfId4",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId4",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="profid4">'.$langs->transcountry("ProfId4",$mysoc->country_code).'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="profid4">'.$langs->transcountry("ProfId4",$mysoc->country_code).'</label></td><td>';
|
||||||
if (! empty($mysoc->country_code))
|
if (! empty($mysoc->country_code))
|
||||||
{
|
{
|
||||||
@ -495,7 +495,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
// ProfId5
|
// ProfId5
|
||||||
if ($langs->transcountry("ProfId5",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId5",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="profid5">'.$langs->transcountry("ProfId5",$mysoc->country_code).'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="profid5">'.$langs->transcountry("ProfId5",$mysoc->country_code).'</label></td><td>';
|
||||||
if (! empty($mysoc->country_code))
|
if (! empty($mysoc->country_code))
|
||||||
{
|
{
|
||||||
@ -511,7 +511,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
// ProfId6
|
// ProfId6
|
||||||
if ($langs->transcountry("ProfId6",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId6",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="profid6">'.$langs->transcountry("ProfId6",$mysoc->country_code).'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="profid6">'.$langs->transcountry("ProfId6",$mysoc->country_code).'</label></td><td>';
|
||||||
if (! empty($mysoc->country_code))
|
if (! empty($mysoc->country_code))
|
||||||
{
|
{
|
||||||
@ -525,13 +525,13 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TVA Intra
|
// TVA Intra
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="intra_vat">'.$langs->trans("VATIntra").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="intra_vat">'.$langs->trans("VATIntra").'</label></td><td>';
|
||||||
print '<input name="tva" id="intra_vat" class="minwidth200" value="' . (! empty($conf->global->MAIN_INFO_TVAINTRA) ? $conf->global->MAIN_INFO_TVAINTRA : '') . '">';
|
print '<input name="tva" id="intra_vat" class="minwidth200" value="' . (! empty($conf->global->MAIN_INFO_TVAINTRA) ? $conf->global->MAIN_INFO_TVAINTRA : '') . '">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Object of the company
|
// Object of the company
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="object">'.$langs->trans("CompanyObject").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="object">'.$langs->trans("CompanyObject").'</label></td><td>';
|
||||||
print '<textarea class="flat quatrevingtpercent" name="object" id="object" rows="'.ROWS_5.'">'.(! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? $conf->global->MAIN_INFO_SOCIETE_OBJECT : '').'</textarea></td></tr>';
|
print '<textarea class="flat quatrevingtpercent" name="object" id="object" rows="'.ROWS_5.'">'.(! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? $conf->global->MAIN_INFO_SOCIETE_OBJECT : '').'</textarea></td></tr>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -546,7 +546,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print '<td class="titlefield">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
|
print '<td class="titlefield">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="fiscalmonthstart">'.$langs->trans("FiscalMonthStart").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="fiscalmonthstart">'.$langs->trans("FiscalMonthStart").'</label></td><td>';
|
||||||
print $formother->select_month($conf->global->SOCIETE_FISCAL_MONTH_START,'fiscalmonthstart',0,1) . '</td></tr>';
|
print $formother->select_month($conf->global->SOCIETE_FISCAL_MONTH_START,'fiscalmonthstart',0,1) . '</td></tr>';
|
||||||
|
|
||||||
@ -561,7 +561,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print '<td align="right"> </td>';
|
print '<td align="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"140\"><label><input type=\"radio\" name=\"optiontva\" id=\"use_vat\" value=\"1\"".(empty($conf->global->FACTURE_TVAOPTION)?"":" checked")."> ".$langs->trans("VATIsUsed")."</label></td>";
|
print "<tr class=\"oddeven\"><td width=\"140\"><label><input type=\"radio\" name=\"optiontva\" id=\"use_vat\" value=\"1\"".(empty($conf->global->FACTURE_TVAOPTION)?"":" checked")."> ".$langs->trans("VATIsUsed")."</label></td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -570,7 +570,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print "</table>";
|
print "</table>";
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"140\"><label><input type=\"radio\" name=\"optiontva\" id=\"no_vat\" value=\"0\"".(empty($conf->global->FACTURE_TVAOPTION)?" checked":"")."> ".$langs->trans("VATIsNotUsed")."</label></td>";
|
print "<tr class=\"oddeven\"><td width=\"140\"><label><input type=\"radio\" name=\"optiontva\" id=\"no_vat\" value=\"0\"".(empty($conf->global->FACTURE_TVAOPTION)?" checked":"")."> ".$langs->trans("VATIsNotUsed")."</label></td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -593,7 +593,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print '<td>'.$langs->transcountry("LocalTax1Management",$mysoc->country_code).'</td><td>'.$langs->trans("Description").'</td>';
|
print '<td>'.$langs->transcountry("LocalTax1Management",$mysoc->country_code).'</td><td>'.$langs->trans("Description").'</td>';
|
||||||
print '<td align="right"> </td>';
|
print '<td align="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
// Note: When option is not set, it must not appears as set on on, because there is no default value for this option
|
// Note: When option is not set, it must not appears as set on on, because there is no default value for this option
|
||||||
print "<tr class=\"oddeven\"><td width=\"140\"><input type=\"radio\" name=\"optionlocaltax1\" id=\"lt1\" value=\"localtax1on\"".(($conf->global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on")?" checked":"")."> ".$langs->transcountry("LocalTax1IsUsed",$mysoc->country_code)."</td>";
|
print "<tr class=\"oddeven\"><td width=\"140\"><input type=\"radio\" name=\"optionlocaltax1\" id=\"lt1\" value=\"localtax1on\"".(($conf->global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on")?" checked":"")."> ".$langs->transcountry("LocalTax1IsUsed",$mysoc->country_code)."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
@ -616,7 +616,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print "</table>";
|
print "</table>";
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"140\"><input type=\"radio\" name=\"optionlocaltax1\" id=\"nolt1\" value=\"localtax1off\"".((empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1off")?" checked":"")."> ".$langs->transcountry("LocalTax1IsNotUsed",$mysoc->country_code)."</td>";
|
print "<tr class=\"oddeven\"><td width=\"140\"><input type=\"radio\" name=\"optionlocaltax1\" id=\"nolt1\" value=\"localtax1off\"".((empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1off")?" checked":"")."> ".$langs->transcountry("LocalTax1IsNotUsed",$mysoc->country_code)."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -637,7 +637,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print '<td align="right"> </td>';
|
print '<td align="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|
||||||
// Note: When option is not set, it must not appears as set on on, because there is no default value for this option
|
// Note: When option is not set, it must not appears as set on on, because there is no default value for this option
|
||||||
print "<tr class=\"oddeven\"><td width=\"140\"><input type=\"radio\" name=\"optionlocaltax2\" id=\"lt2\" value=\"localtax2on\"".(($conf->global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on")?" checked":"")."> ".$langs->transcountry("LocalTax2IsUsed",$mysoc->country_code)."</td>";
|
print "<tr class=\"oddeven\"><td width=\"140\"><input type=\"radio\" name=\"optionlocaltax2\" id=\"lt2\" value=\"localtax2on\"".(($conf->global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on")?" checked":"")."> ".$langs->transcountry("LocalTax2IsUsed",$mysoc->country_code)."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
@ -657,7 +657,7 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print "</table>";
|
print "</table>";
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"140\"><input type=\"radio\" name=\"optionlocaltax2\" id=\"nolt2\" value=\"localtax2off\"".((empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2off")?" checked":"")."> ".$langs->transcountry("LocalTax2IsNotUsed",$mysoc->country_code)."</td>";
|
print "<tr class=\"oddeven\"><td width=\"140\"><input type=\"radio\" name=\"optionlocaltax2\" id=\"nolt2\" value=\"localtax2off\"".((empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2off")?" checked":"")."> ".$langs->transcountry("LocalTax2IsNotUsed",$mysoc->country_code)."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -693,22 +693,22 @@ else
|
|||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td>'.$langs->trans("CompanyInfo").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
print '<tr class="liste_titre"><td>'.$langs->trans("CompanyInfo").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td class="titlefield">'.$langs->trans("CompanyName").'</td><td>';
|
print '<tr class="oddeven"><td class="titlefield">'.$langs->trans("CompanyName").'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_SOCIETE_NOM)) print $conf->global->MAIN_INFO_SOCIETE_NOM;
|
if (! empty($conf->global->MAIN_INFO_SOCIETE_NOM)) print $conf->global->MAIN_INFO_SOCIETE_NOM;
|
||||||
else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyName")).'</font>';
|
else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyName")).'</font>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("CompanyAddress").'</td><td>' . nl2br(empty($conf->global->MAIN_INFO_SOCIETE_ADDRESS)?'':$conf->global->MAIN_INFO_SOCIETE_ADDRESS) . '</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CompanyAddress").'</td><td>' . nl2br(empty($conf->global->MAIN_INFO_SOCIETE_ADDRESS)?'':$conf->global->MAIN_INFO_SOCIETE_ADDRESS) . '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("CompanyZip").'</td><td>' . (empty($conf->global->MAIN_INFO_SOCIETE_ZIP)?'':$conf->global->MAIN_INFO_SOCIETE_ZIP) . '</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CompanyZip").'</td><td>' . (empty($conf->global->MAIN_INFO_SOCIETE_ZIP)?'':$conf->global->MAIN_INFO_SOCIETE_ZIP) . '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("CompanyTown").'</td><td>' . (empty($conf->global->MAIN_INFO_SOCIETE_TOWN)?'':$conf->global->MAIN_INFO_SOCIETE_TOWN) . '</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CompanyTown").'</td><td>' . (empty($conf->global->MAIN_INFO_SOCIETE_TOWN)?'':$conf->global->MAIN_INFO_SOCIETE_TOWN) . '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("CompanyCountry").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CompanyCountry").'</td><td>';
|
||||||
if ($mysoc->country_code)
|
if ($mysoc->country_code)
|
||||||
{
|
{
|
||||||
@ -719,13 +719,13 @@ else
|
|||||||
else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).'</font>';
|
else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).'</font>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("State").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("State").'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_SOCIETE_STATE)) print getState($conf->global->MAIN_INFO_SOCIETE_STATE);
|
if (! empty($conf->global->MAIN_INFO_SOCIETE_STATE)) print getState($conf->global->MAIN_INFO_SOCIETE_STATE);
|
||||||
else print ' ';
|
else print ' ';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("CompanyCurrency").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CompanyCurrency").'</td><td>';
|
||||||
print currency_name($conf->currency,1);
|
print currency_name($conf->currency,1);
|
||||||
print ' ('.$conf->currency;
|
print ' ('.$conf->currency;
|
||||||
@ -733,28 +733,28 @@ else
|
|||||||
print ')';
|
print ')';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("Phone").'</td><td>' . dol_print_phone($conf->global->MAIN_INFO_SOCIETE_TEL,$mysoc->country_code) . '</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("Phone").'</td><td>' . dol_print_phone($conf->global->MAIN_INFO_SOCIETE_TEL,$mysoc->country_code) . '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("Fax").'</td><td>' . dol_print_phone($conf->global->MAIN_INFO_SOCIETE_FAX,$mysoc->country_code) . '</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("Fax").'</td><td>' . dol_print_phone($conf->global->MAIN_INFO_SOCIETE_FAX,$mysoc->country_code) . '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("Mail").'</td><td>' . dol_print_email($conf->global->MAIN_INFO_SOCIETE_MAIL,0,0,0,80) . '</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("Mail").'</td><td>' . dol_print_email($conf->global->MAIN_INFO_SOCIETE_MAIL,0,0,0,80) . '</td></tr>';
|
||||||
|
|
||||||
// Web
|
// Web
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("Web").'</td><td>' . dol_print_url($conf->global->MAIN_INFO_SOCIETE_WEB,'_blank',80) . '</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("Web").'</td><td>' . dol_print_url($conf->global->MAIN_INFO_SOCIETE_WEB,'_blank',80) . '</td></tr>';
|
||||||
|
|
||||||
// Barcode
|
// Barcode
|
||||||
if (! empty($conf->barcode->enabled))
|
if (! empty($conf->barcode->enabled))
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("Gencod").'</td><td>' . $conf->global->MAIN_INFO_SOCIETE_GENCOD . '</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("Gencod").'</td><td>' . $conf->global->MAIN_INFO_SOCIETE_GENCOD . '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Logo
|
// Logo
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("Logo").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("Logo").'</td><td>';
|
||||||
|
|
||||||
$tagtd='tagtd ';
|
$tagtd='tagtd ';
|
||||||
@ -780,7 +780,7 @@ else
|
|||||||
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td class="tdtop">'.$langs->trans("Note").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) : '') . '</td></tr>';
|
print '<tr class="oddeven"><td class="tdtop">'.$langs->trans("Note").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) : '') . '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -796,17 +796,17 @@ else
|
|||||||
print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
|
|
||||||
// Managing Director(s)
|
// Managing Director(s)
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("ManagingDirectors").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("ManagingDirectors").'</td><td>';
|
||||||
print $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '</td></tr>';
|
print $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '</td></tr>';
|
||||||
|
|
||||||
// Capital
|
// Capital
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("Capital").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("Capital").'</td><td>';
|
||||||
print $conf->global->MAIN_INFO_CAPITAL . '</td></tr>';
|
print $conf->global->MAIN_INFO_CAPITAL . '</td></tr>';
|
||||||
|
|
||||||
// Juridical Status
|
// Juridical Status
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("JuridicalStatus").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("JuridicalStatus").'</td><td>';
|
||||||
print getFormeJuridiqueLabel($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE);
|
print getFormeJuridiqueLabel($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -814,7 +814,7 @@ else
|
|||||||
// ProfId1
|
// ProfId1
|
||||||
if ($langs->transcountry("ProfId1",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId1",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId1",$mysoc->country_code).'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId1",$mysoc->country_code).'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_SIREN))
|
if (! empty($conf->global->MAIN_INFO_SIREN))
|
||||||
{
|
{
|
||||||
@ -830,7 +830,7 @@ else
|
|||||||
// ProfId2
|
// ProfId2
|
||||||
if ($langs->transcountry("ProfId2",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId2",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId2",$mysoc->country_code).'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId2",$mysoc->country_code).'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_SIRET))
|
if (! empty($conf->global->MAIN_INFO_SIRET))
|
||||||
{
|
{
|
||||||
@ -846,7 +846,7 @@ else
|
|||||||
// ProfId3
|
// ProfId3
|
||||||
if ($langs->transcountry("ProfId3",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId3",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId3",$mysoc->country_code).'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId3",$mysoc->country_code).'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_APE))
|
if (! empty($conf->global->MAIN_INFO_APE))
|
||||||
{
|
{
|
||||||
@ -862,7 +862,7 @@ else
|
|||||||
// ProfId4
|
// ProfId4
|
||||||
if ($langs->transcountry("ProfId4",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId4",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId4",$mysoc->country_code).'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId4",$mysoc->country_code).'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_RCS))
|
if (! empty($conf->global->MAIN_INFO_RCS))
|
||||||
{
|
{
|
||||||
@ -878,7 +878,7 @@ else
|
|||||||
// ProfId5
|
// ProfId5
|
||||||
if ($langs->transcountry("ProfId5",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId5",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId5",$mysoc->country_code).'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId5",$mysoc->country_code).'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_PROFID5))
|
if (! empty($conf->global->MAIN_INFO_PROFID5))
|
||||||
{
|
{
|
||||||
@ -894,7 +894,7 @@ else
|
|||||||
// ProfId6
|
// ProfId6
|
||||||
if ($langs->transcountry("ProfId6",$mysoc->country_code) != '-')
|
if ($langs->transcountry("ProfId6",$mysoc->country_code) != '-')
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId6",$mysoc->country_code).'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->transcountry("ProfId6",$mysoc->country_code).'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_PROFID6))
|
if (! empty($conf->global->MAIN_INFO_PROFID6))
|
||||||
{
|
{
|
||||||
@ -908,7 +908,7 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("VATIntra").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("VATIntra").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_TVAINTRA))
|
if (! empty($conf->global->MAIN_INFO_TVAINTRA))
|
||||||
@ -944,8 +944,8 @@ else
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td class="tdtop">'.$langs->trans("CompanyObject").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? nl2br($conf->global->MAIN_INFO_SOCIETE_OBJECT) : '') . '</td></tr>';
|
print '<tr class="oddeven"><td class="tdtop">'.$langs->trans("CompanyObject").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? nl2br($conf->global->MAIN_INFO_SOCIETE_OBJECT) : '') . '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -960,7 +960,7 @@ else
|
|||||||
print '<td class="titlefield">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
|
print '<td class="titlefield">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("FiscalMonthStart").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("FiscalMonthStart").'</td><td>';
|
||||||
$monthstart=(! empty($conf->global->SOCIETE_FISCAL_MONTH_START)) ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1;
|
$monthstart=(! empty($conf->global->SOCIETE_FISCAL_MONTH_START)) ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1;
|
||||||
print dol_print_date(dol_mktime(12,0,0,$monthstart,1,2000,1),'%B','gm') . '</td></tr>';
|
print dol_print_date(dol_mktime(12,0,0,$monthstart,1,2000,1),'%B','gm') . '</td></tr>';
|
||||||
@ -977,7 +977,7 @@ else
|
|||||||
print '<td align="right"> </td>';
|
print '<td align="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optiontva\" id=\"use_vat\" disabled value=\"1\"".(empty($conf->global->FACTURE_TVAOPTION)?"":" checked")."> ".$langs->trans("VATIsUsed")."</td>";
|
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optiontva\" id=\"use_vat\" disabled value=\"1\"".(empty($conf->global->FACTURE_TVAOPTION)?"":" checked")."> ".$langs->trans("VATIsUsed")."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -986,7 +986,7 @@ else
|
|||||||
print "</table>";
|
print "</table>";
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optiontva\" id=\"no_vat\" disabled value=\"0\"".(empty($conf->global->FACTURE_TVAOPTION)?" checked":"")."> ".$langs->trans("VATIsNotUsed")."</td>";
|
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optiontva\" id=\"no_vat\" disabled value=\"0\"".(empty($conf->global->FACTURE_TVAOPTION)?" checked":"")."> ".$langs->trans("VATIsNotUsed")."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -1011,7 +1011,7 @@ else
|
|||||||
print '<td align="right"> </td>';
|
print '<td align="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optionlocaltax1\" id=\"lt1\" disabled value=\"localtax1on\"".(($conf->global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on")?" checked":"")."> ".$langs->transcountry("LocalTax1IsUsed",$mysoc->country_code)."</td>";
|
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optionlocaltax1\" id=\"lt1\" disabled value=\"localtax1on\"".(($conf->global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on")?" checked":"")."> ".$langs->transcountry("LocalTax1IsUsed",$mysoc->country_code)."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -1039,7 +1039,7 @@ else
|
|||||||
print "</table>";
|
print "</table>";
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optionlocaltax1\" id=\"nolt1\" disabled value=\"localtax1off\"".((empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1off")?" checked":"")."> ".$langs->transcountry("LocalTax1IsNotUsed",$mysoc->country_code)."</td>";
|
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optionlocaltax1\" id=\"nolt1\" disabled value=\"localtax1off\"".((empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1off")?" checked":"")."> ".$langs->transcountry("LocalTax1IsNotUsed",$mysoc->country_code)."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -1061,7 +1061,7 @@ else
|
|||||||
print '<td align="right"> </td>';
|
print '<td align="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optionlocaltax2\" id=\"lt2\" disabled value=\"localtax2on\"".(($conf->global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on")?" checked":"")."> ".$langs->transcountry("LocalTax2IsUsed",$mysoc->country_code)."</td>";
|
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optionlocaltax2\" id=\"lt2\" disabled value=\"localtax2on\"".(($conf->global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on")?" checked":"")."> ".$langs->transcountry("LocalTax2IsUsed",$mysoc->country_code)."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
@ -1090,7 +1090,7 @@ else
|
|||||||
print "</table>";
|
print "</table>";
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
|
||||||
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optionlocaltax2\" id=\"nolt2\" disabled value=\"localtax2off\"".((empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2off")?" checked":"")."> ".$langs->transcountry("LocalTax2IsNotUsed",$mysoc->country_code)."</td>";
|
print "<tr class=\"oddeven\"><td width=\"160\"><input class=\"oddeven\" type=\"radio\" name=\"optionlocaltax2\" id=\"nolt2\" disabled value=\"localtax2off\"".((empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2off")?" checked":"")."> ".$langs->transcountry("LocalTax2IsNotUsed",$mysoc->country_code)."</td>";
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print "<table>";
|
print "<table>";
|
||||||
|
|||||||
@ -1014,6 +1014,7 @@ if ($id)
|
|||||||
|
|
||||||
$fieldlist=explode(',',$tabfield[$id]);
|
$fieldlist=explode(',',$tabfield[$id]);
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
// Line for title
|
// Line for title
|
||||||
@ -1164,6 +1165,7 @@ if ($id)
|
|||||||
if ($id == 4) $colspan++;
|
if ($id == 4) $colspan++;
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
/*if (! empty($alabelisused) && $id != 25) // If there is one label among fields, we show legend of *
|
/*if (! empty($alabelisused) && $id != 25) // If there is one label among fields, we show legend of *
|
||||||
{
|
{
|
||||||
@ -1193,6 +1195,7 @@ if ($id)
|
|||||||
print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page+1).'</span></li>');
|
print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page+1).'</span></li>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
// Title line with search boxes
|
// Title line with search boxes
|
||||||
@ -1654,6 +1657,7 @@ if ($id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
|
|||||||
@ -42,7 +42,7 @@ if (!$res) die("Include of main fails");
|
|||||||
global $lang, $user, $conf;
|
global $lang, $user, $conf;
|
||||||
|
|
||||||
|
|
||||||
dol_include_once('/dolistore/class/dolistore.class.php');
|
require_once DOL_DOCUMENT_ROOT.'/admin/dolistore/class/dolistore.class.php';
|
||||||
$dolistore = new Dolistore();
|
$dolistore = new Dolistore();
|
||||||
|
|
||||||
$id_product = GETPOST('id_product', 'int');
|
$id_product = GETPOST('id_product', 'int');
|
||||||
|
|||||||
@ -48,6 +48,7 @@ class PrestaShopWebservice
|
|||||||
const PSCOMPATIBLEVERSIONMIN = '1.4.0.0';
|
const PSCOMPATIBLEVERSIONMIN = '1.4.0.0';
|
||||||
const PSCOMPATIBLEVERSIONMAX = '1.6.99.99';
|
const PSCOMPATIBLEVERSIONMAX = '1.6.99.99';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PrestaShopWebservice constructor. Throw an exception when CURL is not installed/activated
|
* PrestaShopWebservice constructor. Throw an exception when CURL is not installed/activated
|
||||||
* <code>
|
* <code>
|
||||||
@ -79,6 +80,7 @@ class PrestaShopWebservice
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Take the status code and throw an exception if the server didn't return 200 or 201 code
|
* Take the status code and throw an exception if the server didn't return 200 or 201 code
|
||||||
|
*
|
||||||
* @param int $status_code Status code of an HTTP return
|
* @param int $status_code Status code of an HTTP return
|
||||||
*/
|
*/
|
||||||
protected function checkStatusCode($status_code)
|
protected function checkStatusCode($status_code)
|
||||||
@ -86,21 +88,32 @@ class PrestaShopWebservice
|
|||||||
$error_label = 'This call to PrestaShop Web Services failed and returned an HTTP status of %d. That means: %s.';
|
$error_label = 'This call to PrestaShop Web Services failed and returned an HTTP status of %d. That means: %s.';
|
||||||
switch($status_code)
|
switch($status_code)
|
||||||
{
|
{
|
||||||
case 200: case 201: break;
|
case 200:
|
||||||
case 204: throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'No content'));break;
|
case 201:
|
||||||
case 400: throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Bad Request'));break;
|
break;
|
||||||
case 401: throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Unauthorized'));break;
|
case 204:
|
||||||
case 404: throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Not Found'));break;
|
throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'No content'));
|
||||||
case 405: throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Method Not Allowed'));break;
|
case 400:
|
||||||
case 500: throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Internal Server Error'));break;
|
throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Bad Request'));
|
||||||
default: throw new PrestaShopWebserviceException('This call to PrestaShop Web Services returned an unexpected HTTP status of:' . $status_code);
|
case 401:
|
||||||
|
throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Unauthorized'));
|
||||||
|
case 404:
|
||||||
|
throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Not Found'));
|
||||||
|
case 405:
|
||||||
|
throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Method Not Allowed'));
|
||||||
|
case 500:
|
||||||
|
throw new PrestaShopWebserviceException(sprintf($error_label, $status_code, 'Internal Server Error'));
|
||||||
|
default:
|
||||||
|
throw new PrestaShopWebserviceException('This call to PrestaShop Web Services returned an unexpected HTTP status of:' . $status_code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles a CURL request to PrestaShop Webservice. Can throw exception.
|
* Handles a CURL request to PrestaShop Webservice. Can throw exception.
|
||||||
* @param string $url Resource name
|
*
|
||||||
* @param mixed $curl_params CURL parameters (sent to curl_set_opt)
|
* @param string $url Resource name
|
||||||
* @return array status_code, response
|
* @param mixed $curl_params CURL parameters (sent to curl_set_opt)
|
||||||
|
* @return array status_code, response
|
||||||
*/
|
*/
|
||||||
public function executeRequest($url, $curl_params = array())
|
public function executeRequest($url, $curl_params = array())
|
||||||
{
|
{
|
||||||
@ -178,11 +191,23 @@ class PrestaShopWebservice
|
|||||||
return array('status_code' => $status_code, 'response' => $body, 'header' => $header);
|
return array('status_code' => $status_code, 'response' => $body, 'header' => $header);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Output debug info
|
||||||
|
*
|
||||||
|
* @param string $title Title
|
||||||
|
* @param string $content Content
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
public function printDebug($title, $content)
|
public function printDebug($title, $content)
|
||||||
{
|
{
|
||||||
echo '<div style="display:table;background:#CCC;font-size:8pt;padding:7px"><h6 style="font-size:9pt;margin:0">'.$title.'</h6><pre>'.htmlentities($content).'</pre></div>';
|
echo '<div style="display:table;background:#CCC;font-size:8pt;padding:7px"><h6 style="font-size:9pt;margin:0">'.$title.'</h6><pre>'.htmlentities($content).'</pre></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return version
|
||||||
|
*
|
||||||
|
* @return string Version
|
||||||
|
*/
|
||||||
public function getVersion()
|
public function getVersion()
|
||||||
{
|
{
|
||||||
return $this->version;
|
return $this->version;
|
||||||
@ -190,8 +215,9 @@ class PrestaShopWebservice
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Load XML from string. Can throw exception
|
* Load XML from string. Can throw exception
|
||||||
* @param string $response String from a CURL response
|
*
|
||||||
* @return SimpleXMLElement status_code, response
|
* @param string $response String from a CURL response
|
||||||
|
* @return SimpleXMLElement status_code, response
|
||||||
*/
|
*/
|
||||||
protected function parseXML($response)
|
protected function parseXML($response)
|
||||||
{
|
{
|
||||||
@ -268,8 +294,8 @@ class PrestaShopWebservice
|
|||||||
* }
|
* }
|
||||||
* ?>
|
* ?>
|
||||||
* </code>
|
* </code>
|
||||||
* @param array $options Array representing resource to get.
|
* @param array $options Array representing resource to get.
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement status_code, response
|
||||||
*/
|
*/
|
||||||
public function get($options)
|
public function get($options)
|
||||||
{
|
{
|
||||||
@ -301,8 +327,8 @@ class PrestaShopWebservice
|
|||||||
/**
|
/**
|
||||||
* Head method (HEAD) a resource
|
* Head method (HEAD) a resource
|
||||||
*
|
*
|
||||||
* @param array $options Array representing resource for head request.
|
* @param array $options Array representing resource for head request.
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement status_code, response
|
||||||
*/
|
*/
|
||||||
public function head($options)
|
public function head($options)
|
||||||
{
|
{
|
||||||
@ -336,7 +362,9 @@ class PrestaShopWebservice
|
|||||||
* 'id' => ID of a resource you want to edit,<br>
|
* 'id' => ID of a resource you want to edit,<br>
|
||||||
* 'putXml' => Modified XML string of a resource<br><br>
|
* 'putXml' => Modified XML string of a resource<br><br>
|
||||||
* Examples are given in the tutorial</p>
|
* Examples are given in the tutorial</p>
|
||||||
* @param array $options Array representing resource to edit.
|
*
|
||||||
|
* @param array $options Array representing resource to edit.
|
||||||
|
* @return SimpleXMLElement status_code, response
|
||||||
*/
|
*/
|
||||||
public function edit($options)
|
public function edit($options)
|
||||||
{
|
{
|
||||||
@ -381,7 +409,8 @@ class PrestaShopWebservice
|
|||||||
* }
|
* }
|
||||||
* ?>
|
* ?>
|
||||||
* </code>
|
* </code>
|
||||||
* @param array $options Array representing resource to delete.
|
* @param array $options Array representing resource to delete.
|
||||||
|
* @return boolean true
|
||||||
*/
|
*/
|
||||||
public function delete($options)
|
public function delete($options)
|
||||||
{
|
{
|
||||||
@ -400,8 +429,6 @@ class PrestaShopWebservice
|
|||||||
self::checkStatusCode($request['status_code']);// check the response validity
|
self::checkStatusCode($request['status_code']);// check the response validity
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -19,9 +19,145 @@
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
include_once DOL_DOCUMENT_ROOT.'/admin/dolistore/class/PSWebServiceLibrary.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/admin/dolistore/class/PSWebServiceLibrary.class.php';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class DolistoreModel
|
* Class DolistoreModel
|
||||||
*/
|
*/
|
||||||
|
class DolistoreModel
|
||||||
|
{
|
||||||
|
|
||||||
|
function get_categories($parent = 0)
|
||||||
|
{
|
||||||
|
if (!isset($this->categories)) die('not possible');
|
||||||
|
if ($parent != 0) {
|
||||||
|
$html = '<ul>';
|
||||||
|
} else {
|
||||||
|
$html = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$nbofcateg = count($this->categories);
|
||||||
|
for ($i = 0; $i < $nbofcateg; $i++)
|
||||||
|
{
|
||||||
|
$cat = $this->categories[$i];
|
||||||
|
if ($cat->is_root_category == 1 && $parent == 0) {
|
||||||
|
$html .= '<li class="root"><h3 class="nomargesupinf"><a class="nomargesupinf link2cat" href="?mode=marketplace&categorie='.$cat->id.'" '
|
||||||
|
.'title="'.dol_escape_htmltag(strip_tags($cat->description->language[$this->lang])).'"'
|
||||||
|
.'>'.$cat->name->language[$this->lang].' <sup>'.$cat->nb_products_recursive.'</sup></a></h3>';
|
||||||
|
$html .= self::get_categories($cat->id);
|
||||||
|
$html .= "</li>\n";
|
||||||
|
} elseif (trim($cat->id_parent) == $parent && $cat->active == 1 && trim($cat->id_parent) != 0) { // si cat est de ce niveau
|
||||||
|
$select = ($cat->id == $this->categorie) ? ' selected' : '';
|
||||||
|
$html .= '<li><a class="link2cat'.$select.'" href="?mode=marketplace&categorie='.$cat->id.'"'
|
||||||
|
.' title="'.dol_escape_htmltag(strip_tags($cat->description->language[$this->lang])).'" '
|
||||||
|
.'>'.$cat->name->language[$this->lang].' <sup>'.$cat->nb_products_recursive.'</sup></a>';
|
||||||
|
$html .= self::get_categories($cat->id);
|
||||||
|
$html .= "</li>\n";
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($html == '<ul>') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
if ($parent != 0) {
|
||||||
|
return $html.'</ul>';
|
||||||
|
} else {
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_products()
|
||||||
|
{
|
||||||
|
global $langs, $conf;
|
||||||
|
$html = "";
|
||||||
|
$parity = "pair";
|
||||||
|
$last_month = time() - (30 * 24 * 60 * 60);
|
||||||
|
foreach ($this->products as $product) {
|
||||||
|
$parity = ($parity == "impair") ? 'pair' : 'impair';
|
||||||
|
|
||||||
|
// check new product ?
|
||||||
|
$newapp = '';
|
||||||
|
if ($last_month < strtotime($product->date_add)) {
|
||||||
|
$newapp .= '<span class="newApp">'.$langs->trans('New').'</span> ';
|
||||||
|
}
|
||||||
|
|
||||||
|
// check updated ?
|
||||||
|
if ($last_month < strtotime($product->date_upd) && $newapp == '') {
|
||||||
|
$newapp .= '<span class="updatedApp">'.$langs->trans('Updated').'</span> ';
|
||||||
|
}
|
||||||
|
|
||||||
|
// add image or default ?
|
||||||
|
if ($product->id_default_image != '') {
|
||||||
|
$image_url = dol_buildPath('/dolistore/ajax/image.php?id_product=', 2).$product->id.'&id_image='.$product->id_default_image;
|
||||||
|
$images = '<a href="'.$image_url.'" class="fancybox" rel="gallery'.$product->id.'" title="'.$product->name->language[$this->lang].', '.$langs->trans('Version').' '.$product->module_version.'">'.
|
||||||
|
'<img src="'.$image_url.'&quality=home_default" style="max-height:250px;max-width: 210px;" alt="" /></a>';
|
||||||
|
} else {
|
||||||
|
$images = '<img src="'.dol_buildPath('/dolistore/img/NoImageAvailable.png', 2).'" />';
|
||||||
|
}
|
||||||
|
|
||||||
|
// free or pay ?
|
||||||
|
if ($product->price > 0) {
|
||||||
|
$price = '<h3>'.price(round((float) $product->price * $this->vat_rate, 2)).' €</h3>';
|
||||||
|
$download_link = '<a target="_blank" href="'.$this->shop_url.$product->id.'"><img width="32" src="'.dol_buildPath('/dolistore/img/follow.png',
|
||||||
|
2).'" /></a>';
|
||||||
|
} else {
|
||||||
|
$price = $langs->trans('Free');
|
||||||
|
$download_link = '<a target="_blank" href="'.$this->shop_url.$product->id.'"><img width="32" src="'.dol_buildPath('/dolistore/img/Download-128.png',
|
||||||
|
2).'" /></a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
//checking versions
|
||||||
|
if ($this->version_compare($product->dolibarr_min, DOL_VERSION) <= 0) {
|
||||||
|
if ($this->version_compare($product->dolibarr_max, DOL_VERSION) >= 0) {
|
||||||
|
//compatible
|
||||||
|
$version = '<span class="compatible">'.$langs->trans('CompatibleUpTo', $product->dolibarr_max,
|
||||||
|
$product->dolibarr_min, $product->dolibarr_max).'</span>';
|
||||||
|
$compatible = '';
|
||||||
|
} else {
|
||||||
|
//never compatible, module expired
|
||||||
|
$version = '<span class="notcompatible">'.$langs->trans('NotCompatible', DOL_VERSION,
|
||||||
|
$product->dolibarr_min, $product->dolibarr_max).'</span>';
|
||||||
|
$compatible = 'NotCompatible';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//need update
|
||||||
|
$version = '<span class="compatibleafterupdate">'.$langs->trans('CompatibleAfterUpdate', DOL_VERSION,
|
||||||
|
$product->dolibarr_min, $product->dolibarr_max).'</span>';
|
||||||
|
$compatible = 'NotCompatible';
|
||||||
|
}
|
||||||
|
|
||||||
|
//output template
|
||||||
|
$html .= '<tr class="app '.$parity.' '.$compatible.'">
|
||||||
|
<td align="center" width="210"><div class="newAppParent">'.$newapp.$images.'</div></td>
|
||||||
|
<td class="margeCote"><h2 class="appTitle"><a target="_blank" href="'.$this->shop_url.$product->id.'">'.$product->name->language[$this->lang].'</a><span class="details button">Details</span>'
|
||||||
|
.'<br/><small>'.$version.'</small></h2>
|
||||||
|
<small> '.dol_print_date(strtotime($product->date_upd)).' - '.$langs->trans('Référence').': '.$product->reference.' - '.$langs->trans('Id').': '.$product->id.'</small><br><br>'.$product->description_short->language[$this->lang].'</td>
|
||||||
|
<td style="display:none;" class="long_description">'.$product->description->language[$this->lang].'</td>
|
||||||
|
<td class="margeCote" align="right">'.$price.'</td>
|
||||||
|
<td class="margeCote">'.$download_link.'</td>
|
||||||
|
</tr>';
|
||||||
|
}
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_previous_link($text = '<<')
|
||||||
|
{
|
||||||
|
return '<a href="'.$this->get_previous_url().'" class="button">'.$text.'</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_next_link($text = '>>')
|
||||||
|
{
|
||||||
|
return '<a href="'.$this->get_next_url().'" class="button">'.$text.'</a>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Dolistore
|
||||||
|
*/
|
||||||
class Dolistore extends DolistoreModel
|
class Dolistore extends DolistoreModel
|
||||||
{
|
{
|
||||||
// params
|
// params
|
||||||
@ -182,135 +318,3 @@ class Dolistore extends DolistoreModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class DolistoreModel
|
|
||||||
*/
|
|
||||||
class DolistoreModel
|
|
||||||
{
|
|
||||||
|
|
||||||
function get_categories($parent = 0)
|
|
||||||
{
|
|
||||||
if (!isset($this->categories)) die('not possible');
|
|
||||||
if ($parent != 0) {
|
|
||||||
$html = '<ul>';
|
|
||||||
} else {
|
|
||||||
$html = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
$nbofcateg = count($this->categories);
|
|
||||||
for ($i = 0; $i < $nbofcateg; $i++)
|
|
||||||
{
|
|
||||||
$cat = $this->categories[$i];
|
|
||||||
if ($cat->is_root_category == 1 && $parent == 0) {
|
|
||||||
$html .= '<li class="root"><h3 class="nomargesupinf"><a class="nomargesupinf link2cat" href="?mode=marketplace&categorie='.$cat->id.'" '
|
|
||||||
.'title="'.dol_escape_htmltag(strip_tags($cat->description->language[$this->lang])).'"'
|
|
||||||
.'>'.$cat->name->language[$this->lang].' <sup>'.$cat->nb_products_recursive.'</sup></a></h3>';
|
|
||||||
$html .= self::get_categories($cat->id);
|
|
||||||
$html .= "</li>\n";
|
|
||||||
} elseif (trim($cat->id_parent) == $parent && $cat->active == 1 && trim($cat->id_parent) != 0) { // si cat est de ce niveau
|
|
||||||
$select = ($cat->id == $this->categorie) ? ' selected' : '';
|
|
||||||
$html .= '<li><a class="link2cat'.$select.'" href="?mode=marketplace&categorie='.$cat->id.'"'
|
|
||||||
.' title="'.dol_escape_htmltag(strip_tags($cat->description->language[$this->lang])).'" '
|
|
||||||
.'>'.$cat->name->language[$this->lang].' <sup>'.$cat->nb_products_recursive.'</sup></a>';
|
|
||||||
$html .= self::get_categories($cat->id);
|
|
||||||
$html .= "</li>\n";
|
|
||||||
} else {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($html == '<ul>') {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
if ($parent != 0) {
|
|
||||||
return $html.'</ul>';
|
|
||||||
} else {
|
|
||||||
return $html;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function get_products()
|
|
||||||
{
|
|
||||||
global $langs, $conf;
|
|
||||||
$html = "";
|
|
||||||
$parity = "pair";
|
|
||||||
$last_month = time() - (30 * 24 * 60 * 60);
|
|
||||||
foreach ($this->products as $product) {
|
|
||||||
$parity = ($parity == "impair") ? 'pair' : 'impair';
|
|
||||||
|
|
||||||
// check new product ?
|
|
||||||
$newapp = '';
|
|
||||||
if ($last_month < strtotime($product->date_add)) {
|
|
||||||
$newapp .= '<span class="newApp">'.$langs->trans('New').'</span> ';
|
|
||||||
}
|
|
||||||
|
|
||||||
// check updated ?
|
|
||||||
if ($last_month < strtotime($product->date_upd) && $newapp == '') {
|
|
||||||
$newapp .= '<span class="updatedApp">'.$langs->trans('Updated').'</span> ';
|
|
||||||
}
|
|
||||||
|
|
||||||
// add image or default ?
|
|
||||||
if ($product->id_default_image != '') {
|
|
||||||
$image_url = dol_buildPath('/dolistore/ajax/image.php?id_product=', 2).$product->id.'&id_image='.$product->id_default_image;
|
|
||||||
$images = '<a href="'.$image_url.'" class="fancybox" rel="gallery'.$product->id.'" title="'.$product->name->language[$this->lang].', '.$langs->trans('Version').' '.$product->module_version.'">'.
|
|
||||||
'<img src="'.$image_url.'&quality=home_default" style="max-height:250px;max-width: 210px;" alt="" /></a>';
|
|
||||||
} else {
|
|
||||||
$images = '<img src="'.dol_buildPath('/dolistore/img/NoImageAvailable.png', 2).'" />';
|
|
||||||
}
|
|
||||||
|
|
||||||
// free or pay ?
|
|
||||||
if ($product->price > 0) {
|
|
||||||
$price = '<h3>'.price(round((float) $product->price * $this->vat_rate, 2)).' €</h3>';
|
|
||||||
$download_link = '<a target="_blank" href="'.$this->shop_url.$product->id.'"><img width="32" src="'.dol_buildPath('/dolistore/img/follow.png',
|
|
||||||
2).'" /></a>';
|
|
||||||
} else {
|
|
||||||
$price = $langs->trans('Free');
|
|
||||||
$download_link = '<a target="_blank" href="'.$this->shop_url.$product->id.'"><img width="32" src="'.dol_buildPath('/dolistore/img/Download-128.png',
|
|
||||||
2).'" /></a>';
|
|
||||||
}
|
|
||||||
|
|
||||||
//checking versions
|
|
||||||
if ($this->version_compare($product->dolibarr_min, DOL_VERSION) <= 0) {
|
|
||||||
if ($this->version_compare($product->dolibarr_max, DOL_VERSION) >= 0) {
|
|
||||||
//compatible
|
|
||||||
$version = '<span class="compatible">'.$langs->trans('CompatibleUpTo', $product->dolibarr_max,
|
|
||||||
$product->dolibarr_min, $product->dolibarr_max).'</span>';
|
|
||||||
$compatible = '';
|
|
||||||
} else {
|
|
||||||
//never compatible, module expired
|
|
||||||
$version = '<span class="notcompatible">'.$langs->trans('NotCompatible', DOL_VERSION,
|
|
||||||
$product->dolibarr_min, $product->dolibarr_max).'</span>';
|
|
||||||
$compatible = 'NotCompatible';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//need update
|
|
||||||
$version = '<span class="compatibleafterupdate">'.$langs->trans('CompatibleAfterUpdate', DOL_VERSION,
|
|
||||||
$product->dolibarr_min, $product->dolibarr_max).'</span>';
|
|
||||||
$compatible = 'NotCompatible';
|
|
||||||
}
|
|
||||||
|
|
||||||
//output template
|
|
||||||
$html .= '<tr class="app '.$parity.' '.$compatible.'">
|
|
||||||
<td align="center" width="210"><div class="newAppParent">'.$newapp.$images.'</div></td>
|
|
||||||
<td class="margeCote"><h2 class="appTitle"><a target="_blank" href="'.$this->shop_url.$product->id.'">'.$product->name->language[$this->lang].'</a><span class="details button">Details</span>'
|
|
||||||
.'<br/><small>'.$version.'</small></h2>
|
|
||||||
<small> '.dol_print_date(strtotime($product->date_upd)).' - '.$langs->trans('Référence').': '.$product->reference.' - '.$langs->trans('Id').': '.$product->id.'</small><br><br>'.$product->description_short->language[$this->lang].'</td>
|
|
||||||
<td style="display:none;" class="long_description">'.$product->description->language[$this->lang].'</td>
|
|
||||||
<td class="margeCote" align="right">'.$price.'</td>
|
|
||||||
<td class="margeCote">'.$download_link.'</td>
|
|
||||||
</tr>';
|
|
||||||
}
|
|
||||||
return $html;
|
|
||||||
}
|
|
||||||
|
|
||||||
function get_previous_link($text = '<<')
|
|
||||||
{
|
|
||||||
return '<a href="'.$this->get_previous_url().'" class="button">'.$text.'</a>';
|
|
||||||
}
|
|
||||||
|
|
||||||
function get_next_link($text = '>>')
|
|
||||||
{
|
|
||||||
return '<a href="'.$this->get_next_url().'" class="button">'.$text.'</a>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
// Here we define constants /!\ You need to replace this parameters
|
// Here we define constants /!\ You need to replace this parameters
|
||||||
//https://dolistorecatalogpublickey1234567@vmdevwww.dolistore.com/api/
|
//https://dolistorecatalogpublickey1234567@vmdevwww.dolistore.com/api/
|
||||||
define('DEBUG', true); // Debug mode
|
define('DEBUG', true); // Debug mode
|
||||||
define('PS_SHOP_PATH', 'http://vmdevwww.dolistore.com/'); // Root path of your PrestaShop store
|
define('PS_SHOP_PATH', 'https://www.dolistore.com/'); // Root path of your PrestaShop store
|
||||||
define('PS_WS_AUTH_KEY', 'dolistorecatalogpublickey1234567'); // Auth key (Get it in your Back Office)
|
define('PS_WS_AUTH_KEY', 'dolistorecatalogpublickey1234567'); // Auth key (Get it in your Back Office)
|
||||||
require_once('./PSWebServiceLibrary.php');
|
require_once('./PSWebServiceLibrary.php');
|
||||||
// Here we make the WebService Call
|
// Here we make the WebService Call
|
||||||
|
|||||||
@ -83,27 +83,27 @@ if ($action == 'update')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$menu = new Menubase($db);
|
$menu = new Menubase($db);
|
||||||
$result=$menu->fetch($_POST['menuId']);
|
$result=$menu->fetch(GETPOST('menuId', 'int'));
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
$menu->titre=$_POST['titre'];
|
$menu->titre=GETPOST('titre', 'alpha');
|
||||||
$menu->leftmenu=$_POST['leftmenu'];
|
$menu->leftmenu=GETPOST('leftmenu', 'alpha');
|
||||||
$menu->url=$_POST['url'];
|
$menu->url=GETPOST('url','alpha');
|
||||||
$menu->langs=$_POST['langs'];
|
$menu->langs=GETPOST('langs','alpha');
|
||||||
$menu->position=$_POST['position'];
|
$menu->position=GETPOST('position','int');
|
||||||
$menu->enabled=$_POST['enabled'];
|
$menu->enabled=GETPOST('enabled','alpha');
|
||||||
$menu->perms=$_POST['perms'];
|
$menu->perms=GETPOST('perms','alpha');
|
||||||
$menu->target=$_POST['target'];
|
$menu->target=GETPOST('target','alpha');
|
||||||
$menu->user=$_POST['user'];
|
$menu->user=GETPOST('user','alpha');
|
||||||
if (is_numeric($_POST['menuIdParent']))
|
if (is_numeric(GETPOST('menuIdParent','alpha')))
|
||||||
{
|
{
|
||||||
$menu->fk_menu=$_POST['menuIdParent'];
|
$menu->fk_menu=GETPOST('menuIdParent','alpha');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($_POST['type'] == 'top') $menu->fk_menu=0;
|
if (GETPOST('type','alpha') == 'top') $menu->fk_menu=0;
|
||||||
else $menu->fk_menu=-1;
|
else $menu->fk_menu=-1;
|
||||||
$menu->fk_mainmenu=$mainmenu;
|
$menu->fk_mainmenu=$mainmenu;
|
||||||
$menu->fk_leftmenu=$leftmenu;
|
$menu->fk_leftmenu=$leftmenu;
|
||||||
@ -123,7 +123,6 @@ if ($action == 'update')
|
|||||||
{
|
{
|
||||||
setEventMessages($menu->error, $menu->errors, 'errors');
|
setEventMessages($menu->error, $menu->errors, 'errors');
|
||||||
}
|
}
|
||||||
$_GET["menuId"] = $_POST['menuId'];
|
|
||||||
$action = "edit";
|
$action = "edit";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -148,9 +147,9 @@ if ($action == 'add')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$leftmenu=''; $mainmenu='';
|
$leftmenu=''; $mainmenu='';
|
||||||
if (! empty($_POST['menuId']) && ! is_numeric($_POST['menuId']))
|
if (GETPOST('menuId','int') && ! is_numeric(GETPOST('menuId','int')))
|
||||||
{
|
{
|
||||||
$tmp=explode('&',$_POST['menuId']);
|
$tmp=explode('&',GETPOST('menuId','int'));
|
||||||
foreach($tmp as $s)
|
foreach($tmp as $s)
|
||||||
{
|
{
|
||||||
if (preg_match('/fk_mainmenu=/',$s))
|
if (preg_match('/fk_mainmenu=/',$s))
|
||||||
@ -197,7 +196,7 @@ if ($action == 'add')
|
|||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (! $error && empty($_POST['menuId']) && $_POST['type'] == 'left')
|
if (! $error && ! $_POST['menuId'] && $_POST['type'] == 'left')
|
||||||
{
|
{
|
||||||
setEventMessages($langs->trans("ErrorLeftMenuMustHaveAParentId"), null, 'errors');
|
setEventMessages($langs->trans("ErrorLeftMenuMustHaveAParentId"), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
@ -207,23 +206,23 @@ if ($action == 'add')
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$menu = new Menubase($db);
|
$menu = new Menubase($db);
|
||||||
$menu->menu_handler=preg_replace('/_menu$/','',$_POST['menu_handler']);
|
$menu->menu_handler=preg_replace('/_menu$/','',GETPOST('menu_handler','aZ09'));
|
||||||
$menu->type=$_POST['type'];
|
$menu->type=GETPOST('type','alpha');
|
||||||
$menu->titre=$_POST['titre'];
|
$menu->titre=GETPOST('titre','alpha');
|
||||||
$menu->url=$_POST['url'];
|
$menu->url=GETPOST('url','alpha');
|
||||||
$menu->langs=$_POST['langs'];
|
$menu->langs=GETPOST('langs','alpha');
|
||||||
$menu->position=$_POST['position'];
|
$menu->position=GETPOST('position','int');
|
||||||
$menu->enabled=$_POST['enabled'];
|
$menu->enabled=GETPOST('enabled','alpha');
|
||||||
$menu->perms=$_POST['perms'];
|
$menu->perms=GETPOST('perms','alpha');
|
||||||
$menu->target=$_POST['target'];
|
$menu->target=GETPOST('target','alpha');
|
||||||
$menu->user=$_POST['user'];
|
$menu->user=GETPOST('user','alpha');
|
||||||
if (is_numeric($_POST['menuId']))
|
if (is_numeric(GETPOST('menuId','int')))
|
||||||
{
|
{
|
||||||
$menu->fk_menu=$_POST['menuId'];
|
$menu->fk_menu=GETPOST('menuId','int');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($_POST['type'] == 'top') $menu->fk_menu=0;
|
if (GETPOST('type','alpha') == 'top') $menu->fk_menu=0;
|
||||||
else $menu->fk_menu=-1;
|
else $menu->fk_menu=-1;
|
||||||
$menu->fk_mainmenu=$mainmenu;
|
$menu->fk_mainmenu=$mainmenu;
|
||||||
$menu->fk_leftmenu=$leftmenu;
|
$menu->fk_leftmenu=$leftmenu;
|
||||||
@ -232,7 +231,7 @@ if ($action == 'add')
|
|||||||
$result=$menu->create($user);
|
$result=$menu->create($user);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".$_POST['menu_handler']);
|
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".GETPOST('menu_handler','aZ09'));
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -305,17 +304,17 @@ if ($action == 'create')
|
|||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("NewMenu"),'','title_setup');
|
print load_fiche_titre($langs->trans("NewMenu"),'','title_setup');
|
||||||
|
|
||||||
print '<form action="./edit.php?action=add&menuId='.$_GET['menuId'].'" method="post" name="formmenucreate">';
|
print '<form action="./edit.php?action=add&menuId='.GETPOST('menuId', 'int').'" method="post" name="formmenucreate">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|
||||||
dol_fiche_head();
|
dol_fiche_head();
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Id
|
// Id
|
||||||
$parent_rowid = $_GET['menuId'];
|
$parent_rowid = GETPOST('menuId', 'int');
|
||||||
if ($_GET['menuId'])
|
if (GETPOST('menuId', 'int'))
|
||||||
{
|
{
|
||||||
$sql = "SELECT m.rowid, m.mainmenu, m.leftmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".GETPOST('menuId', 'int');
|
$sql = "SELECT m.rowid, m.mainmenu, m.leftmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".GETPOST('menuId', 'int');
|
||||||
$res = $db->query($sql);
|
$res = $db->query($sql);
|
||||||
@ -375,40 +374,40 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<td><input type="text" size="48" id="menuId" name="menuId" value="'.($_POST["menuId"]?$_POST["menuId"]:'').'"></td>';
|
print '<td><input type="text" size="48" id="menuId" name="menuId" value="'.(GETPOST("menuId", 'int')?GETPOST("menuId", 'int'):'').'"></td>';
|
||||||
}
|
}
|
||||||
print '<td>'.$langs->trans('DetailMenuIdParent');
|
print '<td>'.$langs->trans('DetailMenuIdParent');
|
||||||
print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
|
print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Title
|
// Title
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" size="30" name="titre" value="'.$_POST["titre"].'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" size="30" name="titre" value="'.dol_escape_htmltag(GETPOST("titre",'alpha')).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||||
|
|
||||||
// URL
|
// URL
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" size="60" name="url" value="'.$_POST["url"].'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" size="60" name="url" value="'.GETPOST("url",'alpha').'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
||||||
|
|
||||||
// Langs
|
// Langs
|
||||||
print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" size="30" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" size="30" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
||||||
|
|
||||||
// Position
|
// Position
|
||||||
print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" size="5" name="position" value="'.(isset($_POST["position"])?$_POST["position"]:100).'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" size="5" name="position" value="'.dol_escape_htmltag(isset($_POST["position"])?$_POST["position"]:100).'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
||||||
|
|
||||||
// Target
|
// Target
|
||||||
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
||||||
print '<option value=""'.($menu->target==""?' selected':'').'>'.$langs->trans('').'</option>';
|
print '<option value=""'.($menu->target==""?' selected':'').'> </option>';
|
||||||
print '<option value="_blank"'.($menu->target=="_blank"?' selected':'').'>'.$langs->trans('_blank').'</option>';
|
print '<option value="_blank"'.($menu->target=="_blank"?' selected':'').'>'.$langs->trans('_blank').'</option>';
|
||||||
print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
||||||
|
|
||||||
// Enabled
|
// Enabled
|
||||||
print '<tr><td>'.$langs->trans('Enabled').'</td><td><input type="text" size="60" name="enabled" value="'.$_POST["enabled"].'"></td><td>'.$langs->trans('DetailEnabled').'</td></tr>';
|
print '<tr><td>'.$langs->trans('Enabled').'</td><td><input type="text" size="60" name="enabled" value="'.GETPOST("enabled",'alpha').'"></td><td>'.$langs->trans('DetailEnabled').'</td></tr>';
|
||||||
|
|
||||||
// Perms
|
// Perms
|
||||||
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="perms" value="'.$_POST["perms"].'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="perms" value="'.GETPOST('perms','alpha').'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
// Boutons
|
// Boutons
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
||||||
@ -426,14 +425,14 @@ elseif ($action == 'edit')
|
|||||||
print '<form action="./edit.php?action=update" method="POST" name="formmenuedit">';
|
print '<form action="./edit.php?action=update" method="POST" name="formmenuedit">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="handler_origine" value="'.$menu_handler.'">';
|
print '<input type="hidden" name="handler_origine" value="'.$menu_handler.'">';
|
||||||
print '<input type="hidden" name="menuId" value="'.$_GET['menuId'].'">';
|
print '<input type="hidden" name="menuId" value="'.GETPOST('menuId', 'int').'">';
|
||||||
|
|
||||||
dol_fiche_head();
|
dol_fiche_head();
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
$menu = new Menubase($db);
|
$menu = new Menubase($db);
|
||||||
$result=$menu->fetch($_GET['menuId']);
|
$result=$menu->fetch(GETPOST('menuId', 'int'));
|
||||||
//var_dump($menu);
|
//var_dump($menu);
|
||||||
|
|
||||||
// Id
|
// Id
|
||||||
@ -472,20 +471,20 @@ elseif ($action == 'edit')
|
|||||||
//print '<tr><td>'.$langs->trans('Level').'</td><td>'.$menu->level.'</td><td>'.$langs->trans('DetailLevel').'</td></tr>';
|
//print '<tr><td>'.$langs->trans('Level').'</td><td>'.$menu->level.'</td><td>'.$langs->trans('DetailLevel').'</td></tr>';
|
||||||
|
|
||||||
// Title
|
// Title
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" size="30" name="titre" value="'.$menu->titre.'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" size="30" name="titre" value="'.dol_escape_htmltag($menu->titre).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||||
|
|
||||||
// Url
|
// Url
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" class="quatrevingtpercent" name="url" value="'.$menu->url.'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" class="quatrevingtpercent" name="url" value="'.$menu->url.'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
||||||
|
|
||||||
// Langs
|
// Langs
|
||||||
print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" size="30" name="langs" value="'.$menu->langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" size="30" name="langs" value="'.dol_escape_htmltag($menu->langs).'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
||||||
|
|
||||||
// Position
|
// Position
|
||||||
print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" size="5" name="position" value="'.$menu->position.'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" size="5" name="position" value="'.$menu->position.'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
||||||
|
|
||||||
// Target
|
// Target
|
||||||
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
||||||
print '<option value=""'.($menu->target==""?' selected':'').'>'.$langs->trans('').'</option>';
|
print '<option value=""'.($menu->target==""?' selected':'').'> </option>';
|
||||||
print '<option value="_blank"'.($menu->target=="_blank"?' selected':'').'>'.$langs->trans('_blank').'</option>';
|
print '<option value="_blank"'.($menu->target=="_blank"?' selected':'').'>'.$langs->trans('_blank').'</option>';
|
||||||
print '</select></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
print '</select></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
||||||
|
|
||||||
@ -502,7 +501,7 @@ elseif ($action == 'edit')
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
// Bouton
|
// Bouton
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
||||||
|
|||||||
@ -882,115 +882,111 @@ if ($mode == 'marketplace')
|
|||||||
|
|
||||||
if ($mode == 'deploy')
|
if ($mode == 'deploy')
|
||||||
{
|
{
|
||||||
dol_fiche_head($head, $mode, '', -1);
|
dol_fiche_head($head, $mode, '', -1);
|
||||||
|
|
||||||
|
$dolibarrdataroot=preg_replace('/([\\/]+)$/i','',DOL_DATA_ROOT);
|
||||||
|
$allowonlineinstall=true;
|
||||||
|
$allowfromweb=1;
|
||||||
|
if (dol_is_file($dolibarrdataroot.'/installmodules.lock')) $allowonlineinstall=false;
|
||||||
|
|
||||||
$allowonlineinstall=true;
|
$fullurl='<a href="'.$urldolibarrmodules.'" target="_blank">'.$urldolibarrmodules.'</a>';
|
||||||
$allowfromweb=1;
|
$message='';
|
||||||
if (dol_is_file($dolibarrdataroot.'/installmodules.lock')) $allowonlineinstall=false;
|
if (! empty($allowonlineinstall))
|
||||||
|
{
|
||||||
|
if (! in_array('/custom',explode(',',$dolibarr_main_url_root_alt)))
|
||||||
|
{
|
||||||
|
$message=info_admin($langs->trans("ConfFileMustContainCustom", DOL_DOCUMENT_ROOT.'/custom', DOL_DOCUMENT_ROOT));
|
||||||
|
$allowfromweb=-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($dirins_ok)
|
||||||
|
{
|
||||||
|
if (! is_writable(dol_osencode($dirins)))
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
$message=info_admin($langs->trans("ErrorFailedToWriteInDir",$dirins));
|
||||||
|
$allowfromweb=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$message=info_admin($langs->trans("NotExistsDirect",$dirins).$langs->trans("InfDirAlt").$langs->trans("InfDirExample"));
|
||||||
|
$allowfromweb=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$message=info_admin($langs->trans("InstallModuleFromWebHasBeenDisabledByFile",$dolibarrdataroot.'/installmodules.lock'));
|
||||||
|
$allowfromweb=0;
|
||||||
|
}
|
||||||
|
|
||||||
$fullurl='<a href="'.$urldolibarrmodules.'" target="_blank">'.$urldolibarrmodules.'</a>';
|
if ($allowfromweb < 1)
|
||||||
$message='';
|
{
|
||||||
if (! empty($allowonlineinstall))
|
print $langs->trans("SomethingMakeInstallFromWebNotPossible");
|
||||||
{
|
print $message;
|
||||||
if (! in_array('/custom',explode(',',$dolibarr_main_url_root_alt)))
|
//print $langs->trans("SomethingMakeInstallFromWebNotPossible2");
|
||||||
{
|
print '<br>';
|
||||||
$message=info_admin($langs->trans("ConfFileMustContainCustom", DOL_DOCUMENT_ROOT.'/custom', DOL_DOCUMENT_ROOT));
|
}
|
||||||
$allowfromweb=-1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ($dirins_ok)
|
|
||||||
{
|
|
||||||
if (! is_writable(dol_osencode($dirins)))
|
|
||||||
{
|
|
||||||
$langs->load("errors");
|
|
||||||
$message=info_admin($langs->trans("ErrorFailedToWriteInDir",$dirins));
|
|
||||||
$allowfromweb=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
$message=info_admin($langs->trans("NotExistsDirect",$dirins).$langs->trans("InfDirAlt").$langs->trans("InfDirExample"));
|
print '<br>';
|
||||||
$allowfromweb=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$message=info_admin($langs->trans("InstallModuleFromWebHasBeenDisabledByFile",$dolibarrdataroot.'/installmodules.lock'));
|
|
||||||
$allowfromweb=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($allowfromweb < 1)
|
if ($allowfromweb >= 0)
|
||||||
{
|
{
|
||||||
print $langs->trans("SomethingMakeInstallFromWebNotPossible");
|
if ($allowfromweb == 1)
|
||||||
print $message;
|
{
|
||||||
//print $langs->trans("SomethingMakeInstallFromWebNotPossible2");
|
//print $langs->trans("ThisIsProcessToFollow").'<br>';
|
||||||
print '<br>';
|
}
|
||||||
}
|
else
|
||||||
|
{
|
||||||
|
print $langs->trans("ThisIsAlternativeProcessToFollow").'<br>';
|
||||||
|
print '<b>'.$langs->trans("StepNb",1).'</b>: ';
|
||||||
|
print $langs->trans("FindPackageFromWebSite",$fullurl).'<br>';
|
||||||
|
print '<b>'.$langs->trans("StepNb",2).'</b>: ';
|
||||||
|
print $langs->trans("DownloadPackageFromWebSite",$fullurl).'<br>';
|
||||||
|
print '<b>'.$langs->trans("StepNb",3).'</b>: ';
|
||||||
|
}
|
||||||
|
|
||||||
print '<br>';
|
if ($allowfromweb == 1)
|
||||||
|
{
|
||||||
|
print $langs->trans("UnpackPackageInModulesRoot",$dirins).'<br>';
|
||||||
|
|
||||||
if ($allowfromweb >= 0)
|
print '<br>';
|
||||||
{
|
|
||||||
if ($allowfromweb == 1)
|
|
||||||
{
|
|
||||||
//print $langs->trans("ThisIsProcessToFollow").'<br>';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $langs->trans("ThisIsAlternativeProcessToFollow").'<br>';
|
|
||||||
print '<b>'.$langs->trans("StepNb",1).'</b>: ';
|
|
||||||
print $langs->trans("FindPackageFromWebSite",$fullurl).'<br>';
|
|
||||||
print '<b>'.$langs->trans("StepNb",2).'</b>: ';
|
|
||||||
print $langs->trans("DownloadPackageFromWebSite",$fullurl).'<br>';
|
|
||||||
print '<b>'.$langs->trans("StepNb",3).'</b>: ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($allowfromweb == 1)
|
print '<form enctype="multipart/form-data" method="POST" class="noborder" action="'.$_SERVER["PHP_SELF"].'" name="forminstall">';
|
||||||
{
|
print '<input type="hidden" name="action" value="install">';
|
||||||
print $langs->trans("UnpackPackageInModulesRoot",$dirins).'<br>';
|
print '<input type="hidden" name="mode" value="deploy">';
|
||||||
|
print $langs->trans("YouCanSubmitFile").' <input type="file" name="fileinstall"> ';
|
||||||
|
print '<input type="submit" name="send" value="'.dol_escape_htmltag($langs->trans("Send")).'" class="button">';
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
print '<form enctype="multipart/form-data" method="POST" class="noborder" action="'.$_SERVER["PHP_SELF"].'" name="forminstall">';
|
print '<div class="center"><div class="logo_setup"></div></div>';
|
||||||
print '<input type="hidden" name="action" value="install">';
|
}
|
||||||
print '<input type="hidden" name="mode" value="deploy">';
|
else
|
||||||
print $langs->trans("YouCanSubmitFile").' <input type="file" name="fileinstall"> ';
|
{
|
||||||
print '<input type="submit" name="send" value="'.dol_escape_htmltag($langs->trans("Send")).'" class="button">';
|
print $langs->trans("UnpackPackageInModulesRoot",$dirins).'<br>';
|
||||||
print '</form>';
|
print '<b>'.$langs->trans("StepNb",4).'</b>: ';
|
||||||
|
print $langs->trans("SetupIsReadyForUse").'<br>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print '<br>';
|
if (! empty($result['return']))
|
||||||
print '<br>';
|
{
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
print '<div class="center"><div class="logo_setup"></div></div>';
|
foreach($result['return'] as $value)
|
||||||
}
|
{
|
||||||
else
|
echo $value.'<br>';
|
||||||
{
|
}
|
||||||
print $langs->trans("UnpackPackageInModulesRoot",$dirins).'<br>';
|
}
|
||||||
print '<b>'.$langs->trans("StepNb",4).'</b>: ';
|
|
||||||
print $langs->trans("SetupIsReadyForUse").'<br>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
if (! empty($result['return']))
|
|
||||||
{
|
|
||||||
print '<br>';
|
|
||||||
|
|
||||||
foreach($result['return'] as $value)
|
|
||||||
{
|
|
||||||
echo $value.'<br>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dol_fiche_end();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($mode == 'develop')
|
if ($mode == 'develop')
|
||||||
{
|
{
|
||||||
dol_fiche_head($head, $mode, '', -1);
|
dol_fiche_head($head, $mode, '', -1);
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2012-2105 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2012-2107 Juanjo Menent <jmenent@2byte.es>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -74,7 +74,11 @@ if ($action == 'update')
|
|||||||
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_REF"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_REF"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PDF_USE_ISO_LOCATION", $_POST["MAIN_PDF_USE_ISO_LOCATION"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_PDF_USE_ISO_LOCATION", $_POST["MAIN_PDF_USE_ISO_LOCATION"],'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS"],'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS"],'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
|
|
||||||
|
dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_SECOND_TAX", $_POST["MAIN_PDF_MAIN_HIDE_SECOND_TAX"],'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_THIRD_TAX", $_POST["_MAIN_PDF_MAIN_HIDE_THIRD_TAX"],'chaine',0,'',$conf->entity);
|
||||||
|
|
||||||
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -249,6 +253,40 @@ if ($action == 'edit') // Edit
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
// Localtaxes
|
||||||
|
if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2))
|
||||||
|
{
|
||||||
|
$locales ='';
|
||||||
|
$text='';
|
||||||
|
|
||||||
|
if ($mysoc->useLocalTax(1))
|
||||||
|
{
|
||||||
|
$locales = $langs->transcountry("LT1",$mysoc->country_code);
|
||||||
|
$text ='<tr class="oddeven"><td>' . $langs->trans("HideLocalTaxOnPDF",$langs->transcountry("LT1",$mysoc->country_code)) . '</td><td>';
|
||||||
|
$text.= $form->selectyesno('MAIN_PDF_MAIN_HIDE_SECOND_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX : 0, 1);
|
||||||
|
$text .= '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($mysoc->useLocalTax(2))
|
||||||
|
{
|
||||||
|
$locales.=($locales?' & ':'').$langs->transcountry("LT2",$mysoc->country_code);
|
||||||
|
|
||||||
|
$text.= '<tr class="oddeven"><td>' . $langs->trans("HideLocalTaxOnPDF",$langs->transcountry("LT2",$mysoc->country_code)) . '</td><td>';
|
||||||
|
$text.= $form->selectyesno('MAIN_PDF_MAIN_HIDE_THIRD_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX : 0, 1);
|
||||||
|
$text.= '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("PDFLocaltax",$locales),'','');
|
||||||
|
$var=true;
|
||||||
|
print '<table summary="more" class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td width="200px">'.$langs->trans("Value").'</td></tr>';
|
||||||
|
print $text;
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Other
|
// Other
|
||||||
print load_fiche_titre($langs->trans("Other"),'','').'<br>';
|
print load_fiche_titre($langs->trans("Other"),'','').'<br>';
|
||||||
$var=true;
|
$var=true;
|
||||||
@ -444,6 +482,40 @@ else // Show
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
// Localtaxes
|
||||||
|
if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2))
|
||||||
|
{
|
||||||
|
$locales ='';
|
||||||
|
$text='';
|
||||||
|
|
||||||
|
if ($mysoc->useLocalTax(1))
|
||||||
|
{
|
||||||
|
$locales = $langs->transcountry("LT1",$mysoc->country_code);
|
||||||
|
$text ='<tr class="oddeven"><td>' . $langs->trans("HideLocalTaxOnPDF",$langs->transcountry("LT1",$mysoc->country_code)) . '</td><td>';
|
||||||
|
$text .= yn($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX,1);
|
||||||
|
$text .= '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($mysoc->useLocalTax(2))
|
||||||
|
{
|
||||||
|
$locales.=($locales?' & ':'').$langs->transcountry("LT2",$mysoc->country_code);
|
||||||
|
|
||||||
|
$text.= '<tr class="oddeven"><td>' . $langs->trans("HideLocalTaxOnPDF",$langs->transcountry("LT2",$mysoc->country_code)) . '</td><td>';
|
||||||
|
$text.= yn($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX,1);
|
||||||
|
$text.= '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("PDFLocaltax",$locales),'','');
|
||||||
|
$var=true;
|
||||||
|
print '<table summary="more" class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td width="200px">'.$langs->trans("Value").'</td></tr>';
|
||||||
|
print $text;
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Other
|
// Other
|
||||||
print load_fiche_titre($langs->trans("Other"),'','');
|
print load_fiche_titre($langs->trans("Other"),'','');
|
||||||
$var=true;
|
$var=true;
|
||||||
|
|||||||
@ -260,10 +260,6 @@ p.titre {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.resultats_dhtml {
|
|
||||||
width: 400px;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* --------------------- Combo lists ------------------- */
|
/* --------------------- Combo lists ------------------- */
|
||||||
.select_design {
|
.select_design {
|
||||||
|
|||||||
@ -51,26 +51,14 @@ function file(fichier) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Affichage des donnees aTexte dans le bloc identifie par aId
|
|
||||||
function afficheDonnees(aId, aTexte) {
|
|
||||||
|
|
||||||
document.getElementById(aId).innerHTML = aTexte;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// aCible : id du bloc de destination; aCode : argument a passer a la page php chargee du traitement et de l'affichage
|
// aCible : id du bloc de destination; aCode : argument a passer a la page php chargee du traitement et de l'affichage
|
||||||
function verifResultat(aCible, aCode, iLimit) {
|
function verifResultat(aCible, aCode, iLimit) {
|
||||||
if (aCode != '' && aCode.length >= iLimit) {
|
if (aCode != '' && aCode.length >= iLimit) {
|
||||||
|
|
||||||
if (texte = file('facturation_dhtml.php?code='+escape(aCode))) {
|
if (texte = file('facturation_dhtml.php?code='+escape(aCode))) {
|
||||||
|
document.getElementById(aCible).innerHTML = texte;
|
||||||
afficheDonnees (aCible, texte);
|
|
||||||
|
|
||||||
} else
|
} else
|
||||||
|
document.getElementById(aCible).innerHTML = '';
|
||||||
afficheDonnees (aCible, '');
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,11 +42,10 @@ $langs->load("cashdesk");
|
|||||||
<tr><th class="label1"><?php echo $langs->trans("FilterRefOrLabelOrBC"); ?></th><th class="label1"><?php echo $langs->trans("Designation"); ?></th></tr>
|
<tr><th class="label1"><?php echo $langs->trans("FilterRefOrLabelOrBC"); ?></th><th class="label1"><?php echo $langs->trans("Designation"); ?></th></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<!-- Affichage de la reference et de la designation -->
|
<!-- Affichage de la reference et de la designation -->
|
||||||
|
<!-- Suppression de l'attribut onkeyup qui causait un probleme d'emulation avec les douchettes -->
|
||||||
<td><input class="texte_ref" type="text" id ="txtRef" name="txtRef" value="<?php echo $obj_facturation->ref() ?>"
|
<td><input class="texte_ref" type="text" id ="txtRef" name="txtRef" value="<?php echo $obj_facturation->ref() ?>"
|
||||||
onchange="javascript: setSource('REF');"
|
onchange="javascript: setSource('REF');"
|
||||||
onkeyup="javascript: verifResultat('resultats_dhtml', this.value, <?php echo (isset($conf->global->BARCODE_USE_SEARCH_TO_SELECT) ? (int) $conf->global->BARCODE_USE_SEARCH_TO_SELECT : 1) ?>);"
|
onfocus="javascript: this.select();" />
|
||||||
onfocus="javascript: this.select(); verifResultat('resultats_dhtml', this.value, <?php echo (isset($conf->global->BARCODE_USE_SEARCH_TO_SELECT) ? (int) $conf->global->BARCODE_USE_SEARCH_TO_SELECT : 1) ?>);"
|
|
||||||
onBlur="javascript: document.getElementById('resultats_dhtml').innerHTML = '';"/>
|
|
||||||
</td>
|
</td>
|
||||||
<td class="select_design maxwidthonsmartphone">
|
<td class="select_design maxwidthonsmartphone">
|
||||||
<?php /*
|
<?php /*
|
||||||
|
|||||||
@ -936,7 +936,7 @@ class ActionComm extends CommonObject
|
|||||||
$response->label = $langs->trans("ActionsToDo");
|
$response->label = $langs->trans("ActionsToDo");
|
||||||
$response->url = DOL_URL_ROOT.'/comm/action/listactions.php?status=todo&mainmenu=agenda';
|
$response->url = DOL_URL_ROOT.'/comm/action/listactions.php?status=todo&mainmenu=agenda';
|
||||||
if ($user->rights->agenda->allactions->read) $response->url.='&filtert=-1';
|
if ($user->rights->agenda->allactions->read) $response->url.='&filtert=-1';
|
||||||
$response->img = img_object('',"action");
|
$response->img = img_object('',"action",'class="inline-block valigntextmiddle"');
|
||||||
|
|
||||||
// This assignment in condition is not a bug. It allows walking the results.
|
// This assignment in condition is not a bug. It allows walking the results.
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
while ($obj=$this->db->fetch_object($resql))
|
||||||
|
|||||||
@ -206,7 +206,7 @@ if ($id > 0 && empty($object->id))
|
|||||||
{
|
{
|
||||||
// Load data of third party
|
// Load data of third party
|
||||||
$res=$object->fetch($id);
|
$res=$object->fetch($id);
|
||||||
if ($object->id <= 0) dol_print_error($db,$object->error);
|
if ($object->id <= 0) dol_print_error($db,$object->error,$object->errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
$title=$langs->trans("CustomerCard");
|
$title=$langs->trans("CustomerCard");
|
||||||
@ -608,7 +608,7 @@ if ($id > 0)
|
|||||||
if(empty($reshook)){
|
if(empty($reshook)){
|
||||||
$boxstat.= $hookmanager->resPrint;
|
$boxstat.= $hookmanager->resPrint;
|
||||||
}
|
}
|
||||||
|
|
||||||
$boxstat.='</td></tr>';
|
$boxstat.='</td></tr>';
|
||||||
$boxstat.='</table>';
|
$boxstat.='</table>';
|
||||||
$boxstat.='</div>';
|
$boxstat.='</div>';
|
||||||
|
|||||||
@ -463,7 +463,7 @@ if (empty($reshook))
|
|||||||
$object->email_errorsto = trim($_POST["errorsto"]);
|
$object->email_errorsto = trim($_POST["errorsto"]);
|
||||||
$object->titre = trim($_POST["titre"]);
|
$object->titre = trim($_POST["titre"]);
|
||||||
$object->sujet = trim($_POST["sujet"]);
|
$object->sujet = trim($_POST["sujet"]);
|
||||||
$object->body = trim($_POST["body"]);
|
$object->body = trim($_POST["bodyemail"]);
|
||||||
$object->bgcolor = trim($_POST["bgcolor"]);
|
$object->bgcolor = trim($_POST["bgcolor"]);
|
||||||
$object->bgimage = trim($_POST["bgimage"]);
|
$object->bgimage = trim($_POST["bgimage"]);
|
||||||
|
|
||||||
@ -560,7 +560,7 @@ if (empty($reshook))
|
|||||||
$mesgs = array();
|
$mesgs = array();
|
||||||
|
|
||||||
$object->sujet = trim($_POST["sujet"]);
|
$object->sujet = trim($_POST["sujet"]);
|
||||||
$object->body = trim($_POST["body"]);
|
$object->body = trim($_POST["bodyemail"]);
|
||||||
$object->bgcolor = trim($_POST["bgcolor"]);
|
$object->bgcolor = trim($_POST["bgcolor"]);
|
||||||
$object->bgimage = trim($_POST["bgimage"]);
|
$object->bgimage = trim($_POST["bgimage"]);
|
||||||
|
|
||||||
@ -686,7 +686,13 @@ $form = new Form($db);
|
|||||||
$htmlother = new FormOther($db);
|
$htmlother = new FormOther($db);
|
||||||
|
|
||||||
$help_url='EN:Module_EMailing|FR:Module_Mailing|ES:Módulo_Mailing';
|
$help_url='EN:Module_EMailing|FR:Module_Mailing|ES:Módulo_Mailing';
|
||||||
llxHeader('',$langs->trans("Mailing"),$help_url);
|
llxHeader('', $langs->trans("Mailing"), $help_url, '', 0, 0,
|
||||||
|
array(
|
||||||
|
'/includes/ace/ace.js',
|
||||||
|
'/includes/ace/ext-statusbar.js',
|
||||||
|
'/includes/ace/ext-language_tools.js',
|
||||||
|
//'/includes/ace/ext-chromevox.js'
|
||||||
|
), array());
|
||||||
|
|
||||||
if ($action == 'create')
|
if ($action == 'create')
|
||||||
{
|
{
|
||||||
@ -740,7 +746,7 @@ if ($action == 'create')
|
|||||||
print '<div style="padding-top: 10px">';
|
print '<div style="padding-top: 10px">';
|
||||||
// Editeur wysiwyg
|
// Editeur wysiwyg
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor=new DolEditor('body',$_POST['body'],'',600,'dolibarr_mailings','',true,true,$conf->global->FCKEDITOR_ENABLE_MAILING,20,'90%');
|
$doleditor=new DolEditor('bodyemail',GETPOST('bodyemail','none'),'',600,'dolibarr_mailings','',true,true,$conf->global->FCKEDITOR_ENABLE_MAILING,20,'90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@ -780,7 +786,7 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($action != 'edit')
|
if ($action != 'edit' && $action != 'edithtml')
|
||||||
{
|
{
|
||||||
dol_fiche_head($head, 'card', $langs->trans("Mailing"), -1, 'email');
|
dol_fiche_head($head, 'card', $langs->trans("Mailing"), -1, 'email');
|
||||||
|
|
||||||
@ -935,7 +941,9 @@ else
|
|||||||
|
|
||||||
if (($object->statut == 0 || $object->statut == 1) && $user->rights->mailing->creer)
|
if (($object->statut == 0 || $object->statut == 1) && $user->rights->mailing->creer)
|
||||||
{
|
{
|
||||||
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=edit&id='.$object->id.'">'.$langs->trans("EditMailing").'</a>';
|
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=edit&id='.$object->id.'">'.$langs->trans("EditWithEditor").'</a>';
|
||||||
|
|
||||||
|
if (! empty($conf->use_javascript_ajax)) print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=edithtml&id='.$object->id.'">'.$langs->trans("EditHTMLSource").'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
//print '<a class="butAction" href="card.php?action=test&id='.$object->id.'">'.$langs->trans("PreviewMailing").'</a>';
|
//print '<a class="butAction" href="card.php?action=test&id='.$object->id.'">'.$langs->trans("PreviewMailing").'</a>';
|
||||||
@ -1095,7 +1103,7 @@ else
|
|||||||
$readonly=1;
|
$readonly=1;
|
||||||
// Editeur wysiwyg
|
// Editeur wysiwyg
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor=new DolEditor('body',$object->body,'',600,'dolibarr_mailings','',false,true,empty($conf->global->FCKEDITOR_ENABLE_MAILING)?0:1,20,120,$readonly);
|
$doleditor=new DolEditor('bodyemail',$object->body,'',600,'dolibarr_mailings','',false,true,empty($conf->global->FCKEDITOR_ENABLE_MAILING)?0:1,20,120,$readonly);
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
}
|
}
|
||||||
else print dol_htmlentitiesbr($object->body);
|
else print dol_htmlentitiesbr($object->body);
|
||||||
@ -1107,7 +1115,7 @@ else
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Mailing en mode edition
|
* Mailing en mode edition (CKeditor or HTML source)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
dol_fiche_head($head, 'card', $langs->trans("Mailing"), -1, 'email');
|
dol_fiche_head($head, 'card', $langs->trans("Mailing"), -1, 'email');
|
||||||
@ -1187,7 +1195,8 @@ else
|
|||||||
// Print mail content
|
// Print mail content
|
||||||
print load_fiche_titre($langs->trans("EMail"), $form->textwithpicto($langs->trans("AvailableVariables"), $htmltext, 1, 'help', '', 0, 2, 'emailsubstitionhelp'), 'title_generic');
|
print load_fiche_titre($langs->trans("EMail"), $form->textwithpicto($langs->trans("AvailableVariables"), $htmltext, 1, 'help', '', 0, 2, 'emailsubstitionhelp'), 'title_generic');
|
||||||
|
|
||||||
dol_fiche_head();
|
|
||||||
|
dol_fiche_head(null, '', '', -1);
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
@ -1203,6 +1212,7 @@ else
|
|||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
// List of files
|
// List of files
|
||||||
$listofpaths=dol_dir_list($upload_dir,'all',0,'','','name',SORT_ASC,0);
|
$listofpaths=dol_dir_list($upload_dir,'all',0,'','','name',SORT_ASC,0);
|
||||||
|
|
||||||
// TODO Trick to have param removedfile containing nb of image to delete. But this does not works without javascript
|
// TODO Trick to have param removedfile containing nb of image to delete. But this does not works without javascript
|
||||||
$out.= '<input type="hidden" class="removedfilehidden" name="removedfile" value="">'."\n";
|
$out.= '<input type="hidden" class="removedfilehidden" name="removedfile" value="">'."\n";
|
||||||
$out.= '<script type="text/javascript" language="javascript">';
|
$out.= '<script type="text/javascript" language="javascript">';
|
||||||
@ -1242,17 +1252,29 @@ else
|
|||||||
|
|
||||||
// Message
|
// Message
|
||||||
print '<div style="padding-top: 10px">';
|
print '<div style="padding-top: 10px">';
|
||||||
// Editeur wysiwyg
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
if ($action == 'edit')
|
||||||
$doleditor=new DolEditor('body',$object->body,'',600,'dolibarr_mailings','',true,true,$conf->global->FCKEDITOR_ENABLE_MAILING,20,'90%');
|
{
|
||||||
$doleditor->Create();
|
// Editeur wysiwyg
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
|
$doleditor=new DolEditor('bodyemail',$object->body,'',600,'dolibarr_mailings','',true,true,$conf->global->FCKEDITOR_ENABLE_MAILING,20,'90%');
|
||||||
|
$doleditor->Create();
|
||||||
|
}
|
||||||
|
if ($action == 'edithtml')
|
||||||
|
{
|
||||||
|
// Editor HTML source
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
|
$doleditor=new DolEditor('bodyemail',$object->body,'',600,'dolibarr_mailings','',true,true,'ace',20,'90%');
|
||||||
|
$doleditor->Create(0, '', false, 'HTML Source', 'php');
|
||||||
|
}
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'" name="save">';
|
print '<input type="submit" class="button buttonforacesave" value="'.$langs->trans("Save").'" name="save">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Cancel").'" name="cancel">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Cancel").'" name="cancel">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|||||||
@ -45,7 +45,6 @@ $ref = GETPOST('ref','alpha');
|
|||||||
$socid='';
|
$socid='';
|
||||||
if (! empty($user->societe_id))
|
if (! empty($user->societe_id))
|
||||||
{
|
{
|
||||||
$action='';
|
|
||||||
$socid = $user->societe_id;
|
$socid = $user->societe_id;
|
||||||
}
|
}
|
||||||
$result = restrictedArea($user, 'propal', $id);
|
$result = restrictedArea($user, 'propal', $id);
|
||||||
|
|||||||
@ -44,7 +44,6 @@ $ref = GETPOST('ref');
|
|||||||
// Security check
|
// Security check
|
||||||
if ($user->societe_id)
|
if ($user->societe_id)
|
||||||
{
|
{
|
||||||
$action='';
|
|
||||||
$socid = $user->societe_id;
|
$socid = $user->societe_id;
|
||||||
}
|
}
|
||||||
$result=restrictedArea($user,'commande',$id,'');
|
$result=restrictedArea($user,'commande',$id,'');
|
||||||
|
|||||||
@ -30,8 +30,9 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
|
|||||||
*/
|
*/
|
||||||
class PaymentVarious extends CommonObject
|
class PaymentVarious extends CommonObject
|
||||||
{
|
{
|
||||||
//public $element='payment_various'; //!< Id that identify managed objects
|
public $element='variouspayment'; //!< Id that identify managed objects
|
||||||
//public $table_element='payment_various'; //!< Name of table without prefix where object is stored
|
public $table_element='payment_various'; //!< Name of table without prefix where object is stored
|
||||||
|
public $picto = 'bill';
|
||||||
|
|
||||||
var $tms;
|
var $tms;
|
||||||
var $datep;
|
var $datep;
|
||||||
@ -42,6 +43,7 @@ class PaymentVarious extends CommonObject
|
|||||||
var $num_payment;
|
var $num_payment;
|
||||||
var $label;
|
var $label;
|
||||||
var $accountancy_code;
|
var $accountancy_code;
|
||||||
|
var $fk_project;
|
||||||
var $fk_bank;
|
var $fk_bank;
|
||||||
var $fk_user_author;
|
var $fk_user_author;
|
||||||
var $fk_user_modif;
|
var $fk_user_modif;
|
||||||
@ -96,6 +98,7 @@ class PaymentVarious extends CommonObject
|
|||||||
$sql.= " label='".$this->db->escape($this->label)."',";
|
$sql.= " label='".$this->db->escape($this->label)."',";
|
||||||
$sql.= " note='".$this->db->escape($this->note)."',";
|
$sql.= " note='".$this->db->escape($this->note)."',";
|
||||||
$sql.= " accountancy_code='".$this->db->escape($this->accountancy_code)."',";
|
$sql.= " accountancy_code='".$this->db->escape($this->accountancy_code)."',";
|
||||||
|
$sql.= " fk_projet='".$this->db->escape($this->fk_project)."',";
|
||||||
$sql.= " fk_bank=".($this->fk_bank > 0 ? $this->fk_bank:"null").",";
|
$sql.= " fk_bank=".($this->fk_bank > 0 ? $this->fk_bank:"null").",";
|
||||||
$sql.= " fk_user_author=".$this->fk_user_author.",";
|
$sql.= " fk_user_author=".$this->fk_user_author.",";
|
||||||
$sql.= " fk_user_modif=".$this->fk_user_modif;
|
$sql.= " fk_user_modif=".$this->fk_user_modif;
|
||||||
@ -154,6 +157,7 @@ class PaymentVarious extends CommonObject
|
|||||||
$sql.= " v.label,";
|
$sql.= " v.label,";
|
||||||
$sql.= " v.note,";
|
$sql.= " v.note,";
|
||||||
$sql.= " v.accountancy_code,";
|
$sql.= " v.accountancy_code,";
|
||||||
|
$sql.= " v.fk_projet as fk_project,";
|
||||||
$sql.= " v.fk_bank,";
|
$sql.= " v.fk_bank,";
|
||||||
$sql.= " v.fk_user_author,";
|
$sql.= " v.fk_user_author,";
|
||||||
$sql.= " v.fk_user_modif,";
|
$sql.= " v.fk_user_modif,";
|
||||||
@ -185,6 +189,7 @@ class PaymentVarious extends CommonObject
|
|||||||
$this->label = $obj->label;
|
$this->label = $obj->label;
|
||||||
$this->note = $obj->note;
|
$this->note = $obj->note;
|
||||||
$this->accountancy_code = $obj->accountancy_code;
|
$this->accountancy_code = $obj->accountancy_code;
|
||||||
|
$this->fk_project = $obj->fk_project;
|
||||||
$this->fk_bank = $obj->fk_bank;
|
$this->fk_bank = $obj->fk_bank;
|
||||||
$this->fk_user_author = $obj->fk_user_author;
|
$this->fk_user_author = $obj->fk_user_author;
|
||||||
$this->fk_user_modif = $obj->fk_user_modif;
|
$this->fk_user_modif = $obj->fk_user_modif;
|
||||||
@ -317,6 +322,7 @@ class PaymentVarious extends CommonObject
|
|||||||
if ($this->note) $sql.= ", note";
|
if ($this->note) $sql.= ", note";
|
||||||
$sql.= ", label";
|
$sql.= ", label";
|
||||||
$sql.= ", accountancy_code";
|
$sql.= ", accountancy_code";
|
||||||
|
$sql.= ", fk_projet";
|
||||||
$sql.= ", fk_user_author";
|
$sql.= ", fk_user_author";
|
||||||
$sql.= ", datec";
|
$sql.= ", datec";
|
||||||
$sql.= ", fk_bank";
|
$sql.= ", fk_bank";
|
||||||
@ -451,6 +457,63 @@ class PaymentVarious extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retourne le libelle du statut
|
||||||
|
*
|
||||||
|
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
|
||||||
|
* @return string Libelle
|
||||||
|
*/
|
||||||
|
function getLibStatut($mode=0)
|
||||||
|
{
|
||||||
|
return $this->LibStatut($this->statut,$mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renvoi le libelle d'un statut donne
|
||||||
|
*
|
||||||
|
* @param int $statut Id status
|
||||||
|
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
|
||||||
|
* @return string Libelle
|
||||||
|
*/
|
||||||
|
function LibStatut($statut,$mode=0)
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
|
||||||
|
if ($mode == 0)
|
||||||
|
{
|
||||||
|
return $langs->trans($this->statuts[$statut]);
|
||||||
|
}
|
||||||
|
if ($mode == 1)
|
||||||
|
{
|
||||||
|
return $langs->trans($this->statuts_short[$statut]);
|
||||||
|
}
|
||||||
|
if ($mode == 2)
|
||||||
|
{
|
||||||
|
if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts_short[$statut]);
|
||||||
|
if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]);
|
||||||
|
if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]);
|
||||||
|
}
|
||||||
|
if ($mode == 3)
|
||||||
|
{
|
||||||
|
if ($statut==0 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
|
||||||
|
if ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
|
||||||
|
if ($statut==2 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
|
||||||
|
}
|
||||||
|
if ($mode == 4)
|
||||||
|
{
|
||||||
|
if ($statut==0 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
|
||||||
|
if ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
|
||||||
|
if ($statut==2 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
|
||||||
|
}
|
||||||
|
if ($mode == 5)
|
||||||
|
{
|
||||||
|
if ($statut==0 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
|
||||||
|
if ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
|
||||||
|
if ($statut==2 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send name clicable (with possibly the picto)
|
* Send name clicable (with possibly the picto)
|
||||||
*
|
*
|
||||||
|
|||||||
@ -514,7 +514,7 @@ foreach ($accounts as $key=>$type)
|
|||||||
if (! empty($conf->accounting->enabled))
|
if (! empty($conf->accounting->enabled))
|
||||||
{
|
{
|
||||||
$accountingjournal = new AccountingJournal($db);
|
$accountingjournal = new AccountingJournal($db);
|
||||||
$accountingjournal->fetch('',$acc->fk_accountancy_journal);
|
$accountingjournal->fetch($acc->fk_accountancy_journal);
|
||||||
print $accountingjournal->getNomUrl(0,1,1,'',1);
|
print $accountingjournal->getNomUrl(0,1,1,'',1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -29,6 +29,11 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
|||||||
if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
||||||
if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
|
if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
|
||||||
if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php';
|
if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php';
|
||||||
|
if (! empty($conf->projet->enabled))
|
||||||
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
|
||||||
|
}
|
||||||
|
|
||||||
$langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy"));
|
$langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy"));
|
||||||
|
|
||||||
@ -44,6 +49,7 @@ $sens=GETPOST("sens","int");
|
|||||||
$amount=GETPOST("amount");
|
$amount=GETPOST("amount");
|
||||||
$paymenttype=GETPOST("paymenttype");
|
$paymenttype=GETPOST("paymenttype");
|
||||||
$accountancy_code=GETPOST("accountancy_code","int");
|
$accountancy_code=GETPOST("accountancy_code","int");
|
||||||
|
$projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0);
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
$socid = GETPOST("socid","int");
|
$socid = GETPOST("socid","int");
|
||||||
@ -67,6 +73,13 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
|
|||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
|
// Link to a project
|
||||||
|
if ($action == 'classin' && $user->rights->banque->modifier)
|
||||||
|
{
|
||||||
|
$object->fetch($id);
|
||||||
|
$object->setProject(GETPOST('projectid'));
|
||||||
|
}
|
||||||
|
|
||||||
if ($cancel)
|
if ($cancel)
|
||||||
{
|
{
|
||||||
if ($action != 'addlink')
|
if ($action != 'addlink')
|
||||||
@ -98,6 +111,7 @@ if (empty($reshook))
|
|||||||
$object->fk_user_author=$user->id;
|
$object->fk_user_author=$user->id;
|
||||||
$object->accountancy_code=GETPOST("accountancy_code") > 0 ? GETPOST("accountancy_code","int") : "";
|
$object->accountancy_code=GETPOST("accountancy_code") > 0 ? GETPOST("accountancy_code","int") : "";
|
||||||
$object->sens=GETPOST('sens');
|
$object->sens=GETPOST('sens');
|
||||||
|
$object->fk_project= GETPOST('fk_project');
|
||||||
|
|
||||||
if (empty($datep) || empty($datev))
|
if (empty($datep) || empty($datev))
|
||||||
{
|
{
|
||||||
@ -205,6 +219,7 @@ llxHeader("",$langs->trans("VariousPayment"));
|
|||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db);
|
if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db);
|
||||||
|
if (! empty($conf->projet->enabled)) $formproject = new FormProjets($db);
|
||||||
|
|
||||||
if ($id)
|
if ($id)
|
||||||
{
|
{
|
||||||
@ -306,6 +321,21 @@ if ($action == 'create')
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Project
|
||||||
|
if (! empty($conf->projet->enabled))
|
||||||
|
{
|
||||||
|
$formproject=new FormProjets($db);
|
||||||
|
|
||||||
|
// Associated project
|
||||||
|
$langs->load("projects");
|
||||||
|
|
||||||
|
print '<tr><td>'.$langs->trans("Project").'</td><td>';
|
||||||
|
|
||||||
|
$numproject=$formproject->select_projects(-1, $projectid,'fk_project',0,0,1,1);
|
||||||
|
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
// Other attributes
|
// Other attributes
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||||
@ -333,19 +363,52 @@ if ($action == 'create')
|
|||||||
|
|
||||||
if ($id)
|
if ($id)
|
||||||
{
|
{
|
||||||
|
|
||||||
$head=various_payment_prepare_head($object);
|
$head=various_payment_prepare_head($object);
|
||||||
|
|
||||||
dol_fiche_head($head, 'card', $langs->trans("VariousPayment"), 0, 'payment');
|
dol_fiche_head($head, 'card', $langs->trans("VariousPayment"), -1, 'payment');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
|
||||||
|
|
||||||
|
$morehtmlref='<div class="refidno">';
|
||||||
|
// Project
|
||||||
|
if (! empty($conf->projet->enabled))
|
||||||
|
{
|
||||||
|
$langs->load("projects");
|
||||||
|
$morehtmlref.=$langs->trans('Project') . ' ';
|
||||||
|
if ($user->rights->tax->charges->creer)
|
||||||
|
{
|
||||||
|
if ($action != 'classify')
|
||||||
|
$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
|
||||||
|
if ($action == 'classify') {
|
||||||
|
//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
|
||||||
|
$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
|
||||||
|
$morehtmlref.='<input type="hidden" name="action" value="classin">';
|
||||||
|
$morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
$morehtmlref.=$formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
|
||||||
|
$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
|
||||||
|
$morehtmlref.='</form>';
|
||||||
|
} else {
|
||||||
|
$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (! empty($object->fk_project)) {
|
||||||
|
$proj = new Project($db);
|
||||||
|
$proj->fetch($object->fk_project);
|
||||||
|
$morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
|
||||||
|
$morehtmlref.=$proj->ref;
|
||||||
|
$morehtmlref.='</a>';
|
||||||
|
} else {
|
||||||
|
$morehtmlref.='';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$morehtmlref.='</div>';
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/various_payment/index.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/various_payment/index.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
print "<tr>";
|
dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright);
|
||||||
print '<td class="titlefield">'.$langs->trans("Ref").'</td><td>';
|
|
||||||
print $form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'ref', '');
|
print '<div class="fichecenter">';
|
||||||
print '</td></tr>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Label
|
// Label
|
||||||
print '<tr><td>'.$langs->trans("Label").'</td><td>'.$object->label.'</td></tr>';
|
print '<tr><td>'.$langs->trans("Label").'</td><td>'.$object->label.'</td></tr>';
|
||||||
@ -404,6 +467,11 @@ if ($id)
|
|||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '<div class="clearboth"></div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -243,7 +243,7 @@ if ($result)
|
|||||||
|
|
||||||
$accountingjournal = new AccountingJournal($db);
|
$accountingjournal = new AccountingJournal($db);
|
||||||
$accountingjournal->fetch($obj->accountancy_journal);
|
$accountingjournal->fetch($obj->accountancy_journal);
|
||||||
$accountstatic->accountancy_journal = $accountingjournal->code;
|
$accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0,1,1,'',1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$accountstatic->label=$obj->blabel;
|
$accountstatic->label=$obj->blabel;
|
||||||
|
|||||||
@ -73,7 +73,7 @@ if (!empty($conf->incoterm->enabled)) $langs->load('incoterm');
|
|||||||
if (! empty($conf->margin->enabled))
|
if (! empty($conf->margin->enabled))
|
||||||
$langs->load('margins');
|
$langs->load('margins');
|
||||||
|
|
||||||
$projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0);
|
$projectid = (GETPOST('projectid','int') ? GETPOST('projectid', 'int') : 0);
|
||||||
|
|
||||||
$id = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility
|
$id = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('facid', 'int')); // For backward compatibility
|
||||||
$ref = GETPOST('ref', 'alpha');
|
$ref = GETPOST('ref', 'alpha');
|
||||||
@ -83,7 +83,7 @@ $confirm = GETPOST('confirm', 'alpha');
|
|||||||
$cancel = GETPOST('cancel', 'alpha');
|
$cancel = GETPOST('cancel', 'alpha');
|
||||||
$lineid = GETPOST('lineid', 'int');
|
$lineid = GETPOST('lineid', 'int');
|
||||||
$userid = GETPOST('userid', 'int');
|
$userid = GETPOST('userid', 'int');
|
||||||
$search_ref = GETPOST('sf_ref') ? GETPOST('sf_ref', 'alpha') : GETPOST('search_ref', 'alpha');
|
$search_ref = GETPOST('sf_ref','alpha') ? GETPOST('sf_ref', 'alpha') : GETPOST('search_ref', 'alpha');
|
||||||
$search_societe = GETPOST('search_societe', 'alpha');
|
$search_societe = GETPOST('search_societe', 'alpha');
|
||||||
$search_montant_ht = GETPOST('search_montant_ht', 'alpha');
|
$search_montant_ht = GETPOST('search_montant_ht', 'alpha');
|
||||||
$search_montant_ttc = GETPOST('search_montant_ttc', 'alpha');
|
$search_montant_ttc = GETPOST('search_montant_ttc', 'alpha');
|
||||||
@ -430,27 +430,52 @@ if (empty($reshook))
|
|||||||
|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->validate)))
|
|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->validate)))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$idwarehouse = GETPOST('idwarehouse');
|
$idwarehouse = GETPOST('idwarehouse','int');
|
||||||
|
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
$object->fetch_thirdparty();
|
$object->fetch_thirdparty();
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
|
|
||||||
// Check for mandatory prof id (but only if country is than than ours)
|
// Check for mandatory fields defined into setup
|
||||||
if ($mysoc->country_id > 0 && $object->thirdparty->country_id == $mysoc->country_id)
|
$array_to_check=array('IDPROF1','IDPROF2','IDPROF3','IDPROF4','IDPROF5','IDPROF6','EMAIL');
|
||||||
|
foreach($array_to_check as $key)
|
||||||
{
|
{
|
||||||
for ($i = 1; $i <= 6; $i++)
|
$keymin=strtolower($key);
|
||||||
{
|
$i=(int) preg_replace('/[^0-9]/','',$key);
|
||||||
$idprof_mandatory = 'SOCIETE_IDPROF' . ($i) . '_INVOICE_MANDATORY';
|
$vallabel=$object->thirdparty->$keymin;
|
||||||
$idprof = 'idprof' . $i;
|
|
||||||
if (! $object->thirdparty->$idprof && ! empty($conf->global->$idprof_mandatory))
|
if ($i > 0)
|
||||||
{
|
{
|
||||||
if (! $error) $langs->load("errors");
|
if ($object->thirdparty->isACompany())
|
||||||
$error++;
|
{
|
||||||
setEventMessages($langs->trans('ErrorProdIdIsMandatory', $langs->transcountry('ProfId' . $i, $object->thirdparty->country_code)), null, 'errors');
|
// Check for mandatory prof id (but only if country is other than ours)
|
||||||
}
|
if ($mysoc->country_id > 0 && $object->thirdparty->country_id == $mysoc->country_id)
|
||||||
}
|
{
|
||||||
|
$idprof_mandatory ='SOCIETE_'.$key.'_INVOICE_MANDATORY';
|
||||||
|
if (! $vallabel && ! empty($conf->global->$idprof_mandatory))
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
$error++;
|
||||||
|
setEventMessages($langs->trans('ErrorProdIdIsMandatory', $langs->transcountry('ProfId'.$i, $object->thirdparty->country_code)).' ('.$langs->trans("ForbiddenBySetupRules").')', null, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//var_dump($conf->global->SOCIETE_EMAIL_MANDATORY);
|
||||||
|
if ($key == 'EMAIL')
|
||||||
|
{
|
||||||
|
// Check for mandatory
|
||||||
|
if (! empty($conf->global->SOCIETE_EMAIL_INVOICE_MANDATORY) && ! isValidEMail($object->thirdparty->email))
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
$error++;
|
||||||
|
setEventMessages($langs->trans("ErrorBadEMail", $object->thirdparty->email).' ('.$langs->trans("ForbiddenBySetupRules").')', null, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$qualified_for_stock_change = 0;
|
$qualified_for_stock_change = 0;
|
||||||
@ -2214,7 +2239,6 @@ if ($action == 'create')
|
|||||||
print ' / ' . price($soc->outstanding_limit, '', $langs, 0, 0, -1, $conf->currency);
|
print ' / ' . price($soc->outstanding_limit, '', $langs, 0, 0, -1, $conf->currency);
|
||||||
}
|
}
|
||||||
print ')';
|
print ')';
|
||||||
print ' <a href="'.DOL_URL_ROOT.'/societe/card.php?action=create&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create&fac_rec='.GETPOST('fac_rec','alpha')).'">'.$langs->trans("AddThirdParty").'</a>';
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -4265,7 +4289,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
// Select mail models is same action as presend
|
// Select mail models is same action as presend
|
||||||
if (GETPOST('modelselected')) {
|
if (GETPOST('modelselected','alpha')) {
|
||||||
$action = 'presend';
|
$action = 'presend';
|
||||||
}
|
}
|
||||||
if ($action != 'prerelance' && $action != 'presend')
|
if ($action != 'prerelance' && $action != 'presend')
|
||||||
@ -4352,7 +4376,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
if (! $file || ! is_readable($file)) {
|
if (! $file || ! is_readable($file)) {
|
||||||
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
$result = $object->generateDocument(GETPOST('model','alpha') ? GETPOST('model','alpha') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
dol_print_error($db, $object->error, $object->errors);
|
dol_print_error($db, $object->error, $object->errors);
|
||||||
exit();
|
exit();
|
||||||
@ -4372,7 +4396,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
|
||||||
$formmail = new FormMail($db);
|
$formmail = new FormMail($db);
|
||||||
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
|
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
|
||||||
$formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
|
$formmail->fromtype = (GETPOST('fromtype','alpha')?GETPOST('fromtype','alpha'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
|
||||||
|
|
||||||
if($formmail->fromtype === 'user'){
|
if($formmail->fromtype === 'user'){
|
||||||
$formmail->fromid = $user->id;
|
$formmail->fromid = $user->id;
|
||||||
|
|||||||
@ -316,7 +316,7 @@ class Facture extends CommonInvoice
|
|||||||
$this->note_private=dol_concatdesc($this->note_private, $langs->trans("GeneratedFromRecurringInvoice", $_facrec->ref));
|
$this->note_private=dol_concatdesc($this->note_private, $langs->trans("GeneratedFromRecurringInvoice", $_facrec->ref));
|
||||||
|
|
||||||
$this->array_options=$_facrec->array_options;
|
$this->array_options=$_facrec->array_options;
|
||||||
|
|
||||||
//if (! $this->remise) $this->remise = 0;
|
//if (! $this->remise) $this->remise = 0;
|
||||||
if (! $this->mode_reglement_id) $this->mode_reglement_id = 0;
|
if (! $this->mode_reglement_id) $this->mode_reglement_id = 0;
|
||||||
$this->brouillon = 1;
|
$this->brouillon = 1;
|
||||||
@ -636,7 +636,7 @@ class Facture extends CommonInvoice
|
|||||||
if (empty($tva_tx)) $tva_npr=0;
|
if (empty($tva_tx)) $tva_npr=0;
|
||||||
$localtax1_tx=get_localtax($tva_tx,1,$soc,$mysoc,$tva_npr);
|
$localtax1_tx=get_localtax($tva_tx,1,$soc,$mysoc,$tva_npr);
|
||||||
$localtax2_tx=get_localtax($tva_tx,2,$soc,$mysoc,$tva_npr);
|
$localtax2_tx=get_localtax($tva_tx,2,$soc,$mysoc,$tva_npr);
|
||||||
|
|
||||||
$result_insert = $this->addline(
|
$result_insert = $this->addline(
|
||||||
$_facrec->lines[$i]->desc,
|
$_facrec->lines[$i]->desc,
|
||||||
$_facrec->lines[$i]->subprice,
|
$_facrec->lines[$i]->subprice,
|
||||||
@ -750,12 +750,12 @@ class Facture extends CommonInvoice
|
|||||||
|
|
||||||
// Charge facture source
|
// Charge facture source
|
||||||
$facture=new Facture($this->db);
|
$facture=new Facture($this->db);
|
||||||
|
|
||||||
$this->fetch_optionals();
|
$this->fetch_optionals();
|
||||||
if(!empty($this->array_options)){
|
if(!empty($this->array_options)){
|
||||||
$facture->array_options = $this->array_options;
|
$facture->array_options = $this->array_options;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($this->lines as &$line){
|
foreach($this->lines as &$line){
|
||||||
$line->fetch_optionals();//fetch extrafields
|
$line->fetch_optionals();//fetch extrafields
|
||||||
}
|
}
|
||||||
@ -785,7 +785,7 @@ class Facture extends CommonInvoice
|
|||||||
$facture->situation_final = $this->situation_final;
|
$facture->situation_final = $this->situation_final;
|
||||||
|
|
||||||
// Loop on each line of new invoice
|
// Loop on each line of new invoice
|
||||||
foreach($facture->lines as $i => $line)
|
foreach($facture->lines as $i => $tmpline)
|
||||||
{
|
{
|
||||||
$facture->lines[$i]->fk_prev_id = $this->lines[$i]->rowid;
|
$facture->lines[$i]->fk_prev_id = $this->lines[$i]->rowid;
|
||||||
if ($invertdetail)
|
if ($invertdetail)
|
||||||
|
|||||||
@ -49,7 +49,6 @@ $confirm=GETPOST('confirm', 'alpha');
|
|||||||
// Security check
|
// Security check
|
||||||
if ($user->societe_id)
|
if ($user->societe_id)
|
||||||
{
|
{
|
||||||
$action='';
|
|
||||||
$socid = $user->societe_id;
|
$socid = $user->societe_id;
|
||||||
}
|
}
|
||||||
$result=restrictedArea($user,'facture',$id,'');
|
$result=restrictedArea($user,'facture',$id,'');
|
||||||
@ -72,9 +71,11 @@ if ($object->fetch($id))
|
|||||||
$upload_dir = $conf->facture->dir_output . "/" . dol_sanitizeFileName($object->ref);
|
$upload_dir = $conf->facture->dir_output . "/" . dol_sanitizeFileName($object->ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
|
||||||
|
|
||||||
|
|
||||||
@ -100,7 +101,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
dol_fiche_head($head, 'documents', $langs->trans('InvoiceCustomer'), -1, 'bill');
|
dol_fiche_head($head, 'documents', $langs->trans('InvoiceCustomer'), -1, 'bill');
|
||||||
|
|
||||||
$totalpaye = $object->getSommePaiement();
|
$totalpaye = $object->getSommePaiement();
|
||||||
|
|
||||||
// Construit liste des fichiers
|
// Construit liste des fichiers
|
||||||
$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
|
$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
|
||||||
$totalsize=0;
|
$totalsize=0;
|
||||||
@ -109,11 +110,11 @@ if ($id > 0 || ! empty($ref))
|
|||||||
$totalsize+=$file['size'];
|
$totalsize+=$file['size'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Invoice content
|
// Invoice content
|
||||||
|
|
||||||
$linkback = '<a href="' . DOL_URL_ROOT . '/compta/facture/list.php' . (! empty($socid) ? '?socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
|
$linkback = '<a href="' . DOL_URL_ROOT . '/compta/facture/list.php' . (! empty($socid) ? '?socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
|
||||||
|
|
||||||
$morehtmlref='<div class="refidno">';
|
$morehtmlref='<div class="refidno">';
|
||||||
// Ref customer
|
// Ref customer
|
||||||
$morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
|
$morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
|
||||||
@ -154,14 +155,14 @@ if ($id > 0 || ! empty($ref))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$morehtmlref.='</div>';
|
$morehtmlref.='</div>';
|
||||||
|
|
||||||
$object->totalpaye = $totalpaye; // To give a chance to dol_banner_tab to use already paid amount to show correct status
|
$object->totalpaye = $totalpaye; // To give a chance to dol_banner_tab to use already paid amount to show correct status
|
||||||
|
|
||||||
dol_banner_tab($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref, '', 0);
|
dol_banner_tab($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref, '', 0);
|
||||||
|
|
||||||
print '<div class="fichecenter">';
|
print '<div class="fichecenter">';
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
|
print '<tr><td class="titlefield">'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
|
||||||
|
|||||||
@ -402,16 +402,16 @@ if (empty($reshook))
|
|||||||
$ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
|
$ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
|
||||||
if ($ret < 0)
|
if ($ret < 0)
|
||||||
$error ++;
|
$error ++;
|
||||||
|
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
|
|
||||||
$result = $object->insertExtraFields();
|
$result = $object->insertExtraFields();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
} else if ($reshook < 0)
|
} else if ($reshook < 0)
|
||||||
$error ++;
|
$error ++;
|
||||||
|
|
||||||
if ($error) {
|
if ($error) {
|
||||||
$action = 'edit_extras';
|
$action = 'edit_extras';
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
@ -760,7 +760,7 @@ if (empty($reshook))
|
|||||||
$extrafieldsline = new ExtraFields($db);
|
$extrafieldsline = new ExtraFields($db);
|
||||||
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
|
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
|
||||||
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
|
$array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
|
||||||
|
|
||||||
$objectline = new FactureLigneRec($db);
|
$objectline = new FactureLigneRec($db);
|
||||||
if ($objectline->fetch(GETPOST('lineid')))
|
if ($objectline->fetch(GETPOST('lineid')))
|
||||||
{
|
{
|
||||||
@ -771,7 +771,7 @@ if (empty($reshook))
|
|||||||
setEventMessages($langs->trans('Error').$result, null, 'errors');
|
setEventMessages($langs->trans('Error').$result, null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unset extrafield
|
// Unset extrafield
|
||||||
if (is_array($extralabelsline))
|
if (is_array($extralabelsline))
|
||||||
{
|
{
|
||||||
@ -1054,7 +1054,7 @@ if ($action == 'create')
|
|||||||
// Bank account
|
// Bank account
|
||||||
if ($object->fk_account > 0)
|
if ($object->fk_account > 0)
|
||||||
{
|
{
|
||||||
print "<tr><td>".$langs->trans('RIB')."</td><td>";
|
print "<tr><td>".$langs->trans('BankAccount')."</td><td>";
|
||||||
$form->formSelectAccount($_SERVER['PHP_SELF'].'?id='.$object->id, $object->fk_account, 'none');
|
$form->formSelectAccount($_SERVER['PHP_SELF'].'?id='.$object->id, $object->fk_account, 'none');
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
}
|
}
|
||||||
@ -1361,11 +1361,11 @@ else
|
|||||||
print "</td>";
|
print "</td>";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
|
||||||
// Other attributes
|
// Other attributes
|
||||||
$cols = 2;
|
$cols = 2;
|
||||||
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
|
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|||||||
@ -84,16 +84,16 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end
|
|||||||
$date_start=dol_get_first_day($pastmonthyear,$pastmonth,false); $date_end=dol_get_last_day($pastmonthyear,$pastmonth,false);
|
$date_start=dol_get_first_day($pastmonthyear,$pastmonth,false); $date_end=dol_get_last_day($pastmonthyear,$pastmonth,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
$nom=$langs->trans("PurchasesJournal");
|
$name=$langs->trans("PurchasesJournal");
|
||||||
$nomlink='';
|
|
||||||
$periodlink='';
|
$periodlink='';
|
||||||
$exportlink='';
|
$exportlink='';
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
$description=$langs->trans("DescPurchasesJournal").'<br>';
|
$description=$langs->trans("DescPurchasesJournal").'<br>';
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
||||||
else $description.= $langs->trans("DepositsAreIncluded");
|
else $description.= $langs->trans("DepositsAreIncluded");
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink);
|
|
||||||
|
report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink);
|
||||||
|
|
||||||
$p = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
|
$p = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
|
||||||
$idpays = $p[0];
|
$idpays = $p[0];
|
||||||
|
|||||||
@ -89,15 +89,14 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end
|
|||||||
}
|
}
|
||||||
|
|
||||||
$nom=$langs->trans("SellsJournal");
|
$nom=$langs->trans("SellsJournal");
|
||||||
$nomlink='';
|
|
||||||
$periodlink='';
|
$periodlink='';
|
||||||
$exportlink='';
|
$exportlink='';
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
$description=$langs->trans("DescSellsJournal").'<br>';
|
$description=$langs->trans("DescSellsJournal").'<br>';
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
||||||
else $description.= $langs->trans("DepositsAreIncluded");
|
else $description.= $langs->trans("DepositsAreIncluded");
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink);
|
report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink);
|
||||||
|
|
||||||
$p = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
|
$p = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
|
||||||
$idpays = $p[0];
|
$idpays = $p[0];
|
||||||
@ -170,7 +169,7 @@ if ($result)
|
|||||||
$prev_progress = 0;
|
$prev_progress = 0;
|
||||||
if ($obj->type==Facture::TYPE_SITUATION) {
|
if ($obj->type==Facture::TYPE_SITUATION) {
|
||||||
// Avoid divide by 0
|
// Avoid divide by 0
|
||||||
if ($obj->situation_percent == 0) {
|
if ($obj->situation_percent == 0) {
|
||||||
$situation_ratio = 0;
|
$situation_ratio = 0;
|
||||||
} else {
|
} else {
|
||||||
$prev_progress = $line->get_prev_progress($obj->rowid); // id on invoice
|
$prev_progress = $line->get_prev_progress($obj->rowid); // id on invoice
|
||||||
|
|||||||
@ -115,7 +115,7 @@ if ($calc==0 || $calc==1) // Calculate on invoice for goods and services
|
|||||||
if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||||
$description.=$fsearch;
|
$description.=$fsearch;
|
||||||
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/admin/company.php').')';
|
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/admin/company.php').')';
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
|
|
||||||
$elementcust=$langs->trans("CustomersInvoices");
|
$elementcust=$langs->trans("CustomersInvoices");
|
||||||
$productcust=$langs->trans("Description");
|
$productcust=$langs->trans("Description");
|
||||||
@ -133,7 +133,7 @@ if ($calc==2) // Invoice for goods, payment for services
|
|||||||
if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||||
$description.=$fsearch;
|
$description.=$fsearch;
|
||||||
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/admin/company.php').')';
|
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/admin/company.php').')';
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
|
|
||||||
$elementcust=$langs->trans("CustomersInvoices");
|
$elementcust=$langs->trans("CustomersInvoices");
|
||||||
$productcust=$langs->trans("Description");
|
$productcust=$langs->trans("Description");
|
||||||
@ -142,7 +142,7 @@ if ($calc==2) // Invoice for goods, payment for services
|
|||||||
$productsup=$langs->trans("Description");
|
$productsup=$langs->trans("Description");
|
||||||
$amountsup=$langs->trans("AmountHT");
|
$amountsup=$langs->trans("AmountHT");
|
||||||
}
|
}
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
||||||
|
|
||||||
|
|
||||||
$vatcust=$langs->transcountry($local==1?"LT1":"LT2",$mysoc->country_code);
|
$vatcust=$langs->transcountry($local==1?"LT1":"LT2",$mysoc->country_code);
|
||||||
@ -169,7 +169,7 @@ if($calc ==0 || $calc == 2)
|
|||||||
$parameters["end"] = $date_end;
|
$parameters["end"] = $date_end;
|
||||||
$parameters["direction"] = 'sell';
|
$parameters["direction"] = 'sell';
|
||||||
$parameters["type"] = 'localtax'.$local;
|
$parameters["type"] = 'localtax'.$local;
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
|
// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
|
||||||
$hookmanager->initHooks(array('externalbalance'));
|
$hookmanager->initHooks(array('externalbalance'));
|
||||||
$reshook=$hookmanager->executeHooks('addVatLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('addVatLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
@ -183,7 +183,7 @@ if($calc ==0 || $calc == 2)
|
|||||||
{
|
{
|
||||||
if(($min == 0 or ($min > 0 && $coll->amount > $min)) && ($local==1?$coll->localtax1:$coll->localtax2) !=0)
|
if(($min == 0 or ($min > 0 && $coll->amount > $min)) && ($local==1?$coll->localtax1:$coll->localtax2) !=0)
|
||||||
{
|
{
|
||||||
|
|
||||||
$intra = str_replace($find,$replace,$coll->tva_intra);
|
$intra = str_replace($find,$replace,$coll->tva_intra);
|
||||||
if(empty($intra))
|
if(empty($intra))
|
||||||
{
|
{
|
||||||
@ -247,7 +247,7 @@ if($calc ==0 || $calc == 1){
|
|||||||
$coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'buy');
|
$coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'buy');
|
||||||
$parameters["direction"] = 'buy';
|
$parameters["direction"] = 'buy';
|
||||||
$parameters["type"] = 'localtax'.$local;
|
$parameters["type"] = 'localtax'.$local;
|
||||||
|
|
||||||
$reshook=$hookmanager->executeHooks('addVatLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('addVatLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
if (is_array($coll_list))
|
if (is_array($coll_list))
|
||||||
{
|
{
|
||||||
@ -258,7 +258,7 @@ if($calc ==0 || $calc == 1){
|
|||||||
{
|
{
|
||||||
if(($min == 0 or ($min > 0 && $coll->amount > $min)) && ($local==1?$coll->localtax1:$coll->localtax2) != 0)
|
if(($min == 0 or ($min > 0 && $coll->amount > $min)) && ($local==1?$coll->localtax1:$coll->localtax2) != 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
$intra = str_replace($find,$replace,$coll->tva_intra);
|
$intra = str_replace($find,$replace,$coll->tva_intra);
|
||||||
if(empty($intra))
|
if(empty($intra))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -136,7 +136,7 @@ if ($conf->global->$calc==0 || $conf->global->$calc==1) // Calculate on invoice
|
|||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded");
|
||||||
else $description.='<br>'.$langs->trans("DepositsAreIncluded");
|
else $description.='<br>'.$langs->trans("DepositsAreIncluded");
|
||||||
$description.=$fsearch;
|
$description.=$fsearch;
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
|
|
||||||
$elementcust=$langs->trans("CustomersInvoices");
|
$elementcust=$langs->trans("CustomersInvoices");
|
||||||
$productcust=$langs->trans("ProductOrService");
|
$productcust=$langs->trans("ProductOrService");
|
||||||
@ -164,7 +164,7 @@ if ($conf->global->$calc==2) // Invoice for goods, payment for services
|
|||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.=' '.$langs->trans("DepositsAreNotIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.=' '.$langs->trans("DepositsAreNotIncluded");
|
||||||
else $description.=' '.$langs->trans("DepositsAreIncluded");
|
else $description.=' '.$langs->trans("DepositsAreIncluded");
|
||||||
$description.=$fsearch;
|
$description.=$fsearch;
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
|
|
||||||
$elementcust=$langs->trans("CustomersInvoices");
|
$elementcust=$langs->trans("CustomersInvoices");
|
||||||
$productcust=$langs->trans("ProductOrService");
|
$productcust=$langs->trans("ProductOrService");
|
||||||
@ -177,7 +177,7 @@ if ($conf->global->$calc==2) // Invoice for goods, payment for services
|
|||||||
$vatsup=$langs->trans("VATPaid");
|
$vatsup=$langs->trans("VATPaid");
|
||||||
if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')';
|
if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||||
}
|
}
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
||||||
|
|
||||||
|
|
||||||
if($local==1){
|
if($local==1){
|
||||||
@ -336,7 +336,7 @@ else
|
|||||||
if (! empty($fields['ddate_start'])) $type=1;
|
if (! empty($fields['ddate_start'])) $type=1;
|
||||||
if (! empty($fields['ddate_end'])) $type=1;
|
if (! empty($fields['ddate_end'])) $type=1;
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
@ -499,7 +499,7 @@ else
|
|||||||
if (! empty($fields['ddate_start'])) $type=1;
|
if (! empty($fields['ddate_start'])) $type=1;
|
||||||
if (! empty($fields['ddate_end'])) $type=1;
|
if (! empty($fields['ddate_end'])) $type=1;
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
463
htdocs/compta/resultat/result.php
Normal file
463
htdocs/compta/resultat/result.php
Normal file
@ -0,0 +1,463 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2016-2017 Jamal Elbaz <jamelbaz@gmail.com>
|
||||||
|
* Copyright (C) 2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/compta/resultat/result.php
|
||||||
|
* \ingroup compta, accountancy
|
||||||
|
* \brief Page for accounting result
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../../main.inc.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancycategory.class.php';
|
||||||
|
|
||||||
|
$langs->loadLangs(array('compta','bills','donation','salaries','accountancy'));
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
$mesg = '';
|
||||||
|
$action = GETPOST('action','aZ09');
|
||||||
|
$cat_id = GETPOST('account_category');
|
||||||
|
$selectcpt = GETPOST('cpt_bk');
|
||||||
|
$id = GETPOST('id', 'int');
|
||||||
|
$rowid = GETPOST('rowid', 'int');
|
||||||
|
$cancel = GETPOST('cancel','alpha');
|
||||||
|
$showaccountdetail = GETPOST('showaccountdetail','aZ09');
|
||||||
|
|
||||||
|
|
||||||
|
$date_startmonth=GETPOST('date_startmonth','int');
|
||||||
|
$date_startday=GETPOST('date_startday','int');
|
||||||
|
$date_startyear=GETPOST('date_startyear','int');
|
||||||
|
$date_endmonth=GETPOST('date_endmonth','int');
|
||||||
|
$date_endday=GETPOST('date_endday','int');
|
||||||
|
$date_endyear=GETPOST('date_endyear','int');
|
||||||
|
|
||||||
|
$nbofyear=1;
|
||||||
|
|
||||||
|
// Date range
|
||||||
|
$year=GETPOST('year','int');
|
||||||
|
if (empty($year))
|
||||||
|
{
|
||||||
|
$year_current = strftime("%Y",dol_now());
|
||||||
|
$month_current = strftime("%m",dol_now());
|
||||||
|
$year_start = $year_current - ($nbofyear - 1);
|
||||||
|
} else {
|
||||||
|
$year_current = $year;
|
||||||
|
$month_current = strftime("%m",dol_now());
|
||||||
|
$year_start = $year - ($nbofyear - 1);
|
||||||
|
}
|
||||||
|
$date_start=dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
|
||||||
|
$date_end=dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
||||||
|
|
||||||
|
// We define date_start and date_end
|
||||||
|
if (empty($date_start) || empty($date_end)) // We define date_start and date_end
|
||||||
|
{
|
||||||
|
$q=GETPOST("q")?GETPOST("q"):0;
|
||||||
|
if ($q==0)
|
||||||
|
{
|
||||||
|
// We define date_start and date_end
|
||||||
|
$year_end=$year_start + ($nbofyear - 1);
|
||||||
|
$month_start=GETPOST("month")?GETPOST("month"):($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1);
|
||||||
|
if (! GETPOST('month'))
|
||||||
|
{
|
||||||
|
if (! GETPOST("year") && $month_start > $month_current)
|
||||||
|
{
|
||||||
|
$year_start--;
|
||||||
|
$year_end--;
|
||||||
|
}
|
||||||
|
$month_end=$month_start-1;
|
||||||
|
if ($month_end < 1) $month_end=12;
|
||||||
|
else $year_end++;
|
||||||
|
}
|
||||||
|
else $month_end=$month_start;
|
||||||
|
$date_start=dol_get_first_day($year_start,$month_start,false); $date_end=dol_get_last_day($year_end,$month_end,false);
|
||||||
|
}
|
||||||
|
if ($q==1) { $date_start=dol_get_first_day($year_start,1,false); $date_end=dol_get_last_day($year_start,3,false); }
|
||||||
|
if ($q==2) { $date_start=dol_get_first_day($year_start,4,false); $date_end=dol_get_last_day($year_start,6,false); }
|
||||||
|
if ($q==3) { $date_start=dol_get_first_day($year_start,7,false); $date_end=dol_get_last_day($year_start,9,false); }
|
||||||
|
if ($q==4) { $date_start=dol_get_first_day($year_start,10,false); $date_end=dol_get_last_day($year_start,12,false); }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($date_start < dol_time_plus_duree($date_end, -1, 'y')) || ($date_start > $date_end))
|
||||||
|
{
|
||||||
|
$date_end = dol_time_plus_duree($date_start - 1, 1, 'y');
|
||||||
|
}
|
||||||
|
|
||||||
|
// $date_start and $date_end are defined. We force $start_year and $nbofyear
|
||||||
|
$tmps=dol_getdate($date_start);
|
||||||
|
$start_year = $tmps['year'];
|
||||||
|
$tmpe=dol_getdate($date_end);
|
||||||
|
$year_end = $tmpe['year'];
|
||||||
|
$nbofyear = ($year_end - $start_year) + 1;
|
||||||
|
|
||||||
|
$date_start_previous = dol_time_plus_duree($date_start, -1, 'y');
|
||||||
|
$date_end_previous = dol_time_plus_duree($date_end, -1, 'y');
|
||||||
|
|
||||||
|
//var_dump($date_start." ".$date_end." ".$date_start_previous." ".$date_end_previous." ".$nbofyear);
|
||||||
|
|
||||||
|
|
||||||
|
if($cat_id == 0){
|
||||||
|
$cat_id = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define modecompta ('CREANCES-DETTES' or 'RECETTES-DEPENSES' or 'BOOKKEEPING')
|
||||||
|
$modecompta = $conf->global->ACCOUNTING_MODE;
|
||||||
|
if (! empty($conf->accounting->enabled)) $modecompta='BOOKKEEPING';
|
||||||
|
if (GETPOST("modecompta")) $modecompta=GETPOST("modecompta",'alpha');
|
||||||
|
|
||||||
|
// Security check
|
||||||
|
if ($user->societe_id > 0)
|
||||||
|
accessforbidden();
|
||||||
|
if (! $user->rights->accounting->comptarapport->lire)
|
||||||
|
accessforbidden();
|
||||||
|
|
||||||
|
$AccCat = new AccountancyCategory($db);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
$months = array(
|
||||||
|
$langs->trans("JanuaryMin"),
|
||||||
|
$langs->trans("FebruaryMin"),
|
||||||
|
$langs->trans("MarchMin"),
|
||||||
|
$langs->trans("AprilMin"),
|
||||||
|
$langs->trans("MayMin"),
|
||||||
|
$langs->trans("JuneMin"),
|
||||||
|
$langs->trans("JulyMin"),
|
||||||
|
$langs->trans("AugustMin"),
|
||||||
|
$langs->trans("SeptemberMin"),
|
||||||
|
$langs->trans("OctoberMin"),
|
||||||
|
$langs->trans("NovemberMin"),
|
||||||
|
$langs->trans("DecemberMin"),
|
||||||
|
);
|
||||||
|
|
||||||
|
llxheader('', $langs->trans('ReportInOut'));
|
||||||
|
|
||||||
|
$formaccounting = new FormAccounting($db);
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
|
$textprevyear = '<a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($start_year - 1) . '">' . img_previous() . '</a>';
|
||||||
|
$textnextyear = ' <a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($start_year + 1) . '">' . img_next() . '</a>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Affiche en-tete de rapport
|
||||||
|
if ($modecompta=="CREANCES-DETTES")
|
||||||
|
{
|
||||||
|
$name=$langs->trans("AnnualByAccountDueDebtMode");
|
||||||
|
$calcmode=$langs->trans("CalcModeDebt");
|
||||||
|
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$start_year.(GETPOST("month")>0?'&month='.GETPOST("month"):'').'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
||||||
|
$calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$start_year.'&modecompta=BOOKKEEPING">','</a>').')';
|
||||||
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
|
//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
|
||||||
|
$description=$langs->trans("RulesResultDue");
|
||||||
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
||||||
|
else $description.= $langs->trans("DepositsAreIncluded");
|
||||||
|
$builddate=dol_now();
|
||||||
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
|
}
|
||||||
|
else if ($modecompta=="RECETTES-DEPENSES") {
|
||||||
|
$name=$langs->trans("AnnualByAccountInputOutputMode");
|
||||||
|
$calcmode=$langs->trans("CalcModeEngagement");
|
||||||
|
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.(GETPOST("month")>0?'&month='.GETPOST("month"):'').'&modecompta=CREANCES-DETTES">','</a>').')';
|
||||||
|
$calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=BOOKKEEPING">','</a>').')';
|
||||||
|
//$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',1,1,0,'',1,0,1);
|
||||||
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
|
//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
|
||||||
|
$description=$langs->trans("RulesResultInOut");
|
||||||
|
$builddate=dol_now();
|
||||||
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
|
}
|
||||||
|
else if ($modecompta=="BOOKKEEPING")
|
||||||
|
{
|
||||||
|
$name = $langs->trans("ReportInOut").', '.$langs->trans("ByPersonalizedAccountGroups");
|
||||||
|
$calcmode=$langs->trans("CalcModeBookkeeping");
|
||||||
|
//$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
|
||||||
|
//$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
||||||
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
|
$period.=' '.$langs->trans("DetailByAccount").' '. $form->selectyesno('showaccountdetail',$showaccountdetail,0);
|
||||||
|
$periodlink = $textprevyear . " " . $langs->trans("Year") . " " . $start_year . " " . $textnextyear ;
|
||||||
|
$exportlink = '';
|
||||||
|
$description=$langs->trans("RulesResultBookkeepingPersonalized").
|
||||||
|
$description.=' ('.$langs->trans("SeePageForSetup", DOL_URL_ROOT.'/accountancy/admin/categories_list.php?search_country_id='.$mysoc->country_id.'&mainmenu=accountancy&leftmenu=accountancy_admin', $langs->transnoentitiesnoconv("Accountancy").' / '.$langs->transnoentitiesnoconv("Setup").' / '.$langs->trans("AccountingCategory")).')';
|
||||||
|
//if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
||||||
|
//else $description.= $langs->trans("DepositsAreIncluded");
|
||||||
|
$builddate=dol_now();
|
||||||
|
}
|
||||||
|
|
||||||
|
report_header($name, '', $period, $periodlink, $description, $builddate, $exportlink, array('modecompta'=>$modecompta, 'action' => ''), $calcmode);
|
||||||
|
|
||||||
|
|
||||||
|
if (! empty($conf->accounting->enabled) && $modecompta != 'BOOKKEEPING')
|
||||||
|
{
|
||||||
|
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$moreforfilter='';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
|
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
||||||
|
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<th class="liste_titre">'.$langs->trans("AccountingCategory").'</th>';
|
||||||
|
print '<th class="liste_titre"></th>';
|
||||||
|
print '<th class="liste_titre" align="right">'.$langs->trans("PreviousPeriod").'</th>';
|
||||||
|
print '<th class="liste_titre" align="right">'.$langs->trans("SelectedPeriod").'</th>';
|
||||||
|
foreach($months as $k => $v){
|
||||||
|
print '<th class="liste_titre width50" align="right" >'.$langs->trans($v).'</th>';
|
||||||
|
}
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
if ($modecompta == 'CREANCES-DETTES')
|
||||||
|
{
|
||||||
|
//if (! empty($date_start) && ! empty($date_end))
|
||||||
|
// $sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
|
||||||
|
}
|
||||||
|
else if ($modecompta=="RECETTES-DEPENSES")
|
||||||
|
{
|
||||||
|
//if (! empty($date_start) && ! empty($date_end))
|
||||||
|
// $sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'";
|
||||||
|
}
|
||||||
|
else if ($modecompta=="BOOKKEEPING")
|
||||||
|
{
|
||||||
|
|
||||||
|
//All categories
|
||||||
|
$cats = $AccCat->getCats();
|
||||||
|
if ($catsCalcule < 0) dol_print_error($db, $AccCat->error, $AccCat->errors);
|
||||||
|
|
||||||
|
$j=1;
|
||||||
|
$sommes = array();
|
||||||
|
$totPerAccount = array();
|
||||||
|
|
||||||
|
foreach ($cats as $cat) // Loop on each group
|
||||||
|
{
|
||||||
|
if (!empty($cat['category_type'])) // category calculed
|
||||||
|
{
|
||||||
|
// When we enter here, $sommes was filled by group of accounts
|
||||||
|
|
||||||
|
$formula = $cat['formula'];
|
||||||
|
|
||||||
|
print '<tr class="liste_total">';
|
||||||
|
|
||||||
|
// Year NP
|
||||||
|
print '<td class="liste_total width200">';
|
||||||
|
print $cat['code'];
|
||||||
|
print '</td><td>';
|
||||||
|
print $cat['label'];
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
$vars = array();
|
||||||
|
|
||||||
|
// Previous Fiscal year (N-1)
|
||||||
|
foreach($sommes as $code => $det){
|
||||||
|
$vars[$code] = $det['NP'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$result = strtr($formula, $vars);
|
||||||
|
|
||||||
|
//var_dump($result);
|
||||||
|
//$r = $AccCat->calculate($result);
|
||||||
|
$r = dol_eval($result, 1);
|
||||||
|
//var_dump($r);
|
||||||
|
|
||||||
|
print '<td class="liste_total right">' . price($r) . '</td>';
|
||||||
|
|
||||||
|
// Year N
|
||||||
|
$code = $cat['code']; // code of categorie ('VTE', 'MAR', ...)
|
||||||
|
$sommes[$code]['NP'] += $r;
|
||||||
|
|
||||||
|
// Current fiscal year (N)
|
||||||
|
if (is_array($sommes) && ! empty($sommes)){
|
||||||
|
foreach($sommes as $code => $det){
|
||||||
|
$vars[$code] = $det['N'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = strtr($formula, $vars);
|
||||||
|
|
||||||
|
//$r = $AccCat->calculate($result);
|
||||||
|
$r = dol_eval($result, 1);
|
||||||
|
|
||||||
|
print '<td class="liste_total right">' . price($r) . '</td>';
|
||||||
|
$sommes[$code]['N'] += $r;
|
||||||
|
|
||||||
|
// Detail by month
|
||||||
|
foreach($months as $k => $v)
|
||||||
|
{
|
||||||
|
foreach($sommes as $code => $det){
|
||||||
|
$vars[$code] = $det['M'][$k];
|
||||||
|
}
|
||||||
|
$result = strtr($formula, $vars);
|
||||||
|
|
||||||
|
//$r = $AccCat->calculate($result);
|
||||||
|
$r = dol_eval($result, 1);
|
||||||
|
|
||||||
|
print '<td class="liste_total right">' . price($r) . '</td>';
|
||||||
|
$sommes[$code]['M'][$k] += $r;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
//var_dump($sommes);
|
||||||
|
}
|
||||||
|
else // normal category
|
||||||
|
{
|
||||||
|
$totCat = array();
|
||||||
|
$totCat['NP'] = 0;
|
||||||
|
$totCat['N'] = 0;
|
||||||
|
$totCat['M'] = array();
|
||||||
|
foreach($months as $k => $v)
|
||||||
|
{
|
||||||
|
$totCat['M'][$k] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get cpts of category/group
|
||||||
|
$cpts = $AccCat->getCptsCat($cat['rowid']);
|
||||||
|
|
||||||
|
print "<tr>";
|
||||||
|
|
||||||
|
// Column group
|
||||||
|
print '<td class="width200">';
|
||||||
|
print $cat['code'];
|
||||||
|
print '</td><td>';
|
||||||
|
print $cat['label'];
|
||||||
|
if (count($cpts) > 0) // Show example of 5 first accounting accounts
|
||||||
|
{
|
||||||
|
$i=0;
|
||||||
|
foreach($cpts as $cpt)
|
||||||
|
{
|
||||||
|
if ($i > 5)
|
||||||
|
{
|
||||||
|
print '...)';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ($i > 0) print ', ';
|
||||||
|
else print ' (';
|
||||||
|
print $cpt['account_number'];
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
if ($i <= 5) print ')';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print ' - <span class="warning">'.$langs->trans("GroupIsEmptyCheckSetup").'</span>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
$code = $cat['code'];
|
||||||
|
|
||||||
|
// Set value into column NPrevious, N and each month M ($totCat)
|
||||||
|
// This make 14 calls for each detail of account (NP, N and month m)
|
||||||
|
foreach($cpts as $i => $cpt)
|
||||||
|
{
|
||||||
|
// N-1
|
||||||
|
$return = $AccCat->getResult($cpt['account_number'], 0, $date_start_previous, $date_end_previous, $cpt['dc']);
|
||||||
|
|
||||||
|
if ($return < 0) {
|
||||||
|
setEventMessages(null, $AccCat->errors, 'errors');
|
||||||
|
$resultNP=0;
|
||||||
|
} else {
|
||||||
|
$resultNP=$AccCat->sdc;
|
||||||
|
}
|
||||||
|
|
||||||
|
//N
|
||||||
|
$return = $AccCat->getResult($cpt['account_number'], 0, $date_start, $date_end, $cpt['dc']);
|
||||||
|
if ($return < 0) {
|
||||||
|
setEventMessages(null, $AccCat->errors, 'errors');
|
||||||
|
$resultN=0;
|
||||||
|
} else {
|
||||||
|
$resultN=$AccCat->sdc;
|
||||||
|
}
|
||||||
|
|
||||||
|
$totCat['NP'] += $resultNP;
|
||||||
|
$totCat['N'] += $resultN;
|
||||||
|
$sommes[$code]['NP'] += $resultNP;
|
||||||
|
$sommes[$code]['N'] += $resultN;
|
||||||
|
$totPerAccount[$cpt['account_number']]['NP'] = $resultNP;
|
||||||
|
$totPerAccount[$cpt['account_number']]['N'] = $resultN;
|
||||||
|
|
||||||
|
foreach($months as $k => $v)
|
||||||
|
{
|
||||||
|
$return = $AccCat->getResult($cpt['account_number'], $k+1, $date_start, $date_end, $cpt['dc']);
|
||||||
|
if ($return < 0) {
|
||||||
|
setEventMessages(null, $AccCat->errors, 'errors');
|
||||||
|
$resultM=0;
|
||||||
|
} else {
|
||||||
|
$resultM=$AccCat->sdc;
|
||||||
|
}
|
||||||
|
$totCat['M'][$k] += $resultM;
|
||||||
|
$sommes[$code]['M'][$k] += $resultM;
|
||||||
|
$totPerAccount[$cpt['account_number']]['M'][$k] = $resultM;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now output columns for row $code ('VTE', 'MAR', ...)
|
||||||
|
print '<td align="right">' . price($totCat['NP']) . '</td>';
|
||||||
|
print '<td align="right">' . price($totCat['N']) . '</td>';
|
||||||
|
|
||||||
|
foreach($totCat['M'] as $k => $v){
|
||||||
|
print '<td align="right">' . price($v) . '</td>';
|
||||||
|
}
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
// Loop on detail of all accounts
|
||||||
|
// This make 14 calls for each detail of account (NP, N and month m)
|
||||||
|
if ($showaccountdetail == 'yes')
|
||||||
|
{
|
||||||
|
foreach($cpts as $i => $cpt)
|
||||||
|
{
|
||||||
|
$resultNP=$totPerAccount[$cpt['account_number']]['NP'];
|
||||||
|
$resultN=$totPerAccount[$cpt['account_number']]['N'];
|
||||||
|
|
||||||
|
print '<tr>';
|
||||||
|
print '<td></td>';
|
||||||
|
print '<td class="tdoverflowmax200">';
|
||||||
|
print ' ' . length_accountg($cpt['account_number']);
|
||||||
|
print ' - ';
|
||||||
|
print $cpt['account_label'];
|
||||||
|
print '</td>';
|
||||||
|
print '<td align="right">' . price($resultNP) . '</td>';
|
||||||
|
print '<td align="right">' . price($resultN) . '</td>';
|
||||||
|
|
||||||
|
// Make one call for each month
|
||||||
|
foreach($months as $k => $v)
|
||||||
|
{
|
||||||
|
$resultM=$totPerAccount[$cpt['account_number']]['M'][$k];
|
||||||
|
print '<td align="right">' . price($resultM) . '</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
@ -27,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
|
|
||||||
$langs->load("products");
|
$langs->load("products");
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
@ -143,12 +143,14 @@ foreach($allparams as $key => $value) {
|
|||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
$formother = new FormOther($db);
|
$formother = new FormOther($db);
|
||||||
|
|
||||||
// Show report header
|
// Show report header
|
||||||
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByProductsAndServices");
|
$name=$langs->trans("SalesTurnover").', '.$langs->trans("ByProductsAndServices");
|
||||||
|
|
||||||
if ($modecompta=="CREANCES-DETTES") {
|
if ($modecompta=="CREANCES-DETTES") {
|
||||||
$calcmode=$langs->trans("CalcModeDebt");
|
$calcmode=$langs->trans("CalcModeDebt");
|
||||||
@ -163,7 +165,7 @@ if ($modecompta=="CREANCES-DETTES") {
|
|||||||
$description.= $langs->trans("DepositsAreIncluded");
|
$description.= $langs->trans("DepositsAreIncluded");
|
||||||
}
|
}
|
||||||
|
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
} else {
|
} else {
|
||||||
$calcmode=$langs->trans("CalcModeEngagement");
|
$calcmode=$langs->trans("CalcModeEngagement");
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
|
||||||
@ -173,17 +175,20 @@ if ($modecompta=="CREANCES-DETTES") {
|
|||||||
$description=$langs->trans("RulesCAIn");
|
$description=$langs->trans("RulesCAIn");
|
||||||
$description.= $langs->trans("DepositsAreIncluded");
|
$description.= $langs->trans("DepositsAreIncluded");
|
||||||
|
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
}
|
}
|
||||||
|
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$tableparams,$calcmode);
|
report_header($name,$namelink,$period,$periodlink,$description,$builddate,$exportlink,$tableparams,$calcmode);
|
||||||
|
|
||||||
if (! empty($conf->accounting->enabled))
|
if (! empty($conf->accounting->enabled) && $modecompta != 'BOOKKEEPING')
|
||||||
{
|
{
|
||||||
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$name=array();
|
||||||
|
|
||||||
// SQL request
|
// SQL request
|
||||||
$catotal=0;
|
$catotal=0;
|
||||||
$catotal_ht=0;
|
$catotal_ht=0;
|
||||||
@ -266,7 +271,7 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
||||||
|
|
||||||
// Category filter
|
// Category filter
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -283,11 +288,11 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
print $langs->trans("Type"). ': ';
|
print $langs->trans("Type"). ': ';
|
||||||
$form->select_type_of_lines(isset($selected_type)?$selected_type:-1,'search_type',1,1,1);
|
$form->select_type_of_lines(isset($selected_type)?$selected_type:-1,'search_type',1,1,1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td colspan="5" align="right">';
|
print '<td colspan="5" align="right">';
|
||||||
print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Array header
|
// Array header
|
||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
print_liste_field_titre(
|
print_liste_field_titre(
|
||||||
@ -357,7 +362,7 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
|
|
||||||
if (count($name)) {
|
if (count($name)) {
|
||||||
foreach($name as $key=>$value) {
|
foreach($name as $key=>$value) {
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Product
|
// Product
|
||||||
@ -369,15 +374,15 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "<td>".$linkname."</td>\n";
|
print "<td>".$linkname."</td>\n";
|
||||||
|
|
||||||
// Quantity
|
// Quantity
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
print $qty[$key];
|
print $qty[$key];
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Percent;
|
// Percent;
|
||||||
print '<td align="right">'.($qtytotal > 0 ? round(100 * $qty[$key] / $qtytotal, 2).'%' : ' ').'</td>';
|
print '<td align="right">'.($qtytotal > 0 ? round(100 * $qty[$key] / $qtytotal, 2).'%' : ' ').'</td>';
|
||||||
|
|
||||||
// Amount w/o VAT
|
// Amount w/o VAT
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
/*if ($key > 0) {
|
/*if ($key > 0) {
|
||||||
@ -388,7 +393,7 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
print price($amount_ht[$key]);
|
print price($amount_ht[$key]);
|
||||||
//print '</a>';
|
//print '</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Amount with VAT
|
// Amount with VAT
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
/*if ($key > 0) {
|
/*if ($key > 0) {
|
||||||
@ -399,12 +404,12 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
print price($amount[$key]);
|
print price($amount[$key]);
|
||||||
//print '</a>';
|
//print '</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Percent;
|
// Percent;
|
||||||
print '<td align="right">'.($catotal > 0 ? round(100 * $amount[$key] / $catotal, 2).'%' : ' ').'</td>';
|
print '<td align="right">'.($catotal > 0 ? round(100 * $amount[$key] / $catotal, 2).'%' : ' ').'</td>';
|
||||||
|
|
||||||
// TODO: statistics?
|
// TODO: statistics?
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
@ -423,7 +428,7 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
}
|
}
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
} else {
|
} else {
|
||||||
// $modecompta != 'CREANCES-DETTES'
|
// $modecompta != 'CREANCES-DETTES'
|
||||||
|
|||||||
@ -131,12 +131,11 @@ foreach($allparams as $key => $value) {
|
|||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
// Show report header
|
// Show report header
|
||||||
if ($modecompta=="CREANCES-DETTES") {
|
if ($modecompta=="CREANCES-DETTES") {
|
||||||
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByUserAuthorOfInvoice");
|
$name=$langs->trans("SalesTurnover").', '.$langs->trans("ByUserAuthorOfInvoice");
|
||||||
$calcmode=$langs->trans("CalcModeDebt");
|
$calcmode=$langs->trans("CalcModeDebt");
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
@ -144,30 +143,32 @@ if ($modecompta=="CREANCES-DETTES") {
|
|||||||
$description=$langs->trans("RulesCADue");
|
$description=$langs->trans("RulesCADue");
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
||||||
else $description.= $langs->trans("DepositsAreIncluded");
|
else $description.= $langs->trans("DepositsAreIncluded");
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
} else {
|
} else {
|
||||||
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByUserAuthorOfInvoice");
|
$name=$langs->trans("SalesTurnover").', '.$langs->trans("ByUserAuthorOfInvoice");
|
||||||
$calcmode=$langs->trans("CalcModeEngagement");
|
$calcmode=$langs->trans("CalcModeEngagement");
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
//$periodlink="<a href='".$_SERVER["PHP_SELF"]."?year=".($year-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year+1)."&modecompta=".$modecompta."'>".img_next()."</a>";
|
//$periodlink="<a href='".$_SERVER["PHP_SELF"]."?year=".($year-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year+1)."&modecompta=".$modecompta."'>".img_next()."</a>";
|
||||||
$description=$langs->trans("RulesCAIn");
|
$description=$langs->trans("RulesCAIn");
|
||||||
$description.= $langs->trans("DepositsAreIncluded");
|
$description.= $langs->trans("DepositsAreIncluded");
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
}
|
}
|
||||||
$moreparam=array();
|
$moreparam=array();
|
||||||
if (! empty($modecompta)) $moreparam['modecompta']=$modecompta;
|
if (! empty($modecompta)) $moreparam['modecompta']=$modecompta;
|
||||||
|
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$moreparam,$calcmode);
|
report_header($name,$namelink,$period,$periodlink,$description,$builddate,$exportlink,$moreparam,$calcmode);
|
||||||
|
|
||||||
if (! empty($conf->accounting->enabled))
|
if (! empty($conf->accounting->enabled) && $modecompta != 'BOOKKEEPING')
|
||||||
{
|
{
|
||||||
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$name=array();
|
||||||
|
|
||||||
// Show array
|
// Show array
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
// Extra parameters management
|
// Extra parameters management
|
||||||
@ -350,9 +351,9 @@ if (count($amount)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
foreach($arrayforsort as $key => $value) {
|
foreach($arrayforsort as $key => $value) {
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
|
|||||||
@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
|
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
@ -165,7 +165,7 @@ $formother = new FormOther($db);
|
|||||||
// Show report header
|
// Show report header
|
||||||
if ($modecompta=="CREANCES-DETTES")
|
if ($modecompta=="CREANCES-DETTES")
|
||||||
{
|
{
|
||||||
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByThirdParties");
|
$name=$langs->trans("SalesTurnover").', '.$langs->trans("ByThirdParties");
|
||||||
$calcmode=$langs->trans("CalcModeDebt");
|
$calcmode=$langs->trans("CalcModeDebt");
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
@ -173,28 +173,30 @@ if ($modecompta=="CREANCES-DETTES")
|
|||||||
$description=$langs->trans("RulesCADue");
|
$description=$langs->trans("RulesCADue");
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
||||||
else $description.= $langs->trans("DepositsAreIncluded");
|
else $description.= $langs->trans("DepositsAreIncluded");
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
} else {
|
} else {
|
||||||
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByThirdParties");
|
$name=$langs->trans("SalesTurnover").', '.$langs->trans("ByThirdParties");
|
||||||
$calcmode=$langs->trans("CalcModeEngagement");
|
$calcmode=$langs->trans("CalcModeEngagement");
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
|
//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
|
||||||
$description=$langs->trans("RulesCAIn");
|
$description=$langs->trans("RulesCAIn");
|
||||||
$description.= $langs->trans("DepositsAreIncluded");
|
$description.= $langs->trans("DepositsAreIncluded");
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
}
|
}
|
||||||
|
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$tableparams,$calcmode);
|
report_header($name,$namelink,$period,$periodlink,$description,$builddate,$exportlink,$tableparams,$calcmode);
|
||||||
|
|
||||||
if (! empty($conf->accounting->enabled))
|
if (! empty($conf->accounting->enabled) && $modecompta != 'BOOKKEEPING')
|
||||||
{
|
{
|
||||||
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$name=array();
|
||||||
|
|
||||||
// Show Array
|
// Show Array
|
||||||
$catotal=0;
|
$catotal=0;
|
||||||
if ($modecompta == 'CREANCES-DETTES') {
|
if ($modecompta == 'CREANCES-DETTES') {
|
||||||
|
|||||||
@ -25,21 +25,69 @@
|
|||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
|
||||||
|
$langs->loadLangs(array('compta','bills','donation','salaries'));
|
||||||
|
|
||||||
|
$date_startmonth=GETPOST('date_startmonth');
|
||||||
|
$date_startday=GETPOST('date_startday');
|
||||||
|
$date_startyear=GETPOST('date_startyear');
|
||||||
|
$date_endmonth=GETPOST('date_endmonth');
|
||||||
|
$date_endday=GETPOST('date_endday');
|
||||||
|
$date_endyear=GETPOST('date_endyear');
|
||||||
|
|
||||||
$year_start=GETPOST("year_start");
|
|
||||||
$year_current = strftime("%Y",time());
|
|
||||||
$nbofyear=4;
|
$nbofyear=4;
|
||||||
if (! $year_start) {
|
|
||||||
$year_start = $year_current - ($nbofyear-1);
|
// Date range
|
||||||
$year_end = $year_current;
|
$year=GETPOST('year','int');
|
||||||
|
if (empty($year))
|
||||||
|
{
|
||||||
|
$year_current = strftime("%Y",dol_now());
|
||||||
|
$month_current = strftime("%m",dol_now());
|
||||||
|
$year_start = $year_current - ($nbofyear - 1);
|
||||||
|
} else {
|
||||||
|
$year_current = $year;
|
||||||
|
$month_current = strftime("%m",dol_now());
|
||||||
|
$year_start = $year - ($nbofyear - 1);
|
||||||
}
|
}
|
||||||
else {
|
$date_start=dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
|
||||||
$year_end=$year_start + ($nbofyear-1);
|
$date_end=dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
||||||
|
|
||||||
|
// We define date_start and date_end
|
||||||
|
if (empty($date_start) || empty($date_end)) // We define date_start and date_end
|
||||||
|
{
|
||||||
|
$q=GETPOST("q")?GETPOST("q"):0;
|
||||||
|
if ($q==0)
|
||||||
|
{
|
||||||
|
// We define date_start and date_end
|
||||||
|
$year_end=$year_start + ($nbofyear - 1);
|
||||||
|
$month_start=GETPOST("month")?GETPOST("month"):($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1);
|
||||||
|
if (! GETPOST('month'))
|
||||||
|
{
|
||||||
|
if (! GETPOST("year") && $month_start > $month_current)
|
||||||
|
{
|
||||||
|
$year_start--;
|
||||||
|
$year_end--;
|
||||||
|
}
|
||||||
|
$month_end=$month_start-1;
|
||||||
|
if ($month_end < 1) $month_end=12;
|
||||||
|
else $year_end++;
|
||||||
|
}
|
||||||
|
else $month_end=$month_start;
|
||||||
|
$date_start=dol_get_first_day($year_start,$month_start,false); $date_end=dol_get_last_day($year_end,$month_end,false);
|
||||||
|
}
|
||||||
|
if ($q==1) { $date_start=dol_get_first_day($year_start,1,false); $date_end=dol_get_last_day($year_start,3,false); }
|
||||||
|
if ($q==2) { $date_start=dol_get_first_day($year_start,4,false); $date_end=dol_get_last_day($year_start,6,false); }
|
||||||
|
if ($q==3) { $date_start=dol_get_first_day($year_start,7,false); $date_end=dol_get_last_day($year_start,9,false); }
|
||||||
|
if ($q==4) { $date_start=dol_get_first_day($year_start,10,false); $date_end=dol_get_last_day($year_start,12,false); }
|
||||||
}
|
}
|
||||||
|
|
||||||
$userid=GETPOST('userid','int');
|
$userid=GETPOST('userid','int');
|
||||||
$socid = GETPOST('socid','int');
|
$socid = GETPOST('socid','int');
|
||||||
// Define modecompta ('CREANCES-DETTES' or 'RECETTES-DEPENSES')
|
|
||||||
|
// Define modecompta ('CREANCES-DETTES' or 'RECETTES-DEPENSES' or 'BOOKKEEPING')
|
||||||
$modecompta = $conf->global->ACCOUNTING_MODE;
|
$modecompta = $conf->global->ACCOUNTING_MODE;
|
||||||
|
if (! empty($conf->accounting->enabled)) $modecompta='BOOKKEEPING';
|
||||||
if (GETPOST("modecompta")) $modecompta=GETPOST("modecompta",'alpha');
|
if (GETPOST("modecompta")) $modecompta=GETPOST("modecompta",'alpha');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
@ -55,55 +103,57 @@ if (! empty($conf->accounting->enabled)) $result=restrictedArea($user,'accountin
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
// Affiche en-tete du rapport
|
// Affiche en-tete du rapport
|
||||||
if ($modecompta=="CREANCES-DETTES")
|
if ($modecompta=="CREANCES-DETTES")
|
||||||
{
|
{
|
||||||
$nom=$langs->trans("SalesTurnover");
|
$name=$langs->trans("SalesTurnover");
|
||||||
$calcmode=$langs->trans("CalcModeDebt");
|
$calcmode=$langs->trans("CalcModeDebt");
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=BOOKKEEPING">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=BOOKKEEPING">','</a>').')';
|
||||||
$period="$year_start - $year_end";
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
|
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
|
||||||
$description=$langs->trans("RulesCADue");
|
$description=$langs->trans("RulesCADue");
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
||||||
else $description.= $langs->trans("DepositsAreIncluded");
|
else $description.= $langs->trans("DepositsAreIncluded");
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
}
|
}
|
||||||
else if ($modecompta=="RECETTES-DEPENSES")
|
else if ($modecompta=="RECETTES-DEPENSES")
|
||||||
{
|
{
|
||||||
$nom=$langs->trans("SalesTurnover");
|
$name=$langs->trans("SalesTurnover");
|
||||||
$calcmode=$langs->trans("CalcModeEngagement");
|
$calcmode=$langs->trans("CalcModeEngagement");
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=BOOKKEEPING">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=BOOKKEEPING">','</a>').')';
|
||||||
$period="$year_start - $year_end";
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
|
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
|
||||||
$description=$langs->trans("RulesCAIn");
|
$description=$langs->trans("RulesCAIn");
|
||||||
$description.= $langs->trans("DepositsAreIncluded");
|
$description.= $langs->trans("DepositsAreIncluded");
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
}
|
}
|
||||||
else if ($modecompta=="BOOKKEEPING")
|
else if ($modecompta=="BOOKKEEPING")
|
||||||
{
|
{
|
||||||
$nom=$langs->trans("BookkeepingTurnover");
|
$name=$langs->trans("SalesTurnover");
|
||||||
$calcmode=$langs->trans("CalcModeBookkeeping");
|
$calcmode=$langs->trans("CalcModeBookkeeping");
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
|
||||||
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
|
||||||
$period="$year_start - $year_end";
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
|
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
|
||||||
$description=$langs->trans("RulesCABookkeeping");
|
$description=$langs->trans("RulesCADue");
|
||||||
$description.= $langs->trans("DepositsAreIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
|
||||||
$builddate=time();
|
else $description.= $langs->trans("DepositsAreIncluded");
|
||||||
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
}
|
}
|
||||||
|
|
||||||
$moreparam=array();
|
$moreparam=array();
|
||||||
if (! empty($modecompta)) $moreparam['modecompta']=$modecompta;
|
if (! empty($modecompta)) $moreparam['modecompta']=$modecompta;
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$moreparam,$calcmode);
|
report_header($name,$namelink,$period,$periodlink,$description,$builddate,$exportlink,$moreparam,$calcmode);
|
||||||
|
|
||||||
if (! empty($conf->accounting->enabled))
|
if (! empty($conf->accounting->enabled) && $modecompta != 'BOOKKEEPING')
|
||||||
{
|
{
|
||||||
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
print info_admin($langs->trans("WarningReportNotReliable"), 0, 0, 1);
|
||||||
}
|
}
|
||||||
@ -252,7 +302,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
|
|||||||
{
|
{
|
||||||
$mois_modulo = $mois;// ajout
|
$mois_modulo = $mois;// ajout
|
||||||
if($mois>12){$mois_modulo = $mois-12;} // ajout
|
if($mois>12){$mois_modulo = $mois-12;} // ajout
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
print "<td>".dol_print_date(dol_mktime(12,0,0,$mois_modulo,1,2000),"%B")."</td>";
|
print "<td>".dol_print_date(dol_mktime(12,0,0,$mois_modulo,1,2000),"%B")."</td>";
|
||||||
@ -342,7 +392,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
|
|||||||
/*
|
/*
|
||||||
for ($mois = 1 ; $mois < 13 ; $mois++)
|
for ($mois = 1 ; $mois < 13 ; $mois++)
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
print "<td>".dol_print_date(dol_mktime(12,0,0,$mois,1,2000),"%B")."</td>";
|
print "<td>".dol_print_date(dol_mktime(12,0,0,$mois,1,2000),"%B")."</td>";
|
||||||
@ -510,7 +560,7 @@ print '</div>';
|
|||||||
$totalam_Rac += $obj->am;
|
$totalam_Rac += $obj->am;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "<tr ".$bc[$var]."><td align=\"right\" colspan=\"5\"><i>Facture a encaisser : </i></td><td align=\"right\"><i>".price($total_ttc_Rac)."</i></td><td colspan=\"5\"><-- bug ici car n'exclut pas le deja r?gl? des factures partiellement r?gl?es</td></tr>";
|
print "<tr ".$bc[$var]."><td align=\"right\" colspan=\"5\"><i>Facture a encaisser : </i></td><td align=\"right\"><i>".price($total_ttc_Rac)."</i></td><td colspan=\"5\"><-- bug ici car n'exclut pas le deja r?gl? des factures partiellement r?gl?es</td></tr>";
|
||||||
}
|
}
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
@ -560,7 +610,7 @@ print '</div>';
|
|||||||
$total_pr += $obj->total_ttc-$obj->tot_fttc;
|
$total_pr += $obj->total_ttc-$obj->tot_fttc;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "<tr ".$bc[$var]."><td align=\"right\" colspan=\"5\"><i>Signe et non facture:</i></td><td align=\"right\"><i>".price($total_pr)."</i></td><td colspan=\"5\"><-- bug ici, ca devrait exclure le deja facture</td></tr>";
|
print "<tr ".$bc[$var]."><td align=\"right\" colspan=\"5\"><i>Signe et non facture:</i></td><td align=\"right\"><i>".price($total_pr)."</i></td><td colspan=\"5\"><-- bug ici, ca devrait exclure le deja facture</td></tr>";
|
||||||
}
|
}
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
|
|||||||
@ -160,7 +160,7 @@ if ($modetax==1) { // Calculate on invoice for goods and services
|
|||||||
. $langs->trans('AddExtraReport')
|
. $langs->trans('AddExtraReport')
|
||||||
. '</input>'
|
. '</input>'
|
||||||
. '<br>';
|
. '<br>';
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
|
|
||||||
$elementcust=$langs->trans("CustomersInvoices");
|
$elementcust=$langs->trans("CustomersInvoices");
|
||||||
@ -204,7 +204,7 @@ if ($modetax==0) { // Invoice for goods, payment for services
|
|||||||
. $langs->trans('AddExtraReport')
|
. $langs->trans('AddExtraReport')
|
||||||
. '</input>'
|
. '</input>'
|
||||||
. '<br>';
|
. '<br>';
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
|
|
||||||
$elementcust=$langs->trans("CustomersInvoices");
|
$elementcust=$langs->trans("CustomersInvoices");
|
||||||
@ -220,7 +220,7 @@ if ($modetax==0) { // Invoice for goods, payment for services
|
|||||||
$vatsup.=' ('.$langs->trans("ToGetBack").')';
|
$vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
report_header($name,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
||||||
|
|
||||||
$vatcust=$langs->trans("VATReceived");
|
$vatcust=$langs->trans("VATReceived");
|
||||||
$vatsup=$langs->trans("VATPaid");
|
$vatsup=$langs->trans("VATPaid");
|
||||||
@ -260,7 +260,7 @@ if (is_array($coll_list)) {
|
|||||||
$i = 1;
|
$i = 1;
|
||||||
foreach ($coll_list as $coll) {
|
foreach ($coll_list as $coll) {
|
||||||
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
||||||
|
|
||||||
$intra = str_replace($find,$replace,$coll->tva_intra);
|
$intra = str_replace($find,$replace,$coll->tva_intra);
|
||||||
if(empty($intra)) {
|
if(empty($intra)) {
|
||||||
if($coll->assuj == '1') {
|
if($coll->assuj == '1') {
|
||||||
@ -340,7 +340,7 @@ if (is_array($coll_list)) {
|
|||||||
$i = 1;
|
$i = 1;
|
||||||
foreach ($coll_list as $coll) {
|
foreach ($coll_list as $coll) {
|
||||||
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
if ($min == 0 or ($min > 0 && $coll->amount > $min)) {
|
||||||
|
|
||||||
$intra = str_replace($find,$replace,$coll->tva_intra);
|
$intra = str_replace($find,$replace,$coll->tva_intra);
|
||||||
if (empty($intra)) {
|
if (empty($intra)) {
|
||||||
if ($coll->assuj == '1') {
|
if ($coll->assuj == '1') {
|
||||||
|
|||||||
@ -133,7 +133,7 @@ $fsearch.=' <input type="hidden" name="modetax" value="'.$modetax.'">';
|
|||||||
// Affiche en-tete du rapport
|
// Affiche en-tete du rapport
|
||||||
if ($modetax==1) // Calculate on invoice for goods and services
|
if ($modetax==1) // Calculate on invoice for goods and services
|
||||||
{
|
{
|
||||||
$nom=$langs->trans("VATReportByQuartersInDueDebtMode");
|
$name=$langs->trans("VATReportByQuartersInDueDebtMode");
|
||||||
$calcmode=$langs->trans("CalcModeVATDebt");
|
$calcmode=$langs->trans("CalcModeVATDebt");
|
||||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
@ -152,7 +152,7 @@ if ($modetax==1) // Calculate on invoice for goods and services
|
|||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded");
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded");
|
||||||
else $description.='<br>'.$langs->trans("DepositsAreIncluded");
|
else $description.='<br>'.$langs->trans("DepositsAreIncluded");
|
||||||
$description.=$fsearch;
|
$description.=$fsearch;
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
|
|
||||||
// Customers invoices
|
// Customers invoices
|
||||||
@ -172,7 +172,7 @@ if ($modetax==1) // Calculate on invoice for goods and services
|
|||||||
}
|
}
|
||||||
if ($modetax==0) // Invoice for goods, payment for services
|
if ($modetax==0) // Invoice for goods, payment for services
|
||||||
{
|
{
|
||||||
$nom=$langs->trans("VATReportByQuartersInInputOutputMode");
|
$name=$langs->trans("VATReportByQuartersInInputOutputMode");
|
||||||
$calcmode=$langs->trans("CalcModeVATEngagement");
|
$calcmode=$langs->trans("CalcModeVATEngagement");
|
||||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
@ -192,7 +192,7 @@ if ($modetax==0) // Invoice for goods, payment for services
|
|||||||
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
||||||
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||||
$description.=$fsearch;
|
$description.=$fsearch;
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
|
|
||||||
// Customers invoices
|
// Customers invoices
|
||||||
@ -210,7 +210,7 @@ if ($modetax==0) // Invoice for goods, payment for services
|
|||||||
if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')';
|
if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||||
|
|
||||||
}
|
}
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
||||||
|
|
||||||
$vatcust=$langs->trans("VATReceived");
|
$vatcust=$langs->trans("VATReceived");
|
||||||
$vatsup=$langs->trans("VATPaid");
|
$vatsup=$langs->trans("VATPaid");
|
||||||
@ -396,7 +396,7 @@ else
|
|||||||
if (! empty($fields['ddate_start'])) $type=1;
|
if (! empty($fields['ddate_start'])) $type=1;
|
||||||
if (! empty($fields['ddate_end'])) $type=1;
|
if (! empty($fields['ddate_end'])) $type=1;
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
@ -553,7 +553,7 @@ else
|
|||||||
if (! empty($fields['ddate_start'])) $type=1;
|
if (! empty($fields['ddate_start'])) $type=1;
|
||||||
if (! empty($fields['ddate_end'])) $type=1;
|
if (! empty($fields['ddate_end'])) $type=1;
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
|
|||||||
@ -146,7 +146,7 @@ $fsearch.=' <input type="hidden" name="modetax" value="'.$modetax.'">';
|
|||||||
|
|
||||||
// Affiche en-tete du rapport
|
// Affiche en-tete du rapport
|
||||||
if ($modetax==1) { // Calculate on invoice for goods and services
|
if ($modetax==1) { // Calculate on invoice for goods and services
|
||||||
$nom=$langs->trans("VATReportByQuartersInDueDebtMode");
|
$name=$langs->trans("VATReportByQuartersInDueDebtMode");
|
||||||
$calcmode=$langs->trans("CalcModeVATDebt");
|
$calcmode=$langs->trans("CalcModeVATDebt");
|
||||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
@ -174,7 +174,7 @@ if ($modetax==1) { // Calculate on invoice for goods and services
|
|||||||
$description.='<br>'.$langs->trans("DepositsAreIncluded");
|
$description.='<br>'.$langs->trans("DepositsAreIncluded");
|
||||||
}
|
}
|
||||||
$description.=$fsearch;
|
$description.=$fsearch;
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
|
|
||||||
$elementcust=$langs->trans("CustomersInvoices");
|
$elementcust=$langs->trans("CustomersInvoices");
|
||||||
@ -195,7 +195,7 @@ if ($modetax==1) { // Calculate on invoice for goods and services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($modetax==0) { // Invoice for goods, payment for services
|
if ($modetax==0) { // Invoice for goods, payment for services
|
||||||
$nom=$langs->trans("VATReportByQuartersInInputOutputMode");
|
$name=$langs->trans("VATReportByQuartersInInputOutputMode");
|
||||||
$calcmode=$langs->trans("CalcModeVATEngagement");
|
$calcmode=$langs->trans("CalcModeVATEngagement");
|
||||||
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
|
||||||
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
|
||||||
@ -224,7 +224,7 @@ if ($modetax==0) { // Invoice for goods, payment for services
|
|||||||
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
|
||||||
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
|
||||||
$description.=$fsearch;
|
$description.=$fsearch;
|
||||||
$builddate=time();
|
$builddate=dol_now();
|
||||||
//$exportlink=$langs->trans("NotYetAvailable");
|
//$exportlink=$langs->trans("NotYetAvailable");
|
||||||
|
|
||||||
$elementcust=$langs->trans("CustomersInvoices");
|
$elementcust=$langs->trans("CustomersInvoices");
|
||||||
@ -244,7 +244,7 @@ if ($modetax==0) { // Invoice for goods, payment for services
|
|||||||
$vatsup.=' ('.$langs->trans("ToGetBack").')';
|
$vatsup.=' ('.$langs->trans("ToGetBack").')';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
|
||||||
|
|
||||||
$vatcust=$langs->trans("VATReceived");
|
$vatcust=$langs->trans("VATReceived");
|
||||||
$vatsup=$langs->trans("VATPaid");
|
$vatsup=$langs->trans("VATPaid");
|
||||||
@ -373,18 +373,18 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
|
|||||||
print '<td align="right">'.$langs->trans("AmountHTVATRealReceived").'</td>';
|
print '<td align="right">'.$langs->trans("AmountHTVATRealReceived").'</td>';
|
||||||
print '<td align="right">'.$vatcust.'</td>';
|
print '<td align="right">'.$vatcust.'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
$action = "tvadetail";
|
$action = "tvadetail";
|
||||||
$parameters["mode"] = $modetax;
|
$parameters["mode"] = $modetax;
|
||||||
$parameters["start"] = $date_start;
|
$parameters["start"] = $date_start;
|
||||||
$parameters["end"] = $date_end;
|
$parameters["end"] = $date_end;
|
||||||
$parameters["type"] = 'vat';
|
$parameters["type"] = 'vat';
|
||||||
|
|
||||||
$object = array(&$x_coll, &$x_paye, &$x_both);
|
$object = array(&$x_coll, &$x_paye, &$x_both);
|
||||||
// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
|
// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
|
||||||
$hookmanager->initHooks(array('externalbalance'));
|
$hookmanager->initHooks(array('externalbalance'));
|
||||||
$reshook=$hookmanager->executeHooks('addVatLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('addVatLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
foreach (array_keys($x_coll) as $rate) {
|
foreach (array_keys($x_coll) as $rate) {
|
||||||
$subtot_coll_total_ht = 0;
|
$subtot_coll_total_ht = 0;
|
||||||
$subtot_coll_vat = 0;
|
$subtot_coll_vat = 0;
|
||||||
@ -408,7 +408,7 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
|
|||||||
$type=1;
|
$type=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
@ -576,7 +576,7 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
|
|||||||
$type=1;
|
$type=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
|
|||||||
@ -79,18 +79,18 @@ abstract class ActionsContactCardCommon
|
|||||||
*/
|
*/
|
||||||
function getObject($id)
|
function getObject($id)
|
||||||
{
|
{
|
||||||
$ret = $this->getInstanceDao();
|
/*$ret = $this->getInstanceDao();
|
||||||
|
|
||||||
if (is_object($this->object) && method_exists($this->object,'fetch'))
|
if (is_object($this->object) && method_exists($this->object,'fetch'))
|
||||||
{
|
{
|
||||||
if (! empty($id)) $this->object->fetch($id);
|
if (! empty($id)) $this->object->fetch($id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{*/
|
||||||
$object = new Contact($this->db);
|
$object = new Contact($this->db);
|
||||||
if (! empty($id)) $object->fetch($id);
|
if (! empty($id)) $object->fetch($id);
|
||||||
$this->object = $object;
|
$this->object = $object;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -752,7 +752,13 @@ if (empty($reshook))
|
|||||||
// Close all lines
|
// Close all lines
|
||||||
else if ($action == 'confirm_close' && $confirm == 'yes' && $user->rights->contrat->creer)
|
else if ($action == 'confirm_close' && $confirm == 'yes' && $user->rights->contrat->creer)
|
||||||
{
|
{
|
||||||
$object->cloture($user);
|
$object->closeAll($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close all lines
|
||||||
|
else if ($action == 'confirm_activate' && $confirm == 'yes' && $user->rights->contrat->creer)
|
||||||
|
{
|
||||||
|
$object->activateAll($user);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->contrat->supprimer)
|
else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->contrat->supprimer)
|
||||||
@ -1313,6 +1319,11 @@ else
|
|||||||
{
|
{
|
||||||
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("CloseAContract"),$langs->trans("ConfirmCloseContract"),"confirm_close",'',0,1);
|
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("CloseAContract"),$langs->trans("ConfirmCloseContract"),"confirm_close",'',0,1);
|
||||||
|
|
||||||
|
}
|
||||||
|
if ($action == 'activate')
|
||||||
|
{
|
||||||
|
print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("ActivateAllOnContract"),$langs->trans("ConfirmActivateAllOnContract"),"confirm_activate",'',0,1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1617,7 +1628,7 @@ else
|
|||||||
print $langs->trans("DateStartPlanned").': ';
|
print $langs->trans("DateStartPlanned").': ';
|
||||||
if ($objp->date_debut)
|
if ($objp->date_debut)
|
||||||
{
|
{
|
||||||
print dol_print_date($db->jdate($objp->date_debut));
|
print dol_print_date($db->jdate($objp->date_debut), 'day');
|
||||||
// Warning si date prevu passee et pas en service
|
// Warning si date prevu passee et pas en service
|
||||||
if ($objp->statut == 0 && $db->jdate($objp->date_debut) < ($now - $conf->contrat->services->inactifs->warning_delay)) {
|
if ($objp->statut == 0 && $db->jdate($objp->date_debut) < ($now - $conf->contrat->services->inactifs->warning_delay)) {
|
||||||
$warning_delay=$conf->contrat->services->inactifs->warning_delay / 3600 / 24;
|
$warning_delay=$conf->contrat->services->inactifs->warning_delay / 3600 / 24;
|
||||||
@ -1630,7 +1641,7 @@ else
|
|||||||
print $langs->trans("DateEndPlanned").': ';
|
print $langs->trans("DateEndPlanned").': ';
|
||||||
if ($objp->date_fin)
|
if ($objp->date_fin)
|
||||||
{
|
{
|
||||||
print dol_print_date($db->jdate($objp->date_fin));
|
print dol_print_date($db->jdate($objp->date_fin), 'day');
|
||||||
if ($objp->statut == 4 && $db->jdate($objp->date_fin) < ($now - $conf->contrat->services->expires->warning_delay)) {
|
if ($objp->statut == 4 && $db->jdate($objp->date_fin) < ($now - $conf->contrat->services->expires->warning_delay)) {
|
||||||
$warning_delay=$conf->contrat->services->expires->warning_delay / 3600 / 24;
|
$warning_delay=$conf->contrat->services->expires->warning_delay / 3600 / 24;
|
||||||
$textlate = $langs->trans("Late").' = '.$langs->trans("DateReference").' > '.$langs->trans("DateToday").' '.(ceil($warning_delay) >= 0 ? '+' : '').ceil($warning_delay).' '.$langs->trans("days");
|
$textlate = $langs->trans("Late").' = '.$langs->trans("DateReference").' > '.$langs->trans("DateToday").' '.(ceil($warning_delay) >= 0 ? '+' : '').ceil($warning_delay).' '.$langs->trans("days");
|
||||||
@ -1849,21 +1860,21 @@ else
|
|||||||
// Si pas encore active
|
// Si pas encore active
|
||||||
if (! $objp->date_debut_reelle) {
|
if (! $objp->date_debut_reelle) {
|
||||||
print $langs->trans("DateStartReal").': ';
|
print $langs->trans("DateStartReal").': ';
|
||||||
if ($objp->date_debut_reelle) print dol_print_date($objp->date_debut_reelle);
|
if ($objp->date_debut_reelle) print dol_print_date($objp->date_debut_reelle, 'day');
|
||||||
else print $langs->trans("ContractStatusNotRunning");
|
else print $langs->trans("ContractStatusNotRunning");
|
||||||
}
|
}
|
||||||
// Si active et en cours
|
// Si active et en cours
|
||||||
if ($objp->date_debut_reelle && ! $objp->date_fin_reelle) {
|
if ($objp->date_debut_reelle && ! $objp->date_fin_reelle) {
|
||||||
print $langs->trans("DateStartReal").': ';
|
print $langs->trans("DateStartReal").': ';
|
||||||
print dol_print_date($objp->date_debut_reelle);
|
print dol_print_date($objp->date_debut_reelle, 'day');
|
||||||
}
|
}
|
||||||
// Si desactive
|
// Si desactive
|
||||||
if ($objp->date_debut_reelle && $objp->date_fin_reelle) {
|
if ($objp->date_debut_reelle && $objp->date_fin_reelle) {
|
||||||
print $langs->trans("DateStartReal").': ';
|
print $langs->trans("DateStartReal").': ';
|
||||||
print dol_print_date($objp->date_debut_reelle);
|
print dol_print_date($objp->date_debut_reelle, 'day');
|
||||||
print ' - ';
|
print ' - ';
|
||||||
print $langs->trans("DateEndReal").': ';
|
print $langs->trans("DateEndReal").': ';
|
||||||
print dol_print_date($objp->date_fin_reelle);
|
print dol_print_date($objp->date_fin_reelle, 'day');
|
||||||
}
|
}
|
||||||
if (! empty($objp->comment)) print "<br>".$objp->comment;
|
if (! empty($objp->comment)) print "<br>".$objp->comment;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -2071,6 +2082,10 @@ else
|
|||||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&object=' . $object->element . '">' . $langs->trans("ToClone") . '</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&object=' . $object->element . '">' . $langs->trans("ToClone") . '</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($object->nbofservicesclosed > 0)
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=activate">'.$langs->trans("ActivateAllContracts").'</a></div>';
|
||||||
|
}
|
||||||
if ($object->nbofservicesclosed < $nbofservices)
|
if ($object->nbofservicesclosed < $nbofservices)
|
||||||
{
|
{
|
||||||
//if (! $numactive)
|
//if (! $numactive)
|
||||||
@ -2121,9 +2136,9 @@ else
|
|||||||
print $formfile->showdocuments('contract', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang);
|
print $formfile->showdocuments('contract', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang);
|
||||||
|
|
||||||
|
|
||||||
// Show links to link elements
|
// Show links to link elements
|
||||||
$linktoelem = $form->showLinkToObjectBlock($object, null, array('contrat'));
|
$linktoelem = $form->showLinkToObjectBlock($object, null, array('contrat'));
|
||||||
$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
|
$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
|
||||||
|
|
||||||
|
|
||||||
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|||||||
@ -247,13 +247,63 @@ class Contrat extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open all lines of a contract
|
||||||
|
*
|
||||||
|
* @param User $user Object User making action
|
||||||
|
* @param int|string $date_start Date start (now if empty)
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function activateAll($user, $date_start='')
|
||||||
|
{
|
||||||
|
if (empty($date_start)) $date_start = dol_now();
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
// Load lines
|
||||||
|
$this->fetch_lines();
|
||||||
|
|
||||||
|
$ok=true;
|
||||||
|
foreach($this->lines as $contratline)
|
||||||
|
{
|
||||||
|
// Open lines not already open
|
||||||
|
if ($contratline->statut != 4)
|
||||||
|
{
|
||||||
|
$result = $contratline->active_line($user, $date_start, -1);
|
||||||
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
$ok=false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->statut == 0)
|
||||||
|
{
|
||||||
|
$result=$this->validate($user);
|
||||||
|
if ($result < 0) $ok=false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ok)
|
||||||
|
{
|
||||||
|
$this->db->commit();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dol_print_error($this->db,'Error in activateAll function');
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Close all lines of a contract
|
* Close all lines of a contract
|
||||||
*
|
*
|
||||||
* @param User $user Object User making action
|
* @param User $user Object User making action
|
||||||
* @return void
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function cloture($user)
|
function closeAll($user)
|
||||||
{
|
{
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
@ -263,7 +313,7 @@ class Contrat extends CommonObject
|
|||||||
$ok=true;
|
$ok=true;
|
||||||
foreach($this->lines as $contratline)
|
foreach($this->lines as $contratline)
|
||||||
{
|
{
|
||||||
// Close line not already closed
|
// Close lines not already closed
|
||||||
if ($contratline->statut != 5)
|
if ($contratline->statut != 5)
|
||||||
{
|
{
|
||||||
$contratline->date_cloture=dol_now();
|
$contratline->date_cloture=dol_now();
|
||||||
@ -287,11 +337,13 @@ class Contrat extends CommonObject
|
|||||||
if ($ok)
|
if ($ok)
|
||||||
{
|
{
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dol_print_error($this->db,'Error in cloture function');
|
dol_print_error($this->db,'Error in closeAll function');
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -920,8 +972,8 @@ class Contrat extends CommonObject
|
|||||||
{
|
{
|
||||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
|
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
|
||||||
{
|
{
|
||||||
$result=$this->insertExtraFields();
|
$result=$this->insertExtraFields();
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
@ -1278,7 +1330,7 @@ class Contrat extends CommonObject
|
|||||||
//// End call triggers
|
//// End call triggers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($this->array_options) && count($this->array_options)>0) // For avoid conflicts if trigger used
|
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($this->array_options) && count($this->array_options)>0) // For avoid conflicts if trigger used
|
||||||
{
|
{
|
||||||
$result=$this->insertExtraFields();
|
$result=$this->insertExtraFields();
|
||||||
@ -1361,7 +1413,8 @@ class Contrat extends CommonObject
|
|||||||
if (empty($info_bits)) $info_bits=0;
|
if (empty($info_bits)) $info_bits=0;
|
||||||
if (empty($pu_ht) || ! is_numeric($pu_ht)) $pu_ht=0;
|
if (empty($pu_ht) || ! is_numeric($pu_ht)) $pu_ht=0;
|
||||||
if (empty($pu_ttc)) $pu_ttc=0;
|
if (empty($pu_ttc)) $pu_ttc=0;
|
||||||
if (empty($txlocaltax1) || ! is_numeric($txlocaltax1)) $txlocaltax1=0;
|
if (empty($txtva) || ! is_numeric($txtva)) $txtva=0;
|
||||||
|
if (empty($txlocaltax1) || ! is_numeric($txlocaltax1)) $txlocaltax1=0;
|
||||||
if (empty($txlocaltax2) || ! is_numeric($txlocaltax2)) $txlocaltax2=0;
|
if (empty($txlocaltax2) || ! is_numeric($txlocaltax2)) $txlocaltax2=0;
|
||||||
|
|
||||||
if ($price_base_type=='HT')
|
if ($price_base_type=='HT')
|
||||||
@ -1464,6 +1517,8 @@ class Contrat extends CommonObject
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
|
$contractlineid = $this->db->last_insert_id(MAIN_DB_PREFIX."contratdet");
|
||||||
|
|
||||||
$result=$this->update_statut($user);
|
$result=$this->update_statut($user);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
@ -1472,7 +1527,7 @@ class Contrat extends CommonObject
|
|||||||
{
|
{
|
||||||
$contractline = new ContratLigne($this->db);
|
$contractline = new ContratLigne($this->db);
|
||||||
$contractline->array_options=$array_options;
|
$contractline->array_options=$array_options;
|
||||||
$contractline->id= $this->db->last_insert_id(MAIN_DB_PREFIX.$contractline->table_element);
|
$contractline->id=$contractlineid;
|
||||||
$result=$contractline->insertExtraFields();
|
$result=$contractline->insertExtraFields();
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
@ -1486,13 +1541,20 @@ class Contrat extends CommonObject
|
|||||||
$result=$this->call_trigger('LINECONTRACT_INSERT',$user);
|
$result=$this->call_trigger('LINECONTRACT_INSERT',$user);
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$this->db->rollback();
|
$error++;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
// End call triggers
|
// End call triggers
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($error)
|
||||||
|
{
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
return 1;
|
return $contractlineid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1835,9 +1897,11 @@ class Contrat extends CommonObject
|
|||||||
$text='';
|
$text='';
|
||||||
if ($mode == 4)
|
if ($mode == 4)
|
||||||
{
|
{
|
||||||
$text=($this->nbofserviceswait+$this->nbofservicesopened+$this->nbofservicesexpired+$this->nbofservicesclosed);
|
$text ='<span class="hideonsmartphone">';
|
||||||
|
$text.=($this->nbofserviceswait+$this->nbofservicesopened+$this->nbofservicesexpired+$this->nbofservicesclosed);
|
||||||
$text.=' '.$langs->trans("Services");
|
$text.=' '.$langs->trans("Services");
|
||||||
$text.=': ';
|
$text.=': ';
|
||||||
|
$text.='</span>';
|
||||||
}
|
}
|
||||||
$text.=($mode == 7?'<div class="inline-block">':'');
|
$text.=($mode == 7?'<div class="inline-block">':'');
|
||||||
$text.=($mode != 7 || $this->nbofserviceswait > 0) ? ($this->nbofserviceswait.$line->LibStatut(0,3,-1,'class="paddingleft2 inline-block valigntextbottom"')).(($mode != 7 || $this->nbofservicesopened || $this->nbofservicesexpired || $this->nbofservicesclosed)?' ':'') : '';
|
$text.=($mode != 7 || $this->nbofserviceswait > 0) ? ($this->nbofserviceswait.$line->LibStatut(0,3,-1,'class="paddingleft2 inline-block valigntextbottom"')).(($mode != 7 || $this->nbofservicesopened || $this->nbofservicesexpired || $this->nbofservicesclosed)?' ':'') : '';
|
||||||
@ -2998,11 +3062,11 @@ class ContratLigne extends CommonObjectLine
|
|||||||
/**
|
/**
|
||||||
* Activate a contract line
|
* Activate a contract line
|
||||||
*
|
*
|
||||||
* @param User $user Objet User who activate contract
|
* @param User $user Objet User who activate contract
|
||||||
* @param int $date Date d'ouverture
|
* @param int $date Date activation
|
||||||
* @param int|string $date_end Date fin prevue
|
* @param int|string $date_end Date planned end. Use '-1' to keep it unchanged.
|
||||||
* @param string $comment A comment typed by user
|
* @param string $comment A comment typed by user
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function active_line($user, $date, $date_end = '', $comment = '')
|
function active_line($user, $date, $date_end = '', $comment = '')
|
||||||
{
|
{
|
||||||
@ -3021,7 +3085,7 @@ class ContratLigne extends CommonObjectLine
|
|||||||
|
|
||||||
$sql = "UPDATE " . MAIN_DB_PREFIX . "contratdet SET statut = 4,";
|
$sql = "UPDATE " . MAIN_DB_PREFIX . "contratdet SET statut = 4,";
|
||||||
$sql .= " date_ouverture = " . (dol_strlen($date) != 0 ? "'" . $this->db->idate($date) . "'" : "null") . ",";
|
$sql .= " date_ouverture = " . (dol_strlen($date) != 0 ? "'" . $this->db->idate($date) . "'" : "null") . ",";
|
||||||
$sql .= " date_fin_validite = " . (dol_strlen($date_end) != 0 ? "'" . $this->db->idate($date_end) . "'" : "null") . ",";
|
if ($date_end >= 0) $sql .= " date_fin_validite = " . (dol_strlen($date_end) != 0 ? "'" . $this->db->idate($date_end) . "'" : "null") . ",";
|
||||||
$sql .= " fk_user_ouverture = " . $user->id . ",";
|
$sql .= " fk_user_ouverture = " . $user->id . ",";
|
||||||
$sql .= " date_cloture = null,";
|
$sql .= " date_cloture = null,";
|
||||||
$sql .= " commentaire = '" . $this->db->escape($comment) . "'";
|
$sql .= " commentaire = '" . $this->db->escape($comment) . "'";
|
||||||
|
|||||||
@ -33,8 +33,8 @@
|
|||||||
// Build doc
|
// Build doc
|
||||||
if ($action == 'builddoc' && $permissioncreate)
|
if ($action == 'builddoc' && $permissioncreate)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (is_numeric(GETPOST('model')))
|
if (is_numeric(GETPOST('model','alpha')))
|
||||||
{
|
{
|
||||||
$error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Model"));
|
$error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Model"));
|
||||||
}
|
}
|
||||||
@ -48,18 +48,18 @@ if ($action == 'builddoc' && $permissioncreate)
|
|||||||
dol_print_error('Object must have been loaded by a fetch');
|
dol_print_error('Object must have been loaded by a fetch');
|
||||||
exit;
|
exit;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
// Save last template used to generate document
|
// Save last template used to generate document
|
||||||
if (GETPOST('model'))
|
if (GETPOST('model','alpha'))
|
||||||
{
|
{
|
||||||
$object->setDocModel($user, GETPOST('model','alpha'));
|
$object->setDocModel($user, GETPOST('model','alpha'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Special case to force bank account
|
// Special case to force bank account
|
||||||
//if (property_exists($object, 'fk_bank'))
|
//if (property_exists($object, 'fk_bank'))
|
||||||
//{
|
//{
|
||||||
if (GETPOST('fk_bank')) { // this field may come from an external module
|
if (GETPOST('fk_bank','int')) { // this field may come from an external module
|
||||||
$object->fk_bank = GETPOST('fk_bank');
|
$object->fk_bank = GETPOST('fk_bank','int');
|
||||||
} else if (! empty($object->fk_account)) {
|
} else if (! empty($object->fk_account)) {
|
||||||
$object->fk_bank = $object->fk_account;
|
$object->fk_bank = $object->fk_account;
|
||||||
}
|
}
|
||||||
@ -76,13 +76,13 @@ if ($action == 'builddoc' && $permissioncreate)
|
|||||||
$outputlangs = new Translate("",$conf);
|
$outputlangs = new Translate("",$conf);
|
||||||
$outputlangs->setDefaultLang($newlang);
|
$outputlangs->setDefaultLang($newlang);
|
||||||
}
|
}
|
||||||
|
|
||||||
// To be sure vars is defined
|
// To be sure vars is defined
|
||||||
if (empty($hidedetails)) $hidedetails=0;
|
if (empty($hidedetails)) $hidedetails=0;
|
||||||
if (empty($hidedesc)) $hidedesc=0;
|
if (empty($hidedesc)) $hidedesc=0;
|
||||||
if (empty($hideref)) $hideref=0;
|
if (empty($hideref)) $hideref=0;
|
||||||
if (empty($moreparams)) $moreparams=null;
|
if (empty($moreparams)) $moreparams=null;
|
||||||
|
|
||||||
$result= $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
|
$result= $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
|
||||||
if ($result <= 0)
|
if ($result <= 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -30,9 +30,9 @@ if (GETPOST('sendit') && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
|||||||
if ($object->id)
|
if ($object->id)
|
||||||
{
|
{
|
||||||
if (! empty($upload_dirold) && ! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))
|
if (! empty($upload_dirold) && ! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))
|
||||||
dol_add_file_process($upload_dirold, 0, 1, 'userfile', GETPOST('savingdocmask'));
|
$result = dol_add_file_process($upload_dirold, 0, 1, 'userfile', GETPOST('savingdocmask'));
|
||||||
else
|
else
|
||||||
dol_add_file_process($upload_dir, 0, 1, 'userfile', GETPOST('savingdocmask'));
|
$result = dol_add_file_process($upload_dir, 0, 1, 'userfile', GETPOST('savingdocmask'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif (GETPOST('linkit') && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
elseif (GETPOST('linkit') && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
||||||
@ -176,7 +176,7 @@ elseif ($action == 'renamefile' && GETPOST('renamefilesave'))
|
|||||||
|
|
||||||
setEventMessages($langs->trans("FileRenamed"), null);
|
setEventMessages($langs->trans("FileRenamed"), null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$langs->load("errors"); // key must be loaded because we can't rely on loading during output, we need var substitution to be done now.
|
$langs->load("errors"); // key must be loaded because we can't rely on loading during output, we need var substitution to be done now.
|
||||||
setEventMessages($langs->trans("ErrorFailToRenameFile", $filenamefrom, $filenameto), null, 'errors');
|
setEventMessages($langs->trans("ErrorFailToRenameFile", $filenamefrom, $filenameto), null, 'errors');
|
||||||
|
|||||||
@ -430,7 +430,7 @@ if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_se
|
|||||||
}
|
}
|
||||||
|
|
||||||
$arrayofinclusion=array();
|
$arrayofinclusion=array();
|
||||||
foreach($listofobjectref as $tmppdf) $arrayofinclusion[]=preg_quote($tmppdf.'.pdf','/');
|
foreach($listofobjectref as $tmppdf) $arrayofinclusion[]='^'.preg_quote($tmppdf.'.pdf','/').'$';
|
||||||
$listoffiles = dol_dir_list($uploaddir,'all',1,implode('|',$arrayofinclusion),'\.meta$|\.png','date',SORT_DESC,0,true);
|
$listoffiles = dol_dir_list($uploaddir,'all',1,implode('|',$arrayofinclusion),'\.meta$|\.png','date',SORT_DESC,0,true);
|
||||||
|
|
||||||
// build list of files with full path
|
// build list of files with full path
|
||||||
@ -505,8 +505,8 @@ if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_se
|
|||||||
$pdf=pdf_getInstance();
|
$pdf=pdf_getInstance();
|
||||||
if (class_exists('TCPDF'))
|
if (class_exists('TCPDF'))
|
||||||
{
|
{
|
||||||
$pdf->setPrintHeader(false);
|
$pdf->setPrintHeader(false);
|
||||||
$pdf->setPrintFooter(false);
|
$pdf->setPrintFooter(false);
|
||||||
}
|
}
|
||||||
$pdf->SetFont(pdf_getPDFFont($outputlangs));
|
$pdf->SetFont(pdf_getPDFFont($outputlangs));
|
||||||
|
|
||||||
@ -515,15 +515,15 @@ if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_se
|
|||||||
// Add all others
|
// Add all others
|
||||||
foreach($files as $file)
|
foreach($files as $file)
|
||||||
{
|
{
|
||||||
// Charge un document PDF depuis un fichier.
|
// Charge un document PDF depuis un fichier.
|
||||||
$pagecount = $pdf->setSourceFile($file);
|
$pagecount = $pdf->setSourceFile($file);
|
||||||
for ($i = 1; $i <= $pagecount; $i++)
|
for ($i = 1; $i <= $pagecount; $i++)
|
||||||
{
|
{
|
||||||
$tplidx = $pdf->importPage($i);
|
$tplidx = $pdf->importPage($i);
|
||||||
$s = $pdf->getTemplatesize($tplidx);
|
$s = $pdf->getTemplatesize($tplidx);
|
||||||
$pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
|
$pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
|
||||||
$pdf->useTemplate($tplidx);
|
$pdf->useTemplate($tplidx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create output dir if not exists
|
// Create output dir if not exists
|
||||||
|
|||||||
@ -42,6 +42,7 @@ class CSMSFile
|
|||||||
var $priority;
|
var $priority;
|
||||||
var $class;
|
var $class;
|
||||||
var $message;
|
var $message;
|
||||||
|
var $nostop;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -81,6 +82,7 @@ class CSMSFile
|
|||||||
$this->priority=$priority;
|
$this->priority=$priority;
|
||||||
$this->class=$class;
|
$this->class=$class;
|
||||||
$this->message=$msg;
|
$this->message=$msg;
|
||||||
|
$this->nostop=false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -107,6 +109,7 @@ class CSMSFile
|
|||||||
|
|
||||||
if (empty($conf->global->MAIN_DISABLE_ALL_SMS))
|
if (empty($conf->global->MAIN_DISABLE_ALL_SMS))
|
||||||
{
|
{
|
||||||
|
|
||||||
// Action according to choosed sending method
|
// Action according to choosed sending method
|
||||||
if ($conf->global->MAIN_SMS_SENDMODE == 'ovh') // Backward compatibility @deprecated
|
if ($conf->global->MAIN_SMS_SENDMODE == 'ovh') // Backward compatibility @deprecated
|
||||||
{
|
{
|
||||||
@ -118,6 +121,7 @@ class CSMSFile
|
|||||||
$sms->deferred=$this->deferred;
|
$sms->deferred=$this->deferred;
|
||||||
$sms->priority=$this->priority;
|
$sms->priority=$this->priority;
|
||||||
$sms->class=$this->class;
|
$sms->class=$this->class;
|
||||||
|
$sms->nostop=$this->nostop;
|
||||||
|
|
||||||
$res=$sms->SmsSend();
|
$res=$sms->SmsSend();
|
||||||
if ($res <= 0)
|
if ($res <= 0)
|
||||||
@ -129,7 +133,7 @@ class CSMSFile
|
|||||||
{
|
{
|
||||||
dol_syslog("CSMSFile::sendfile: sms send success with id=".$res, LOG_DEBUG);
|
dol_syslog("CSMSFile::sendfile: sms send success with id=".$res, LOG_DEBUG);
|
||||||
//var_dump($res); // 1973128
|
//var_dump($res); // 1973128
|
||||||
$this->dump_sms_result($res);
|
if (! empty($conf->global->MAIN_SMS_DEBUG)) $this->dump_sms_result($res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (! empty($conf->global->MAIN_SMS_SENDMODE)) // $conf->global->MAIN_SMS_SENDMODE looks like a value 'class@module'
|
else if (! empty($conf->global->MAIN_SMS_SENDMODE)) // $conf->global->MAIN_SMS_SENDMODE looks like a value 'class@module'
|
||||||
@ -147,6 +151,7 @@ class CSMSFile
|
|||||||
$sms->priority=$this->priority;
|
$sms->priority=$this->priority;
|
||||||
$sms->class=$this->class;
|
$sms->class=$this->class;
|
||||||
$sms->message=$this->message;
|
$sms->message=$this->message;
|
||||||
|
$sms->nostop=$this->nostop;
|
||||||
|
|
||||||
$res=$sms->SmsSend();
|
$res=$sms->SmsSend();
|
||||||
$this->error = $sms->error;
|
$this->error = $sms->error;
|
||||||
@ -159,7 +164,7 @@ class CSMSFile
|
|||||||
{
|
{
|
||||||
dol_syslog("CSMSFile::sendfile: sms send success with id=".$res, LOG_DEBUG);
|
dol_syslog("CSMSFile::sendfile: sms send success with id=".$res, LOG_DEBUG);
|
||||||
//var_dump($res); // 1973128
|
//var_dump($res); // 1973128
|
||||||
$this->dump_sms_result($res);
|
if (! empty($conf->global->MAIN_SMS_DEBUG)) $this->dump_sms_result($res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(Exception $e)
|
catch(Exception $e)
|
||||||
@ -207,6 +212,7 @@ class CSMSFile
|
|||||||
fputs($fp, "Priority: ".$this->priority."\n");
|
fputs($fp, "Priority: ".$this->priority."\n");
|
||||||
fputs($fp, "Class: ".$this->class."\n");
|
fputs($fp, "Class: ".$this->class."\n");
|
||||||
fputs($fp, "Deferred: ".$this->deferred."\n");
|
fputs($fp, "Deferred: ".$this->deferred."\n");
|
||||||
|
fputs($fp, "DisableStop: ".$this->nostop."\n");
|
||||||
fputs($fp, "Message:\n".$this->message);
|
fputs($fp, "Message:\n".$this->message);
|
||||||
|
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
|
|||||||
@ -4349,7 +4349,7 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
elseif ($value=='')
|
elseif ($value=='')
|
||||||
{
|
{
|
||||||
$this->array_options[$key] = null;
|
$new_array_options[$key] = null;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
/*case 'select': // Not required, we chosed value='0' for undefined values
|
/*case 'select': // Not required, we chosed value='0' for undefined values
|
||||||
@ -4359,13 +4359,13 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
break;*/
|
break;*/
|
||||||
case 'price':
|
case 'price':
|
||||||
$this->array_options[$key] = price2num($this->array_options[$key]);
|
$new_array_options[$key] = price2num($this->array_options[$key]);
|
||||||
break;
|
break;
|
||||||
case 'date':
|
case 'date':
|
||||||
$this->array_options[$key]=$this->db->idate($this->array_options[$key]);
|
$new_array_options[$key] = $this->db->idate($this->array_options[$key]);
|
||||||
break;
|
break;
|
||||||
case 'datetime':
|
case 'datetime':
|
||||||
$this->array_options[$key]=$this->db->idate($this->array_options[$key]);
|
$new_array_options[$key] = $this->db->idate($this->array_options[$key]);
|
||||||
break;
|
break;
|
||||||
case 'link':
|
case 'link':
|
||||||
$param_list=array_keys($attributeParam ['options']);
|
$param_list=array_keys($attributeParam ['options']);
|
||||||
@ -4381,7 +4381,7 @@ abstract class CommonObject
|
|||||||
if (is_numeric($value)) $res=$object->fetch($value);
|
if (is_numeric($value)) $res=$object->fetch($value);
|
||||||
else $res=$object->fetch('',$value);
|
else $res=$object->fetch('',$value);
|
||||||
|
|
||||||
if ($res > 0) $this->array_options[$key]=$object->id;
|
if ($res > 0) $new_array_options[$key]=$object->id;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->error="Ref '".$value."' for object '".$object->element."' not found";
|
$this->error="Ref '".$value."' for object '".$object->element."' not found";
|
||||||
@ -4421,9 +4421,9 @@ abstract class CommonObject
|
|||||||
// Add field o fattribut
|
// Add field o fattribut
|
||||||
if($extrafields->attribute_type[$attributeKey] != 'separate') // Only for other type of separate)
|
if($extrafields->attribute_type[$attributeKey] != 'separate') // Only for other type of separate)
|
||||||
{
|
{
|
||||||
if ($this->array_options[$key] != '')
|
if ($new_array_options[$key] != '')
|
||||||
{
|
{
|
||||||
$sql.=",'".$this->db->escape($this->array_options[$key])."'";
|
$sql.=",'".$this->db->escape($new_array_options[$key])."'";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -4620,10 +4620,13 @@ abstract class CommonObject
|
|||||||
$value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$this->db->jdate($this->array_options['options_'.$key]);
|
$value = isset($_POST["options_".$key])?dol_mktime($_POST["options_".$key."hour"], $_POST["options_".$key."min"], 0, $_POST["options_".$key."month"], $_POST["options_".$key."day"], $_POST["options_".$key."year"]):$this->db->jdate($this->array_options['options_'.$key]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$labeltoshow = $langs->trans($label);
|
||||||
if($extrafields->attribute_required[$key])
|
if($extrafields->attribute_required[$key])
|
||||||
$label = '<span'.($mode != 'view' ? ' class="fieldrequired"':'').'>'.$label.'</span>';
|
{
|
||||||
|
$labeltoshow = '<span'.($mode != 'view' ? ' class="fieldrequired"':'').'>'.$labeltoshow.'</span>';
|
||||||
|
}
|
||||||
|
$out .= '<td>'.$labeltoshow.'</td>';
|
||||||
|
|
||||||
$out .= '<td>'.$langs->trans($label).'</td>';
|
|
||||||
$html_id = !empty($this->id) ? $this->element.'_extras_'.$key.'_'.$this->id : '';
|
$html_id = !empty($this->id) ? $this->element.'_extras_'.$key.'_'.$this->id : '';
|
||||||
$out .='<td id="'.$html_id.'" class="'.$this->element.'_extras_'.$key.'" '.($colspan?' colspan="'.$colspan.'"':'').'>';
|
$out .='<td id="'.$html_id.'" class="'.$this->element.'_extras_'.$key.'" '.($colspan?' colspan="'.$colspan.'"':'').'>';
|
||||||
|
|
||||||
|
|||||||
@ -48,20 +48,21 @@ class DolEditor
|
|||||||
/**
|
/**
|
||||||
* Create an object to build an HTML area to edit a large string content
|
* Create an object to build an HTML area to edit a large string content
|
||||||
*
|
*
|
||||||
* @param string $htmlname HTML name of WYSIWIG field
|
* @param string $htmlname HTML name of WYSIWIG field
|
||||||
* @param string $content Content of WYSIWIG field
|
* @param string $content Content of WYSIWIG field
|
||||||
* @param int $width Width in pixel of edit area (auto by default)
|
* @param int $width Width in pixel of edit area (auto by default)
|
||||||
* @param int $height Height in pixel of edit area (200px by default)
|
* @param int $height Height in pixel of edit area (200px by default)
|
||||||
* @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]'=the less featured, 'dolibarr_mailings[_encoded]', 'dolibarr_readonly', 'ace').
|
* @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]'=the less featured, 'dolibarr_mailings[_encoded]', 'dolibarr_readonly').
|
||||||
* @param string $toolbarlocation Where bar is stored :
|
* @param string $toolbarlocation Where bar is stored :
|
||||||
* 'In' each window has its own toolbar
|
* 'In' each window has its own toolbar
|
||||||
* 'Out:name' share toolbar into the div called 'name'
|
* 'Out:name' share toolbar into the div called 'name'
|
||||||
* @param boolean $toolbarstartexpanded Bar is visible or not at start
|
* @param boolean $toolbarstartexpanded Bar is visible or not at start
|
||||||
* @param int $uselocalbrowser Enabled to add links to local object with local browser. If false, only external images can be added in content.
|
* @param int $uselocalbrowser Enabled to add links to local object with local browser. If false, only external images can be added in content.
|
||||||
* @param boolean|string $okforextendededitor True=Allow usage of extended editor tool if qualified (like fckeditor). If 'textarea', force use of simple textarea. If 'ace', force use of Ace.
|
* @param boolean|string $okforextendededitor True=Allow usage of extended editor tool if qualified (like ckeditor). If 'textarea', force use of simple textarea. If 'ace', force use of Ace.
|
||||||
* @param int $rows Size of rows for textarea tool
|
* Warning: If you use 'ace', don't forget to also include ace.js in page header. Also, the button "save" must have class="buttonforacesave".
|
||||||
* @param string $cols Size of cols for textarea tool (textarea number of cols '70' or percent 'x%')
|
* @param int $rows Size of rows for textarea tool
|
||||||
* @param int $readonly 0=Read/Edit, 1=Read only
|
* @param string $cols Size of cols for textarea tool (textarea number of cols '70' or percent 'x%')
|
||||||
|
* @param int $readonly 0=Read/Edit, 1=Read only
|
||||||
*/
|
*/
|
||||||
function __construct($htmlname, $content, $width='', $height=200, $toolbarname='Basic', $toolbarlocation='In', $toolbarstartexpanded=false, $uselocalbrowser=true, $okforextendededitor=true, $rows=0, $cols=0, $readonly=0)
|
function __construct($htmlname, $content, $width='', $height=200, $toolbarname='Basic', $toolbarlocation='In', $toolbarstartexpanded=false, $uselocalbrowser=true, $okforextendededitor=true, $rows=0, $cols=0, $readonly=0)
|
||||||
{
|
{
|
||||||
@ -310,7 +311,7 @@ class DolEditor
|
|||||||
'."\n";
|
'."\n";
|
||||||
|
|
||||||
$out.= 'jQuery(document).ready(function() {
|
$out.= 'jQuery(document).ready(function() {
|
||||||
jQuery("#savefile").click(function() {
|
jQuery(".buttonforacesave").click(function() {
|
||||||
console.log("We click on savefile button for component '.$this->htmlname.'");
|
console.log("We click on savefile button for component '.$this->htmlname.'");
|
||||||
var aceEditor = window.ace.edit("'.$this->htmlname.'aceeditorid")
|
var aceEditor = window.ace.edit("'.$this->htmlname.'aceeditorid")
|
||||||
console.log(aceEditor.getSession().getValue());
|
console.log(aceEditor.getSession().getValue());
|
||||||
|
|||||||
@ -528,7 +528,7 @@ class ExtraFields
|
|||||||
$typedb=$type;
|
$typedb=$type;
|
||||||
$lengthdb=$length;
|
$lengthdb=$length;
|
||||||
}
|
}
|
||||||
$field_desc = array('type'=>$typedb, 'value'=>$lengthdb, 'null'=>($required?'NOT NULL':'NULL'));
|
$field_desc = array('type'=>$typedb, 'value'=>$lengthdb, 'null'=>($required?'NOT NULL':'NULL'), 'default'=>$default);
|
||||||
|
|
||||||
if ($type != 'separate') // No table update when separate type
|
if ($type != 'separate') // No table update when separate type
|
||||||
{
|
{
|
||||||
@ -660,7 +660,7 @@ class ExtraFields
|
|||||||
$sql.= " '".$param."',";
|
$sql.= " '".$param."',";
|
||||||
$sql.= " ".$list.", ";
|
$sql.= " ".$list.", ";
|
||||||
$sql.= " ".$ishidden.", ";
|
$sql.= " ".$ishidden.", ";
|
||||||
$sql.= " ".($default?"'".$this->db->escape($default)."'":"null").",";
|
$sql.= " ".(($default!='')?"'".$this->db->escape($default)."'":"null").",";
|
||||||
$sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null").",";
|
$sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null").",";
|
||||||
$sql .= " " . $user->id . ",";
|
$sql .= " " . $user->id . ",";
|
||||||
$sql .= " " . $user->id . ",";
|
$sql .= " " . $user->id . ",";
|
||||||
@ -769,8 +769,8 @@ class ExtraFields
|
|||||||
$this->attributes[$tab->elementtype]['ishidden'][$tab->name]=$tab->ishidden;
|
$this->attributes[$tab->elementtype]['ishidden'][$tab->name]=$tab->ishidden;
|
||||||
$this->attributes[$tab->elementtype]['entityid'][$tab->name]=$tab->entity;
|
$this->attributes[$tab->elementtype]['entityid'][$tab->name]=$tab->entity;
|
||||||
|
|
||||||
|
if (!empty($conf->multicompany->enabled))
|
||||||
if (!empty($conf->multicompany->enabled)) {
|
{
|
||||||
$sql_entity_name='SELECT label FROM '.MAIN_DB_PREFIX.'entity WHERE rowid='.$tab->entity;
|
$sql_entity_name='SELECT label FROM '.MAIN_DB_PREFIX.'entity WHERE rowid='.$tab->entity;
|
||||||
$resql_entity_name=$this->db->query($sql_entity_name);
|
$resql_entity_name=$this->db->query($sql_entity_name);
|
||||||
if ($resql_entity_name)
|
if ($resql_entity_name)
|
||||||
@ -785,11 +785,6 @@ class ExtraFields
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->error=$this->db->lasterror();
|
|
||||||
dol_syslog(get_class($this)."::fetch_name_optionals_label ".$this->error, LOG_ERR);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($elementtype) $this->attributes[$elementtype]['loaded']=1;
|
if ($elementtype) $this->attributes[$elementtype]['loaded']=1;
|
||||||
@ -1133,13 +1128,13 @@ class ExtraFields
|
|||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
$value_arr=explode(',',$value);
|
$value_arr=explode(',',$value);
|
||||||
$out=$form->multiselectarray($keysuffix.'options_'.$key.$keyprefix, $param['options'], $value_arr, '', 0, '', 0, '100%');
|
$out=$form->multiselectarray($keysuffix.'options_'.$key.$keyprefix, (empty($param['options'])?null:$param['options']), $value_arr, '', 0, '', 0, '100%');
|
||||||
|
|
||||||
}
|
}
|
||||||
elseif ($type == 'radio')
|
elseif ($type == 'radio')
|
||||||
{
|
{
|
||||||
$out='';
|
$out='';
|
||||||
foreach ($param['options'] as $keyopt=>$val )
|
foreach ($param['options'] as $keyopt => $val)
|
||||||
{
|
{
|
||||||
$out.='<input class="flat '.$showsize.'" type="radio" name="'.$keysuffix.'options_'.$key.$keyprefix.'" '.($moreparam?$moreparam:'');
|
$out.='<input class="flat '.$showsize.'" type="radio" name="'.$keysuffix.'options_'.$key.$keyprefix.'" '.($moreparam?$moreparam:'');
|
||||||
$out.=' value="'.$keyopt.'"';
|
$out.=' value="'.$keyopt.'"';
|
||||||
|
|||||||
@ -628,9 +628,10 @@ class Form
|
|||||||
* @param string $htmloption Options html on select object
|
* @param string $htmloption Options html on select object
|
||||||
* @param integer $maxlength Max length for labels (0=no limit)
|
* @param integer $maxlength Max length for labels (0=no limit)
|
||||||
* @param string $morecss More css class
|
* @param string $morecss More css class
|
||||||
|
* @param string $usecodeaskey 'code3'=Use code on 3 alpha as key, 'code2"=Use code on 2 alpha as key
|
||||||
* @return string HTML string with select
|
* @return string HTML string with select
|
||||||
*/
|
*/
|
||||||
function select_country($selected='',$htmlname='country_id',$htmloption='',$maxlength=0,$morecss='minwidth300')
|
function select_country($selected='',$htmlname='country_id',$htmloption='',$maxlength=0,$morecss='minwidth300',$usecodeaskey='')
|
||||||
{
|
{
|
||||||
global $conf,$langs;
|
global $conf,$langs;
|
||||||
|
|
||||||
@ -684,11 +685,11 @@ class Form
|
|||||||
if ($selected && $selected != '-1' && ($selected == $row['rowid'] || $selected == $row['code_iso'] || $selected == $row['code_iso3'] || $selected == $row['label']) )
|
if ($selected && $selected != '-1' && ($selected == $row['rowid'] || $selected == $row['code_iso'] || $selected == $row['code_iso3'] || $selected == $row['label']) )
|
||||||
{
|
{
|
||||||
$foundselected=true;
|
$foundselected=true;
|
||||||
$out.= '<option value="'.$row['rowid'].'" selected>';
|
$out.= '<option value="'.($usecodeaskey?($usecodeaskey=='code2'?$row['code_iso']:$row['code_iso3']):$row['rowid']).'" selected>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$out.= '<option value="'.$row['rowid'].'">';
|
$out.= '<option value="'.($usecodeaskey?($usecodeaskey=='code2'?$row['code_iso']:$row['code_iso3']):$row['rowid']).'">';
|
||||||
}
|
}
|
||||||
$out.= dol_trunc($row['label'],$maxlength,'middle');
|
$out.= dol_trunc($row['label'],$maxlength,'middle');
|
||||||
if ($row['code_iso']) $out.= ' ('.$row['code_iso'] . ')';
|
if ($row['code_iso']) $out.= ' ('.$row['code_iso'] . ')';
|
||||||
|
|||||||
@ -304,7 +304,7 @@ class FormActions
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$out.=$form->selectarray($htmlname, $arraylist, $selected);
|
$out.=$form->selectarray($htmlname, $arraylist, $selected, 0, 0, 0, '', 0, 0, 0, '', '', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($user->admin && empty($onlyautoornot) && $hideinfohelp <= 0)
|
if ($user->admin && empty($onlyautoornot) && $hideinfohelp <= 0)
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
/* Copyright (C) 2008-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2008-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2008-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2008-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2017 Rui Strecht <rui.strecht@aliartalentos.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -217,7 +218,7 @@ class FormCompany
|
|||||||
$out='';
|
$out='';
|
||||||
|
|
||||||
// On recherche les departements/cantons/province active d'une region et pays actif
|
// On recherche les departements/cantons/province active d'une region et pays actif
|
||||||
$sql = "SELECT d.rowid, d.code_departement as code, d.nom as name, d.active, c.label as country, c.code as country_code FROM";
|
$sql = "SELECT d.rowid, d.code_departement as code, d.nom as name, d.active, c.label as country, c.code as country_code, r.nom as region_name FROM";
|
||||||
$sql .= " ".MAIN_DB_PREFIX ."c_departements as d, ".MAIN_DB_PREFIX."c_regions as r,".MAIN_DB_PREFIX."c_country as c";
|
$sql .= " ".MAIN_DB_PREFIX ."c_departements as d, ".MAIN_DB_PREFIX."c_regions as r,".MAIN_DB_PREFIX."c_country as c";
|
||||||
$sql .= " WHERE d.fk_region=r.code_region and r.fk_pays=c.rowid";
|
$sql .= " WHERE d.fk_region=r.code_region and r.fk_pays=c.rowid";
|
||||||
$sql .= " AND d.active = 1 AND r.active = 1 AND c.active = 1";
|
$sql .= " AND d.active = 1 AND r.active = 1 AND c.active = 1";
|
||||||
@ -265,7 +266,15 @@ class FormCompany
|
|||||||
$out.= '<option value="'.$obj->rowid.'">';
|
$out.= '<option value="'.$obj->rowid.'">';
|
||||||
}
|
}
|
||||||
// Si traduction existe, on l'utilise, sinon on prend le libelle par defaut
|
// Si traduction existe, on l'utilise, sinon on prend le libelle par defaut
|
||||||
$out.= $obj->code . ' - ' . ($langs->trans($obj->code)!=$obj->code?$langs->trans($obj->code):($obj->name!='-'?$obj->name:''));
|
if(!empty($conf->global->MAIN_SHOW_REGION_IN_STATE) && $conf->global->MAIN_SHOW_REGION_IN_STATE == 2) {
|
||||||
|
$out.= $obj->region_name . ' - ' . $obj->code . ' - ' . ($langs->trans($obj->code)!=$obj->code?$langs->trans($obj->code):($obj->name!='-'?$obj->name:''));
|
||||||
|
}
|
||||||
|
else if(!empty($conf->global->MAIN_SHOW_REGION_IN_STATE) && $conf->global->MAIN_SHOW_REGION_IN_STATE == 1) {
|
||||||
|
$out.= $obj->region_name . ' - ' . ($langs->trans($obj->code)!=$obj->code?$langs->trans($obj->code):($obj->name!='-'?$obj->name:''));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$out.= $obj->code . ' - ' . ($langs->trans($obj->code)!=$obj->code?$langs->trans($obj->code):($obj->name!='-'?$obj->name:''));
|
||||||
|
}
|
||||||
$out.= '</option>';
|
$out.= '</option>';
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -121,7 +121,7 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
if ($showform) print "<form method=\"POST\" name=\"smsform\" enctype=\"multipart/form-data\" action=\"".$this->param["returnurl"]."\">\n";
|
if ($showform) print "<form method=\"POST\" name=\"smsform\" enctype=\"multipart/form-data\" action=\"".$this->param["returnurl"]."\">\n";
|
||||||
|
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
foreach ($this->param as $key=>$value)
|
foreach ($this->param as $key=>$value)
|
||||||
{
|
{
|
||||||
@ -147,7 +147,7 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
{
|
{
|
||||||
if ($this->withfromreadonly)
|
if ($this->withfromreadonly)
|
||||||
{
|
{
|
||||||
print '<tr><td class="'.$morecss.'">'.$langs->trans("SmsFrom");
|
print '<tr><td class="titlefield '.$morecss.'">'.$langs->trans("SmsFrom");
|
||||||
print '<input type="hidden" name="fromsms" value="'.$this->fromsms.'">';
|
print '<input type="hidden" name="fromsms" value="'.$this->fromsms.'">';
|
||||||
print "</td><td>";
|
print "</td><td>";
|
||||||
if ($this->fromtype == 'user')
|
if ($this->fromtype == 'user')
|
||||||
@ -223,7 +223,7 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
|
|
||||||
if (is_array($resultsender) && count($resultsender) > 0)
|
if (is_array($resultsender) && count($resultsender) > 0)
|
||||||
{
|
{
|
||||||
print '<select name="fromsms" id="valid" class="flat">';
|
print '<select name="fromsms" id="fromsms" class="flat">';
|
||||||
foreach($resultsender as $obj)
|
foreach($resultsender as $obj)
|
||||||
{
|
{
|
||||||
print '<option value="'.$obj->number.'">'.$obj->number.'</option>';
|
print '<option value="'.$obj->number.'">'.$obj->number.'</option>';
|
||||||
@ -244,7 +244,7 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
// To (target)
|
// To (target)
|
||||||
if ($this->withto || is_array($this->withto))
|
if ($this->withto || is_array($this->withto))
|
||||||
{
|
{
|
||||||
print '<tr><td width="180">';
|
print '<tr><td>';
|
||||||
//$moretext=$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients");
|
//$moretext=$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients");
|
||||||
$moretext='';
|
$moretext='';
|
||||||
print $form->textwithpicto($langs->trans("SmsTo"),$moretext);
|
print $form->textwithpicto($langs->trans("SmsTo"),$moretext);
|
||||||
@ -259,7 +259,7 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
if (! empty($this->withtosocid) && $this->withtosocid > 0)
|
if (! empty($this->withtosocid) && $this->withtosocid > 0)
|
||||||
{
|
{
|
||||||
$liste=array();
|
$liste=array();
|
||||||
foreach ($soc->thirdparty_and_contact_phone_array() as $key=>$value)
|
foreach ($soc->thirdparty_and_contact_phone_array() as $key => $value)
|
||||||
{
|
{
|
||||||
$liste[$key]=$value;
|
$liste[$key]=$value;
|
||||||
}
|
}
|
||||||
@ -285,7 +285,7 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
$defaultmessage=str_replace('\n',"\n",$defaultmessage);
|
$defaultmessage=str_replace('\n',"\n",$defaultmessage);
|
||||||
|
|
||||||
print "<tr>";
|
print "<tr>";
|
||||||
print "<td width=\"180\" valign=\"top\">".$langs->trans("SmsText")."</td>";
|
print '<td class="tdtop">'.$langs->trans("SmsText")."</td>";
|
||||||
print "<td>";
|
print "<td>";
|
||||||
if ($this->withbodyreadonly)
|
if ($this->withbodyreadonly)
|
||||||
{
|
{
|
||||||
@ -306,7 +306,7 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
<td> <input name="deferred" id="deferred" size="4" value="0"></td></tr>
|
<td> <input name="deferred" id="deferred" size="4" value="0"></td></tr>
|
||||||
|
|
||||||
<tr><td>'.$langs->trans("Priority").' :</td><td>
|
<tr><td>'.$langs->trans("Priority").' :</td><td>
|
||||||
<select name="priority" id="valid" class="flat">
|
<select name="priority" id="priority" class="flat">
|
||||||
<option value="0">high</option>
|
<option value="0">high</option>
|
||||||
<option value="1">medium</option>
|
<option value="1">medium</option>
|
||||||
<option value="2" selected>low</option>
|
<option value="2" selected>low</option>
|
||||||
@ -314,17 +314,23 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
</select></td></tr>
|
</select></td></tr>
|
||||||
|
|
||||||
<tr><td>'.$langs->trans("Type").' :</td><td>
|
<tr><td>'.$langs->trans("Type").' :</td><td>
|
||||||
<select name="class" id="valid" class="flat">
|
<select name="class" id="class" class="flat">
|
||||||
<option value="0">Flash</option>
|
<option value="0">Flash</option>
|
||||||
<option value="1" selected>Standard</option>
|
<option value="1" selected>Standard</option>
|
||||||
<option value="2">SIM</option>
|
<option value="2">SIM</option>
|
||||||
<option value="3">ToolKit</option>
|
<option value="3">ToolKit</option>
|
||||||
|
</select></td></tr>
|
||||||
|
|
||||||
|
<tr><td>'.$langs->trans("DisableStopIfSupported").' :</td><td>
|
||||||
|
<select name="disablestop" id="disablestop" class="flat">
|
||||||
|
<option value="0" selected>No</option>
|
||||||
|
<option value="1" selected>Yes</option>
|
||||||
</select></td></tr>';
|
</select></td></tr>';
|
||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
|
|
||||||
if ($showform)
|
if ($showform)
|
||||||
{
|
{
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" name="sendmail" value="'.dol_escape_htmltag($langs->trans("SendSms")).'">';
|
print '<input class="button" type="submit" name="sendmail" value="'.dol_escape_htmltag($langs->trans("SendSms")).'">';
|
||||||
@ -334,10 +340,10 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
print '<input class="button" type="submit" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'">';
|
print '<input class="button" type="submit" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'">';
|
||||||
}
|
}
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "<!-- End form SMS -->\n";
|
print "<!-- End form SMS -->\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -776,10 +776,31 @@ class DoliDBMysqli extends DoliDB
|
|||||||
{
|
{
|
||||||
$sql = "ALTER TABLE ".$table;
|
$sql = "ALTER TABLE ".$table;
|
||||||
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
||||||
if ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
|
if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
|
||||||
$sql.="(".$field_desc['value'].")";
|
$sql.="(".$field_desc['value'].")";
|
||||||
}
|
}
|
||||||
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL') $sql.=" NOT NULL";
|
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL')
|
||||||
|
{
|
||||||
|
// We will try to change format of column to NOT NULL. To be sure the ALTER works, we try to update fields that are NULL
|
||||||
|
if ($field_desc['type'] == 'varchar' || $field_desc['type'] == 'text')
|
||||||
|
{
|
||||||
|
$sqlbis="UPDATE ".$table." SET ".$field_name." = '".$this->escape($field_desc['default'] ? $field_desc['default'] : '')."' WHERE ".$field_name." IS NULL";
|
||||||
|
$this->query($sqlbis);
|
||||||
|
}
|
||||||
|
elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
|
||||||
|
{
|
||||||
|
$sqlbis="UPDATE ".$table." SET ".$field_name." = ".((int) $this->escape($field_desc['default'] ? $field_desc['default'] : 0))." WHERE ".$field_name." IS NULL";
|
||||||
|
$this->query($sqlbis);
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql.=" NOT NULL";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($field_desc['default'] != '')
|
||||||
|
{
|
||||||
|
if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') $sql.=" DEFAULT ".$this->escape($field_desc['default']);
|
||||||
|
elseif ($field_desc['type'] == 'text') $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'"; // Default not supported on text fields
|
||||||
|
}
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::DDLUpdateField ".$sql,LOG_DEBUG);
|
dol_syslog(get_class($this)."::DDLUpdateField ".$sql,LOG_DEBUG);
|
||||||
if (! $this->query($sql))
|
if (! $this->query($sql))
|
||||||
|
|||||||
@ -1084,12 +1084,30 @@ class DoliDBPgsql extends DoliDB
|
|||||||
{
|
{
|
||||||
$sql = "ALTER TABLE ".$table;
|
$sql = "ALTER TABLE ".$table;
|
||||||
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
||||||
if ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
|
if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
|
||||||
$sql.="(".$field_desc['value'].")";
|
$sql.="(".$field_desc['value'].")";
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO May not work with pgsql. May need to run a second request. If it works, just remove the comment
|
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL')
|
||||||
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL') $sql.=" NOT NULL";
|
{
|
||||||
|
// We will try to change format of column to NOT NULL. To be sure the ALTER works, we try to update fields that are NULL
|
||||||
|
if ($field_desc['type'] == 'varchar' || $field_desc['type'] == 'text')
|
||||||
|
{
|
||||||
|
$sqlbis="UPDATE ".$table." SET ".$field_name." = '".$this->escape($field_desc['default'] ? $field_desc['default'] : '')."' WHERE ".$field_name." IS NULL";
|
||||||
|
$this->query($sqlbis);
|
||||||
|
}
|
||||||
|
elseif ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int')
|
||||||
|
{
|
||||||
|
$sqlbis="UPDATE ".$table." SET ".$field_name." = ".((int) $this->escape($field_desc['default'] ? $field_desc['default'] : 0))." WHERE ".$field_name." IS NULL";
|
||||||
|
$this->query($sqlbis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($field_desc['default'] != '')
|
||||||
|
{
|
||||||
|
if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int') $sql.=" DEFAULT ".$this->escape($field_desc['default']);
|
||||||
|
elseif ($field_desc['type'] == 'text') $sql.=" DEFAULT '".$this->escape($field_desc['default'])."'"; // Default not supported on text fields
|
||||||
|
}
|
||||||
|
|
||||||
dol_syslog($sql,LOG_DEBUG);
|
dol_syslog($sql,LOG_DEBUG);
|
||||||
if (! $this->query($sql))
|
if (! $this->query($sql))
|
||||||
|
|||||||
@ -201,9 +201,10 @@ function journalHead($nom,$variante,$period,$periodlink,$description,$builddate,
|
|||||||
$head[$h][1] = $langs->trans("Journalization");
|
$head[$h][1] = $langs->trans("Journalization");
|
||||||
$head[$h][2] = 'journal';
|
$head[$h][2] = 'journal';
|
||||||
|
|
||||||
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].$varlink.'">';
|
||||||
|
|
||||||
dol_fiche_head($head, 'journal');
|
dol_fiche_head($head, 'journal');
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].$varlink.'">';
|
|
||||||
foreach($moreparam as $key => $value)
|
foreach($moreparam as $key => $value)
|
||||||
{
|
{
|
||||||
print '<input type="hidden" name="'.$key.'" value="'.$value.'">';
|
print '<input type="hidden" name="'.$key.'" value="'.$value.'">';
|
||||||
@ -251,12 +252,12 @@ function journalHead($nom,$variante,$period,$periodlink,$description,$builddate,
|
|||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br><div class="center"><input type="submit" class="button" name="submit" value="'.$langs->trans("Refresh").'"></div>';
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center"><input type="submit" class="button" name="submit" value="'.$langs->trans("Refresh").'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
dol_fiche_end();
|
|
||||||
|
|
||||||
print "\n<!-- fin cartouche journal -->\n\n";
|
print "\n<!-- fin cartouche journal -->\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1654,34 +1654,41 @@ function dol_remove_file_process($filenb,$donotupdatesession=0,$donotdeletefile=
|
|||||||
* @param string $fileinput Input file name
|
* @param string $fileinput Input file name
|
||||||
* @param string $ext Format of target file (It is also extension added to file if fileoutput is not provided).
|
* @param string $ext Format of target file (It is also extension added to file if fileoutput is not provided).
|
||||||
* @param string $fileoutput Output filename
|
* @param string $fileoutput Output filename
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, 0=Nothing done, >0 if OK
|
||||||
*/
|
*/
|
||||||
function dol_convert_file($fileinput,$ext='png',$fileoutput='')
|
function dol_convert_file($fileinput,$ext='png',$fileoutput='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
$image=new Imagick();
|
if (class_exists('Imagick'))
|
||||||
$ret = $image->readImage($fileinput);
|
|
||||||
if ($ret)
|
|
||||||
{
|
{
|
||||||
$ret = $image->setImageFormat($ext);
|
$image=new Imagick();
|
||||||
|
$ret = $image->readImage($fileinput);
|
||||||
if ($ret)
|
if ($ret)
|
||||||
{
|
{
|
||||||
if (empty($fileoutput)) $fileoutput=$fileinput.".".$ext;
|
$ret = $image->setImageFormat($ext);
|
||||||
|
if ($ret)
|
||||||
|
{
|
||||||
|
if (empty($fileoutput)) $fileoutput=$fileinput.".".$ext;
|
||||||
|
|
||||||
$count = $image->getNumberImages();
|
$count = $image->getNumberImages();
|
||||||
$ret = $image->writeImages($fileoutput, true);
|
$ret = $image->writeImages($fileoutput, true);
|
||||||
if ($ret) return $count;
|
if ($ret) return $count;
|
||||||
else return -3;
|
else return -3;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return -2;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -348,8 +348,20 @@ function GETPOST($paramname, $check='', $method=0, $filter=NULL, $options=NULL)
|
|||||||
}
|
}
|
||||||
elseif (isset($user->default_values[$relativepathstring]['filters'][$paramname]))
|
elseif (isset($user->default_values[$relativepathstring]['filters'][$paramname]))
|
||||||
{
|
{
|
||||||
$forbidden_chars_to_replace=array(" ","'","/","\\",":","*","?","\"","<",">","|","[","]",";","="); // we accept _, -, . and ,
|
if (isset($_POST['sall']) || isset($_POST['search_all']) || isset($_GET['sall']) || isset($_GET['search_all']))
|
||||||
$out = dol_string_nospecial($user->default_values[$relativepathstring]['filters'][$paramname], '', $forbidden_chars_to_replace);
|
{
|
||||||
|
// We made a search from quick search menu, do we still use default filter ?
|
||||||
|
if (empty($conf->global->MAIN_DISABLE_DEFAULT_FILTER_FOR_QUICK_SEARCH))
|
||||||
|
{
|
||||||
|
$forbidden_chars_to_replace=array(" ","'","/","\\",":","*","?","\"","<",">","|","[","]",";","="); // we accept _, -, . and ,
|
||||||
|
$out = dol_string_nospecial($user->default_values[$relativepathstring]['filters'][$paramname], '', $forbidden_chars_to_replace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$forbidden_chars_to_replace=array(" ","'","/","\\",":","*","?","\"","<",">","|","[","]",";","="); // we accept _, -, . and ,
|
||||||
|
$out = dol_string_nospecial($user->default_values[$relativepathstring]['filters'][$paramname], '', $forbidden_chars_to_replace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1239,8 +1251,11 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
&& (! file_exists($fileimagebis) || (filemtime($fileimagebis) < filemtime($file)))
|
&& (! file_exists($fileimagebis) || (filemtime($fileimagebis) < filemtime($file)))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$ret = dol_convert_file($file, 'png', $fileimage);
|
if (empty($conf->global->MAIN_DISABLE_PDF_THUMBS)) // If you experienc trouble with pdf thumb generation and imagick, you can disable here.
|
||||||
if ($ret < 0) $error++;
|
{
|
||||||
|
$ret = dol_convert_file($file, 'png', $fileimage);
|
||||||
|
if ($ret < 0) $error++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$heightforphotref=70;
|
$heightforphotref=70;
|
||||||
@ -3251,7 +3266,12 @@ function dol_print_error($db='',$error='',$errors=null)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (empty($dolibarr_main_prod)) print $out;
|
if (empty($dolibarr_main_prod)) print $out;
|
||||||
else define("MAIN_CORE_ERROR", 1);
|
else
|
||||||
|
{
|
||||||
|
print $langs->trans("DolibarrHasDetectedError").'. ';
|
||||||
|
print $langs->trans("YouCanSetOptionDolibarrMainProdToZero");
|
||||||
|
define("MAIN_CORE_ERROR", 1);
|
||||||
|
}
|
||||||
//else print 'Sorry, an error occured but the parameter $dolibarr_main_prod is defined in conf file so no message is reported to your browser. Please read the log file for error message.';
|
//else print 'Sorry, an error occured but the parameter $dolibarr_main_prod is defined in conf file so no message is reported to your browser. Please read the log file for error message.';
|
||||||
dol_syslog("Error ".$syslog, LOG_ERR);
|
dol_syslog("Error ".$syslog, LOG_ERR);
|
||||||
}
|
}
|
||||||
@ -3287,32 +3307,34 @@ function dol_print_error_email($prefixcode, $errormessage='')
|
|||||||
* @param string $sortfield Current field used to sort
|
* @param string $sortfield Current field used to sort
|
||||||
* @param string $sortorder Current sort order
|
* @param string $sortorder Current sort order
|
||||||
* @param string $prefix Prefix for css. Use space after prefix to add your own CSS tag.
|
* @param string $prefix Prefix for css. Use space after prefix to add your own CSS tag.
|
||||||
|
* @param string $tooltip Tooltip
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $td="", $sortfield="", $sortorder="", $prefix="")
|
function print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $td="", $sortfield="", $sortorder="", $prefix="", $tooltip="")
|
||||||
{
|
{
|
||||||
print getTitleFieldOfList($name, 0, $file, $field, $begin, $moreparam, $td, $sortfield, $sortorder, $prefix);
|
print getTitleFieldOfList($name, 0, $file, $field, $begin, $moreparam, $td, $sortfield, $sortorder, $prefix, 0, $tooltip);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get title line of an array
|
* Get title line of an array
|
||||||
*
|
*
|
||||||
* @param string $name Translation key of field
|
* @param string $name Translation key of field
|
||||||
* @param int $thead 0=To use with standard table format, 1=To use inside <thead><tr>, 2=To use with <div>
|
* @param int $thead 0=To use with standard table format, 1=To use inside <thead><tr>, 2=To use with <div>
|
||||||
* @param string $file Url used when we click on sort picto
|
* @param string $file Url used when we click on sort picto
|
||||||
* @param string $field Field to use for new sorting. Empty if this field is not sortable.
|
* @param string $field Field to use for new sorting. Empty if this field is not sortable.
|
||||||
* @param string $begin ("" by defaut)
|
* @param string $begin ("" by defaut)
|
||||||
* @param string $moreparam Add more parameters on sort url links ("" by default)
|
* @param string $moreparam Add more parameters on sort url links ("" by default)
|
||||||
* @param string $moreattrib Add more attributes on th ("" by defaut). To add more css class, use param $prefix.
|
* @param string $moreattrib Add more attributes on th ("" by defaut, example: 'align="center"'). To add more css class, use param $prefix.
|
||||||
* @param string $sortfield Current field used to sort (Ex: 'd.datep,d.id')
|
* @param string $sortfield Current field used to sort (Ex: 'd.datep,d.id')
|
||||||
* @param string $sortorder Current sort order (Ex: 'asc,desc')
|
* @param string $sortorder Current sort order (Ex: 'asc,desc')
|
||||||
* @param string $prefix Prefix for css. Use space after prefix to add your own CSS tag.
|
* @param string $prefix Prefix for css. Use space after prefix to add your own CSS tag, for example 'mycss '.
|
||||||
* @param string $disablesortlink 1=Disable sort link
|
* @param string $disablesortlink 1=Disable sort link
|
||||||
|
* @param string $tooltip Tooltip
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0)
|
function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0, $tooltip='')
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs, $form;
|
||||||
//print "$name, $file, $field, $begin, $options, $moreattrib, $sortfield, $sortorder<br>\n";
|
//print "$name, $file, $field, $begin, $options, $moreattrib, $sortfield, $sortorder<br>\n";
|
||||||
|
|
||||||
$sortorder=strtoupper($sortorder);
|
$sortorder=strtoupper($sortorder);
|
||||||
@ -3328,7 +3350,6 @@ function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $m
|
|||||||
$field1=trim($tmpfield[0]); // If $field is 'd.datep,d.id', it becomes 'd.datep'
|
$field1=trim($tmpfield[0]); // If $field is 'd.datep,d.id', it becomes 'd.datep'
|
||||||
|
|
||||||
//var_dump('field='.$field.' field1='.$field1.' sortfield='.$sortfield.' sortfield1='.$sortfield1);
|
//var_dump('field='.$field.' field1='.$field1.' sortfield='.$sortfield.' sortfield1='.$sortfield1);
|
||||||
|
|
||||||
// If field is used as sort criteria we use a specific css class liste_titre_sel
|
// If field is used as sort criteria we use a specific css class liste_titre_sel
|
||||||
// Example if (sortfield,field)=("nom","xxx.nom") or (sortfield,field)=("nom","nom")
|
// Example if (sortfield,field)=("nom","xxx.nom") or (sortfield,field)=("nom","nom")
|
||||||
if ($field1 && ($sortfield1 == $field1 || $sortfield1 == preg_replace("/^[^\.]+\./","",$field1))) $out.= '<'.$tag.' class="'.$prefix.'liste_titre_sel" '. $moreattrib.'>';
|
if ($field1 && ($sortfield1 == $field1 || $sortfield1 == preg_replace("/^[^\.]+\./","",$field1))) $out.= '<'.$tag.' class="'.$prefix.'liste_titre_sel" '. $moreattrib.'>';
|
||||||
@ -3353,7 +3374,8 @@ function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $m
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$out.=$langs->trans($name);
|
if ($tooltip) $out.=$form->textwithpicto($langs->trans($name), $langs->trans($tooltip));
|
||||||
|
else $out.=$langs->trans($name);
|
||||||
|
|
||||||
if (empty($thead) && $field && empty($disablesortlink)) // If this is a sort field
|
if (empty($thead) && $field && empty($disablesortlink)) // If this is a sort field
|
||||||
{
|
{
|
||||||
@ -3576,7 +3598,9 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
|
|||||||
$pagelist.= '<li'.(($conf->dol_use_jmobile != 4)?' class="pagination"':'').'><span '.(($conf->dol_use_jmobile != 4)?'class="active"':'').'>'.($page+1)."</li>";
|
$pagelist.= '<li'.(($conf->dol_use_jmobile != 4)?' class="pagination"':'').'><span '.(($conf->dol_use_jmobile != 4)?'class="active"':'').'>'.($page+1)."</li>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
print_fleche_navigation($page, $file, $options, $nextpage, $pagelist, $morehtml, $savlimit, $totalnboflines, $hideselectlimit); // output the div and ul for previous/last completed with page numbers into $pagelist
|
print_fleche_navigation($page, $file, $options, $nextpage, $pagelist, $morehtml, $savlimit, $totalnboflines, $hideselectlimit); // output the div and ul for previous/last completed with page numbers into $pagelist
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '</tr></table>'."\n";
|
print '</tr></table>'."\n";
|
||||||
@ -3702,7 +3726,13 @@ function vatrate($rate, $addpercent=false, $info_bits=0, $usestarfornpr=0)
|
|||||||
$info_bits |= 1;
|
$info_bits |= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret=price($rate,0,'',0,0).($addpercent?'%':'');
|
// If rate is '9/9/9' we don't change it. If rate is '9.000' we apply price()
|
||||||
|
if (! preg_match('/\//', $rate)) $ret=price($rate,0,'',0,0).($addpercent?'%':'');
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// TODO Split on / and output with a price2num to have clean numbers with ton of 000.
|
||||||
|
$ret=$rate.($addpercent?'%':'');
|
||||||
|
}
|
||||||
if ($info_bits & 1) $ret.=' *';
|
if ($info_bits & 1) $ret.=' *';
|
||||||
$ret.=$morelabel;
|
$ret.=$morelabel;
|
||||||
return $ret;
|
return $ret;
|
||||||
@ -6192,6 +6222,8 @@ function natural_search($fields, $value, $mode=0, $nofirstand=0)
|
|||||||
{
|
{
|
||||||
global $db,$langs;
|
global $db,$langs;
|
||||||
|
|
||||||
|
$value=trim($value);
|
||||||
|
|
||||||
if ($mode == 0)
|
if ($mode == 0)
|
||||||
{
|
{
|
||||||
$value=preg_replace('/\*/','%',$value); // Replace * with %
|
$value=preg_replace('/\*/','%',$value); // Replace * with %
|
||||||
|
|||||||
@ -19,14 +19,14 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/core/lib/json.lib.php
|
* \file htdocs/core/lib/json.lib.php
|
||||||
* \brief Functions to emulate json function for PHP < 5.3 compatibility
|
* \brief Functions to emulate json function when there were not activated
|
||||||
* \ingroup core
|
* \ingroup core
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! function_exists('json_encode'))
|
if (! function_exists('json_encode'))
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Implement json_encode for PHP that does not support it
|
* Implement json_encode for PHP that does not have module enabled.
|
||||||
*
|
*
|
||||||
* @param mixed $elements PHP Object to json encode
|
* @param mixed $elements PHP Object to json encode
|
||||||
* @return string Json encoded string
|
* @return string Json encoded string
|
||||||
@ -42,12 +42,11 @@ if (! function_exists('json_encode'))
|
|||||||
*
|
*
|
||||||
* @param mixed $elements PHP Object to json encode
|
* @param mixed $elements PHP Object to json encode
|
||||||
* @return string Json encoded string
|
* @return string Json encoded string
|
||||||
* @deprecated PHP >= 5.3 supports native json_encode
|
|
||||||
* @see json_encode()
|
* @see json_encode()
|
||||||
*/
|
*/
|
||||||
function dol_json_encode($elements)
|
function dol_json_encode($elements)
|
||||||
{
|
{
|
||||||
dol_syslog('dol_json_encode() is deprecated. Please update your code to use native json_encode().', LOG_WARNING);
|
dol_syslog("For better permorfance, enable the native json in your PHP", LOG_WARNING);
|
||||||
|
|
||||||
$num=0;
|
$num=0;
|
||||||
if (is_object($elements)) // Count number of properties for an object
|
if (is_object($elements)) // Count number of properties for an object
|
||||||
|
|||||||
@ -25,22 +25,34 @@
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save data into a memory area shared by all users, all sessions on server
|
* Regenerate files .class.php
|
||||||
*
|
*
|
||||||
* @param string $destdir Directory
|
* @param string $destdir Directory
|
||||||
* @param string $module Module name
|
* @param string $module Module name
|
||||||
* @param string $objectname Name of object
|
* @param string $objectname Name of object
|
||||||
* @param string $newmask New mask
|
* @param string $newmask New mask
|
||||||
* @param string $readdir Directory source (use $destdir when not defined)
|
* @param string $readdir Directory source (use $destdir when not defined)
|
||||||
|
* @param string $addfieldentry Array of the field entry to add array('key'=>,'type'=>,''label'=>,'visible'=>,'enabled'=>,'position'=>,'notnull'=>','index'=>,'searchall'=>,'comment'=>,'help'=>,'isameasure')
|
||||||
|
* @param string $delfieldentry Id of field to remove
|
||||||
* @return int <=0 if KO, >0 if OK
|
* @return int <=0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir='')
|
function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir='', $addfieldentry=array() ,$delfieldentry='')
|
||||||
{
|
{
|
||||||
global $db, $langs;
|
global $db, $langs;
|
||||||
|
|
||||||
if (empty($objectname)) return -1;
|
if (empty($objectname)) return -1;
|
||||||
if (empty($readdir)) $readdir=$destdir;
|
if (empty($readdir)) $readdir=$destdir;
|
||||||
|
|
||||||
|
// Check parameters
|
||||||
|
if (count($addfieldentry) > 0)
|
||||||
|
{
|
||||||
|
if (! preg_match('/^(integer|date|timestamp|varchar|double)/', $addfieldentry['type']))
|
||||||
|
{
|
||||||
|
setEventMessages($langs->trans('FilesForObjectUpdated', $objectname), null, 'errors');
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$pathoffiletoeditsrc=$readdir.'/class/'.strtolower($objectname).'.class.php';
|
$pathoffiletoeditsrc=$readdir.'/class/'.strtolower($objectname).'.class.php';
|
||||||
$pathoffiletoedittarget=$destdir.'/class/'.strtolower($objectname).'.class.php'.($readdir != $destdir ? '.new' : '');
|
$pathoffiletoedittarget=$destdir.'/class/'.strtolower($objectname).'.class.php'.($readdir != $destdir ? '.new' : '');
|
||||||
if (! dol_is_file($pathoffiletoeditsrc))
|
if (! dol_is_file($pathoffiletoeditsrc))
|
||||||
@ -65,10 +77,28 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir='
|
|||||||
// Edit class files
|
// Edit class files
|
||||||
$contentclass = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r');
|
$contentclass = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r');
|
||||||
|
|
||||||
|
// Update ->fields (add or remove entries)
|
||||||
|
if (count($object->fields))
|
||||||
|
{
|
||||||
|
if (is_array($addfieldentry) && count($addfieldentry))
|
||||||
|
{
|
||||||
|
$name=$addfieldentry['name'];
|
||||||
|
unset($addfieldentry['name']);
|
||||||
|
$object->fields[$name]=$addfieldentry;
|
||||||
|
}
|
||||||
|
if (! empty($delfieldentry))
|
||||||
|
{
|
||||||
|
$name=$delfieldentry;
|
||||||
|
unset($object->fields[$name]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dol_sort_array($object->fields, 'position');
|
||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
$texttoinsert = '// BEGIN MODULEBUILDER PROPERTIES'."\n";
|
$texttoinsert = '// BEGIN MODULEBUILDER PROPERTIES'."\n";
|
||||||
$texttoinsert.= "\t".'/**'."\n";
|
$texttoinsert.= "\t".'/**'."\n";
|
||||||
$texttoinsert.= "\t".' * @var array Array with all fields and their property'."\n";
|
$texttoinsert.= "\t".' * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor.'."\n";
|
||||||
$texttoinsert.= "\t".' */'."\n";
|
$texttoinsert.= "\t".' */'."\n";
|
||||||
$texttoinsert.= "\t".'public $fields=array('."\n";
|
$texttoinsert.= "\t".'public $fields=array('."\n";
|
||||||
|
|
||||||
@ -77,29 +107,31 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir='
|
|||||||
foreach($object->fields as $key => $val)
|
foreach($object->fields as $key => $val)
|
||||||
{
|
{
|
||||||
$i++;
|
$i++;
|
||||||
$typephp='';
|
|
||||||
$texttoinsert.= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',";
|
$texttoinsert.= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',";
|
||||||
$texttoinsert.= " 'visible'=>".($val['visible']?$val['visible']:0).",";
|
$texttoinsert.= " 'visible'=>".($val['visible']!=''?$val['visible']:-1).",";
|
||||||
$texttoinsert.= " 'enabled'=>".($val['enabled']?$val['enabled']:0).",";
|
$texttoinsert.= " 'enabled'=>".($val['enabled']!=''?$val['enabled']:1).",";
|
||||||
if ($val['position']) $texttoinsert.= " 'position'=>".$val['position'].",";
|
$texttoinsert.= " 'position'=>".($val['position']!=''?$val['position']:50).",";
|
||||||
if ($val['notnull']) $texttoinsert.= " 'notnull'=>".$val['notnull'].",";
|
$texttoinsert.= " 'notnull'=>".($val['notnull']!=''?$val['notnull']:-1).",";
|
||||||
if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].",";
|
if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].",";
|
||||||
if ($val['searchall']) $texttoinsert.= " 'searchall'=>".$val['searchall'].",";
|
if ($val['searchall']) $texttoinsert.= " 'searchall'=>".$val['searchall'].",";
|
||||||
if ($val['comment']) $texttoinsert.= " 'comment'=>'".$val['comment']."',";
|
if ($val['comment']) $texttoinsert.= " 'comment'=>'".$val['comment']."',";
|
||||||
|
if ($val['isameasure']) $texttoinsert.= " 'isameasure'=>'".$val['isameasure']."',";
|
||||||
|
if ($val['help']) $texttoinsert.= " 'help'=>'".$val['help']."',";
|
||||||
$texttoinsert.= "),\n";
|
$texttoinsert.= "),\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$texttoinsert.= "\t".');'."\n";
|
|
||||||
|
|
||||||
$texttoinsert.= "\n";
|
$texttoinsert.= "\t".');'."\n";
|
||||||
|
|
||||||
if (count($object->fields))
|
if (count($object->fields))
|
||||||
{
|
{
|
||||||
foreach($object->fields as $key => $val)
|
$typetotypephp=array('integer'=>'integer', 'varchar'=>'string');
|
||||||
|
|
||||||
|
foreach($object->fields as $key => $val)
|
||||||
{
|
{
|
||||||
$i++;
|
$i++;
|
||||||
$typephp='';
|
//$typephp=$typetotypephp[$val['type']];
|
||||||
$texttoinsert.= "\t".'public $'.$key.$typephp.";";
|
$texttoinsert.= "\t".'public $'.$key.";";
|
||||||
//if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY';
|
//if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY';
|
||||||
//if ($key == 'entity') $texttoinsert.= ' DEFAULT 1';
|
//if ($key == 'entity') $texttoinsert.= ' DEFAULT 1';
|
||||||
//$texttoinsert.= ($val['notnull']?' NOT NULL':'');
|
//$texttoinsert.= ($val['notnull']?' NOT NULL':'');
|
||||||
@ -110,6 +142,8 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir='
|
|||||||
|
|
||||||
$texttoinsert.= "\t".'// END MODULEBUILDER PROPERTIES';
|
$texttoinsert.= "\t".'// END MODULEBUILDER PROPERTIES';
|
||||||
|
|
||||||
|
//print($texttoinsert);exit;
|
||||||
|
|
||||||
$contentclass = preg_replace('/\/\/ BEGIN MODULEBUILDER PROPERTIES.*END MODULEBUILDER PROPERTIES/ims', $texttoinsert, $contentclass);
|
$contentclass = preg_replace('/\/\/ BEGIN MODULEBUILDER PROPERTIES.*END MODULEBUILDER PROPERTIES/ims', $texttoinsert, $contentclass);
|
||||||
|
|
||||||
dol_mkdir(dirname($pathoffiletoedittarget));
|
dol_mkdir(dirname($pathoffiletoedittarget));
|
||||||
@ -182,7 +216,7 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='')
|
|||||||
$texttoinsert.= "\t".$key." ".$val['type'];
|
$texttoinsert.= "\t".$key." ".$val['type'];
|
||||||
if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY';
|
if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY';
|
||||||
if ($key == 'entity') $texttoinsert.= ' DEFAULT 1';
|
if ($key == 'entity') $texttoinsert.= ' DEFAULT 1';
|
||||||
$texttoinsert.= ($val['notnull']?' NOT NULL':'');
|
$texttoinsert.= (($val['notnull'] > 0)?' NOT NULL':'');
|
||||||
if ($i < count($object->fields)) $texttoinsert.=", ";
|
if ($i < count($object->fields)) $texttoinsert.=", ";
|
||||||
$texttoinsert.= "\n";
|
$texttoinsert.= "\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2006-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2006-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||||
* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2017 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
|
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
|
||||||
* Copyright (C) 2012 Cédric Salvador <csalvador@gpcsolutions.fr>
|
* Copyright (C) 2012 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||||
* Copyright (C) 2012-2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2012-2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
@ -1470,7 +1470,7 @@ function pdf_getlineref_supplier($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
*/
|
*/
|
||||||
function pdf_getlinevatrate($object,$i,$outputlangs,$hidedetails=0)
|
function pdf_getlinevatrate($object,$i,$outputlangs,$hidedetails=0)
|
||||||
{
|
{
|
||||||
global $hookmanager;
|
global $conf, $hookmanager, $mysoc;
|
||||||
|
|
||||||
$result='';
|
$result='';
|
||||||
$reshook=0;
|
$reshook=0;
|
||||||
@ -1487,7 +1487,32 @@ function pdf_getlinevatrate($object,$i,$outputlangs,$hidedetails=0)
|
|||||||
}
|
}
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
if (empty($hidedetails) || $hidedetails > 1) $result.=vatrate($object->lines[$i]->tva_tx,1,$object->lines[$i]->info_bits,1);
|
if (empty($hidedetails) || $hidedetails > 1)
|
||||||
|
{
|
||||||
|
$tmpresult='';
|
||||||
|
|
||||||
|
$tmpresult.=vatrate($object->lines[$i]->tva_tx, 1, $object->lines[$i]->info_bits, 1);
|
||||||
|
if (empty($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX))
|
||||||
|
{
|
||||||
|
if ($object->lines[$i]->total_localtax1 != 0)
|
||||||
|
{
|
||||||
|
if (preg_replace('/[\s0%]/','',$tmpresult)) $tmpresult.='/';
|
||||||
|
else $tmpresult='';
|
||||||
|
$tmpresult.=vatrate(abs($object->lines[$i]->localtax1_tx),1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (empty($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX))
|
||||||
|
{
|
||||||
|
if ($object->lines[$i]->total_localtax2 != 0)
|
||||||
|
{
|
||||||
|
if (preg_replace('/[\s0%]/','',$tmpresult)) $tmpresult.='/';
|
||||||
|
else $tmpresult='';
|
||||||
|
$tmpresult.=vatrate(abs($object->lines[$i]->localtax2_tx),1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result.=$tmpresult;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,10 +24,10 @@
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show header of a VAT report
|
* Show header of a report
|
||||||
*
|
*
|
||||||
* @param string $nom Name of report
|
* @param string $reportname Name of report
|
||||||
* @param string $variante Link for alternate report
|
* @param string $notused Not used
|
||||||
* @param string $period Period of report
|
* @param string $period Period of report
|
||||||
* @param string $periodlink Link to switch period
|
* @param string $periodlink Link to switch period
|
||||||
* @param string $description Description
|
* @param string $description Description
|
||||||
@ -35,17 +35,17 @@
|
|||||||
* @param string $exportlink Link for export or ''
|
* @param string $exportlink Link for export or ''
|
||||||
* @param array $moreparam Array with list of params to add into form
|
* @param array $moreparam Array with list of params to add into form
|
||||||
* @param string $calcmode Calculation mode
|
* @param string $calcmode Calculation mode
|
||||||
* @param string $varlink Add a variable into the address of the page
|
* @param string $varlink Add a variable into the address of the page
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='', $varlink='')
|
function report_header($reportname,$notused,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='', $varlink='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
if (empty($hselected)) $hselected='report';
|
if (empty($hselected)) $hselected='report';
|
||||||
|
|
||||||
print "\n\n<!-- debut cartouche rapport -->\n";
|
print "\n\n<!-- start banner of report -->\n";
|
||||||
|
|
||||||
if(! empty($varlink)) $varlink = '?'.$varlink;
|
if(! empty($varlink)) $varlink = '?'.$varlink;
|
||||||
|
|
||||||
$h=0;
|
$h=0;
|
||||||
@ -53,23 +53,25 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
|
|||||||
$head[$h][1] = $langs->trans("Report");
|
$head[$h][1] = $langs->trans("Report");
|
||||||
$head[$h][2] = 'report';
|
$head[$h][2] = 'report';
|
||||||
|
|
||||||
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].$varlink.'">';
|
||||||
|
|
||||||
dol_fiche_head($head, 'report');
|
dol_fiche_head($head, 'report');
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].$varlink.'">';
|
|
||||||
foreach($moreparam as $key => $value)
|
foreach($moreparam as $key => $value)
|
||||||
{
|
{
|
||||||
print '<input type="hidden" name="'.$key.'" value="'.$value.'">';
|
print '<input type="hidden" name="'.$key.'" value="'.$value.'">';
|
||||||
}
|
}
|
||||||
print '<table width="100%" class="border">';
|
print '<table width="100%" class="border">';
|
||||||
|
|
||||||
|
$variante = ($periodlink || $exportlink);
|
||||||
|
|
||||||
// Ligne de titre
|
// Ligne de titre
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td width="110">'.$langs->trans("ReportName").'</td>';
|
print '<td width="110">'.$langs->trans("ReportName").'</td>';
|
||||||
if (! $variantexxx) print '<td colspan="3">';
|
print '<td>';
|
||||||
else print '<td>';
|
print $reportname;
|
||||||
print $nom;
|
|
||||||
if ($variantexxx) print '</td><td colspan="2">'.$variantexxx;
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
if ($variante) print '<td></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Calculation mode
|
// Calculation mode
|
||||||
@ -77,10 +79,9 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
|
|||||||
{
|
{
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td width="110">'.$langs->trans("CalculationMode").'</td>';
|
print '<td width="110">'.$langs->trans("CalculationMode").'</td>';
|
||||||
if (! $variante) print '<td colspan="3">';
|
print '<td>';
|
||||||
else print '<td>';
|
|
||||||
print $calcmode;
|
print $calcmode;
|
||||||
if ($variante) print '</td><td colspan="2">'.$variante;
|
if ($variante) print '<td></td>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@ -88,35 +89,37 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
|
|||||||
// Ligne de la periode d'analyse du rapport
|
// Ligne de la periode d'analyse du rapport
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans("ReportPeriod").'</td>';
|
print '<td>'.$langs->trans("ReportPeriod").'</td>';
|
||||||
if (! $periodlink) print '<td colspan="3">';
|
print '<td>';
|
||||||
else print '<td>';
|
|
||||||
if ($period) print $period;
|
if ($period) print $period;
|
||||||
if ($periodlink) print '</td><td colspan="2">'.$periodlink;
|
if ($variante) print '<td>'.$periodlink.'</td>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Ligne de description
|
// Ligne de description
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans("ReportDescription").'</td>';
|
print '<td>'.$langs->trans("ReportDescription").'</td>';
|
||||||
print '<td colspan="3">'.$description.'</td>';
|
print '<td>'.$description.'</td>';
|
||||||
|
if ($variante) print '<td></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Ligne d'export
|
// Ligne d'export
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans("GeneratedOn").'</td>';
|
print '<td>'.$langs->trans("GeneratedOn").'</td>';
|
||||||
if (! $exportlink) print '<td colspan="3">';
|
print '<td>';
|
||||||
else print '<td>';
|
print dol_print_date($builddate, 'dayhour');
|
||||||
print dol_print_date($builddate);
|
print '</td>';
|
||||||
if ($exportlink) print '</td><td>'.$langs->trans("Export").'</td><td>'.$exportlink;
|
if ($variante) print '<td>'.($exportlink ? $langs->trans("Export").': '.$exportlink : '').'</td>';
|
||||||
print '</td></tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br><div class="center"><input type="submit" class="button" name="submit" value="'.$langs->trans("Refresh").'"></div>';
|
|
||||||
print '</form>';
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
print "\n<!-- fin cartouche rapport -->\n\n";
|
print '<div class="center"><input type="submit" class="button" name="submit" value="'.$langs->trans("Refresh").'"></div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
print "\n<!-- end banner of report -->\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -184,3 +184,96 @@ function dolIncludeHtmlContent($contentfile)
|
|||||||
$includehtmlcontentopened--;
|
$includehtmlcontentopened--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a zip with all data of web site.
|
||||||
|
*
|
||||||
|
* @param Website $website Object website
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function exportWebSite($website)
|
||||||
|
{
|
||||||
|
global $db, $conf;
|
||||||
|
|
||||||
|
dol_mkdir($conf->websites->dir_temp);
|
||||||
|
$srcdir = $conf->websites->dir_output.'/'.$website->ref;
|
||||||
|
$destdir = $conf->websites->dir_temp.'/'.$website->ref;
|
||||||
|
|
||||||
|
$arrayreplacement=array();
|
||||||
|
|
||||||
|
dolCopyDir($srcdir, $destdir, 0, 1, $arrayreplacement);
|
||||||
|
|
||||||
|
$srcdir = DOL_DATA_ROOT.'/medias/images/'.$website->ref;
|
||||||
|
$destdir = $conf->websites->dir_temp.'/'.$website->ref.'/medias/images/'.$website->ref;
|
||||||
|
|
||||||
|
dolCopyDir($srcdir, $destdir, 0, 1, $arrayreplacement);
|
||||||
|
|
||||||
|
// Build sql file
|
||||||
|
dol_mkdir($conf->websites->dir_temp.'/'.$website->ref.'/export');
|
||||||
|
|
||||||
|
$filesql = $conf->websites->dir_temp.'/'.$website->ref.'/export/pages.sql';
|
||||||
|
$fp = fopen($filesql,"w");
|
||||||
|
|
||||||
|
$objectpages = new WebsitePage($db);
|
||||||
|
$listofpages = $objectpages->fetchAll($website->id);
|
||||||
|
|
||||||
|
// Assign ->newid and ->newfk_page
|
||||||
|
$i=1;
|
||||||
|
foreach($listofpages as $pageid => $objectpageold)
|
||||||
|
{
|
||||||
|
$objectpageold->newid=$i;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$i=1;
|
||||||
|
foreach($listofpages as $pageid => $objectpageold)
|
||||||
|
{
|
||||||
|
// Search newid
|
||||||
|
$newfk_page=0;
|
||||||
|
foreach($listofpages as $pageid2 => $objectpageold2)
|
||||||
|
{
|
||||||
|
if ($pageid2 == $objectpageold->fk_page)
|
||||||
|
{
|
||||||
|
$newfk_page = $objectpageold2->newid;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$objectpageold->newfk_page=$newfk_page;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
foreach($listofpages as $pageid => $objectpageold)
|
||||||
|
{
|
||||||
|
$line = 'INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, title, description, keyword, status, date_creation, tms, lang, import_key, grabbed_from, content)';
|
||||||
|
$line.= " VALUES(";
|
||||||
|
$line.= $objectpageold->newid."+__MAXROWID__, ";
|
||||||
|
$line.= ($objectpageold->newfk_page ? $db->escape($objectpageold->newfk_page)."+__MAXROWID__" : "null").", ";
|
||||||
|
$line.= "__WEBSITE_ID__, ";
|
||||||
|
$line.= "'".$db->escape($objectpageold->pageurl)."', ";
|
||||||
|
$line.= "'".$db->escape($objectpageold->title)."', ";
|
||||||
|
$line.= "'".$db->escape($objectpageold->description)."', ";
|
||||||
|
$line.= "'".$db->escape($objectpageold->keyword)."', ";
|
||||||
|
$line.= "'".$db->escape($objectpageold->status)."', ";
|
||||||
|
$line.= "'".$db->idate($objectpageold->date_creation)."', ";
|
||||||
|
$line.= "'".$db->idate($objectpageold->date_modification)."', ";
|
||||||
|
$line.= "'".$db->escape($objectpageold->lang)."', ";
|
||||||
|
$line.= ($objectpageold->import_key ? "'".$db->escape($objectpageold->import_key)."'" : "null").", ";
|
||||||
|
$line.= "'".$db->escape($objectpageold->grabbed_from)."', ";
|
||||||
|
$line.= "'".$db->escape($objectpageold->content)."'";
|
||||||
|
$line.= ");";
|
||||||
|
$line.= "\n";
|
||||||
|
fputs($fp, $line);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose($fp);
|
||||||
|
if (! empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($filesql, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
|
// Build zip file
|
||||||
|
$filedir = $conf->websites->dir_temp.'/'.$website->ref;
|
||||||
|
$fileglob = $conf->websites->dir_temp.'/'.$website->ref.'/export/'.$website->ref.'_export_*.zip';
|
||||||
|
$filename = $conf->websites->dir_temp.'/'.$website->ref.'/export/'.$website->ref.'_export_'.dol_print_date(dol_now(),'dayhourlog').'.zip';
|
||||||
|
|
||||||
|
dol_delete_file($fileglob, 0);
|
||||||
|
dol_compress_file($filedir, $filename, 'zip');
|
||||||
|
|
||||||
|
return $filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -249,10 +249,10 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
-- Balance
|
-- Balance
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2435__+MAX_llx_menu__, 'accountancy', 'balance', 2400__+MAX_llx_menu__, '/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_balance', 'AccountBalance', 1, 'accountancy', '$user->rights->accounting->mouvements->lire', '', 0, 16, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2435__+MAX_llx_menu__, 'accountancy', 'balance', 2400__+MAX_llx_menu__, '/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_balance', 'AccountBalance', 1, 'accountancy', '$user->rights->accounting->mouvements->lire', '', 0, 16, __ENTITY__);
|
||||||
-- Reports
|
-- Reports
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2440__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2400__+MAX_llx_menu__, '/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy_report', 'Reportings', 1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 17, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2440__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2400__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'Reportings', 1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 17, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2441__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2440__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ReportInOut', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 19, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2441__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2440__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ReportInOut', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 18, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2442__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2441__+MAX_llx_menu__, '/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByAccounts', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 18, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2443__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2441__+MAX_llx_menu__, '/compta/resultat/clientfourn.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByPredefinedAccountGroups', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 19, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2443__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2441__+MAX_llx_menu__, '/compta/resultat/clientfourn.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByCompanies', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 20, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2442__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2441__+MAX_llx_menu__, '/compta/resultat/result.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByPersonalizedAccountGroups', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 20, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2444__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2440__+MAX_llx_menu__, '/compta/stats/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ReportTurnover', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 21, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2444__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2440__+MAX_llx_menu__, '/compta/stats/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ReportTurnover', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 21, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2445__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2444__+MAX_llx_menu__, '/compta/stats/casoc.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByCompanies', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 22, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2445__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2444__+MAX_llx_menu__, '/compta/stats/casoc.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByCompanies', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 22, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2446__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2444__+MAX_llx_menu__, '/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByUsers', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 23, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2446__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2444__+MAX_llx_menu__, '/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByUsers', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 23, __ENTITY__);
|
||||||
@ -292,16 +292,16 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3602__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3602__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3603__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/stats/index.php?leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3603__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/stats/index.php?leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
|
||||||
|
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?leftmenu=projects&action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?leftmenu=projects&action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3704__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/stats/index.php?leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS', __HANDLER__, 'left', 3704__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/stats/index.php?leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 4, __ENTITY__);
|
||||||
|
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3400__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/perweek.php?leftmenu=projects', 'NewTimeSpent', 0, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS', __HANDLER__, 'left', 3400__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/perweek.php?leftmenu=projects', 'NewTimeSpent', 0, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
|
||||||
|
|
||||||
-- Project - Categories
|
-- Project - Categories
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3804__+MAX_llx_menu__, 'project', 'cat', 3__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=6', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3804__+MAX_llx_menu__, 'project', 'cat', 7__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&type=6', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3805__+MAX_llx_menu__, 'project', '', 3200__+MAX_llx_menu__, '/categories/card.php?action=create&type=6', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3805__+MAX_llx_menu__, 'project', '', 3804__+MAX_llx_menu__, '/categories/card.php?action=create&type=6', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
||||||
-- Tools
|
-- Tools
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3900__+MAX_llx_menu__, 'tools', 'mailing', 8__+MAX_llx_menu__, '/comm/mailing/index.php?leftmenu=mailing', 'EMailings', 0, 'mails', '$user->rights->mailing->lire', '', 0, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3900__+MAX_llx_menu__, 'tools', 'mailing', 8__+MAX_llx_menu__, '/comm/mailing/index.php?leftmenu=mailing', 'EMailings', 0, 'mails', '$user->rights->mailing->lire', '', 0, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3901__+MAX_llx_menu__, 'tools', '', 3900__+MAX_llx_menu__, '/comm/mailing/card.php?leftmenu=mailing&action=create', 'NewMailing', 1, 'mails', '$user->rights->mailing->creer', '', 0, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3901__+MAX_llx_menu__, 'tools', '', 3900__+MAX_llx_menu__, '/comm/mailing/card.php?leftmenu=mailing&action=create', 'NewMailing', 1, 'mails', '$user->rights->mailing->creer', '', 0, 0, __ENTITY__);
|
||||||
|
|||||||
@ -1118,11 +1118,11 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
// Reports
|
// Reports
|
||||||
$langs->load("compta");
|
$langs->load("compta");
|
||||||
|
|
||||||
$newmenu->add("/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy_report",$langs->trans("Reportings"),1,$user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca');
|
$newmenu->add("/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report",$langs->trans("Reportings"),1,$user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca');
|
||||||
|
|
||||||
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report",$langs->trans("ReportInOut"),2,$user->rights->accounting->comptarapport->lire);
|
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report",$langs->trans("ReportInOut"),2,$user->rights->accounting->comptarapport->lire);
|
||||||
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/accountancy/report/result.php?leftmenu=accountancy_report",$langs->trans("ByAccounts"),3,$user->rights->accounting->comptarapport->lire);
|
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report",$langs->trans("ByPredefinedAccountGroups"),3,$user->rights->accounting->comptarapport->lire);
|
||||||
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report",$langs->trans("ByCompanies"),3,$user->rights->accounting->comptarapport->lire);
|
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report",$langs->trans("ByPersonalizedAccountGroups"),3,$user->rights->accounting->comptarapport->lire);
|
||||||
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report",$langs->trans("ReportTurnover"),2,$user->rights->accounting->comptarapport->lire);
|
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report",$langs->trans("ReportTurnover"),2,$user->rights->accounting->comptarapport->lire);
|
||||||
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report",$langs->trans("ByCompanies"),3,$user->rights->accounting->comptarapport->lire);
|
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report",$langs->trans("ByCompanies"),3,$user->rights->accounting->comptarapport->lire);
|
||||||
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report",$langs->trans("ByUsers"),3,$user->rights->accounting->comptarapport->lire);
|
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report",$langs->trans("ByUsers"),3,$user->rights->accounting->comptarapport->lire);
|
||||||
|
|||||||
@ -950,7 +950,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$tvakey=str_replace('*','',$tvakey);
|
$tvakey=str_replace('*','',$tvakey);
|
||||||
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
|
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
|
||||||
}
|
}
|
||||||
$totalvat =$outputlangs->transnoentities("TotalVAT").' ';
|
$totalvat =$outputlangs->transcountrynoentities("TotalVAT",$mysoc->country_code).' ';
|
||||||
$totalvat.=vatrate($tvakey,1).$tvacompl;
|
$totalvat.=vatrate($tvakey,1).$tvacompl;
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
|
||||||
|
|
||||||
@ -1032,7 +1032,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$pdf->SetFillColor(224,224,224);
|
$pdf->SetFillColor(224,224,224);
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
|
||||||
|
|
||||||
$total_ttc = ($conf->multicurrency->enabled && $object->multiccurency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
|
$total_ttc = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
|
||||||
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc, 0, $outputlangs), $useborder, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc, 0, $outputlangs), $useborder, 'R', 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -88,9 +88,12 @@ class mod_commande_saphir extends ModeleNumRefCommandes
|
|||||||
global $conf,$langs,$mysoc;
|
global $conf,$langs,$mysoc;
|
||||||
|
|
||||||
$old_code_client=$mysoc->code_client;
|
$old_code_client=$mysoc->code_client;
|
||||||
|
$old_code_type=$mysoc->typent_code;
|
||||||
$mysoc->code_client='CCCCCCCCCC';
|
$mysoc->code_client='CCCCCCCCCC';
|
||||||
|
$mysoc->typent_code='TTTTTTTTTT';
|
||||||
$numExample = $this->getNextValue($mysoc,'');
|
$numExample = $this->getNextValue($mysoc,'');
|
||||||
$mysoc->code_client=$old_code_client;
|
$mysoc->code_client=$old_code_client;
|
||||||
|
$mysoc->typent_code=$old_code_type;
|
||||||
|
|
||||||
if (! $numExample)
|
if (! $numExample)
|
||||||
{
|
{
|
||||||
@ -121,7 +124,9 @@ class mod_commande_saphir extends ModeleNumRefCommandes
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$numFinal=get_next_value($db,$mask,'commande','ref','',$objsoc,$object->date);
|
$date = ($object->date_commande ? $object->date_commande : $object->date);
|
||||||
|
|
||||||
|
$numFinal=get_next_value($db,$mask,'commande','ref','',$objsoc,$date);
|
||||||
|
|
||||||
return $numFinal;
|
return $numFinal;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,9 +79,12 @@ class mod_expedition_ribera extends ModelNumRefExpedition
|
|||||||
global $conf,$langs,$mysoc;
|
global $conf,$langs,$mysoc;
|
||||||
|
|
||||||
$old_code_client=$mysoc->code_client;
|
$old_code_client=$mysoc->code_client;
|
||||||
|
$old_code_type=$mysoc->typent_code;
|
||||||
$mysoc->code_client='CCCCCCCCCC';
|
$mysoc->code_client='CCCCCCCCCC';
|
||||||
|
$mysoc->typent_code='TTTTTTTTTT';
|
||||||
$numExample = $this->getNextValue($mysoc,'');
|
$numExample = $this->getNextValue($mysoc,'');
|
||||||
$mysoc->code_client=$old_code_client;
|
$mysoc->code_client=$old_code_client;
|
||||||
|
$mysoc->typent_code=$old_code_type;
|
||||||
|
|
||||||
if (! $numExample)
|
if (! $numExample)
|
||||||
{
|
{
|
||||||
@ -111,7 +114,9 @@ class mod_expedition_ribera extends ModelNumRefExpedition
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$numFinal=get_next_value($db,$mask,'expedition','ref','',$objsoc->code_client,$shipment->date_expedition);
|
$date = $shipment->date_expedition;
|
||||||
|
|
||||||
|
$numFinal=get_next_value($db,$mask,'expedition','ref','',$objsoc,$date);
|
||||||
|
|
||||||
return $numFinal;
|
return $numFinal;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1178,7 +1178,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
$tvakey=str_replace('*','',$tvakey);
|
$tvakey=str_replace('*','',$tvakey);
|
||||||
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
|
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
|
||||||
}
|
}
|
||||||
$totalvat =$outputlangs->transnoentities("TotalVAT").' ';
|
$totalvat =$outputlangs->transcountrynoentities("TotalVAT",$mysoc->country_code).' ';
|
||||||
$totalvat.=vatrate($tvakey,1).$tvacompl;
|
$totalvat.=vatrate($tvakey,1).$tvacompl;
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
|
||||||
|
|
||||||
@ -1272,7 +1272,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
$pdf->SetFillColor(224,224,224);
|
$pdf->SetFillColor(224,224,224);
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
|
||||||
|
|
||||||
$total_ttc = ($conf->multicurrency->enabled && $object->multiccurency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
|
$total_ttc = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
|
||||||
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($sign * $total_ttc, 0, $outputlangs), $useborder, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($sign * $total_ttc, 0, $outputlangs), $useborder, 'R', 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -97,8 +97,8 @@ class modCron extends DolibarrModules
|
|||||||
|
|
||||||
// Cronjobs
|
// Cronjobs
|
||||||
$this->cronjobs = array(
|
$this->cronjobs = array(
|
||||||
0=>array('label'=>'PurgeDeleteTemporaryFilesShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'purgeFiles', 'parameters'=>'', 'comment'=>'PurgeDeleteTemporaryFiles', 'frequency'=>2, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>10, 'status'=>1, 'test'=>true),
|
0=>array('label'=>'PurgeDeleteTemporaryFilesShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'purgeFiles', 'parameters'=>'', 'comment'=>'PurgeDeleteTemporaryFiles', 'frequency'=>2, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>50, 'status'=>1, 'test'=>true),
|
||||||
1=>array('label'=>'MakeLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'dumpDatabase', 'parameters'=>'none,auto,1,auto,10', 'comment'=>'MakeLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>20, 'status'=>0, 'test'=>in_array($db->type, array('mysql','mysqli'))),
|
1=>array('label'=>'MakeLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'dumpDatabase', 'parameters'=>'none,auto,1,auto,10', 'comment'=>'MakeLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>90, 'status'=>0, 'test'=>in_array($db->type, array('mysql','mysqli'))),
|
||||||
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24)
|
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -117,15 +117,9 @@ class modFacture extends DolibarrModules
|
|||||||
|
|
||||||
// Cronjobs
|
// Cronjobs
|
||||||
$this->cronjobs = array(
|
$this->cronjobs = array(
|
||||||
0=>array('label'=>'RecurringInvoices', 'jobtype'=>'method', 'class'=>'compta/facture/class/facture-rec.class.php', 'objectname'=>'FactureRec', 'method'=>'createRecurringInvoices', 'parameters'=>'', 'comment'=>'Generate recurring invoices', 'frequency'=>1, 'unitfrequency'=>3600*24),
|
0=>array('label'=>'RecurringInvoices', 'jobtype'=>'method', 'class'=>'compta/facture/class/facture-rec.class.php', 'objectname'=>'FactureRec', 'method'=>'createRecurringInvoices', 'parameters'=>'', 'comment'=>'Generate recurring invoices', 'frequency'=>1, 'unitfrequency'=>3600*24, 'priority'=>50, 'status'=>1, 'test'=>true),
|
||||||
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>3600, 'unitfrequency'=>3600)
|
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>3600, 'unitfrequency'=>3600)
|
||||||
);
|
);
|
||||||
// List of cron jobs entries to add
|
|
||||||
// Example:
|
|
||||||
// $this->cronjobs=array(
|
|
||||||
// 0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600),
|
|
||||||
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600)
|
|
||||||
// );
|
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
$this->rights = array();
|
$this->rights = array();
|
||||||
|
|||||||
@ -99,13 +99,6 @@ class modGravatar extends DolibarrModules
|
|||||||
//$r++;
|
//$r++;
|
||||||
|
|
||||||
|
|
||||||
// Cronjobs
|
|
||||||
$this->cronjobs = array(); // List of cron jobs entries to add
|
|
||||||
// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>3600, 'unitfrequency'=>3600),
|
|
||||||
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>3600, 'unitfrequency'=>3600)
|
|
||||||
// );
|
|
||||||
$r=0;
|
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
$this->rights = array(); // Permission array used by this module
|
$this->rights = array(); // Permission array used by this module
|
||||||
$r=0;
|
$r=0;
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2016 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2016 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2016 Pierre-Henry Favre <phf@atm-consulting.fr>
|
* Copyright (C) 2016 Pierre-Henry Favre <phf@atm-consulting.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
@ -60,7 +60,7 @@ class modMultiCurrency extends DolibarrModules
|
|||||||
$this->name = preg_replace('/^mod/i','',get_class($this));
|
$this->name = preg_replace('/^mod/i','',get_class($this));
|
||||||
// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
|
// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
|
||||||
$this->description = "Module to enter elements with a foreign currency";
|
$this->description = "Module to enter elements with a foreign currency";
|
||||||
|
|
||||||
// Possible values for version are: 'development', 'experimental', 'dolibarr' or 'dolibarr_deprecated' or version
|
// Possible values for version are: 'development', 'experimental', 'dolibarr' or 'dolibarr_deprecated' or version
|
||||||
$this->version = 'dolibarr';
|
$this->version = 'dolibarr';
|
||||||
// Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
|
// Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
|
||||||
@ -175,12 +175,6 @@ class modMultiCurrency extends DolibarrModules
|
|||||||
// 2=>array('file'=>'myboxc.php@multicurrency','note'=>'')
|
// 2=>array('file'=>'myboxc.php@multicurrency','note'=>'')
|
||||||
//);
|
//);
|
||||||
|
|
||||||
// Cronjobs
|
|
||||||
$this->cronjobs = array(); // List of cron jobs entries to add
|
|
||||||
// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>3600, 'unitfrequency'=>3600),
|
|
||||||
// 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>3600, 'unitfrequency'=>3600)
|
|
||||||
// );
|
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
$this->rights = array(); // Permission array used by this module
|
$this->rights = array(); // Permission array used by this module
|
||||||
$r=0;
|
$r=0;
|
||||||
@ -266,12 +260,12 @@ class modMultiCurrency extends DolibarrModules
|
|||||||
|
|
||||||
//$this->_load_tables('/multicurrency/sql/');
|
//$this->_load_tables('/multicurrency/sql/');
|
||||||
$res = $this->_init($sql, $options);
|
$res = $this->_init($sql, $options);
|
||||||
|
|
||||||
if ($res)
|
if ($res)
|
||||||
{
|
{
|
||||||
$this->createFirstCurrency();
|
$this->createFirstCurrency();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,22 +287,22 @@ class modMultiCurrency extends DolibarrModules
|
|||||||
/**
|
/**
|
||||||
* Function called when module is enabled
|
* Function called when module is enabled
|
||||||
* Create the currency from general setting
|
* Create the currency from general setting
|
||||||
*
|
*
|
||||||
* @return int 1 if OK, 0 if KO
|
* @return int 1 if OK, 0 if KO
|
||||||
*/
|
*/
|
||||||
private function createFirstCurrency()
|
private function createFirstCurrency()
|
||||||
{
|
{
|
||||||
global $conf,$user,$langs;
|
global $conf,$user,$langs;
|
||||||
|
|
||||||
if (!MultiCurrency::checkCodeAlreadyExists($conf->currency))
|
if (!MultiCurrency::checkCodeAlreadyExists($conf->currency))
|
||||||
{
|
{
|
||||||
$langs->loadCacheCurrencies('');
|
$langs->loadCacheCurrencies('');
|
||||||
|
|
||||||
$multicurrency = new MultiCurrency($this->db);
|
$multicurrency = new MultiCurrency($this->db);
|
||||||
$multicurrency->code = $conf->currency;
|
$multicurrency->code = $conf->currency;
|
||||||
$multicurrency->name = $langs->cache_currencies[$conf->currency]['label'].' ('.$langs->getCurrencySymbol($conf->currency).')';
|
$multicurrency->name = $langs->cache_currencies[$conf->currency]['label'].' ('.$langs->getCurrencySymbol($conf->currency).')';
|
||||||
$r = $multicurrency->create($user);
|
$r = $multicurrency->create($user);
|
||||||
|
|
||||||
if ($r > 0) $multicurrency->addRate(1);
|
if ($r > 0) $multicurrency->addRate(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1105,7 +1105,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
$tvakey=str_replace('*','',$tvakey);
|
$tvakey=str_replace('*','',$tvakey);
|
||||||
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
|
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
|
||||||
}
|
}
|
||||||
$totalvat =$outputlangs->transnoentities("TotalVAT").' ';
|
$totalvat =$outputlangs->transcountrynoentities("TotalVAT",$mysoc->country_code).' ';
|
||||||
$totalvat.=vatrate($tvakey,1).$tvacompl;
|
$totalvat.=vatrate($tvakey,1).$tvacompl;
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
|
||||||
|
|
||||||
@ -1188,7 +1188,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
$pdf->SetFillColor(224,224,224);
|
$pdf->SetFillColor(224,224,224);
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
|
||||||
|
|
||||||
$total_ttc = ($conf->multicurrency->enabled && $object->multiccurency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
|
$total_ttc = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
|
||||||
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc, 0, $outputlangs), $useborder, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc, 0, $outputlangs), $useborder, 'R', 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -88,9 +88,12 @@ class mod_propale_saphir extends ModeleNumRefPropales
|
|||||||
global $conf,$langs,$mysoc;
|
global $conf,$langs,$mysoc;
|
||||||
|
|
||||||
$old_code_client=$mysoc->code_client;
|
$old_code_client=$mysoc->code_client;
|
||||||
|
$old_code_type=$mysoc->typent_code;
|
||||||
$mysoc->code_client='CCCCCCCCCC';
|
$mysoc->code_client='CCCCCCCCCC';
|
||||||
|
$mysoc->typent_code='TTTTTTTTTT';
|
||||||
$numExample = $this->getNextValue($mysoc,'');
|
$numExample = $this->getNextValue($mysoc,'');
|
||||||
$mysoc->code_client=$old_code_client;
|
$mysoc->code_client=$old_code_client;
|
||||||
|
$mysoc->typent_code=$old_code_type;
|
||||||
|
|
||||||
if (! $numExample)
|
if (! $numExample)
|
||||||
{
|
{
|
||||||
@ -121,8 +124,8 @@ class mod_propale_saphir extends ModeleNumRefPropales
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$date=$propal->datep;
|
$date = $propal->date;
|
||||||
$customercode=$objsoc->code_client;
|
|
||||||
$numFinal=get_next_value($db,$mask,'propal','ref','',$objsoc,$date);
|
$numFinal=get_next_value($db,$mask,'propal','ref','',$objsoc,$date);
|
||||||
|
|
||||||
return $numFinal;
|
return $numFinal;
|
||||||
|
|||||||
@ -622,7 +622,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
|||||||
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
|
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
|
||||||
}
|
}
|
||||||
|
|
||||||
$totalvat =$outputlangs->transnoentities("TotalVAT").' ';
|
$totalvat =$outputlangs->transcountrynoentities("TotalVAT",$mysoc->country_code).' ';
|
||||||
$totalvat.=vatrate($tvakey,1).$tvacompl;
|
$totalvat.=vatrate($tvakey,1).$tvacompl;
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
|
||||||
|
|
||||||
@ -634,7 +634,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
|||||||
{
|
{
|
||||||
$index++;
|
$index++;
|
||||||
$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalVAT"), 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code), 0, 'L', 1);
|
||||||
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($object->total_tva), 0, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($object->total_tva), 0, 'R', 1);
|
||||||
|
|
||||||
@ -725,7 +725,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
|||||||
$pdf->SetFillColor(224,224,224);
|
$pdf->SetFillColor(224,224,224);
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
|
||||||
|
|
||||||
$total_ttc = ($conf->multicurrency->enabled && $object->multiccurency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
|
$total_ttc = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
|
||||||
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc), $useborder, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc), $useborder, 'R', 1);
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user