Merge remote-tracking branch 'origin/3.3' into develop

This commit is contained in:
Laurent Destailleur 2012-12-30 14:17:05 +01:00
commit 18bfceafca
16 changed files with 167 additions and 74 deletions

View File

@ -228,7 +228,7 @@ class ActionComm extends CommonObject
}
else if ($reshook < 0) $error++;
if (! $notrigger)
if (! $error && ! $notrigger)
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
@ -240,8 +240,16 @@ class ActionComm extends CommonObject
// Fin appel triggers
}
$this->db->commit();
return $this->id;
if (! $error)
{
$this->db->commit();
return $this->id;
}
else
{
$this->db->rollback();
return -1;
}
}
else
{
@ -591,7 +599,7 @@ class ActionComm extends CommonObject
$now=dol_now();
$this->nbtodo=$this->nbtodolate=0;
$sql = "SELECT a.id, a.datep as dp";
$sql.= " FROM (".MAIN_DB_PREFIX."actioncomm as a";
$sql.= ")";

View File

@ -243,19 +243,19 @@ if ($action == 'add_action')
}
else
{
// Si erreur
// If error
$db->rollback();
$id=$idaction;
$langs->load("errors");
$error=$langs->trans($actioncomm->error);
$action = 'create';
}
}
else
{
$db->rollback();
$id=$idaction;
$langs->load("errors");
$error=$langs->trans($actioncomm->error);
$action = 'create';
}
}
}
@ -619,7 +619,7 @@ if ($action == 'create')
print $extrafields->showInputField($key,$value);
print '</td></tr>'."\n";
}
print '</table><br><br>';
print '</table><br>';
}
print '<center><br>';
@ -632,7 +632,7 @@ if ($action == 'create')
}
// View or edit
if ($id)
if ($id > 0)
{
if ($error)
{

View File

@ -426,7 +426,7 @@ class Commande extends CommonOrder
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('BILL_REOPEN',$this,$user,$langs,$conf);
$result=$interface->run_triggers('ORDER_REOPEN',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
}

View File

@ -72,7 +72,7 @@ if ($action == 'add')
if (! $error)
{
$object->titre = GETPOST('titre', 'alpha');
$object->note = GETPOST('comment');
$object->note = GETPOST('note');
$object->usenewprice = GETPOST('usenewprice');
if ($object->create($user, $id) > 0)
@ -113,53 +113,60 @@ if ($action == 'create')
{
print_fiche_titre($langs->trans("CreateRepeatableInvoice"));
$invoice = new Facture($db); // Source invoice
$object = new Facture($db); // Source invoice
$product_static = new Product($db);
if ($invoice->fetch($id) > 0)
if ($object->fetch($id) > 0)
{
print '<form action="fiche-rec.php" method="post">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="add">';
print '<input type="hidden" name="facid" value="'.$invoice->id.'">';
print '<input type="hidden" name="facid" value="'.$object->id.'">';
$rowspan=4;
if (! empty($conf->projet->enabled) && $invoice->fk_project > 0) $rowspan++;
if (! empty($conf->projet->enabled) && $object->fk_project > 0) $rowspan++;
print '<table class="border" width="100%">';
$invoice->fetch_thirdparty();
$object->fetch_thirdparty();
print '<tr><td>'.$langs->trans("Customer").'</td><td>'.$invoice->client->getNomUrl(1,'customer').'</td>';
// Third party
print '<tr><td>'.$langs->trans("Customer").'</td><td>'.$object->client->getNomUrl(1,'customer').'</td>';
print '<td>';
//print $langs->trans("NotePrivate");
print '</td></tr>';
// Title
print '<tr><td>'.$langs->trans("Title").'</td><td>';
print '<input class="flat" type="text" name="titre" size="16" value="'.$_POST["titre"].'">';
print '<input class="flat" type="text" name="titre" size="24" value="'.$_POST["titre"].'">';
print '</td>';
// Note
print '<td rowspan="'.$rowspan.'" valign="top">';
print '<textarea class="flat" name="note" wrap="soft" cols="60" rows="'.ROWS_4.'"></textarea>';
print '</td></tr>';
// Author
print "<tr><td>".$langs->trans("Author")."</td><td>".$user->getFullName($langs)."</td></tr>";
// Payment term
print "<tr><td>".$langs->trans("PaymentConditions")."</td><td>";
$form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$invoice->id, $invoice->cond_reglement_id, 'none');
$form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id, 'none');
print "</td></tr>";
// Payment mode
print "<tr><td>".$langs->trans("PaymentMode")."</td><td>";
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$invoice->id, $facture->mode_reglement_id, 'none');
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'none');
print "</td></tr>";
if (! empty($conf->projet->enabled) && $invoice->fk_project > 0)
// Project
if (! empty($conf->projet->enabled) && $object->fk_project > 0)
{
print "<tr><td>".$langs->trans("Project")."</td><td>";
if ($invoice->fk_project > 0)
if ($object->fk_project > 0)
{
$project = new Project($db);
$project->fetch($invoice->fk_project);
$project->fetch($object->fk_project);
print $project->title;
}
print "</td></tr>";
@ -194,7 +201,7 @@ if ($action == 'create')
$sql.= ' p.description as product_desc';
$sql.= " FROM ".MAIN_DB_PREFIX."facturedet as l";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON l.fk_product = p.rowid";
$sql.= " WHERE l.fk_facture = ".$invoice->id;
$sql.= " WHERE l.fk_facture = ".$object->id;
$sql.= " ORDER BY l.rowid";
$result = $db->query($sql);
@ -339,7 +346,7 @@ if ($action == 'create')
}
else
{
dol_print_error('',"Error, no invoice ".$invoice->id);
dol_print_error('',"Error, no invoice ".$object->id);
}
}
else
@ -360,29 +367,13 @@ else
print '<table class="border" width="100%">';
print '<tr><td>'.$langs->trans("Ref").'</td>';
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
print '<td colspan="4">'.$object->titre.'</td>';
print '<tr><td>'.$langs->trans("Customer").'</td>';
print '<td colspan="3">'.$object->thirdparty->getNomUrl(1,'customer').'</td>';
print "<td>". $langs->trans("PaymentConditions") ." : ";
$form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id,'none');
print "</td></tr>";
print '<td colspan="3">'.$object->thirdparty->getNomUrl(1,'customer').'</td></tr>';
print "<tr><td>".$langs->trans("Author")."</td><td colspan=\"3\">".$author->getFullName($langs)."</td>";
if ($object->remise_percent > 0)
{
print '<td rowspan="5" valign="top">';
}
else
{
print '<td rowspan="4" valign="top">';
}
print $langs->trans("PaymentMode") ." : ";
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id,'none');
print "</td></tr>";
print "<tr><td>".$langs->trans("Author").'</td><td colspan="3">'.$author->getFullName($langs)."</td></tr>";
print '<tr><td>'.$langs->trans("AmountHT").'</td>';
print '<td align="right" colspan="2"><b>'.price($object->total_ht).'</b></td>';
@ -392,11 +383,19 @@ else
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>';
print '<tr><td>'.$langs->trans("AmountTTC").'</td><td align="right" colspan="2">'.price($object->total_ttc).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>';
if ($object->note)
{
print '<tr><td colspan="5">'.$langs->trans("Note").' : '.nl2br($object->note)."</td></tr>";
}
// Payment term
print '<tr><td>'.$langs->trans("PaymentConditions").'</td><td colspan="3">';
$form->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->cond_reglement_id,'none');
print "</td></tr>";
// Payment mode
print '<tr><td>'.$langs->trans("PaymentMode").'</td><td colspan="3">';
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id,'none');
print "</td></tr>";
print '<tr><td>'.$langs->trans("Note").'</td><td colspan="3">'.nl2br($object->note)."</td></tr>";
print "</table>";
print '</div>';

