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

This commit is contained in:
aspangaro 2014-09-09 20:41:19 +02:00
commit 7cc3fe9c95
22 changed files with 371 additions and 263 deletions

View File

@ -16,12 +16,12 @@
*/
/**
* \file htdocs/admin/fiscalyear.php
* \file htdocs/accountancy/admin/fiscalyear.php
* \ingroup fiscal year
* \brief Setup page to configure fiscal year
*/
require '../main.inc.php';
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
@ -55,6 +55,8 @@ $object = new Fiscalyear($db);
* View
*/
$max=100;
$form = new Form($db);
llxHeader('',$title);
@ -68,16 +70,13 @@ $sql.= " FROM ".MAIN_DB_PREFIX."accounting_fiscalyear as f";
$sql.= " WHERE f.entity = ".$conf->entity;
$result = $db->query($sql);
$max=10;
if ($result)
{
$var=false;
$num = $db->num_rows($result);
$i = 0;
// Load attribute_label
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
@ -85,13 +84,13 @@ if ($result)
print '<td>'.$langs->trans("Label").'</td>';
print '<td>'.$langs->trans("DateStart").'</td>';
print '<td>'.$langs->trans("DateEnd").'</td>';
print '<td>'.$langs->trans("Statut").'</td>';
print '<td align="right">'.$langs->trans("Statut").'</td>';
print '</tr>';
if ($num)
{
$fiscalyearstatic=new Fiscalyear($db);
while ($i < $num && $i < $max)
{
$obj = $db->fetch_object($result);
@ -102,7 +101,7 @@ if ($result)
print '<td align="left">'.$obj->label.'</td>';
print '<td align="left">'.dol_print_date($db->jdate($obj->date_start),'day').'</td>';
print '<td align="left">'.dol_print_date($db->jdate($obj->date_end),'day').'</td>';
print '<td>'.$fiscalyearstatic->LibStatut($obj->statut,5).'</td>';
print '<td align="right">'.$fiscalyearstatic->LibStatut($obj->statut,5).'</td>';
print '</tr>';
$var=!$var;
$i++;
@ -113,10 +112,9 @@ if ($result)
{
print '<tr '.$bc[$var].'><td colspan="5">'.$langs->trans("None").'</td></tr>';
}
print '</table>';
print '</form>';
}
}
else
{
dol_print_error($db);

View File

@ -16,11 +16,11 @@
*/
/**
* \file htdocs/admin/fiscalyear_card.php
* \file htdocs/accountancy/admin/fiscalyear_card.php
* \brief Page to show a fiscal year
*/
require '../main.inc.php';
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
@ -51,6 +51,7 @@ $object = new Fiscalyear($db);
$date_start=dol_mktime(0,0,0,GETPOST('fiscalyearmonth','int'),GETPOST('fiscalyearday','int'),GETPOST('fiscalyearyear','int'));
$date_end=dol_mktime(0,0,0,GETPOST('fiscalyearendmonth','int'),GETPOST('fiscalyearendday','int'),GETPOST('fiscalyearendyear','int'));
/*
* Actions
*/
@ -74,9 +75,7 @@ else if ($action == 'add')
if (! GETPOST('cancel','alpha'))
{
$error=0;
$db->begin();
$object->date_start = $date_start;
$object->date_end = $date_end;
$object->label = GETPOST('label','alpha');
@ -96,21 +95,27 @@ else if ($action == 'add')
if (! $error)
{
$id = $object->create($user);
$db->begin();
$id = $object->create($user);
if ($id > 0)
{
$db->commit();
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
exit;
}
else
{
setEventMessage($object->error, 'errors');
{
$db->rollback();
setEventMessage($object->error, 'errors');
$action='create';
}
}
else
{
{
$action='create';
}
}
@ -127,7 +132,7 @@ else if ($action == 'update')
if (! GETPOST('cancel','alpha'))
{
$result = $object->fetch($id);
$object->date_start = empty($_POST["fiscalyear"])?'':$date_start;
$object->date_end = empty($_POST["fiscalyearend"])?'':$date_end;
$object->label = GETPOST('label','alpha');
@ -175,7 +180,7 @@ if ($action == 'create')
// Label
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" size="32" value="' . GETPOST("label") . '"></td></tr>';
// Date start
print '<tr><td class="fieldrequired">'.$langs->trans("DateStart").'</td><td>';
print $form->select_date(($date_start?$date_start:''),'fiscalyear');
@ -185,7 +190,7 @@ if ($action == 'create')
print '<tr><td class="fieldrequired">'.$langs->trans("DateEnd").'</td><td>';
print $form->select_date(($date_end?$date_end:-1),'fiscalyearend');
print '</td></tr>';
// Statut
print '<tr>';
print '<td class="fieldrequired">'.$langs->trans("Statut").'</td>';
@ -207,11 +212,11 @@ else if ($id)
{
$head = fiscalyear_prepare_head($object);
dol_fiche_head($head, 'card', $langs->trans("FiscalYearCard"), 0, 'cron');
if ($action == 'edit')
{
print '<form name="update" action="' . $_SERVER["PHP_SELF"] . '" method="POST">' . "\n";
dol_fiche_head($head, 'card', $langs->trans("FiscalYearCard"), 0, 'cron');
print '<form name="update" action="' . $_SERVER["PHP_SELF"] . '" method="POST">' . "\n";
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="id" value="'.$id.'">';
@ -223,12 +228,12 @@ else if ($id)
print '<td width="20%">'.$langs->trans("Ref").'</td><td>';
print $object->ref;
print '</td></tr>';
// Label
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td>';
print '<input name="label" class="flat" size="32" value="'.$object->label.'">';
print '</td></tr>';
// Date start
print '<tr><td class="fieldrequired">'.$langs->trans("DateStart").'</td><td>';
print $form->select_date($object->date_start?$object->date_start:-1,'fiscalyear');
@ -238,7 +243,7 @@ else if ($id)
print '<tr><td class="fieldrequired">'.$langs->trans("DateEnd").'</td><td>';
print $form->select_date($object->date_end?$object->date_end:-1,'fiscalyearend');
print '</td></tr>';
// Statut
print '<tr><td>'.$langs->trans("Statut").'</td><td>';
print $form->selectarray('statut',$statut2label,$object->statut);
@ -252,7 +257,7 @@ else if ($id)
print '</form>';
print '</div>';
dol_fiche_end();
}
else
{
@ -264,18 +269,20 @@ else if ($id)
print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteFiscalYear"),$langs->trans("ConfirmDeleteFiscalYear"),"confirm_delete");
}
print '<table class="border" width="100%">';
dol_fiche_head($head, 'card', $langs->trans("FiscalYearCard"), 0, 'cron');
print '<table class="border" width="100%">';
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/fiscalyear.php">'.$langs->trans("BackToList").'</a>';
// Ref
print '<tr><td width="25%">'.$langs->trans("Ref").'</td><td width="50%">';
print $object->ref;
print '</td><td width="25%">';
print $linkback;
print '</td></tr>';
// Label
print '<tr><td valign="top">';
print $form->editfieldkey("Label",'label',$object->label,$object,$conf->global->MAIN_EDIT_ALSO_INLINE,'alpha:32');
@ -289,7 +296,7 @@ else if ($id)
print '</td><td colspan="2">';
print $form->editfieldval("Date",'date_start',$object->date_start,$object,$conf->global->MAIN_EDIT_ALSO_INLINE,'datepicker');
print '</td></tr>';
// Date end
print '<tr><td>';
print $form->editfieldkey("Date",'date_end',$object->date_end,$object,$conf->global->MAIN_EDIT_ALSO_INLINE,'datepicker');
@ -300,9 +307,9 @@ else if ($id)
// Statut
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="2">'.$object->getLibStatut(4).'</td></tr>';
print "</table><br>";
print "</table>";
print '</div>';
dol_fiche_end();
/*
* Barre d'actions
@ -311,9 +318,9 @@ else if ($id)
print '<div class="tabsAction">';
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$id.'">'.$langs->trans('Modify').'</a>';
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
print '</div>';
}
}

View File

@ -16,11 +16,11 @@
*/
/**
* \file htdocs/admin/fiscalyear_card.php
* \file htdocs/accountancy/admin/fiscalyear_card.php
* \brief Page to show info of a fiscal year
*/
require '../main.inc.php';
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
@ -43,15 +43,15 @@ if ($id)
$object = new Fiscalyear($db);
$object->fetch($id);
$object->info($id);
$head = fiscalyear_prepare_head($object);
dol_fiche_head($head, 'info', $langs->trans("FiscalYearCard"), 0, 'cron');
print '<table width="100%"><tr><td>';
dol_print_object_info($object);
print '</td></tr></table>';
print '</div>';
}

View File

@ -29,7 +29,7 @@
*/
require '../../main.inc.php';
// Class
require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
@ -118,16 +118,16 @@ if ($result) {
$tabtva = array ();
$tabttc = array ();
$tabcompany = array ();
$num = $db->num_rows($result);
$i = 0;
while ( $i < $num ) {
$obj = $db->fetch_object($result);
// les variables
$cptcli = (! empty($conf->global->COMPTA_ACCOUNT_CUSTOMER)) ? $conf->global->COMPTA_ACCOUNT_CUSTOMER : $langs->trans("CodeNotDef");
$compta_soc = (! empty($obj->code_compta)) ? $obj->code_compta : $cptcli;
$compta_prod = $obj->compte;
if (empty($compta_prod)) {
if ($obj->product_type == 0)
@ -137,7 +137,7 @@ if ($result) {
}
$cpttva = (! empty($conf->global->COMPTA_VAT_ACCOUNT)) ? $conf->global->COMPTA_VAT_ACCOUNT : $langs->trans("CodeNotDef");
$compta_tva = (! empty($obj->account_tva) ? $obj->account_tva : $cpttva);
// Invoice lines
$tabfac[$obj->rowid]["date"] = $obj->df;
$tabfac[$obj->rowid]["ref"] = $obj->facnumber;
@ -156,9 +156,9 @@ if ($result) {
$tabcompany[$obj->rowid] = array (
'id' => $obj->socid,
'name' => $obj->name,
'code_client' => $obj->code_compta
'code_client' => $obj->code_compta
);
$i ++;
}
} else {
@ -172,7 +172,7 @@ if ($result) {
// Bookkeeping Write
if ($action == 'writebookkeeping') {
$now = dol_now();
foreach ( $tabfac as $key => $val ) {
foreach ( $tabttc[$key] as $k => $mt ) {
$bookkeeping = new BookKeeping($db);
@ -190,10 +190,10 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt >= 0) ? $mt : 0;
$bookkeeping->credit = ($mt < 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
$bookkeeping->create();
}
// Product / Service
foreach ( $tabht[$key] as $k => $mt ) {
if ($mt) {
@ -215,12 +215,12 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt < 0) ? $mt : 0;
$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
$bookkeeping->create();
}
}
}
// VAT
// var_dump($tabtva);
foreach ( $tabtva[$key] as $k => $mt ) {
@ -241,7 +241,7 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt < 0) ? $mt : 0;
$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
$bookkeeping->create();
}
}
@ -250,21 +250,21 @@ if ($action == 'writebookkeeping') {
// export csv
if ($action == 'export_csv') {
$sep = $conf->global->ACCOUNTING_SEPARATORCSV;
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=journal_ventes.csv');
$companystatic = new Client($db);
if ($conf->global->ACCOUNTING_MODELCSV == 1) // Modèle Export Cegid Expert
{
foreach ( $tabfac as $key => $val ) {
$companystatic->id = $tabcompany[$key]['id'];
$companystatic->name = $tabcompany[$key]['name'];
$companystatic->client = $tabcompany[$key]['code_client'];
$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
print $date . $sep;
print $conf->global->ACCOUNTING_SELL_JOURNAL . $sep;
print length_accountg($conf->global->COMPTA_ACCOUNT_CUSTOMER) . $sep;
@ -276,7 +276,7 @@ if ($action == 'export_csv') {
}
print $val["ref"];
print "\n";
// Product / Service
foreach ( $tabht[$key] as $k => $mt ) {
if ($mt) {
@ -312,7 +312,7 @@ if ($action == 'export_csv') {
$companystatic->id = $tabcompany[$key]['id'];
$companystatic->name = $tabcompany[$key]['name'];
$companystatic->client = $tabcompany[$key]['code_client'];
$date = dol_print_date($db->jdate($val["date"]), 'day');
print '"' . $date . '"' . $sep;
print '"' . $val["ref"] . '"' . $sep;
@ -323,7 +323,7 @@ if ($action == 'export_csv') {
print '"' . ($mt < 0 ? price(- $mt) : '') . '"';
}
print "\n";
// Product / Service
foreach ( $tabht[$key] as $k => $mt ) {
if ($mt) {
@ -336,7 +336,7 @@ if ($action == 'export_csv') {
print "\n";
}
}
// VAT
// var_dump($tabtva);
foreach ( $tabtva[$key] as $k => $mt ) {
@ -353,11 +353,11 @@ if ($action == 'export_csv') {
}
}
} else {
$form = new Form($db);
llxHeader('', $langs->trans("SellsJournal"));
$nom = $langs->trans("SellsJournal");
$nomlink = '';
$periodlink = '';
@ -370,11 +370,11 @@ if ($action == 'export_csv') {
$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);
report_header($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''));
print '<input type="button" class="button" style="float: right;" value="Export CSV" onclick="launch_export();" />';
print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
print '
<script type="text/javascript">
function launch_export() {
@ -388,12 +388,12 @@ if ($action == 'export_csv') {
$("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
</script>';
/*
* Show result array
*/
print '<br><br>';
$i = 0;
print "<table class=\"noborder\" width=\"100%\">";
print "<tr class=\"liste_titre\">";
@ -404,23 +404,23 @@ if ($action == 'export_csv') {
print "<td align='right'>" . $langs->trans("Debit") . "</td>";
print "<td align='right'>" . $langs->trans("Credit") . "</td>";
print "</tr>\n";
$var = true;
$r = '';
$invoicestatic = new Facture($db);
$companystatic = new Client($db);
foreach ( $tabfac as $key => $val ) {
$invoicestatic->id = $key;
$invoicestatic->ref = $val["ref"];
$invoicestatic->type = $val["type"];
$invoicestatic->description = html_entity_decode(dol_trunc($val["description"], 32));
$date = dol_print_date($db->jdate($val["date"]), 'day');
print "<tr " . $bc[$var] . ">";
// Third party
// print "<td>".$conf->global->COMPTA_JOURNAL_SELL."</td>";
print "<td>" . $date . "</td>";
@ -436,7 +436,7 @@ if ($action == 'export_csv') {
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
}
print "</tr>";
// Product / Service
foreach ( $tabht[$key] as $k => $mt ) {
if ($mt) {
@ -451,7 +451,7 @@ if ($action == 'export_csv') {
print "</tr>";
}
}
// VAT
// var_dump($tabtva);
foreach ( $tabtva[$key] as $k => $mt ) {
@ -467,12 +467,12 @@ if ($action == 'export_csv') {
print "</tr>";
}
}
$var = ! $var;
}
print "</table>";
// End of page
llxFooter();
}

View File

@ -55,6 +55,10 @@ $contactid=GETPOST('contactid','int');
$origin=GETPOST('origin','alpha');
$originid=GETPOST('originid','int');
$fulldayevent=GETPOST('fullday');
$datep=dol_mktime($fulldayevent?'00':GETPOST("aphour"), $fulldayevent?'00':GETPOST("apmin"), 0, GETPOST("apmonth"), GETPOST("apday"), GETPOST("apyear"));
$datef=dol_mktime($fulldayevent?'23':GETPOST("p2hour"), $fulldayevent?'59':GETPOST("p2min"), $fulldayevent?'59':'0', GETPOST("p2month"), GETPOST("p2day"), GETPOST("p2year"));
// Security check
$socid = GETPOST('socid','int');
$id = GETPOST('id','int');
@ -63,6 +67,7 @@ $result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions|
if ($user->societe_id && $socid) $result = restrictedArea($user,'societe',$socid);
$error=GETPOST("error");
$donotclearsession=0;
$cactioncomm = new CActionComm($db);
$object = new ActionComm($db);
@ -82,6 +87,19 @@ $hookmanager->initHooks(array('actioncard'));
* Actions
*/
if (GETPOST('addassignedtouser'))
{
// Add a new user
if (GETPOST('affectedto') > 0)
{
$assignedtouser=array();
if (!empty($_SESSION['assignedtouser'])) $assignedtouser=dol_json_decode($_SESSION['assignedtouser'], true);
$assignedtouser[GETPOST('affectedto')]=array('transparency'=>GETPOST('transparency'),'mandatory'=>1);
$_SESSION['assignedtouser']=dol_json_encode($assignedtouser);
}
$donotclearsession=1;
$action='create';
}
// Add action
if ($action == 'add_action')
{
@ -104,12 +122,11 @@ if ($action == 'add_action')
exit;
}
$fulldayevent=GETPOST('fullday');
$percentage=in_array(GETPOST('status'),array(-1,100))?GETPOST('status'):GETPOST("percentage"); // If status is -1 or 100, percentage is not defined and we must use status
// Clean parameters
$datep=dol_mktime($fulldayevent?'00':$_POST["aphour"], $fulldayevent?'00':$_POST["apmin"], 0, $_POST["apmonth"], $_POST["apday"], $_POST["apyear"]);
$datef=dol_mktime($fulldayevent?'23':$_POST["p2hour"], $fulldayevent?'59':$_POST["p2min"], $fulldayevent?'59':'0', $_POST["p2month"], $_POST["p2day"], $_POST["p2year"]);
$datep=dol_mktime($fulldayevent?'00':GETPOST("aphour"), $fulldayevent?'00':GETPOST("apmin"), 0, GETPOST("apmonth"), GETPOST("apday"), GETPOST("apyear"));
$datef=dol_mktime($fulldayevent?'23':GETPOST("p2hour"), $fulldayevent?'59':GETPOST("p2min"), $fulldayevent?'59':'0', GETPOST("p2month"), GETPOST("p2day"), GETPOST("p2year"));
// Check parameters
if (! $datef && $percentage == 100)
@ -519,15 +536,16 @@ if ($action == 'create')
print '<tr><td>'.$langs->trans("EventOnFullDay").'</td><td><input type="checkbox" id="fullday" name="fullday" '.(GETPOST('fullday')?' checked="checked"':'').'></td></tr>';
// Date start
$datep=$object->datep;
$datep=($datep?$datep:$object->datep);
if (GETPOST('datep','int',1)) $datep=dol_stringtotime(GETPOST('datep','int',1),0);
print '<tr><td width="30%" class="nowrap"><span class="fieldrequired">'.$langs->trans("DateActionStart").'</span></td><td>';
if (GETPOST("afaire") == 1) $form->select_date($datep,'ap',1,1,0,"action",1,1,0,0,'fulldayend');
else if (GETPOST("afaire") == 2) $form->select_date($datep,'ap',1,1,1,"action",1,1,0,0,'fulldayend');
else $form->select_date($datep,'ap',1,1,1,"action",1,1,0,0,'fulldaystart');
print '</td></tr>';
// Date end
$datef=$object->datef;
$datef=($datef?$datef:$object->datef);
if (GETPOST('datef','int',1)) $datef=dol_stringtotime(GETPOST('datef','int',1),0);
print '<tr><td><span id="dateend"'.(GETPOST("actioncode") == 'AC_RDV'?' class="fieldrequired"':'').'>'.$langs->trans("DateActionEnd").'</span></td><td>';
if (GETPOST("afaire") == 1) $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
@ -539,29 +557,29 @@ if ($action == 'create')
print '<tr><td width="10%">'.$langs->trans("Status").' / '.$langs->trans("Percentage").'</td>';
print '<td>';
$percent=-1;
if (isset($_GET['status']) || isset($_POST['status']))
{
$percent=GETPOST('status');
}
else if (isset($_GET['percentage']) || isset($_POST['percentage']))
{
$percent=GETPOST('percentage');
}
if (isset($_GET['status']) || isset($_POST['status'])) $percent=GETPOST('status');
else if (isset($_GET['percentage']) || isset($_POST['percentage'])) $percent=GETPOST('percentage');
else
{
if (GETPOST("afaire") == 1) $percent=0;
else if (GETPOST("afaire") == 2) $percent=100;
if (GETPOST('complete') == '0' || GETPOST("afaire") == 1) $percent='0';
else if (GETPOST('complete') == 100 || GETPOST("afaire") == 2) $percent=100;
}
$formactions->form_select_status_action('formaction',$percent,1,'complete');
print '</td></tr>';
// Location
print '<tr><td>'.$langs->trans("Location").'</td><td colspan="3"><input type="text" name="location" size="50" value="'.$object->location.'"></td></tr>';
print '<tr><td>'.$langs->trans("Location").'</td><td colspan="3"><input type="text" name="location" size="50" value="'.(GETPOST('location')?GETPOST('location'):$object->location).'"></td></tr>';
// Assigned to
$var=false;
print '<tr><td class="nowrap">'.$langs->trans("ActionAffectedTo").'</td><td>';
$form->select_users(GETPOST("affectedto")?GETPOST("affectedto"):(! empty($object->usertodo->id) && $object->usertodo->id > 0 ? $object->usertodo->id : $user->id),'affectedto',1);
if (empty($donotclearsession))
{
$assignedtouser=GETPOST("affectedtouser")?GETPOST("affectedtouser"):(! empty($object->usertodo->id) && $object->usertodo->id > 0 ? $object->usertodo->id : $user->id);
$_SESSION['assignedtouser']=dol_json_encode(array($assignedtouser=>array('transparency'=>1,'mandatory'=>1)));
}
//print $form->select_dolusers_forevent('affectedto',1);
print $form->select_dolusers(GETPOST("affectedto")?GETPOST("affectedto"):(! empty($object->usertodo->id) && $object->usertodo->id > 0 ? $object->usertodo->id : $user->id),'affectedto',1);
print '</td></tr>';
print '</table>';
@ -579,7 +597,7 @@ if ($action == 'create')
if ($conf->global->AGENDA_ENABLE_DONEBY)
{
print '<tr><td class="nowrap">'.$langs->trans("ActionDoneBy").'</td><td>';
$form->select_users(GETPOST("doneby")?GETPOST("doneby"):(! empty($object->userdone->id) && $percent==100?$object->userdone->id:0),'doneby',1);
print $form->select_dolusers(GETPOST("doneby")?GETPOST("doneby"):(! empty($object->userdone->id) && $percent==100?$object->userdone->id:0),'doneby',1);
print '</td></tr>';
}
@ -652,7 +670,7 @@ if ($action == 'create')
// Description
print '<tr><td valign="top">'.$langs->trans("Description").'</td><td>';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
$doleditor=new DolEditor('note',(GETPOST('note')?GETPOST('note'):$object->note),'',240,'dolibarr_notes','In',true,true,$conf->fckeditor->enabled,ROWS_7,90);
$doleditor=new DolEditor('note',(GETPOST('note')?GETPOST('note'):$object->note),'',180,'dolibarr_notes','In',true,true,$conf->fckeditor->enabled,ROWS_6,90);
$doleditor->Create();
print '</td></tr>';

View File

@ -998,7 +998,7 @@ elseif ($action == 'show_week') // View by week
if ($todayarray['mday']==$tmpday && $todayarray['mon']==$tmpmonth && $todayarray['year']==$tmpyear) $today=1;
if ($today) $style='cal_today';
echo ' <td class="'.$style.' nowrap" width="14%" valign="top">';
echo ' <td class="'.$style.'" width="14%" valign="top">';
show_day_events($db, $tmpday, $tmpmonth, $tmpyear, $month, $style, $eventarray, 0, $maxnbofchar, $newparam, 1, 300);
echo " </td>\n";
}
@ -1032,7 +1032,7 @@ else // View by day
echo ' <td align="center">'.$langs->trans("Day".$arraytimestamp['wday'])."</td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo ' <td class="'.$style.' nowrap" width="14%" valign="top">';
echo ' <td class="'.$style.'" width="14%" valign="top">';
$maxnbofchar=80;
show_day_events($db, $day, $month, $year, $month, $style, $eventarray, 0, $maxnbofchar, $newparam, 1, 300);
echo "</td>\n";
@ -1073,18 +1073,20 @@ $db->close();
* @param int $maxprint Nb of actions to show each day on month view (0 means no limit)
* @param int $maxnbofchar Nb of characters to show for event line
* @param string $newparam Parameters on current URL
* @param int $showinfo Add extended information (used by day view)
* @param int $showinfo Add extended information (used by day and week view)
* @param int $minheight Minimum height for each event. 60px by default.
* @return void
*/
function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventarray, $maxprint=0, $maxnbofchar=16, $newparam='', $showinfo=0, $minheight=60)
{
global $user, $conf, $langs;
global $filter, $filtera, $filtert, $filterd, $status, $actioncode; // Filters used into search form
global $action, $filter, $filtera, $filtert, $filterd, $status, $actioncode; // Filters used into search form
global $theme_datacolor;
global $cachethirdparties, $cachecontacts, $colorindexused;
print '<div id="dayevent_'.sprintf("%04d",$year).sprintf("%02d",$month).sprintf("%02d",$day).'" class="dayevent">'."\n";
// Line with title of day
$curtime = dol_mktime(0, 0, 0, $month, $day, $year);
print '<table class="nobordernopadding" width="100%">';
print '<tr><td align="left" class="nowrap">';
@ -1092,7 +1094,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
print 'action=show_day&day='.str_pad($day, 2, "0", STR_PAD_LEFT).'&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$year;
print $newparam;
print '">';
if ($showinfo) print dol_print_date($curtime,'daytext');
if ($showinfo) print dol_print_date($curtime,'daytextshort');
else print dol_print_date($curtime,'%d');
print '</a>';
print '</td><td align="right" class="nowrap">';
@ -1107,7 +1109,10 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
print '</a>';
}
print '</td></tr>';
print '<tr height="'.$minheight.'"><td valign="top" colspan="2" class="nowrap sortable" style="padding-bottom: 2px;">';
// Line with td contains all div of each events
print '<tr height="'.$minheight.'"><td valign="top" colspan="2" class="sortable" style="padding-bottom: 2px;">';
print '<div style="width: 100%; position: relative;">';
//$curtime = dol_mktime (0, 0, 0, $month, $day, $year);
$i=0; $nummytasks=0; $numother=0; $numbirthday=0; $numical=0; $numicals=array();
@ -1192,15 +1197,23 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
$cssclass.= " unsortable";
}
$h=''; $nowrapontd=1;
if ($action == 'show_day') { $h='height: 100%; '; $nowrapontd=0; }
if ($action == 'show_week') { $h='height: 100%; '; $nowrapontd=0; }
// Show rect of event
print '<div id="event_'.$ymd.'_'.$i.'" class="event '.$cssclass.'">';
print '<ul class="cal_event"><li class="cal_event">';
print '<table class="cal_event'.(empty($event->transparency)?'':' cal_event_busy').'" style="';
print '<div id="event_'.$ymd.'_'.$i.'" class="event '.$cssclass.'"';
//print ' style="height: 100px;';
//print ' position: absolute; top: 40px; width: 50%;';
//print '"';
print '>';
print '<ul class="cal_event" style="'.$h.'"><li class="cal_event" style="'.$h.'">';
print '<table class="cal_event'.(empty($event->transparency)?'':' cal_event_busy').'" style="'.$h;
print 'background: #'.$color.'; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,1).'));';
//if (! empty($event->transparency)) print 'background: #'.$color.'; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,1).'));';
//else print 'background-color: transparent !important; background: none; border: 1px solid #bbb;';
print ' -moz-border-radius:4px;" width="100%"><tr>';
print '<td class="nowrap cal_event'.($event->type_code == 'BIRTHDAY'?' cal_event_birthday':'').'">';
print '<td class="'.($nowrapontd?'nowrap ':'').'cal_event'.($event->type_code == 'BIRTHDAY'?' cal_event_birthday':'').'">';
if ($event->type_code == 'BIRTHDAY') // It's a birthday
{
print $event->getNomUrl(1,$maxnbofchar,'cal_event','birthday','contact');
@ -1367,6 +1380,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
print '</script>'."\n";
}
print '</div>';
print '</td></tr>';
print '</table>';
print '</div>'."\n";

View File

@ -43,6 +43,7 @@ $pid=GETPOST("projectid",'int',3);
$status=GETPOST("status",'alpha');
$type=GETPOST('type');
$actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_USE_EVENT_TYPE)?'AC_OTH':''));
$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth'), GETPOST('dateselectday'), GETPOST('dateselectyear'));
if ($actioncode == '') $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE);
if ($status == '' && ! isset($_GET['status']) && ! isset($_POST['status'])) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS);
@ -178,6 +179,8 @@ if ($filtera > 0 || $filtert > 0 || $filterd > 0 || $usergroup > 0)
if ($usergroup > 0) $sql.= ($filtera>0||$filtert>0||$filterd>0?" OR ":"")." ugu.fk_usergroup = ".$usergroup;
$sql.= ")";
}
//if ($dateselect > 0) $sql.= " AND a.datep BETWEEN '".$db->idate($dateselect)."' AND '".$db->idate($dateselect+3600*24-1).'"';
if ($dateselect > 0) $sql.= " AND a.datep BETWEEN '".$db->idate($dateselect)."' AND '".$db->idate($dateselect+3600*24-1)."'";
$sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($limit + 1, $offset);
//print $sql;
@ -191,9 +194,11 @@ if ($resql)
$num = $db->num_rows($resql);
$title=$langs->trans("DoneAndToDoActions");
/*$title=$langs->trans("DoneAndToDoActions");
if ($status == 'done') $title=$langs->trans("DoneActions");
if ($status == 'todo') $title=$langs->trans("ToDoActions");
*/
$title=$langs->trans("ListOfEvents");
$newtitle=$langs->trans($title);
@ -225,6 +230,8 @@ if ($resql)
print_barre_liste($newtitle, $page, $_SERVER["PHP_SELF"], $param,$sortfield,$sortorder,$link,$num,0,'');
//print '<br>';
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'?'.$param.'">'."\n";
$i = 0;
print '<table class="liste" width="100%">';
print '<tr class="liste_titre">';
@ -240,6 +247,22 @@ if ($resql)
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"a.percent",$param,"",'align="right"',$sortfield,$sortorder);
print "</tr>\n";
print '<tr class="liste_titre">';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre" align="center">';
print $form->select_date($dateselect, 'dateselect', 0, 0, 1, '', 1, 0, 1);
print '</td>';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
//print '&nbsp; ';
//print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
print '</td>';
print "</tr>\n";
$contactstatic = new Contact($db);
$now=dol_now();
$delay_warning=$conf->global->MAIN_DELAY_ACTIONS_TODO*24*60*60;
@ -349,6 +372,9 @@ if ($resql)
$i++;
}
print "</table>";
print '</form>';
$db->free($resql);
}

View File

@ -54,7 +54,7 @@ class Fiscalyear
function __construct($db)
{
$this->db = $db;
$this->statuts_short = array(0 => 'Opened', 1 => 'Closed');
$this->statuts = array(0 => 'Opened', 1 => 'Closed');
@ -70,9 +70,9 @@ class Fiscalyear
function create($user)
{
global $conf;
$error = 0;
$now=dol_now();
$this->db->begin();
@ -88,7 +88,7 @@ class Fiscalyear
$sql.= ") VALUES (";
$sql.= " '".$this->label."'";
$sql.= ", '".$this->db->idate($this->date_start)."'";
$sql.= ", '".$this->db->idate($this->date_end)."'";
$sql.= ", ".($this->date_end ? "'".$this->db->idate($this->date_end)."'":"null");
$sql.= ", ".$this->statut;
$sql.= ", ".$conf->entity;
$sql.= ", '".$this->db->idate($now)."'";
@ -109,19 +109,19 @@ class Fiscalyear
}
else
{
$this->error=$this->db->error();
$this->error=$this->db->lasterror();
$this->db->rollback();
return $result;
}
}
else
{
$this->error=$this->db->error()." sql=".$sql;
$this->error=$this->db->lasterror()." sql=".$sql;
$this->db->rollback();
return -1;
}
}
/**
* Update record
*
@ -138,15 +138,15 @@ class Fiscalyear
$this->error='ErrorBadParameter';
return -1;
}
$this->db->begin();
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_fiscalyear ";
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_fiscalyear";
$sql .= " SET label = '".$this->label."'";
$sql .= ", date_start = '".$this->db->idate($this->date_start)."'";
$sql .= ", date_end = '".$this->db->idate($this->date_end)."'";
$sql .= ", date_end = ".($this->date_end ? "'".$this->db->idate($this->date_end)."'" : "null");
$sql .= ", statut = '".$this->statut."'";
$sql .= ", datec = " . ($this->datec != '' ? $this->db->idate($this->datec) : 'null');
$sql .= ", datec = " . ($this->datec != '' ? "'".$this->db->idate($this->datec)."'" : 'null');
$sql .= ", fk_user_modif = " . $user->id;
$sql .= " WHERE rowid = ".$this->id;
@ -160,11 +160,12 @@ class Fiscalyear
else
{
$this->error=$this->db->lasterror();
dol_syslog($this->error, LOG_ERR);
$this->db->rollback();
return -1;
}
}
/**
* Load an object from database
*
@ -194,11 +195,11 @@ class Fiscalyear
}
else
{
$this->error=$this->db->error();
$this->error=$this->db->lasterror();
return -1;
}
}
/**
* Delete record
*
@ -220,12 +221,12 @@ class Fiscalyear
}
else
{
$this->error=$this->db->error();
$this->error=$this->db->lasterror();
$this->db->rollback();
return -1;
}
}
/**
* Give a label from a status
*
@ -238,7 +239,7 @@ class Fiscalyear
}
/**
* Give a label from a status
* Give a label from a status
*
* @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
@ -277,7 +278,7 @@ class Fiscalyear
if ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut8');
}
}
/**
* Information on record
*

View File

@ -1273,6 +1273,49 @@ class Form
}
/**
* Return select list of users. Selected users are stored into session.
*
* @param string $htmlname Field name in form
* @param int $show_empty 0=liste sans valeur nulle, 1=ajoute valeur inconnue
* @param array $exclude Array list of users id to exclude
* @param int $disabled If select list must be disabled
* @param array $include Array list of users id to include or 'hierarchy' to have only supervised users
* @param array $enableonly Array list of users id to be enabled. All other must be disabled
* @param int $force_entity 0 or Id of environment to force
* @param int $maxlength Maximum length of string into list (0=no limit)
* @param int $showstatus 0=show user status only if status is disabled, 1=always show user status into label, -1=never show user status
* @param string $morefilter Add more filters into sql request
* @return string HTML select string
* @see select_dolgroups
*/
function select_dolusers_forevent($htmlname='userid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity=0, $maxlength=0, $showstatus=0, $morefilter='')
{
global $conf,$user,$langs;
$userstatic=new User($this->db);
// Method with no ajax
//$out.='<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
$out.=$this->select_dolusers('', $htmlname, $show_empty, $exclude, $disabled, $include, $enableonly, $force_entity, $maxlength, $showstatus, $morefilter);
$out.='<input type="submit" class="button" name="addassignedtouser" value="'.dol_escape_htmltag($langs->trans("Add")).'">';
$assignedtouser=array();
if (!empty($_SESSION['assignedtouser'])) $assignedtouser=dol_json_decode($_SESSION['assignedtouser'], true);
if (count($assignedtouser)) $out.='<br>';
foreach($assignedtouser as $key => $value)
{
$userstatic->fetch($key);
$out.=$userstatic->getNomUrl(1);
//$out.=' '.($value['mandatory']?$langs->trans("Mandatory"):$langs->trans("Optional"));
//$out.=' '.($value['transparency']?$langs->trans("Busy"):$langs->trans("NotBusy"));
$out.='<br>';
}
//$out.='</form>';
return $out;
}
/**
* Return list of products for customer in Ajax if Ajax activated or go to select_produits_list
*
@ -3932,11 +3975,12 @@ class Form
/**
* Return a HTML select string, built from an array of key+value.
* Note: Do not use returned string into a langs->trans function, content may be entity encoded twice.
*
* @param string $htmlname Name of html select area
* @param array $array Array with key+value
* @param string $id Preselected key
* @param int $show_empty 1 si il faut ajouter une valeur vide dans la liste, 0 sinon
* @param int $show_empty 0 no empty value allowed, 1 to add an empty value into list (value is '' or '&nbsp;').
* @param int $key_in_label 1 pour afficher la key dans la valeur "[key] value"
* @param int $value_as_key 1 to use value as key
* @param string $moreparam Add more parameters onto the select tag
@ -3945,7 +3989,7 @@ class Form
* @param int $disabled Html select box is disabled
* @param int $sort 'ASC' or 'DESC' =Sort on label, '' or 'NONE'=Do not sort
* @param string $morecss Add more class to css styles
* @return string HTML select string
* @return string HTML select string.
*/
static function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $moreparam='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='')
{
@ -3982,11 +4026,11 @@ class Form
if ($key_in_label)
{
$selectOptionValue = dol_htmlentitiesbr($key.' - '.($maxlen?dol_trunc($value,$maxlen):$value));
$selectOptionValue = dol_escape_htmltag($key.' - '.($maxlen?dol_trunc($value,$maxlen):$value));
}
else
{
$selectOptionValue = dol_htmlentitiesbr($maxlen?dol_trunc($value,$maxlen):$value);
$selectOptionValue = dol_escape_htmltag($maxlen?dol_trunc($value,$maxlen):$value);
if ($value == '' || $value == '-') $selectOptionValue='&nbsp;';
}
$out.=$selectOptionValue;

View File

@ -501,14 +501,14 @@ function calendars_prepare_head($param)
$head[$h][2] = 'cardday';
$h++;
$head[$h][0] = DOL_URL_ROOT.'/comm/action/listactions.php'.($param?'?'.$param:'');
$head[$h][1] = $langs->trans("ViewList");
$head[$h][2] = 'cardlist';
$h++;
$head[$h][0] = DOL_URL_ROOT.'/comm/action/peruser.php'.($param?'?'.$param:'');
$head[$h][1] = $langs->trans("ViewPerUser");
$head[$h][2] = 'cardperuser';
$h++;
$head[$h][0] = DOL_URL_ROOT.'/comm/action/listactions.php'.($param?'?'.$param:'');
$head[$h][1] = $langs->trans("ViewList");
$head[$h][2] = 'cardlist';
$h++;
$object=new stdClass();

View File

@ -337,7 +337,7 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0)
width: "500px" */
$msg = '<script type="text/javascript">
$(function() {
$(document).ready(function() {
$("#'.$htmlname.'").combobox({
minLengthToAutocomplete : '.$minLengthToAutocomplete.',
selected : function(event,ui) {

View File

@ -34,7 +34,7 @@ function fiscalyear_prepare_head($object)
$h = 0;
$head = array();
$head[$h][0] = DOL_URL_ROOT . '/admin/fiscalyear_card.php?id=' . $object->id;
$head[$h][0] = DOL_URL_ROOT . '/accountancy/admin/fiscalyear_card.php?id=' . $object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][2] = 'card';
$h++;
@ -44,8 +44,8 @@ function fiscalyear_prepare_head($object)
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
// $this->tabs = array('entity:-tabname); to remove a tab
complete_head_from_modules($conf,$langs,$object,$head,$h,'fiscalyear');
$head[$h][0] = DOL_URL_ROOT . '/admin/fiscalyear_info.php?id=' . $object->id;
$head[$h][0] = DOL_URL_ROOT . '/accountancy/admin/fiscalyear_info.php?id=' . $object->id;
$head[$h][1] = $langs->trans("Info");
$head[$h][2] = 'info';
$h++;

View File

@ -501,7 +501,6 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
$newmenu->add("/admin/modules.php?mainmenu=home", $langs->trans("Modules").$warnpicto,1);
$newmenu->add("/admin/menus.php?mainmenu=home", $langs->trans("Menus"),1);
$newmenu->add("/admin/ihm.php?mainmenu=home", $langs->trans("GUISetup"),1);
$newmenu->add("/admin/fiscalyear.php?mainmenu=home", $langs->trans("Fiscalyear"),1);
if (! in_array($langs->defaultlang,array('en_US','en_GB','en_NZ','en_AU','fr_FR','fr_BE','es_ES','ca_ES')))
{
if (empty($leftmenu) || $leftmenu=="setup") $newmenu->add("/admin/translation.php", $langs->trans("Translation"),1);
@ -863,21 +862,23 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
if (! empty($conf->accounting->enabled))
{
$langs->load("accountancy");
$newmenu->add("/accountancy/customer/index.php?leftmenu=ventil_customer",$langs->trans("CustomersVentilation"),0,$user->rights->accounting->ventilation->read, '', $mainmenu, 'ventil_customer');
if (empty($leftmenu) || $leftmenu=="ventil_customer") $newmenu->add("/accountancy/customer/list.php",$langs->trans("ToDispatch"),1,$user->rights->accounting->ventilation->read);
if (empty($leftmenu) || $leftmenu=="ventil_customer") $newmenu->add("/accountancy/customer/lines.php",$langs->trans("Dispatched"),1,$user->rights->accounting->ventilation->read);
if (! empty($conf->fournisseur->enabled))
{
$newmenu->add("/accountancy/supplier/index.php?leftmenu=ventil_supplier",$langs->trans("SuppliersVentilation"),0,$user->rights->accounting->ventilation->read, '', $mainmenu, 'ventil_supplier');
if (empty($leftmenu) || $leftmenu=="ventil_supplier") $newmenu->add("/accountancy/supplier/list.php",$langs->trans("ToDispatch"),1,$user->rights->accounting->ventilation->read);
if (empty($leftmenu) || $leftmenu=="ventil_supplier") $newmenu->add("/accountancy/supplier/lines.php",$langs->trans("Dispatched"),1,$user->rights->accounting->ventilation->read);
if (empty($leftmenu) || $leftmenu=="ventil_customer") $newmenu->add("/accountancy/supplier/list.php",$langs->trans("ToDispatch"),1,$user->rights->accounting->ventilation->read);
if (empty($leftmenu) || $leftmenu=="ventil_customer") $newmenu->add("/accountancy/supplier/lines.php",$langs->trans("Dispatched"),1,$user->rights->accounting->ventilation->read);
}
$newmenu->add("/accountancy/bookkeeping/list.php?leftmenu=bookkeeping",$langs->trans("Bookkeeping"),0,$user->rights->accounting->mouvements->lire, '', $mainmenu, 'bookkeeping');
if (empty($leftmenu) || $leftmenu=="bookkeeping") $newmenu->add("/accountancy/bookkeeping/listbyyear.php",$langs->trans("ByYear"),1,$user->rights->accounting->mouvements->lire);
if (empty($leftmenu) || $leftmenu=="bookkeeping") $newmenu->add("/accountancy/bookkeeping/balancebymonth.php",$langs->trans("AccountBalanceByMonth"),1,$user->rights->accounting->mouvements->lire);
$newmenu->add("/accountancy/bookkeeping/list.php?leftmenu=bookkeeping",$langs->trans("Bookkeeping"),0,$user->rights->accounting->mouvements->lire, '', $mainmenu, 'bookeeping');
if (empty($leftmenu) || $leftmenu=="bookeeping") $newmenu->add("/accountancy/bookkeeping/listbyyear.php",$langs->trans("ByYear"),1,$user->rights->accounting->mouvements->lire);
if (empty($leftmenu) || $leftmenu=="bookeeping") $newmenu->add("/accountancy/bookkeeping/balancebymonth.php.php",$langs->trans("AccountBalanceByMonth"),1,$user->rights->accounting->mouvements->lire);
$newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy", $langs->trans("Fiscalyear"),0,$user->rights->accounting->close, '', $mainmenu, 'fiscalyear');
}
// Rapports
@ -914,7 +915,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
//journaux
if (empty($leftmenu) || $leftmenu=="ca") $newmenu->add("/compta/journal/sellsjournal.php?leftmenu=ca",$langs->trans("SellsJournal"),1,$user->rights->compta->resultat->lire);
if (empty($leftmenu) || $leftmenu=="ca") $newmenu->add("/compta/journal/purchasesjournal.php?leftmenu=ca",$langs->trans("PurchasesJournal"),1,$user->rights->compta->resultat->lire);
}
}
}
}
@ -1257,12 +1258,12 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
else dol_print_error($db);
$db->free($resql);
}
// Accountancy journals
if (! empty($conf->accounting->enabled) && !empty($user->rights->accounting->mouvements->lire) && $mainmenu == 'accountancy')
{
$newmenu->add('/accountancy/journal/index.php',$langs->trans("Journaux"),0,$user->rights->banque->lire);
$sql = "SELECT rowid, label, accountancy_journal";
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
$sql.= " WHERE entity = ".$conf->entity;
@ -1276,7 +1277,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
$i = 0;
if ($numr > 0)
while ($i < $numr)
{
$objp = $db->fetch_object($resql);
@ -1286,7 +1287,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
}
else dol_print_error($db);
$db->free($resql);
// Add other journal
$newmenu->add("/accountancy/journal/sellsjournal.php",$langs->trans("SellsJournal"),1,$user->rights->accounting->comptarapport->lire);
$newmenu->add("/accountancy/journal/purchasesjournal.php",$langs->trans("PurchasesJournal"),1,$user->rights->accounting->comptarapport->lire);

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2014 Ari Elbaz (elarifr) <github@accedinfo.com>
* Copyright (C) 2014 Ari Elbaz (elarifr) <github@accedinfo.com>
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
*
* This program is free software; you can redistribute it and/or modify
@ -19,7 +19,7 @@
*/
/**
* \file accountingex/core/modules/modAccountingExpert.class.php
* \file accountingex/core/modules/modAccounting.class.php
* \ingroup Accounting Expert
* \brief Module to activate Accounting Expert module
*/
@ -42,164 +42,154 @@ class modAccounting extends DolibarrModules
$this->db = $db;
$this->numero = 50400;
$this->family = "financial";
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
$this->name = preg_replace('/^mod/i', '', get_class($this));
$this->description = "Advanced manage of accounting";
$this->description = "Advanced accounting management";
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
$this->version = 'development';
$this->const_name = 'MAIN_MODULE_' . strtoupper($this->name);
$this->special = 0;
$this->picto = 'accounting';
// Defined if the directory /mymodule/inc/triggers/ contains triggers or not
// $this->triggers = 1;
// Data directories to create when module is enabled
$this->dirs = array (
'/accountingex/temp'
);
$this->dirs = array('/accounting/temp');
// Config pages
$this->config_page_url = array('index.php@accountancy');
// Dependencies
$this->depends = array ("modFacture","modBanque","modTax"); // List of modules id that must be enabled if this module is enabled
$this->requiredby = array (); // List of modules id to disable if this one is disabled
$this->conflictwith = array ("modComptabilite"); // List of modules are in conflict with this module
$this->phpmin = array (
5,
2
); // Minimum version of PHP required by module
$this->need_dolibarr_version = array (
3,
6
); // Minimum version of Dolibarr required by module
$this->langfiles = array (
"accountancy"
);
$this->depends = array("modFacture","modBanque","modTax"); // List of modules id that must be enabled if this module is enabled
$this->requiredby = array(); // List of modules id to disable if this one is disabled
$this->conflictwith = array("modComptabilite"); // List of modules are in conflict with this module
$this->phpmin = array(5, 2); // Minimum version of PHP required by module
$this->need_dolibarr_version = array(3, 6); // Minimum version of Dolibarr required by module
$this->langfiles = array("accountancy");
// Constants
$this->const = array ();
$this->const[1] = array (
$this->const = array();
$this->const[1] = array(
"MAIN_COMPANY_CODE_ALWAYS_REQUIRED",
"chaine",
"1",
"With this constants on, third party code is always required whatever is numbering module behaviour"
);
$this->const[2] = array (
$this->const[2] = array(
"MAIN_BANK_ACCOUNTANCY_CODE_ALWAYS_REQUIRED",
"chaine",
"1",
"With this constants on, bank account number is always required"
);
$this->const[1] = array (
$this->const[1] = array(
"ACCOUNTING_SEPARATORCSV",
"string",
","
","
);
$this->const[2] = array (
$this->const[2] = array(
"ACCOUNTING_ACCOUNT_SUSPENSE",
"chaine",
"471"
"471"
);
$this->const[3] = array (
$this->const[3] = array(
"ACCOUNTING_SELL_JOURNAL",
"chaine",
"VTE"
"VTE"
);
$this->const[4] = array (
$this->const[4] = array(
"ACCOUNTING_PURCHASE_JOURNAL",
"chaine",
"ACH"
"ACH"
);
$this->const[5] = array (
$this->const[5] = array(
"ACCOUNTING_SOCIAL_JOURNAL",
"chaine",
"SOC"
"SOC"
);
$this->const[6] = array (
$this->const[6] = array(
"ACCOUNTING_CASH_JOURNAL",
"chaine",
"CAI"
"CAI"
);
$this->const[7] = array (
$this->const[7] = array(
"ACCOUNTING_MISCELLANEOUS_JOURNAL",
"chaine",
"OD"
"OD"
);
$this->const[8] = array (
$this->const[8] = array(
"ACCOUNTING_BANK_JOURNAL",
"chaine",
"BQ"
"BQ"
); // Deprecated Move into llx_bank_account
$this->const[9] = array (
$this->const[9] = array(
"ACCOUNTING_ACCOUNT_TRANSFER_CASH",
"chaine",
"58"
"58"
);
$this->const[10] = array (
$this->const[10] = array(
"CHARTOFACCOUNTS",
"chaine",
"2"
"2"
);
$this->const[11] = array (
$this->const[11] = array(
"ACCOUNTING_MODELCSV",
"chaine",
"0"
"0"
);
$this->const[12] = array (
$this->const[12] = array(
"ACCOUNTING_LENGTH_GACCOUNT",
"chaine",
""
""
);
$this->const[13] = array (
$this->const[13] = array(
"ACCOUNTING_LENGTH_AACCOUNT",
"chaine",
""
""
);
$this->const[14] = array (
$this->const[14] = array(
"ACCOUNTING_LIMIT_LIST_VENTILATION",
"chaine",
"50"
"50"
);
$this->const[15] = array (
$this->const[15] = array(
"ACCOUNTING_LIST_SORT_VENTILATION_TODO",
"yesno",
"1"
"1"
);
$this->const[16] = array (
$this->const[16] = array(
"ACCOUNTING_LIST_SORT_VENTILATION_DONE",
"yesno",
"1"
"1"
);
// Tabs
$this->tabs = array();
// Css
$this->module_parts = array ();
$this->module_parts = array();
// Boxes
$this->boxes = array ();
$this->boxes = array();
// Permissions
$this->rights_class = 'accounting';
$this->rights = array (); // Permission array used by this module
$this->rights = array(); // Permission array used by this module
$r = 0;
$this->rights[$r][0] = 50401;
$this->rights[$r][0] = 50401; // TODO Goal of this permission compared to others ???
$this->rights[$r][1] = 'Access_accountancy';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'access';
$this->rights[$r][5] = '';
$r++;
$this->rights[$r][0] = 50402;
$this->rights[$r][1] = 'Read ventilation';
$this->rights[$r][2] = 'r';
@ -207,7 +197,7 @@ class modAccounting extends DolibarrModules
$this->rights[$r][4] = 'ventilation';
$this->rights[$r][5] = 'read';
$r++;
$this->rights[$r][0] = 50403;
$this->rights[$r][1] = 'Dispatched ventilation';
$this->rights[$r][2] = 'r';
@ -239,12 +229,20 @@ class modAccounting extends DolibarrModules
$this->rights[$r][4] = 'comptarapport';
$this->rights[$r][5] = 'lire';
$r++;
$this->rights[$r][0] = 50430;
$this->rights[$r][1] = 'Define and close a fiscal year';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'fiscalyear';
$this->rights[$r][5] = '';
$r++;
// Main menu entries
$this->menus = array ();
$this->menus = array();
$r = 0;
}
/**
* Function called when module is enabled.
* The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.

View File

@ -84,6 +84,9 @@ ALTER TABLE llx_product MODIFY COLUMN accountancy_code_buy varchar(32);
ALTER TABLE llx_user MODIFY COLUMN accountancy_code varchar(32);
ALTER TABLE llx_user ADD COLUMN weeklyhours double(16,8);
ALTER TABLE llx_projet_task_time ADD COLUMN task_datehour datetime after task_date;

View File

@ -13,16 +13,19 @@
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
-- ============================================================================
-- Table used to link an element actioncomm with a resource or user (llx_resource or llx_user)
-- ============================================================================
CREATE TABLE llx_element_resources
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
resource_id integer,
resource_type varchar(64),
element_id integer,
element_type varchar(64),
resource_id integer, -- id of resource or id of user
resource_type varchar(64), -- resource or user
busy integer,
mandatory integer,
fk_user_create integer,
fk_user_create integer,
tms timestamp
)ENGINE=innodb;

View File

@ -71,5 +71,6 @@ create table llx_user
fk_barcode_type integer DEFAULT 0,
accountancy_code varchar(32) NULL,
nb_holiday integer DEFAULT 0,
salary double(24,8)
salary double(24,8),
weeklyhours double(16,8)
)ENGINE=innodb;

View File

@ -2,11 +2,11 @@
IdAgenda=ID event
Actions=Events
ActionsArea=Events area (Actions and tasks)
Agenda= Agenda
Agendas= Agendas
Calendar= Calendar
Calendars= Calendars
LocalAgenda=Local calendar
Agenda=Agenda
Agendas=Agendas
Calendar=Calendar
Calendars=Calendars
LocalAgenda=Internal calendar
AffectedTo=Assigned to
DoneBy=Done by
Event=Event
@ -22,7 +22,7 @@ MenuToDoActions=All incomplete events
MenuDoneActions=All terminated events
MenuToDoMyActions=My incomplete events
MenuDoneMyActions=My terminated events
ListOfEvents=List of Dolibarr events
ListOfEvents=List of events (internal calendar)
ActionsAskedBy=Events reported by
ActionsToDoBy=Events assigned to
ActionsDoneBy=Events done by

View File

@ -22,7 +22,7 @@ MenuToDoActions=Événements incomplets
MenuDoneActions=Événements terminés
MenuToDoMyActions=Mes événem. incomplets
MenuDoneMyActions=Mes événem. terminés
ListOfEvents=Liste des événements Dolibarr
ListOfEvents=Liste des événements (calendrier interne)
ActionsAskedBy=Événements enregistrés par
ActionsToDoBy=Événements affectés à
ActionsDoneBy=Événements réalisés par

View File

@ -326,12 +326,14 @@ else
print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" name="snom" size="12" value="'.$snom.'">';
print '</td>';
// Barcode
if (! empty($conf->barcode->enabled))
{
print '<td class="liste_titre">';
print '<input class="flat" type="text" name="sbarcode" size="6" value="'.$sbarcode.'">';
print '</td>';
}
// Date modification
print '<td class="liste_titre">';
print '&nbsp;';
print '</td>';
@ -370,15 +372,6 @@ else
print '&nbsp;';
print '</td>';
}
else
{
print '<td class="liste_titre">';
print '&nbsp;';
print '</td>';
print '<td class="liste_titre">';
print '&nbsp;';
print '</td>';
}
print '<td align="center">';
print $form->selectarray('tosell', array('0'=>$langs->trans('ProductStatusNotOnSellShort'),'1'=>$langs->trans('ProductStatusOnSellShort')),$tosell,1);
@ -388,7 +381,7 @@ else
print $form->selectarray('tobuy', array('0'=>$langs->trans('ProductStatusNotOnBuyShort'),'1'=>$langs->trans('ProductStatusOnBuyShort')),$tobuy,1);
print '</td>';
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre nowrap" 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_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
print '</td>';

View File

@ -2336,6 +2336,7 @@ table.cal_event { border: none; border-collapse: collapse; margin-bottom: 1px
moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.25);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.25);
background: -webkit-gradient(linear, left top, left bottom, from(#006aac), to(#00438d));
min-height: 20px;
}
table.cal_event td { border: none; padding-<?php print $left; ?>: 2px; padding-<?php print $right; ?>: 2px; padding-top: 0px; padding-bottom: 0px; }
ul.cal_event { padding-right: 2px; padding-top: 1px; border: none; list-style-type: none; margin: 0 auto; padding-left: 0px; padding-start: 0px; -khtml-padding-start: 0px; -o-padding-start: 0px; -moz-padding-start: 0px; -webkit-padding-start: 0px; }

View File

@ -58,7 +58,7 @@ if ($action == 'update' && $user->rights->user->user->creer && ! $_POST["cancel"
{
$db->begin();
$res=$fuser->update_note(dol_html_entity_decode(GETPOST('note'), ENT_QUOTES));
$res=$fuser->update_note(dol_html_entity_decode(GETPOST('note_private'), ENT_QUOTES));
if ($res < 0)
{
$mesg='<div class="error">'.$adh->error.'</div>';
@ -89,7 +89,7 @@ if ($id)
if ($msg) print '<div class="error">'.$msg.'</div>';
print "<form method=\"post\" action=\"note.php\">";
print "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<table class="border" width="100%">';
@ -120,7 +120,7 @@ if ($id)
print "<input type=\"hidden\" name=\"id\" value=\"".$fuser->id."\">";
// Editeur wysiwyg
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
$doleditor=new DolEditor('note',$fuser->note,'',280,'dolibarr_notes','In',true,false,$conf->global->FCKEDITOR_ENABLE_SOCIETE,10,80);
$doleditor=new DolEditor('note_private',$fuser->note,'',280,'dolibarr_notes','In',true,false,$conf->global->FCKEDITOR_ENABLE_SOCIETE,10,80);
$doleditor->Create();
}
else