View File

@ -1112,7 +1112,7 @@ class Contrat extends CommonObject
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('CONTRACTLINE_DELETE',$this,$user,$langs,$conf);
$result=$interface->run_triggers('CONTRACT_LINE_DELETE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
@ -1940,7 +1940,7 @@ class ContratLigne
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
$result=$interface->run_triggers('CONTRACT_LINE_MODIFY',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
}

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr>
*
* This program is free software; you can redistribute it and/or modify
@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
/**
* Classe permettant la generation des rapports d'actions
* Class to generate event report
*/
class CommActionRapport
{
@ -217,24 +217,32 @@ class CommActionRapport
}
$y++;
// Date
$pdf->SetXY($this->marge_gauche, $y);
$pdf->MultiCell(22, $height, dol_print_date($this->db->jdate($obj->dp),"day")."\n".dol_print_date($this->db->jdate($obj->dp),"hour"), 0, 'L', 0);
$y0 = $pdf->GetY();
// Third party
$pdf->SetXY(26, $y);
$pdf->MultiCell(32, $height, dol_trunc($outputlangs->convToOutputCharset($obj->societe),32), 0, 'L', 0);
$y1 = $pdf->GetY();
// Action code
$code=$obj->code;
if (empty($conf->global->AGENDA_USE_EVENT_TYPE))
{
if ($code == 'AC_OTH') $code='AC_MANUAL';
if ($code == 'AC_OTH_AUTO') $code='AC_AUTO';
}
$pdf->SetXY(60,$y);
$pdf->MultiCell(32, $height, dol_trunc($outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Action".$obj->code)),32), 0, 'L', 0);
$pdf->MultiCell(32, $height, dol_trunc($outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Action".$code)),32), 0, 'L', 0);
$y2 = $pdf->GetY();
// Description of event
$pdf->SetXY(106,$y);
$pdf->MultiCell(94, $height, $outputlangs->convToOutputCharset($text), 0, 'L', 0);
$y3 = $pdf->GetY();
//$pdf->MultiCell(94,2,"y=$y y3=$y3",0,'L',0);
$i++;
}
}

View File

@ -412,7 +412,7 @@ else $classviewhide='visible';
// Start container of all panels
?>
<div id="containerlayout"> <!-- begin div id="containerlayout" -->
<div id="ecm-layout-north" class="toolbar">
<div id="ecm-layout-north" class="toolbar largebutton">
<?php
// Start top panel, toolbar

View File

@ -264,9 +264,20 @@ create table llx_socpeople_extrafields
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;
ALTER TABLE llx_socpeople_extrafields ADD INDEX idx_socpeople_extrafields (fk_object);
create table llx_actioncomm_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;
ALTER TABLE llx_actioncomm_extrafields ADD INDEX idx_actioncomm_extrafields (fk_object);
UPDATE llx_c_actioncomm set type = 'systemauto' where code IN ('AC_PROP','AC_COM','AC_FAC','AC_SHIP','AC_SUP_ORD','AC_SUP_INV');

View File

@ -0,0 +1,20 @@
-- ===================================================================
-- Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
--
-- 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 2 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/>.
--
-- ===================================================================
ALTER TABLE llx_actioncomm_extrafields ADD INDEX idx_actioncomm_extrafields (fk_object);

View File

@ -0,0 +1,26 @@
-- ========================================================================
-- Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
--
-- 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 2 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/>.
--
-- ========================================================================
create table llx_actioncomm_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;

View File

@ -95,7 +95,7 @@ body {
color:#232323;
font-size:<?php print $fontsize ?>px;
font-family:<?php print $fontlist ?>;
<?php print 'direction:'.$langs->trans("DIRECTION").";\n"; ?>
}
@ -215,19 +215,19 @@ form#login img#img_logo {
border-bottom:solid 1px rgba(0,0,0,.3);
box-shadow:1px 1px 6px rgba(0,0,0,.3) inset , 0 0 1px rgba(255,255,255,.6);
}
form#login input {
padding:6px;
font-size:120%;
}
form#login label, form#login td b {
vertical-align:middle;
line-height:40px;
color:rgba(0,0,0,.4);
text-shadow:1px 1px 1px rgba(255,255,255,.6);
}
form#login table.login_table {
margin:10px 0px;
border:none;
@ -277,7 +277,7 @@ table.login_table .button:hover {
color-stop(0, rgba(0,0,0,.3))
);
}
table.login_table .vmenu {
color:rgba(0,0,0,.6);
text-shadow:1px 1px 1px rgba(255,255,255,.6);
@ -370,7 +370,7 @@ div.tmenu li {
div.tmenu li a {color:#cccccc;}
div.tmenu li a:hover {color:rgba(255,255,255,.2);}
div.tmenu ul li a.tmenusel {/* texte du menu principal sélectionné */
color:#ffffff;
font-weight:bold;
@ -508,6 +508,25 @@ div.vmenu {
/* Toolbar for ECM or Filemanager */
/* ============================================================================== */
.largebutton {
background-image: -o-linear-gradient(bottom, rgb(<?php echo '240,240,240'; ?>) 15%, rgb(<?php echo '255,255,255'; ?>) 100%) !important;
background-image: -moz-linear-gradient(bottom, rgb(<?php echo '240,240,240'; ?>) 15%, rgb(<?php echo '255,255,255'; ?>) 100%) !important;
background-image: -webkit-linear-gradient(bottom, rgb(<?php echo '240,240,240'; ?>) 15%, rgb(<?php echo '255,255,255'; ?>) 100%) !important;
background-image: -ms-linear-gradient(bottom, rgb(<?php echo '240,240,240'; ?>) 15%, rgb(<?php echo '255,255,255'; ?>) 100%) !important;
background-image: linear-gradient(bottom, rgb(<?php echo '240,240,240'; ?>) 15%, rgb(<?php echo '255,255,255'; ?>) 100%) !important;
border: 1px solid #CCC !important;
-moz-border-radius: 5px 5px 5px 5px !important;
-webkit-border-radius: 5px 5px 5px 5px !important;
border-radius: 5px 5px 5px 5px !important;
-moz-box-shadow: 4px 4px 4px #EEE;
-webkit-box-shadow: 4px 4px 4px #EEE;
box-shadow: 4px 4px 4px #EEE;
padding: 0 4px 0 4px !important;
}
.toolbar {}
.toolbarbutton {}
@ -598,26 +617,26 @@ a.tabTitle img {
-webkit-border-top-left-radius:6px;
-webkit-border-top-right-radius:6px;
}
.tab#active {
color:#232323;
font-weight:bold;
background-color:#ffffff;
border-bottom:solid 1px #ffffff;
}
.tab:hover {color:#333333;}
/* ============================================================================== */
/* Styles de positionnement des zones */
/* ============================================================================== */
div.fiche {
margin-<?php print $left; ?>: <?php print (empty($conf->browser->phone) || empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT))?'20':'24'; ?>px;
margin-<?php print $right; ?>: <?php print empty($conf->browser->phone)?'12':'6'; ?>px;
}
div.fichecenter {
width: 100%;
clear: both; /* This is to have div fichecenter that are true rectangles */

View File

@ -755,7 +755,8 @@ a.toolbarbutton {
background: #FFFFFF;*/
}
img.toolbarbutton {
height: 28px;
margin-top: 2px;
height: 28px;
}
/* ============================================================================== */
@ -919,7 +920,6 @@ img.toolbarbutton {
}
.ecm-layout-resizer { /* all 'resizer-bars' */
background: #EEE;
border: 1px solid #BBB;
border-width: 0;
}

View File

@ -835,6 +835,7 @@ a.toolbarbutton {
background: #FFFFFF;*/
}
img.toolbarbutton {
margin-top: 2px;
height: 28px;
}
@ -994,7 +995,6 @@ img.toolbarbutton {
}
.ecm-layout-resizer { /* all 'resizer-bars' */
background: #EEE;
border: 1px solid #BBB;
border-width: 0;
}

View File

@ -870,7 +870,8 @@ a.toolbarbutton {
background: #FFFFFF;*/
}
img.toolbarbutton {
height: 28px;
margin-top: 2px;
height: 28px;
}
@ -1029,7 +1030,6 @@ img.toolbarbutton {
}
.ecm-layout-resizer { /* all 'resizer-bars' */
background: #EEE;
border: 1px solid #BBB;
border-width: 0;
}

View File

@ -988,7 +988,7 @@ td.photo {
/* Toolbar for ECM or Filemanager */
/* ============================================================================== */
.toolbar {
.largebutton {
<?php if ($usecss3) { ?>
background-image: -o-linear-gradient(bottom, rgb(<?php echo '240,240,240'; ?>) 15%, rgb(<?php echo '255,255,255'; ?>) 100%) !important;
background-image: -moz-linear-gradient(bottom, rgb(<?php echo '240,240,240'; ?>) 15%, rgb(<?php echo '255,255,255'; ?>) 100%) !important;
@ -1009,7 +1009,9 @@ td.photo {
box-shadow: 4px 4px 4px #EEE;
padding: 0 4px 0 4px !important;
}
.toolbar {
height: 34px !important;
}

View File

@ -532,7 +532,7 @@ class UserGroup extends CommonObject
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('USER_DELETE',$this,$user,$langs,$conf);
$result=$interface->run_triggers('GROUP_DELETE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers