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

This commit is contained in:
aspangaro 2014-09-16 20:02:50 +02:00
commit db4be17f5b
74 changed files with 651 additions and 555 deletions

View File

@ -5,6 +5,8 @@ English Dolibarr ChangeLog
***** ChangeLog for 3.7 compared to 3.6.* ***** ***** ChangeLog for 3.7 compared to 3.6.* *****
For users: For users:
- New: PDF event report show project and status of event.
- New: Onto event summary of elements, end date and status are visible.
- New: Can filter on status on interventions. - New: Can filter on status on interventions.
- New: Add help info of field type into dictionary of payment types. - New: Add help info of field type into dictionary of payment types.
- New: Add proposals into referer page of thirdparty. - New: Add proposals into referer page of thirdparty.
@ -133,6 +135,7 @@ For users:
- Fix: Iban was used instead of Bic into SEPA file. - Fix: Iban was used instead of Bic into SEPA file.
- Fix: Must unaccent strings into SEPA file. - Fix: Must unaccent strings into SEPA file.
- Fix: Extrafield feature select from table should try to translate multiple column when not needed - Fix: Extrafield feature select from table should try to translate multiple column when not needed
- Fix: cents for indian ruppes are calle paisa and paise.
***** ChangeLog for 3.6 compared to 3.5.* ***** ***** ChangeLog for 3.6 compared to 3.5.* *****
For users: For users:
@ -266,9 +269,16 @@ Fix: When disabled, all fields to add time into task line must be disabled.
Fix: Missing include files.lib.php in some pages that use dol_delete_recursive Fix: Missing include files.lib.php in some pages that use dol_delete_recursive
Fix: [ bug #1558 ] Product/service edit page title shows new Ref instead of old ref. Fix: [ bug #1558 ] Product/service edit page title shows new Ref instead of old ref.
Fix: [ bug #1553 ] Saving User displays setup removes menu. Fix: [ bug #1553 ] Saving User displays setup removes menu.
Fix: [ bug #1544 ] Can remove date from invoice Fix: [ bug #1544 ] Can remove date from invoice.
Fix: list event view lost type event filter Fix: list event view lost type event filter.
Fix: Add code save on create event Fix: Add code save on create event.
Fix: SQL injection.
Fix: [ bug #1589 ] Menu type in "Edit menu" page is not translated
Fix: [ bug #1591 ] Linked object block shows Total HT/TTC even if not having permission to read them
Fix: [ bug #1577 ] When creating new Private individual third, selected third type is ignored
Fix: [ bug #1555 ] Update accountancy code of products does not throw PRODUCT_MODIFY trigger
Fix: [ bug #1548 ] Supplier payment card shows type in French
Fix: [ bug #1546 ] Incorrect page number when searching in the list of bank transactions
***** ChangeLog for 3.5.4 compared to 3.5.3 ***** ***** ChangeLog for 3.5.4 compared to 3.5.3 *****
Fix: Hide title of event when agenda module disabled. Fix: Hide title of event when agenda module disabled.

View File

@ -61,7 +61,7 @@ License: GPL-3+
Files: htdocs/includes/adodbtime/* Files: htdocs/includes/adodbtime/*
Copyright: 2003-2005, John Lim Copyright: 2003-2005, John Lim
unknown, jackbbs unknown, jackbbs
License: BSD License: BSD-3-Clause
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
are met: are met:
@ -272,7 +272,7 @@ Comment:
Files: htdocs/includes/jquery/plugins/flot/* Files: htdocs/includes/jquery/plugins/flot/*
Copyright: Flot team Copyright: Flot team
License: Public Domain License: Public-Domain
This work is not subject to copyright in any jurisdiction This work is not subject to copyright in any jurisdiction
Comment: Comment:
Those files are not shipped in the binary package because we configure Those files are not shipped in the binary package because we configure

View File

@ -7,40 +7,20 @@ tmpdir=$(mktemp -d)
if [ -n "$1" ]; then if [ -n "$1" ]; then
uscan_opts="--download-version=$1" uscan_opts="--download-version=$1"
fi fi
#uscan --noconf --force-download --no-symlink --destdir=$tmpdir $uscan_opts #uscan --noconf --force-download --no-symlink --verbose --destdir=$tmpdir $uscan_opts
cd $tmpdir cd $tmpdir
# Other method to download (comment uscan if you use this) # Other method to download (comment uscan if you use this)
wget http://sourceforge.net/projects/tcpdf/files/tcpdf_6_0_093.zip wget http://www.dolibarr.org/files/stable/standard/dolibarr-3.5.4.tgz
# Rename file to add +dfsg # Rename file to add +dfsg
zipfile=$(echo *.zip) tgzfile=$(echo *.tgz)
version=$(echo "$zipfile" | perl -pi -e 's/^tcpdf_//; s/\.zip$//; s/_/./g; s/$/+dfsg/;') version=$(echo "$tgzfile" | perl -pi -e 's/^dolibarr-//; s/\.tgz$//; s/_/./g; s/\+nmu1//; ')
# Extract the zip file
unzip -q $zipfile
srcdir=$(find . -maxdepth 1 -mindepth 1 -type d | sed -e 's/\.\///')
if [ ! -d "$srcdir" ]; then
echo "ERROR: Failed to identify the extracted directory in $tmpdir (got $srcdir)" >&2
rm -rf $tmpdir
exit 1
fi
# Cleanup unwanted files
rm -rf $srcdir/fonts/free*
# Repack as tar.xz
tar Jcf tcpdf_${version}.orig.tar.xz $srcdir
cd - >/dev/null cd - >/dev/null
if [ -e ../tcpdf_${version}.orig.tar.xz ]; then mv $tmpdir/dolibarr-${version}.tgz ../
echo "Not overwriting ../tcpdf_${version}.orig.tar.xz"; echo "File ../dolibarr-${version}.tgz is ready for git-import-orig"
else
echo "Created ../tcpdf_${version}.orig.tar.xz"
mv $tmpdir/tcpdf_${version}.orig.tar.xz ../
fi
rm -rf $tmpdir rm -rf $tmpdir

View File

@ -1070,7 +1070,7 @@ class Adherent extends CommonObject
if ($rowid) $sql.= " AND d.rowid=".$rowid; if ($rowid) $sql.= " AND d.rowid=".$rowid;
elseif ($ref || $fk_soc) { elseif ($ref || $fk_soc) {
$sql.= " AND d.entity IN (".getEntity().")"; $sql.= " AND d.entity IN (".getEntity().")";
if ($ref) $sql.= " AND d.rowid='".$ref."'"; if ($ref) $sql.= " AND d.rowid='".$this->db->escape($ref)."'";
elseif ($fk_soc) $sql.= " AND d.fk_soc='".$fk_soc."'"; elseif ($fk_soc) $sql.= " AND d.fk_soc='".$fk_soc."'";
} }
elseif ($ref_ext) elseif ($ref_ext)

View File

@ -316,7 +316,7 @@ if ($action == 'create')
print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td><td>'; print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td><td>';
if ($parent_rowid) if ($parent_rowid)
{ {
print 'Left'; print $langs->trans('Left');
print '<input type="hidden" name="type" value="left">'; print '<input type="hidden" name="type" value="left">';
} }
else else

View File

@ -39,6 +39,7 @@ if ( $_SESSION['uid'] > 0 )
} }
$usertxt=GETPOST('user','',1); $usertxt=GETPOST('user','',1);
$err=GETPOST("err");
/* /*
@ -64,7 +65,7 @@ top_htmlhead('','',0,0,'',$arrayofcss);
<div class="contenu"> <div class="contenu">
<div class="principal_login"> <div class="principal_login">
<?php if (! empty($_GET["err"])) print $_GET["err"]."<br><br>\n"; ?> <?php if ($err) print dol_escape_htmltag($err)."<br><br>\n"; ?>
<fieldset class="cadre_facturation"><legend class="titre1"><?php echo $langs->trans("Identification"); ?></legend> <fieldset class="cadre_facturation"><legend class="titre1"><?php echo $langs->trans("Identification"); ?></legend>
<form id="frmLogin" method="POST" action="index_verif.php"> <form id="frmLogin" method="POST" action="index_verif.php">
<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" /> <input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" />

View File

@ -466,6 +466,8 @@ class ActionComm extends CommonObject
$sql.= ", fk_user_mod = '".$user->id."'"; $sql.= ", fk_user_mod = '".$user->id."'";
$sql.= ", fk_user_action=".($this->usertodo->id > 0 ? "'".$this->usertodo->id."'":"null"); $sql.= ", fk_user_action=".($this->usertodo->id > 0 ? "'".$this->usertodo->id."'":"null");
$sql.= ", fk_user_done=".($this->userdone->id > 0 ? "'".$this->userdone->id."'":"null"); $sql.= ", fk_user_done=".($this->userdone->id > 0 ? "'".$this->userdone->id."'":"null");
if (! empty($this->fk_element)) $sql.= ", fk_element=".($this->fk_element?$this->fk_element:"null");
if (! empty($this->elementtype)) $sql.= ", elementtype=".($this->elementtype?"'".$this->elementtype."'":"null");
$sql.= " WHERE id=".$this->id; $sql.= " WHERE id=".$this->id;
dol_syslog(get_class($this)."::update", LOG_DEBUG); dol_syslog(get_class($this)."::update", LOG_DEBUG);

View File

@ -105,9 +105,14 @@ if ($object->id > 0)
$author->fetch($object->author->id); $author->fetch($object->author->id);
$object->author=$author; $object->author=$author;
if ($object->contact->id) $object->fetch_contact($object->contact->id); if ($object->contact->id > 0) $object->fetch_contact($object->contact->id);
if ($object->usertodo->id > 0) { $tmpuser=new User($db); $res=$tmpuser->fetch($object->usertodo->id); $object->usertodo=$tmpuser; }
$head=actions_prepare_head($object); $head=actions_prepare_head($object);
$now=dol_now();
$delay_warning=$conf->global->MAIN_DELAY_ACTIONS_TODO*24*60*60;
dol_fiche_head($head, 'documents', $langs->trans("Action"),0,'action'); dol_fiche_head($head, 'documents', $langs->trans("Action"),0,'action');
// Affichage fiche action en mode visu // Affichage fiche action en mode visu
@ -138,7 +143,7 @@ if ($object->id > 0)
else print dol_print_date($object->datep,'day'); else print dol_print_date($object->datep,'day');
if ($object->percentage == 0 && $object->datep && $object->datep < ($now - $delay_warning)) print img_warning($langs->trans("Late")); if ($object->percentage == 0 && $object->datep && $object->datep < ($now - $delay_warning)) print img_warning($langs->trans("Late"));
print '</td>'; print '</td>';
print '<td rowspan="4" align="center" valign="middle" width="180">'."\n"; print '<td rowspan="5" align="center" valign="middle" width="180">'."\n";
print '<form name="listactionsfiltermonth" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST">'; print '<form name="listactionsfiltermonth" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="show_month">'; print '<input type="hidden" name="action" value="show_month">';
@ -146,7 +151,7 @@ if ($object->id > 0)
print '<input type="hidden" name="month" value="'.dol_print_date($object->datep,'%m').'">'; print '<input type="hidden" name="month" value="'.dol_print_date($object->datep,'%m').'">';
print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">'; print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">';
//print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">'; //print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">';
print img_picto($langs->trans("ViewCal"),'object_calendar').' <input type="submit" style="width: 120px" class="button" name="viewcal" value="'.$langs->trans("ViewCal").'">'; print img_picto($langs->trans("ViewCal"),'object_calendar','class="hideonsmartphone"').' <input type="submit" style="min-width: 120px" class="button" name="viewcal" value="'.$langs->trans("ViewCal").'">';
print '</form>'."\n"; print '</form>'."\n";
print '<form name="listactionsfilterweek" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST">'; print '<form name="listactionsfilterweek" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@ -155,7 +160,7 @@ if ($object->id > 0)
print '<input type="hidden" name="month" value="'.dol_print_date($object->datep,'%m').'">'; print '<input type="hidden" name="month" value="'.dol_print_date($object->datep,'%m').'">';
print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">'; print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">';
//print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">'; //print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">';
print img_picto($langs->trans("ViewCal"),'object_calendarweek').' <input type="submit" style="width: 120px" class="button" name="viewweek" value="'.$langs->trans("ViewWeek").'">'; print img_picto($langs->trans("ViewCal"),'object_calendarweek','class="hideonsmartphone"').' <input type="submit" style="min-width: 120px" class="button" name="viewweek" value="'.$langs->trans("ViewWeek").'">';
print '</form>'."\n"; print '</form>'."\n";
print '<form name="listactionsfilterday" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST">'; print '<form name="listactionsfilterday" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@ -164,7 +169,16 @@ if ($object->id > 0)
print '<input type="hidden" name="month" value="'.dol_print_date($object->datep,'%m').'">'; print '<input type="hidden" name="month" value="'.dol_print_date($object->datep,'%m').'">';
print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">'; print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">';
//print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">'; //print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">';
print img_picto($langs->trans("ViewCal"),'object_calendarday').' <input type="submit" style="width: 120px" class="button" name="viewday" value="'.$langs->trans("ViewDay").'">'; print img_picto($langs->trans("ViewCal"),'object_calendarday','class="hideonsmartphone"').' <input type="submit" style="min-width: 120px" class="button" name="viewday" value="'.$langs->trans("ViewDay").'">';
print '</form>'."\n";
print '<form name="listactionsfilterperuser" action="'.DOL_URL_ROOT.'/comm/action/peruser.php" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="show_peruser">';
print '<input type="hidden" name="year" value="'.dol_print_date($object->datep,'%Y').'">';
print '<input type="hidden" name="month" value="'.dol_print_date($object->datep,'%m').'">';
print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">';
//print '<input type="hidden" name="day" value="'.dol_print_date($object->datep,'%d').'">';
print img_picto($langs->trans("ViewCal"),'object_calendarperuser','class="hideonsmartphone"').' <input type="submit" style="min-width: 120px" class="button" name="viewperuser" value="'.$langs->trans("ViewPerUser").'">';
print '</form>'."\n"; print '</form>'."\n";
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
@ -184,6 +198,10 @@ if ($object->id > 0)
// Location // Location
print '<tr><td>'.$langs->trans("Location").'</td><td colspan="2">'.$object->location.'</td></tr>'; print '<tr><td>'.$langs->trans("Location").'</td><td colspan="2">'.$object->location.'</td></tr>';
// Assigned to
print '<tr><td width="30%" class="nowrap">'.$langs->trans("ActionAffectedTo").'</td><td>';
if ($object->usertodo->id > 0) print $object->usertodo->getNomUrl(1);
print '</td></tr>';
print '</table><br><br><table class="border" width="100%">'; print '</table><br><br><table class="border" width="100%">';

View File

@ -101,7 +101,7 @@ if (GETPOST('addassignedtouser'))
$action='create'; $action='create';
} }
// Add action // Add action
if ($action == 'add_action') if ($action == 'add')
{ {
$error=0; $error=0;
@ -317,7 +317,7 @@ if ($action == 'update')
$apmin=GETPOST('apmin'); $apmin=GETPOST('apmin');
$p2hour=GETPOST('p2hour'); $p2hour=GETPOST('p2hour');
$p2min=GETPOST('p2min'); $p2min=GETPOST('p2min');
$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 $percentage=in_array(GETPOST('status'),array(-1,100))?GETPOST('status'):(in_array(GETPOST('complete'),array(-1,100))?GETPOST('complete'):GETPOST("percentage")); // If status is -1 or 100, percentage is not defined and we must use status
// Clean parameters // Clean parameters
if ($aphour == -1) $aphour='0'; if ($aphour == -1) $aphour='0';
@ -345,6 +345,7 @@ if ($action == 'update')
$object->pnote = $_POST["note"]; $object->pnote = $_POST["note"];
$object->fk_element = $_POST["fk_element"]; $object->fk_element = $_POST["fk_element"];
$object->elementtype = $_POST["elementtype"]; $object->elementtype = $_POST["elementtype"];
if (! $datef && $percentage == 100) if (! $datef && $percentage == 100)
{ {
$error=$langs->trans("ErrorFieldRequired",$langs->trans("DateEnd")); $error=$langs->trans("ErrorFieldRequired",$langs->trans("DateEnd"));
@ -512,7 +513,7 @@ if ($action == 'create')
print '<form name="formaction" action="'.$_SERVER['PHP_SELF'].'" method="POST">'; print '<form name="formaction" action="'.$_SERVER['PHP_SELF'].'" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="add_action">'; print '<input type="hidden" name="action" value="add">';
if ($backtopage) print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">'; if ($backtopage) print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">';
if (GETPOST("actioncode") == 'AC_RDV') print_fiche_titre($langs->trans("AddActionRendezVous")); if (GETPOST("actioncode") == 'AC_RDV') print_fiche_titre($langs->trans("AddActionRendezVous"));
@ -547,6 +548,10 @@ if ($action == 'create')
// Date end // Date end
$datef=($datef?$datef:$object->datef); $datef=($datef?$datef:$object->datef);
if (GETPOST('datef','int',1)) $datef=dol_stringtotime(GETPOST('datef','int',1),0); if (GETPOST('datef','int',1)) $datef=dol_stringtotime(GETPOST('datef','int',1),0);
if (empty($datef) && ! empty($datep) && ! empty($conf->global->AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS))
{
$datef=dol_time_plus_duree($datep, $conf->global->AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS, 'h');
}
print '<tr><td><span id="dateend"'.(GETPOST("actioncode") == 'AC_RDV'?' class="fieldrequired"':'').'>'.$langs->trans("DateActionEnd").'</span></td><td>'; 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'); if (GETPOST("afaire") == 1) $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
else if (GETPOST("afaire") == 2) $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend'); else if (GETPOST("afaire") == 2) $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
@ -612,7 +617,7 @@ if ($action == 'create')
$societe = new Societe($db); $societe = new Societe($db);
$societe->fetch(GETPOST('socid','int')); $societe->fetch(GETPOST('socid','int'));
print $societe->getNomUrl(1); print $societe->getNomUrl(1);
print '<input type="hidden" name="socid" value="'.GETPOST('socid','int').'">'; print '<input type="hidden" id="socid" name="socid" value="'.GETPOST('socid','int').'">';
} }
else else
{ {

View File

@ -209,7 +209,6 @@ if ($type) $param.="&type=".$type;
if ($action == 'show_day' || $action == 'show_week' || $action == 'show_month' || $action != 'show_peruser') $param.='&action='.$action; if ($action == 'show_day' || $action == 'show_week' || $action == 'show_month' || $action != 'show_peruser') $param.='&action='.$action;
$param.="&maxprint=".$maxprint; $param.="&maxprint=".$maxprint;
$prev = dol_get_first_day_week($day, $month, $year); $prev = dol_get_first_day_week($day, $month, $year);
$prev_year = $prev['prev_year']; $prev_year = $prev['prev_year'];
$prev_month = $prev['prev_month']; $prev_month = $prev['prev_month'];
@ -657,7 +656,7 @@ jQuery(document).ready(function() {
if (ids == \'none\') /* No event */ if (ids == \'none\') /* No event */
{ {
/* alert(\'no event\'); */ /* alert(\'no event\'); */
url = "'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&affectedto="+userid+"&datep="+year+month+day+hour+min+"00" url = "'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&affectedto="+userid+"&datep="+year+month+day+hour+min+"00&backtopage='.urlencode($_SERVER["PHP_SELF"].'?year='.$year.'&month='.$month.'&day='.$day).'"
window.location.href = url; window.location.href = url;
} }
else if (ids.indexOf(",") > -1) /* There is several events */ else if (ids.indexOf(",") > -1) /* There is several events */

View File

@ -92,7 +92,7 @@ if ($resql)
{ {
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
print_barre_liste($langs->trans("Actions"), $page, "index.php",'',$sortfield,$sortorder,'',$num); print_barre_liste($langs->trans("Actions"), $page, $_SERVER["PHP_SELF"],'',$sortfield,$sortorder,'',$num);
$i = 0; $i = 0;
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';

View File

@ -351,7 +351,6 @@ else if ($action == 'add' && $user->rights->propal->creer) {
} }
$id = $object->create($user); $id = $object->create($user);
if ($id > 0) if ($id > 0)
{ {
dol_include_once('/' . $element . '/class/' . $subelement . '.class.php'); dol_include_once('/' . $element . '/class/' . $subelement . '.class.php');
@ -435,11 +434,11 @@ else if ($action == 'add' && $user->rights->propal->creer) {
if ($reshook < 0) if ($reshook < 0)
$error ++; $error ++;
} else { } else {
$mesgs [] = $srcobject->error; setEventMessages($srcobject->error, $srcobject->errors, 'errors');
$error ++; $error ++;
} }
} else { } else {
$mesgs [] = $object->error; setEventMessages($object->error, $object->errors, 'errors');
$error ++; $error ++;
} }
} // Standard creation } // Standard creation
@ -448,23 +447,29 @@ else if ($action == 'add' && $user->rights->propal->creer) {
$id = $object->create($user); $id = $object->create($user);
} }
if ($id > 0) { if ($id > 0)
{
// Insertion contact par defaut si defini // Insertion contact par defaut si defini
if (GETPOST('contactidp') > 0) { if (GETPOST('contactidp') > 0)
{
$result = $object->add_contact(GETPOST('contactidp'), 'CUSTOMER', 'external'); $result = $object->add_contact(GETPOST('contactidp'), 'CUSTOMER', 'external');
if ($result < 0) { if ($result < 0)
{
$error++; $error++;
setEventMessage($langs->trans("ErrorFailedToAddContact"), 'errors'); setEventMessage($langs->trans("ErrorFailedToAddContact"), 'errors');
} }
} }
if (! $error) { if (! $error)
{
$db->commit(); $db->commit();
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
{
// Define output language // Define output language
$outputlangs = $langs; $outputlangs = $langs;
if (! empty($conf->global->MAIN_MULTILANGS)) { if (! empty($conf->global->MAIN_MULTILANGS))
{
$outputlangs = new Translate("", $conf); $outputlangs = new Translate("", $conf);
$newlang = (GETPOST('lang_id') ? GETPOST('lang_id') : $object->thirdparty->default_lang); $newlang = (GETPOST('lang_id') ? GETPOST('lang_id') : $object->thirdparty->default_lang);
$outputlangs->setDefaultLang($newlang); $outputlangs->setDefaultLang($newlang);
@ -475,13 +480,18 @@ else if ($action == 'add' && $user->rights->propal->creer) {
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $id); header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $id);
exit(); exit();
} else {
$db->rollback();
} }
} else { else
dol_print_error($db, $object->error); {
$db->rollback(); $db->rollback();
exit(); $action='create';
}
}
else
{
setEventMessages($object->error, $object->errors, 'errors');
$db->rollback();
$action='create';
} }
} }
} }

View File

@ -870,14 +870,14 @@ class Propal extends CommonObject
} }
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->lasterror();
$error++; $error++;
} }
} }
} }
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->lasterror();
$error++; $error++;
} }
@ -895,7 +895,7 @@ class Propal extends CommonObject
} }
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->lasterror();
$this->db->rollback(); $this->db->rollback();
return -1; return -1;
} }
@ -1069,7 +1069,7 @@ class Propal extends CommonObject
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_input_reason as dr ON p.fk_input_reason = dr.rowid'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_input_reason as dr ON p.fk_input_reason = dr.rowid';
$sql.= " WHERE p.fk_statut = c.id"; $sql.= " WHERE p.fk_statut = c.id";
$sql.= " AND p.entity = ".$conf->entity; $sql.= " AND p.entity = ".$conf->entity;
if ($ref) $sql.= " AND p.ref='".$ref."'"; if ($ref) $sql.= " AND p.ref='".$this->db->escape($ref)."'";
else $sql.= " AND p.rowid=".$rowid; else $sql.= " AND p.rowid=".$rowid;
dol_syslog(get_class($this)."::fetch", LOG_DEBUG); dol_syslog(get_class($this)."::fetch", LOG_DEBUG);

View File

@ -1,6 +1,7 @@
<?php <?php
/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com> /* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -27,6 +28,8 @@
<?php <?php
global $user;
$langs = $GLOBALS['langs']; $langs = $GLOBALS['langs'];
$linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
@ -52,17 +55,23 @@ foreach($linkedObjectBlock as $object)
<a href="<?php echo DOL_URL_ROOT.'/comm/propal.php?id='.$object->id ?>"><?php echo img_object($langs->trans("ShowPropal"),"propal").' '.$object->ref; ?></a></td> <a href="<?php echo DOL_URL_ROOT.'/comm/propal.php?id='.$object->id ?>"><?php echo img_object($langs->trans("ShowPropal"),"propal").' '.$object->ref; ?></a></td>
<td><?php echo $object->ref_client; ?></td> <td><?php echo $object->ref_client; ?></td>
<td align="center"><?php echo dol_print_date($object->date,'day'); ?></td> <td align="center"><?php echo dol_print_date($object->date,'day'); ?></td>
<td align="right"><?php echo price($object->total_ht); ?></td> <td align="right"><?php
if ($user->rights->propale->lire) {
$total = $total + $object->total_ht;
echo price($object->total_ht);
} ?></td>
<td align="right"><?php echo $object->getLibStatut(3); ?></td> <td align="right"><?php echo $object->getLibStatut(3); ?></td>
</tr> </tr>
<?php <?php
$total = $total + $object->total_ht;
} }
?> ?>
<tr class="liste_total"> <tr class="liste_total">
<td align="left" colspan="3"><?php echo $langs->trans('TotalHT'); ?></td> <td align="left" colspan="3"><?php echo $langs->trans('TotalHT'); ?></td>
<td align="right"><?php echo price($total); ?></td> <td align="right"><?php
if ($user->rights->propale->lire) {
echo price($total);
} ?></td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
</table> </table>

View File

@ -1559,7 +1559,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
} }
// Other attributes // Other attributes
$parameters = array('objectsrc' => $objectsrc,'colspan' => ' colspan="3"'); $parameters = array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"', 'socid'=>$socid);
$reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by
// hook // hook
if (empty($reshook) && ! empty($extrafields->attribute_label)) { if (empty($reshook) && ! empty($extrafields->attribute_label)) {

View File

@ -34,7 +34,7 @@ $langs->load("sendings");
// Security check // Security check
$socid=0; $socid=0;
$comid = isset($_GET["id"])?$_GET["id"]:''; $comid = GETPOST("id",'int');
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'commande',$comid,''); $result=restrictedArea($user,'commande',$comid,'');
@ -47,8 +47,8 @@ $result=restrictedArea($user,'commande',$comid,'');
llxHeader('',$langs->trans('Order'),'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes'); llxHeader('',$langs->trans('Order'),'EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes');
$commande = new Commande($db); $commande = new Commande($db);
$commande->fetch($_GET["id"]); $commande->fetch($comid);
$commande->info($_GET["id"]); $commande->info($comid);
$soc = new Societe($db); $soc = new Societe($db);
$soc->fetch($commande->socid); $soc->fetch($commande->socid);

View File

@ -45,7 +45,7 @@ $langs->load('companies');
if (! $user->rights->facture->creer) if (! $user->rights->facture->creer)
accessforbidden(); accessforbidden();
$id = (GETPOST('id')?GETPOST("id"):GETPOST("facid")); // For backward compatibility $id = (GETPOST('id')?GETPOST('id','int'):GETPOST("facid")); // For backward compatibility
$ref = GETPOST('ref','alpha'); $ref = GETPOST('ref','alpha');
$action = GETPOST('action','alpha'); $action = GETPOST('action','alpha');
$confirm = GETPOST('confirm','alpha'); $confirm = GETPOST('confirm','alpha');

View File

@ -1,6 +1,7 @@
<?php <?php
/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com> /* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -22,6 +23,8 @@
<?php <?php
global $user;
$langs = $GLOBALS['langs']; $langs = $GLOBALS['langs'];
$linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
@ -47,17 +50,23 @@ foreach($linkedObjectBlock as $object)
<tr <?php echo $GLOBALS['bc'][$var]; ?> ><td> <tr <?php echo $GLOBALS['bc'][$var]; ?> ><td>
<a href="<?php echo DOL_URL_ROOT.'/commande/fiche.php?id='.$object->id ?>"><?php echo img_object($langs->trans("ShowOrder"),"order").' '.$object->ref; ?></a></td> <a href="<?php echo DOL_URL_ROOT.'/commande/fiche.php?id='.$object->id ?>"><?php echo img_object($langs->trans("ShowOrder"),"order").' '.$object->ref; ?></a></td>
<td align="center"><?php echo dol_print_date($object->date,'day'); ?></td> <td align="center"><?php echo dol_print_date($object->date,'day'); ?></td>
<td align="right"><?php echo price($object->total_ht); ?></td> <td align="right"><?php
if ($user->rights->commande->lire) {
$total = $total + $object->total_ht;
echo price($object->total_ht);
} ?></td>
<td align="right"><?php echo $object->getLibStatut(3); ?></td> <td align="right"><?php echo $object->getLibStatut(3); ?></td>
</tr> </tr>
<?php <?php
$total = $total + $object->total_ht;
} }
?> ?>
<tr class="liste_total"> <tr class="liste_total">
<td align="left" colspan="2"><?php echo $langs->trans('TotalHT'); ?></td> <td align="left" colspan="2"><?php echo $langs->trans('TotalHT'); ?></td>
<td align="right"><?php echo price($total); ?></td> <td align="right"><?php
if ($user->rights->commande->lire) {
echo price($total);
} ?></td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
</table> </table>

View File

@ -5,7 +5,7 @@
* Copyright (C) 2004 Christophe Combelles <ccomb@free.fr> * Copyright (C) 2004 Christophe Combelles <ccomb@free.fr>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@@2byte.es> * Copyright (C) 2010-2011 Juanjo Menent <jmenent@@2byte.es>
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com> * Copyright (C) 2012-2014 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com> * Copyright (C) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.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
@ -268,17 +268,22 @@ if ($id > 0 || ! empty($ref))
//Total pages //Total pages
$totalPages = ceil($total_lines/$viewline); $totalPages = ceil($total_lines/$viewline);
if ($page > 0) if ($totalPages == 0) {
{ $page = 0;
} else {
if ($page > 0) {
$limitsql = ($totalPages - $page) * $viewline; $limitsql = ($totalPages - $page) * $viewline;
if ($limitsql < $viewline) $limitsql = $viewline; if ($limitsql < $viewline) {
$nbline = $limitsql; $limitsql = $viewline;
} }
else $nbline = $limitsql;
{ } else {
$page = 0; $page = 0;
$limitsql = $nbline; $limitsql = $nbline;
} }
}
//print $limitsql.'-'.$page.'-'.$viewline; //print $limitsql.'-'.$page.'-'.$viewline;
// Onglets // Onglets

View File

@ -34,7 +34,7 @@ $langs->load("categories");
$langs->load("bills"); $langs->load("bills");
$action=GETPOST('action'); $action=GETPOST('action');
$id=GETPOST('id'); $id=GETPOST('id','int');
$ref=GETPOST('ref'); $ref=GETPOST('ref');
// Security check // Security check

View File

@ -716,10 +716,11 @@ else if ($action == 'add' && $user->rights->facture->creer)
} }
if(GETPOST('invoiceAvoirWithPaymentRestAmount', 'int')==1 && $id>0) { if(GETPOST('invoiceAvoirWithPaymentRestAmount', 'int')==1 && $id>0)
{
$facture_source = new Facture($db); // fetch origin object if not previously defined $facture_source = new Facture($db); // fetch origin object if not previously defined
if($facture_source->fetch($object->fk_facture_source)>0) { if ($facture_source->fetch($object->fk_facture_source)>0)
{
$totalpaye = $facture_source->getSommePaiement(); $totalpaye = $facture_source->getSommePaiement();
$totalcreditnotes = $facture_source->getSumCreditNotesUsed(); $totalcreditnotes = $facture_source->getSumCreditNotesUsed();
$totaldeposits = $facture_source->getSumDepositsUsed(); $totaldeposits = $facture_source->getSumDepositsUsed();
@ -1063,7 +1064,7 @@ else if ($action == 'add' && $user->rights->facture->creer)
$action = 'create'; $action = 'create';
$_GET["origin"] = $_POST["origin"]; $_GET["origin"] = $_POST["origin"];
$_GET["originid"] = $_POST["originid"]; $_GET["originid"] = $_POST["originid"];
setEventMessage($object->error, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com> /* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -22,6 +23,8 @@
<?php <?php
global $user;
$langs = $GLOBALS['langs']; $langs = $GLOBALS['langs'];
$linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
@ -47,16 +50,22 @@ foreach($linkedObjectBlock as $object)
<tr <?php echo $GLOBALS['bc'][$var]; ?> ><td> <tr <?php echo $GLOBALS['bc'][$var]; ?> ><td>
<a href="<?php echo DOL_URL_ROOT.'/compta/facture.php?facid='.$object->id ?>"><?php echo img_object($langs->trans("ShowBill"),"bill").' '.$object->ref; ?></a></td> <a href="<?php echo DOL_URL_ROOT.'/compta/facture.php?facid='.$object->id ?>"><?php echo img_object($langs->trans("ShowBill"),"bill").' '.$object->ref; ?></a></td>
<td align="center"><?php echo dol_print_date($object->date,'day'); ?></td> <td align="center"><?php echo dol_print_date($object->date,'day'); ?></td>
<td align="right"><?php echo price($object->total_ht); ?></td> <td align="right"><?php
if ($user->rights->facture->lire) {
$total = $total + $object->total_ht;
echo price($object->total_ht);
} ?></td>
<td align="right"><?php echo $object->getLibStatut(3); ?></td> <td align="right"><?php echo $object->getLibStatut(3); ?></td>
</tr> </tr>
<?php <?php
$total = $total + $object->total_ht;
} }
?> ?>
<tr class="liste_total"> <tr class="liste_total">
<td align="left" colspan="2"><?php echo $langs->trans("TotalHT"); ?></td> <td align="left" colspan="2"><?php echo $langs->trans("TotalHT"); ?></td>
<td align="right"><?php echo price($total); ?></td> <td align="right"><?php
if ($user->rights->facture->lire) {
echo price($total);
} ?></td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
</table> </table>

View File

@ -914,7 +914,7 @@ class BonPrelevement extends CommonObject
$sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_bons ("; $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_bons (";
$sql.= " ref, entity, datec"; $sql.= " ref, entity, datec";
$sql.= ") VALUES ("; $sql.= ") VALUES (";
$sql.= "'".$ref."'"; $sql.= "'".$this->db->escape($ref)."'";
$sql.= ", ".$conf->entity; $sql.= ", ".$conf->entity;
$sql.= ", '".$this->db->idate($now)."'"; $sql.= ", '".$this->db->idate($now)."'";
$sql.= ")"; $sql.= ")";

View File

@ -78,19 +78,19 @@ $sql.= " AND f.entity = ".$conf->entity;
if ($socid) $sql.= " AND s.rowid = ".$socid; if ($socid) $sql.= " AND s.rowid = ".$socid;
if ($search_line) if ($search_line)
{ {
$sql.= " AND pl.rowid = '".$search_line."'"; $sql.= " AND pl.rowid = '".$db->escape($search_line)."'";
} }
if ($search_bon) if ($search_bon)
{ {
$sql.= " AND p.ref LIKE '%".$search_bon."%'"; $sql.= " AND p.ref LIKE '%".$db->escape($search_bon)."%'";
} }
if ($search_code) if ($search_code)
{ {
$sql.= " AND s.code_client LIKE '%".$search_code."%'"; $sql.= " AND s.code_client LIKE '%".$db->escape($search_code)."%'";
} }
if ($search_societe) if ($search_societe)
{ {
$sql .= " AND s.nom LIKE '%".$search_societe."%'"; $sql .= " AND s.nom LIKE '%".$db->escape($search_societe)."%'";
} }
$sql.=$db->order($sortfield,$sortorder); $sql.=$db->order($sortfield,$sortorder);
$sql.=$db->plimit($conf->liste_limit+1, $offset); $sql.=$db->plimit($conf->liste_limit+1, $offset);
@ -104,7 +104,7 @@ if ($result)
$urladd = "&amp;statut=".$statut; $urladd = "&amp;statut=".$statut;
$urladd .= "&amp;search_bon=".$search_bon; $urladd .= "&amp;search_bon=".$search_bon;
print_barre_liste($langs->trans("WithdrawalsLines"), $page, "liste.php", $urladd, $sortfield, $sortorder, '', $num); print_barre_liste($langs->trans("WithdrawalsLines"), $page, $_SERVER["PHP_SELF"], $urladd, $sortfield, $sortorder, '', $num);
print"\n<!-- debut table -->\n"; print"\n<!-- debut table -->\n";
print '<table class="liste" width="100%">'; print '<table class="liste" width="100%">';

View File

@ -76,7 +76,8 @@ $sql.= " AND pl.fk_prelevement_bons = p.rowid";
$sql.= " AND pl.fk_soc = s.rowid"; $sql.= " AND pl.fk_soc = s.rowid";
$sql.= " AND p.entity = ".$conf->entity; $sql.= " AND p.entity = ".$conf->entity;
if ($socid) $sql.= " AND s.rowid = ".$socid; if ($socid) $sql.= " AND s.rowid = ".$socid;
$sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit+1, $offset); $sql.= " ".$db->order($sortfield, $sortorder);
$sql.= " ".$db->plimit($conf->liste_limit+1, $offset);
$result = $db->query($sql); $result = $db->query($sql);
if ($result) if ($result)

View File

@ -30,7 +30,7 @@ $langs->load("companies");
if (! empty($conf->facture->enabled)) $langs->load("bills"); if (! empty($conf->facture->enabled)) $langs->load("bills");
// Security check // Security check
$socid = $_GET["socid"]; $socid = GETPOST("socid",'int');
if ($user->societe_id > 0) if ($user->societe_id > 0)
{ {
$action = ''; $action = '';

View File

@ -31,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/contact.lib.php';
$langs->load("companies"); $langs->load("companies");
// Security check // Security check
$contactid = isset($_GET["id"])?$_GET["id"]:''; $contactid = GETPOST("id",'int');
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result = restrictedArea($user, 'contact', $contactid, 'socpeople&societe'); $result = restrictedArea($user, 'contact', $contactid, 'socpeople&societe');
@ -45,8 +45,8 @@ llxHeader('',$langs->trans("ContactsAddresses"),'EN:Module_Third_Parties|FR:Modu
$contact = new Contact($db); $contact = new Contact($db);
$contact->fetch($_GET["id"], $user); $contact->fetch($contactid, $user);
$contact->info($_GET["id"]); $contact->info($contactid);
$head = contact_prepare_head($contact); $head = contact_prepare_head($contact);

View File

@ -406,7 +406,7 @@ class Contrat extends CommonObject
$sql.= " FROM ".MAIN_DB_PREFIX."contrat"; $sql.= " FROM ".MAIN_DB_PREFIX."contrat";
if ($ref) if ($ref)
{ {
$sql.= " WHERE ref='".$ref."'"; $sql.= " WHERE ref='".$this->db->escape($ref)."'";
$sql.= " AND entity IN (".getEntity('contract').")"; $sql.= " AND entity IN (".getEntity('contract').")";
} }
else $sql.= " WHERE rowid=".$id; else $sql.= " WHERE rowid=".$id;
@ -2077,7 +2077,7 @@ class ContratLigne extends CommonObject
$sql.= " t.commentaire"; $sql.= " t.commentaire";
$sql.= " FROM ".MAIN_DB_PREFIX."contratdet as t"; $sql.= " FROM ".MAIN_DB_PREFIX."contratdet as t";
if ($id) $sql.= " WHERE t.rowid = ".$id; if ($id) $sql.= " WHERE t.rowid = ".$id;
if ($ref) $sql.= " WHERE t.rowid = '".$ref."'"; if ($ref) $sql.= " WHERE t.rowid = '".$this->db->escape($ref)."'";
dol_syslog(get_class($this)."::fetch", LOG_DEBUG); dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);

View File

@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
$langs->load("contracts"); $langs->load("contracts");
// Security check // Security check
$contratid = isset($_GET["id"])?$_GET["id"]:''; $contratid = GETPOST("id",'int');
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result = restrictedArea($user, 'contrat',$contratid,''); $result = restrictedArea($user, 'contrat',$contratid,'');
@ -41,8 +41,8 @@ $result = restrictedArea($user, 'contrat',$contratid,'');
llxHeader(); llxHeader();
$contrat = new Contrat($db); $contrat = new Contrat($db);
$contrat->fetch($_GET["id"]); $contrat->fetch($contratid);
$contrat->info($_GET["id"]); $contrat->info($contratid);
$head = contract_prepare_head($contrat); $head = contract_prepare_head($contrat);

View File

@ -1141,7 +1141,6 @@ abstract class CommonObject
} }
} }
/** /**
* Save a new position (field rang) for details lines. * Save a new position (field rang) for details lines.
* You can choose to set position for lines with already a position or lines without any position defined. * You can choose to set position for lines with already a position or lines without any position defined.
@ -2085,7 +2084,7 @@ abstract class CommonObject
$sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element; $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element;
$sql.= " WHERE entity IN (".getEntity($this->element, 1).")"; $sql.= " WHERE entity IN (".getEntity($this->element, 1).")";
if (! empty($id)) $sql.= " AND rowid = ".$id; if (! empty($id)) $sql.= " AND rowid = ".$id;
if (! empty($ref)) $sql.= " AND ref = '".$ref."'"; if (! empty($ref)) $sql.= " AND ref = '".$this->db->escape($ref)."'";
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
@ -3460,6 +3459,7 @@ abstract class CommonObject
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db); $interface=new Interfaces($this->db);
$result=$interface->run_triggers($trigger_name,$this,$user,$langs,$conf); $result=$interface->run_triggers($trigger_name,$this,$user,$langs,$conf);
if ($result < 0) if ($result < 0)
{ {
if (!empty($this->errors)) if (!empty($this->errors))
@ -3471,6 +3471,7 @@ abstract class CommonObject
$this->errors=$interface->errors; $this->errors=$interface->errors;
} }
} }
return $result; return $result;
} }

View File

@ -187,6 +187,7 @@ class FormActions
print '<th class="liste_titre">'.$langs->trans('Action').'</th>'; print '<th class="liste_titre">'.$langs->trans('Action').'</th>';
print '<th class="liste_titre">'.$langs->trans('Date').'</th>'; print '<th class="liste_titre">'.$langs->trans('Date').'</th>';
print '<th class="liste_titre">'.$langs->trans('By').'</th>'; print '<th class="liste_titre">'.$langs->trans('By').'</th>';
print '<th class="liste_titre" align="right">'.$langs->trans('Status').'</th>';
print '</tr>'; print '</tr>';
print "\n"; print "\n";
@ -204,7 +205,15 @@ class FormActions
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
print '<td>'.$ref.'</td>'; print '<td>'.$ref.'</td>';
print '<td>'.$label.'</td>'; print '<td>'.$label.'</td>';
print '<td>'.dol_print_date($action->datep,'day').'</td>'; print '<td>'.dol_print_date($action->datep,'dayhour');
if ($action->datef)
{
$tmpa=dol_getdate($action->datep);
$tmpb=dol_getdate($action->datef);
if ($tmpa['mday'] == $tmpb['mday'] && $tmpa['mon'] == $tmpb['mon'] && $tmpa['year'] == $tmpb['year']) print '-'.dol_print_date($action->datef,'hour');
else print '-'.dol_print_date($action->datef,'dayhour');
}
print '</td>';
print '<td>'; print '<td>';
if (! empty($action->author->id)) if (! empty($action->author->id))
{ {
@ -214,6 +223,12 @@ class FormActions
print $userstatic->getNomUrl(1); print $userstatic->getNomUrl(1);
} }
print '</td>'; print '</td>';
print '<td align="right">';
if (! empty($action->author->id))
{
print $action->getLibStatut(3);
}
print '</td>';
print '</tr>'; print '</tr>';
} }
print '</table>'; print '</table>';
@ -226,7 +241,7 @@ class FormActions
/** /**
* Output list of type of event * Output list of type of event
* *
* @param string $selected Type pre-selected (can be 'manual', 'auto' or 'AC_xxx' * @param string $selected Type pre-selected (can be 'manual', 'auto' or 'AC_xxx')
* @param string $htmlname Nom champ formulaire * @param string $htmlname Nom champ formulaire
* @param string $excludetype Type to exclude * @param string $excludetype Type to exclude
* @param string $onlyautoornot Group list by auto events or not: We keep only the 2 generic lines (AC_OTH and AC_OTH_AUTO) * @param string $onlyautoornot Group list by auto events or not: We keep only the 2 generic lines (AC_OTH and AC_OTH_AUTO)
@ -235,7 +250,7 @@ class FormActions
*/ */
function select_type_actions($selected='',$htmlname='actioncode',$excludetype='',$onlyautoornot=0, $hideinfohelp=0) function select_type_actions($selected='',$htmlname='actioncode',$excludetype='',$onlyautoornot=0, $hideinfohelp=0)
{ {
global $langs,$user,$form; global $langs,$user,$form,$conf;
if (! is_object($form)) $form=new Form($db); if (! is_object($form)) $form=new Form($db);

View File

@ -520,7 +520,7 @@ class FormCompany
* @param string $htmlname Name of HTML form * @param string $htmlname Name of HTML form
* @param array $limitto Disable answers that are not id in this array list * @param array $limitto Disable answers that are not id in this array list
* @param int $forceid This is to force another object id than object->id * @param int $forceid This is to force another object id than object->id
* @param array $events Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled'))) * @param array $events More js events option. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
* @param string $moreparam String with more param to add into url when noajax search is used. * @param string $moreparam String with more param to add into url when noajax search is used.
* @return int The selected third party ID * @return int The selected third party ID
*/ */
@ -573,13 +573,13 @@ class FormCompany
var obj = '.json_encode($events).'; var obj = '.json_encode($events).';
$.each(obj, function(key,values) { $.each(obj, function(key,values) {
if (values.method.length) { if (values.method.length) {
getMethod'.$htmlname.'(values); runJsCodeForEvent'.$htmlname.'(values);
} }
}); });
}); });
// Function used to execute events when search_htmlname change // Function used to execute events when search_htmlname change
function getMethod'.$htmlname.'(obj) { function runJsCodeForEvent'.$htmlname.'(obj) {
var id = $("#'.$htmlname.'").val(); var id = $("#'.$htmlname.'").val();
var method = obj.method; var method = obj.method;
var url = obj.url; var url = obj.url;
@ -612,8 +612,8 @@ class FormCompany
} }
print "\n".'<!-- Input text for third party with Ajax.Autocompleter (selectCompaniesForNewContact) -->'."\n"; print "\n".'<!-- Input text for third party with Ajax.Autocompleter (selectCompaniesForNewContact) -->'."\n";
print '<table class="nobordernopadding"><tr class="nobordernopadding">'; //print '<table class="nobordernopadding"><tr class="nobordernopadding">';
print '<td class="nobordernopadding">'; //print '<td class="nobordernopadding">';
if ($obj->rowid == 0) if ($obj->rowid == 0)
{ {
print '<input type="text" size="30" id="search_'.$htmlname.'" name="search_'.$htmlname.'" value="" '.$htmloption.' />'; print '<input type="text" size="30" id="search_'.$htmlname.'" name="search_'.$htmlname.'" value="" '.$htmloption.' />';
@ -623,10 +623,10 @@ class FormCompany
print '<input type="text" size="30" id="search_'.$htmlname.'" name="search_'.$htmlname.'" value="'.$obj->nom.'" '.$htmloption.' />'; print '<input type="text" size="30" id="search_'.$htmlname.'" name="search_'.$htmlname.'" value="'.$obj->nom.'" '.$htmloption.' />';
} }
print ajax_autocompleter(($socid?$socid:-1),$htmlname,DOL_URL_ROOT.'/societe/ajaxcompanies.php','',$minLength); print ajax_autocompleter(($socid?$socid:-1),$htmlname,DOL_URL_ROOT.'/societe/ajaxcompanies.php','',$minLength);
print '</td>'; //print '</td>';
print '</tr>'; //print '</tr>';
print '</table>'; //print '</table>';
print "\n"; //print "\n";
return $socid; return $socid;
} }
else else

View File

@ -0,0 +1,139 @@
<?php
/* Copyright (C) 2012-2013 Charles-Fr BENKE <charles.fr@benke.fr>
*
* 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/>.
* or see http://www.gnu.org/
*/
/**
* \file htdocs/core/class/html.formintervention.class.php
* \ingroup core
* \brief File of class with all html predefined components
*/
/**
* Class to manage generation of HTML components for contract module
*/
class FormIntervention
{
var $db;
var $error;
/**
* Constructor
*
* @param DoliDB $db Database handler
*/
public function __construct($db)
{
$this->db = $db;
}
/**
* Show a combo list with contracts qualified for a third party
*
* @param int $socid Id third party (-1=all, 0=only interventions not linked to a third party, id=intervention not linked or linked to third party id)
* @param int $selected Id intervention preselected
* @param string $htmlname Nom de la zone html
* @param int $maxlength Maximum length of label
* @param int $showempty Show empty line
* @return int Nbre of project if OK, <0 if KO
*/
function select_interventions($socid=-1, $selected='', $htmlname='interventionid', $maxlength=16, $showempty=1)
{
global $db,$user,$conf,$langs;
$out='';
$hideunselectables=false;
// Search all contacts
$sql = 'SELECT f.rowid, f.ref, f.fk_soc, f.fk_statut';
$sql.= ' FROM '.MAIN_DB_PREFIX .'fichinter as f';
$sql.= " WHERE f.entity = ".$conf->entity;
if ($socid != '')
{
if ($socid == '0') $sql.= " AND (f.fk_soc = 0 OR f.fk_soc IS NULL)";
else $sql.= " AND f.fk_soc = ".$socid;
}
dol_syslog(get_class($this)."::select_intervention", LOG_DEBUG);
$resql=$db->query($sql);
if ($resql)
{
$out.='<select id="interventionid" class="flat" name="'.$htmlname.'">';
if ($showempty) $out.='<option value="0">&nbsp;</option>';
$num = $db->num_rows($resql);
$i = 0;
if ($num)
{
while ($i < $num)
{
$obj = $db->fetch_object($resql);
// If we ask to filter on a company and user has no permission to see all companies and project is linked to another company, we hide project.
if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && ! $user->rights->societe->lire)
{
// Do nothing
}
else
{
$labeltoshow=dol_trunc($obj->ref,18);
if (!empty($selected) && $selected == $obj->rowid && $obj->statut > 0)
{
$out.='<option value="'.$obj->rowid.'" selected="selected">'.$labeltoshow.'</option>';
}
else
{
$disabled=0;
if (! $obj->fk_statut > 0)
{
$disabled=1;
$labeltoshow.=' ('.$langs->trans("Draft").')';
}
if ($socid > 0 && (! empty($obj->fk_soc) && $obj->fk_soc != $socid))
{
$disabled=1;
$labeltoshow.=' - '.$langs->trans("LinkedToAnotherCompany");
}
if ($hideunselectables && $disabled)
{
$resultat='';
}
else
{
$resultat='<option value="'.$obj->rowid.'"';
if ($disabled) $resultat.=' disabled="disabled"';
$resultat.='>'.$labeltoshow;
$resultat.='</option>';
}
$out.=$resultat;
}
}
$i++;
}
}
$out.='</select>';
$db->free($resql);
return $out;
}
else
{
dol_print_error($db);
return '';
}
}
}

View File

@ -311,7 +311,7 @@ function ajax_dialog($title,$message,$w=350,$h=150)
* TODO: It is used when COMPANY_USE_SEARCH_TO_SELECT and CONTACT_USE_SEARCH_TO_SELECT are set by html.formcompany.class.php. Should use ajax_autocompleter instead like done by html.form.class.php for select_produits. * TODO: It is used when COMPANY_USE_SEARCH_TO_SELECT and CONTACT_USE_SEARCH_TO_SELECT are set by html.formcompany.class.php. Should use ajax_autocompleter instead like done by html.form.class.php for select_produits.
* *
* @param string $htmlname Name of html select field * @param string $htmlname Name of html select field
* @param array $events Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled'))) * @param array $events More events option. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
* @param int $minLengthToAutocomplete Minimum length of input string to start autocomplete * @param int $minLengthToAutocomplete Minimum length of input string to start autocomplete
* @return string Return html string to convert a select field into a combo * @return string Return html string to convert a select field into a combo
*/ */
@ -344,13 +344,13 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0)
var obj = '.json_encode($events).'; var obj = '.json_encode($events).';
$.each(obj, function(key,values) { $.each(obj, function(key,values) {
if (values.method.length) { if (values.method.length) {
getMethod(values); runJsCodeForEvent(values);
} }
}); });
} }
}); });
function getMethod(obj) { function runJsCodeForEvent(obj) {
var id = $("#'.$htmlname.'").val(); var id = $("#'.$htmlname.'").val();
var method = obj.method; var method = obj.method;
var url = obj.url; var url = obj.url;
@ -382,6 +382,7 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0)
} else { } else {
$("#inputautocomplete"+htmlname).val(""); $("#inputautocomplete"+htmlname).val("");
} }
$("select#" + htmlname).change(); /* Trigger event change */
}); });
} }

View File

@ -4,7 +4,7 @@
* 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) 2013-2014 Florian Henry <florian.henry@open-concept.pro> * Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2013-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Christophe Battarel <contact@altairis.fr> * Copyright (C) 2013 Christophe Battarel <contact@altairis.fr>
* Copyright (C) 2013 Alexandre Spangaro <alexandre.spangaro@gmail.com> * Copyright (C) 2013 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* *
@ -72,14 +72,6 @@ function societe_prepare_head($object)
$h++; $h++;
} }
if (($object->localtax1_assuj || $object->localtax2_assuj) && (isset($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL > 0) )
{
$head[$h][0] = DOL_URL_ROOT.'/societe/localtaxes.php?socid='.$object->id;
$head[$h][1] = $langs->trans("LocalTaxes");
$head[$h][2] = 'localtaxes';
$h++;
}
if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
{ {
$head[$h][0] = DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id; $head[$h][0] = DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id;
@ -106,7 +98,7 @@ function societe_prepare_head($object)
if ($user->societe_id == 0) if ($user->societe_id == 0)
{ {
if (! empty($conf->commande->enabled) || ! empty($conf->propal->enabled) || ! empty($conf->facture->enabled) || ! empty($conf->fournisseur->enabled)) if (! empty($conf->commande->enabled) || ! empty($conf->propal->enabled) || ! empty($conf->facture->enabled) || ! empty($conf->fichinter->enabled) || ! empty($conf->fournisseur->enabled))
{ {
$head[$h][0] = DOL_URL_ROOT.'/societe/consumption.php?socid='.$object->id; $head[$h][0] = DOL_URL_ROOT.'/societe/consumption.php?socid='.$object->id;
$head[$h][1] = $langs->trans("Referers"); $head[$h][1] = $langs->trans("Referers");

View File

@ -131,12 +131,13 @@ function getServerTimeZoneInt($refgmtdate='now')
* *
* @param int $time Date timestamp (or string with format YYYY-MM-DD) * @param int $time Date timestamp (or string with format YYYY-MM-DD)
* @param int $duration_value Value of delay to add * @param int $duration_value Value of delay to add
* @param int $duration_unit Unit of added delay (d, m, y, w) * @param int $duration_unit Unit of added delay (d, m, y, w, h)
* @return int New timestamp * @return int New timestamp
*/ */
function dol_time_plus_duree($time,$duration_value,$duration_unit) function dol_time_plus_duree($time,$duration_value,$duration_unit)
{ {
if ($duration_value == 0) return $time; if ($duration_value == 0) return $time;
if ($duration_unit == 'h') return $time + (3600*$duration_value);
if ($duration_unit == 'w') return $time + (3600*24*7*$duration_value); if ($duration_unit == 'w') return $time + (3600*24*7*$duration_value);
if ($duration_value > 0) $deltastring="+".abs($duration_value); if ($duration_value > 0) $deltastring="+".abs($duration_value);
if ($duration_value < 0) $deltastring="-".abs($duration_value); if ($duration_value < 0) $deltastring="-".abs($duration_value);

View File

@ -1602,6 +1602,24 @@ function pdf_getLinkedObjects($object,$outputlangs)
$linkedobjects[$objecttype]['date_value'] = dol_print_date($objects[$i]->date_contrat,'day','',$outputlangs); $linkedobjects[$objecttype]['date_value'] = dol_print_date($objects[$i]->date_contrat,'day','',$outputlangs);
} }
} }
else if ($objecttype == 'shipping')
{
$outputlangs->load('orders');
$outputlangs->load('sendings');
$num=count($objects);
for ($i=0;$i<$num;$i++)
{
$objects[$i]->fetchObjectLinked();
$order = $objects[$i]->linkedObjects['commande'][0];
$linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder") . ' / ' . $outputlangs->transnoentities("RefSending");
$linkedobjects[$objecttype]['ref_value'] = $outputlangs->transnoentities($order->ref) . ($order->ref_client ? ' ('.$order->ref_client.')' : '');
$linkedobjects[$objecttype]['ref_value'].= ' / ' . $outputlangs->transnoentities($objects[$i]->ref);
$linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate") . ' / ' . $outputlangs->transnoentities("DateSending");
$linkedobjects[$objecttype]['date_value'] = dol_print_date($order->date,'day','',$outputlangs);
$linkedobjects[$objecttype]['date_value'].= ' / ' . dol_print_date($objects[$i]->date_delivery,'day','',$outputlangs);
}
}
} }
// For add external linked objects // For add external linked objects

View File

@ -27,6 +27,8 @@
require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.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/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
/** /**
* Class to generate event report * Class to generate event report
@ -59,6 +61,7 @@ class CommActionRapport
{ {
global $conf,$langs; global $conf,$langs;
$langs->load("commercial"); $langs->load("commercial");
$langs->load("projects");
$this->db = $db; $this->db = $db;
$this->description = ""; $this->description = "";
@ -197,9 +200,9 @@ class CommActionRapport
$y++; $y++;
$pdf->SetFont('','',8); $pdf->SetFont('','',8);
$sql = "SELECT s.nom as societe, s.rowid as socid, s.client,"; $sql = "SELECT s.nom as thirdparty, s.rowid as socid, s.client,";
$sql.= " a.id, a.datep as dp, a.datep2 as dp2,"; $sql.= " a.id, a.datep as dp, a.datep2 as dp2,";
$sql.= " a.fk_contact, a.note, a.percent as percent, a.label,"; $sql.= " a.fk_contact, a.note, a.percent as percent, a.label, a.fk_project,";
$sql.= " c.code, c.libelle,"; $sql.= " c.code, c.libelle,";
$sql.= " u.login"; $sql.= " u.login";
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."actioncomm as a"; $sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."actioncomm as a";
@ -209,6 +212,9 @@ class CommActionRapport
$sql.= " AND '".$this->db->idate(dol_get_last_day($this->year,$this->month,false))."'"; $sql.= " AND '".$this->db->idate(dol_get_last_day($this->year,$this->month,false))."'";
$sql.= " ORDER BY a.datep DESC"; $sql.= " ORDER BY a.datep DESC";
$eventstatic=new ActionComm($this->db);
$projectstatic=new Project($this->db);
dol_syslog(get_class($this)."::_page", LOG_DEBUG); dol_syslog(get_class($this)."::_page", LOG_DEBUG);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
@ -221,6 +227,11 @@ class CommActionRapport
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$eventstatic->id=$obj->id;
$eventstatic->percentage=$obj->percentage;
$eventstatic->fulldayevent=$obj->fulldayevent;
$eventstatic->punctual=$obj->punctual;
$y = max($y, $pdf->GetY(), $y0, $y1, $y2, $y3); $y = max($y, $pdf->GetY(), $y0, $y1, $y2, $y3);
// Calculate height of text // Calculate height of text
@ -228,6 +239,16 @@ class CommActionRapport
if (! preg_match('/^'.preg_quote($obj->label).'/',$obj->note)) $text=$obj->label."\n"; if (! preg_match('/^'.preg_quote($obj->label).'/',$obj->note)) $text=$obj->label."\n";
$text.=$obj->note; $text.=$obj->note;
$text=dol_trunc(dol_htmlentitiesbr_decode($text),150); $text=dol_trunc(dol_htmlentitiesbr_decode($text),150);
// Add status to text
$text.="\n";
$status=dol_htmlentitiesbr_decode($eventstatic->getLibStatut(1,1));
$text.=$status;
if ($obj->fk_project > 0)
{
$projectstatic->fetch($obj->fk_project);
$text.=($status?' - ':'').$outputlangs->transnoentitiesnoconv("Project").": ".dol_htmlentitiesbr_decode($projectstatic->getNomUrl(0, 'nolink'));
}
//print 'd'.$text; exit; //print 'd'.$text; exit;
$nboflines=dol_nboflines($text); $nboflines=dol_nboflines($text);
$heightlinemax=max(2*$height,$nboflines*$height); $heightlinemax=max(2*$height,$nboflines*$height);
@ -249,7 +270,7 @@ class CommActionRapport
// Third party // Third party
$pdf->SetXY(26, $y); $pdf->SetXY(26, $y);
$pdf->MultiCell(32, $height, dol_trunc($outputlangs->convToOutputCharset($obj->societe),32), 0, 'L', 0); $pdf->MultiCell(32, $height, dol_trunc($outputlangs->convToOutputCharset($obj->thirdparty),32), 0, 'L', 0);
$y1 = $pdf->GetY(); $y1 = $pdf->GetY();
// Action code // Action code

View File

@ -1,5 +1,6 @@
<?php <?php
/* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com> /* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -21,6 +22,8 @@
<?php <?php
global $user;
$langs = $GLOBALS['langs']; $langs = $GLOBALS['langs'];
$linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
@ -47,17 +50,23 @@ foreach($linkedObjectBlock as $object)
<a href="<?php echo DOL_URL_ROOT.'/expedition/fiche.php?id='.$object->id ?>"><?php echo img_object($langs->trans("ShowShipping"),"sending").' '.$object->ref; ?></a></td> <a href="<?php echo DOL_URL_ROOT.'/expedition/fiche.php?id='.$object->id ?>"><?php echo img_object($langs->trans("ShowShipping"),"sending").' '.$object->ref; ?></a></td>
<td align="center"><?php echo dol_print_date($object->date_creation,'day'); ?></td> <td align="center"><?php echo dol_print_date($object->date_creation,'day'); ?></td>
<td align="center"><?php echo dol_print_date($object->date_delivery,'day'); ?></td> <td align="center"><?php echo dol_print_date($object->date_delivery,'day'); ?></td>
<td align="right"><?php echo price($object->total_ht); ?></td> <td align="right"><?php
if ($user->rights->expedition->lire) {
$total = $total + $object->total_ht;
echo price($object->total_ht);
} ?></td>
<td align="right"><?php echo $object->getLibStatut(3); ?></td> <td align="right"><?php echo $object->getLibStatut(3); ?></td>
</tr> </tr>
<?php <?php
$total = $total + $object->total_ht;
} }
?> ?>
<tr class="liste_total"> <tr class="liste_total">
<td align="left" colspan="3"><?php echo $langs->trans('TotalHT'); ?></td> <td align="left" colspan="3"><?php echo $langs->trans('TotalHT'); ?></td>
<td align="right"><?php echo price($total); ?></td> <td align="right"><?php
if ($user->rights->expedition->lire) {
echo price($total);
} ?></td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
</table> </table>

View File

@ -796,7 +796,7 @@ class Fichinter extends CommonObject
* *
* @param User $user Object user who modify * @param User $user Object user who modify
* @param string $description description * @param string $description description
* @return int <0 if ko, >0 if ok * @return int <0 if KO, >0 if OK
*/ */
function set_description($user, $description) function set_description($user, $description)
{ {
@ -808,7 +808,6 @@ class Fichinter extends CommonObject
$sql.= " SET description = '".$this->db->escape($description)."'"; $sql.= " SET description = '".$this->db->escape($description)."'";
$sql.= " WHERE rowid = ".$this->id; $sql.= " WHERE rowid = ".$this->id;
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$sql.= " AND fk_statut = 0";
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {

View File

@ -1627,8 +1627,10 @@ else if ($id > 0 || ! empty($ref))
// Modify // Modify
if ($object->statut == 1 && $user->rights->ficheinter->creer) if ($object->statut == 1 && $user->rights->ficheinter->creer)
{ {
print '<div class="inline-block divButAction"><a class="butAction" href="fiche.php?id='.$object->id.'&action=modify"'; print '<div class="inline-block divButAction"><a class="butAction" href="fiche.php?id='.$object->id.'&action=modify">';
print '>'.$langs->trans("Modify").'</a></div>'; if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) print $langs->trans("Modify");
else print $langs->trans("SetToDraft");
print '</a></div>';
} }
// Send // Send
@ -1641,6 +1643,20 @@ else if ($id > 0 || ! empty($ref))
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans('SendByMail').'</a></div>'; else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans('SendByMail').'</a></div>';
} }
// Event agenda
if (! empty($conf->global->FICHINTER_ADDLINK_TO_EVENT))
{
if (! empty($conf->agenda->enabled) && $object->statut > 0)
{
$langs->load("agenda");
if ($object->statut < 2)
{
if ($user->rights->agenda->myactions->create) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&amp;origin='.$object->element.'&amp;originid='.$object->id.'&amp;socid='.$object->socid.'&amp;backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id).'">'.$langs->trans("AddEvent").'</a></div>';
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("AddEvent").'</a></div>';
}
}
}
// Proposal // Proposal
if (! empty($conf->propal->enabled) && $object->statut > 0) if (! empty($conf->propal->enabled) && $object->statut > 0)
{ {

View File

@ -137,7 +137,7 @@ class CommandeFournisseur extends CommonOrder
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as p ON (c.fk_mode_reglement = p.id)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as p ON (c.fk_mode_reglement = p.id)";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_input_method as cm ON cm.rowid = c.fk_input_method"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_input_method as cm ON cm.rowid = c.fk_input_method";
$sql.= " WHERE c.entity = ".$conf->entity; $sql.= " WHERE c.entity = ".$conf->entity;
if ($ref) $sql.= " AND c.ref='".$ref."'"; if ($ref) $sql.= " AND c.ref='".$this->db->escape($ref)."'";
else $sql.= " AND c.rowid=".$id; else $sql.= " AND c.rowid=".$id;
dol_syslog(get_class($this)."::fetch", LOG_DEBUG); dol_syslog(get_class($this)."::fetch", LOG_DEBUG);

View File

@ -4,6 +4,7 @@
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com> * Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -55,6 +56,18 @@ class PaiementFourn extends Paiement
// fk_paiement dans llx_paiement est l'id du type de paiement (7 pour CHQ, ...) // fk_paiement dans llx_paiement est l'id du type de paiement (7 pour CHQ, ...)
// fk_paiement dans llx_paiement_facture est le rowid du paiement // fk_paiement dans llx_paiement_facture est le rowid du paiement
/**
* Label of payment type
* @var string
*/
public $type_libelle;
/**
* Code of Payment type
* @var string
*/
public $type_code;
/** /**
* Constructor * Constructor
* *
@ -74,7 +87,7 @@ class PaiementFourn extends Paiement
function fetch($id) function fetch($id)
{ {
$sql = 'SELECT p.rowid, p.datep as dp, p.amount, p.statut, p.fk_bank,'; $sql = 'SELECT p.rowid, p.datep as dp, p.amount, p.statut, p.fk_bank,';
$sql.= ' c.libelle as paiement_type,'; $sql.= ' c.code as paiement_code, c.libelle as paiement_type,';
$sql.= ' p.num_paiement, p.note, b.fk_account'; $sql.= ' p.num_paiement, p.note, b.fk_account';
$sql.= ' FROM '.MAIN_DB_PREFIX.'c_paiement as c, '.MAIN_DB_PREFIX.'paiementfourn as p'; $sql.= ' FROM '.MAIN_DB_PREFIX.'c_paiement as c, '.MAIN_DB_PREFIX.'paiementfourn as p';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid '; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid ';
@ -95,6 +108,7 @@ class PaiementFourn extends Paiement
$this->bank_line = $obj->fk_bank; $this->bank_line = $obj->fk_bank;
$this->montant = $obj->amount; $this->montant = $obj->amount;
$this->note = $obj->note; $this->note = $obj->note;
$this->type_code = $obj->paiement_code;
$this->type_libelle = $obj->paiement_type; $this->type_libelle = $obj->paiement_type;
$this->statut = $obj->statut; $this->statut = $obj->statut;
$error = 1; $error = 1;

View File

@ -1,5 +1,6 @@
<?php <?php
/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com> /* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -21,6 +22,8 @@
<?php <?php
global $user;
$langs = $GLOBALS['langs']; $langs = $GLOBALS['langs'];
$linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
@ -44,17 +47,23 @@ foreach($linkedObjectBlock as $object)
<tr <?php echo $bc[$var]; ?> ><td> <tr <?php echo $bc[$var]; ?> ><td>
<a href="<?php echo DOL_URL_ROOT.'/fourn/commande/fiche.php?id='.$object->id ?>"><?php echo img_object($langs->trans("ShowOrder"),"order").' '.$object->ref; ?></a></td> <a href="<?php echo DOL_URL_ROOT.'/fourn/commande/fiche.php?id='.$object->id ?>"><?php echo img_object($langs->trans("ShowOrder"),"order").' '.$object->ref; ?></a></td>
<td align="center"><?php echo dol_print_date($object->date,'day'); ?></td> <td align="center"><?php echo dol_print_date($object->date,'day'); ?></td>
<td align="right"><?php echo price($object->total_ht); ?></td> <td align="right"><?php
if ($user->rights->fournisseur->commande->lire) {
$total = $total + $object->total_ht;
echo price($object->total_ht);
} ?></td>
<td align="right"><?php echo $object->getLibStatut(3); ?></td> <td align="right"><?php echo $object->getLibStatut(3); ?></td>
</tr> </tr>
<?php <?php
$total = $total + $object->total_ht;
} }
?> ?>
<tr class="liste_total"> <tr class="liste_total">
<td align="left" colspan="2"><?php echo $langs->trans('TotalHT'); ?></td> <td align="left" colspan="2"><?php echo $langs->trans('TotalHT'); ?></td>
<td align="right"><?php echo price($total); ?></td> <td align="right"><?php
if ($user->rights->fournisseur->commande->lire) {
echo price($total);
} ?></td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
</table> </table>

View File

@ -1,5 +1,6 @@
<?php <?php
/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com> /* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -21,6 +22,8 @@
<?php <?php
global $user;
$langs = $GLOBALS['langs']; $langs = $GLOBALS['langs'];
$linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
@ -45,16 +48,22 @@ foreach($linkedObjectBlock as $object)
<tr <?php echo $bc[$var]; ?> ><td> <tr <?php echo $bc[$var]; ?> ><td>
<a href="<?php echo DOL_URL_ROOT.'/fourn/facture/fiche.php?facid='.$object->id ?>"><?php echo img_object($langs->trans("ShowBill"),"bill").' '.$object->ref; ?></a></td> <a href="<?php echo DOL_URL_ROOT.'/fourn/facture/fiche.php?facid='.$object->id ?>"><?php echo img_object($langs->trans("ShowBill"),"bill").' '.$object->ref; ?></a></td>
<td align="center"><?php echo dol_print_date($object->date,'day'); ?></td> <td align="center"><?php echo dol_print_date($object->date,'day'); ?></td>
<td align="right"><?php echo price($object->total_ht); ?></td> <td align="right"><?php
if ($user->rights->fournisseur->facture->lire) {
$total = $total + $object->total_ht;
echo price($object->total_ht);
} ?></td>
<td align="right"><?php echo $object->getLibStatut(3); ?></td> <td align="right"><?php echo $object->getLibStatut(3); ?></td>
</tr> </tr>
<?php <?php
$total = $total + $object->total_ht;
} }
?> ?>
<tr class="liste_total"> <tr class="liste_total">
<td align="left" colspan="2"><?php echo $langs->trans("TotalHT"); ?></td> <td align="left" colspan="2"><?php echo $langs->trans("TotalHT"); ?></td>
<td align="right"><?php echo price($total); ?></td> <td align="right"><?php
if ($user->rights->fournisseur->facture->lire) {
echo price($total);
} ?></td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
</table> </table>

View File

@ -2,7 +2,7 @@
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com> * Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com> * Copyright (C) 2014 Marcos García <marcosgdf@gmail.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
@ -178,7 +178,8 @@ if ($result > 0)
print '</td></tr>'; print '</td></tr>';
// Payment mode // Payment mode
print '<tr><td valign="top" colspan="2">'.$langs->trans('PaymentMode').'</td><td colspan="3">'.$object->type_libelle.'</td></tr>'; $labeltype=$langs->trans("PaymentType".$object->type_code)!=("PaymentType".$object->type_code)?$langs->trans("PaymentType".$object->type_code):$object->type_libelle;
print '<tr><td valign="top" colspan="2">'.$langs->trans('PaymentMode').'</td><td colspan="3">'.$labeltype.'</td></tr>';
// Payment numero // Payment numero
print '<tr><td valign="top" colspan="2">'.$form->editfieldkey("Numero",'num_paiement',$object->numero,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer).'</td><td colspan="3">'; print '<tr><td valign="top" colspan="2">'.$form->editfieldkey("Numero",'num_paiement',$object->numero,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer).'</td><td colspan="3">';

View File

@ -51,7 +51,7 @@ $offset = $conf->liste_limit * $page ;
$pageprev = $page - 1; $pageprev = $page - 1;
$pagenext = $page + 1; $pagenext = $page + 1;
$id = GETPOST('id'); $id = GETPOST('id','int');
$search_ref = GETPOST('search_ref'); $search_ref = GETPOST('search_ref');
$month_create = GETPOST('month_create'); $month_create = GETPOST('month_create');

View File

@ -88,3 +88,4 @@ ExtSiteUrlAgenda=URL to access .ical file
ExtSiteNoLabel=No Description ExtSiteNoLabel=No Description
WorkingTimeRange=Working time range WorkingTimeRange=Working time range
WorkingDaysRange=Working days range WorkingDaysRange=Working days range
AddEvent=Create event

View File

@ -290,6 +290,8 @@ CurrencySingXOF=CFA Franc BCEAO
CurrencyXPF=CFP Francs CurrencyXPF=CFP Francs
CurrencySingXPF=CFP Franc CurrencySingXPF=CFP Franc
CurrencyCentSingEUR=cent CurrencyCentSingEUR=cent
CurrencyCentINR=paisa
CurrencyCentSingINR=paise
CurrencyThousandthSingTND=thousandth CurrencyThousandthSingTND=thousandth
#### Input reasons ##### #### Input reasons #####
DemandReasonTypeSRC_INTE=Internet DemandReasonTypeSRC_INTE=Internet

View File

@ -645,6 +645,7 @@ OptionalFieldsSetup=Extra attributes setup
URLPhoto=URL of photo/logo URLPhoto=URL of photo/logo
SetLinkToThirdParty=Link to another third party SetLinkToThirdParty=Link to another third party
CreateDraft=Create draft CreateDraft=Create draft
SetToDraft=Back to draft
ClickToEdit=Click to edit ClickToEdit=Click to edit
ObjectDeleted=Object %s deleted ObjectDeleted=Object %s deleted
ByCountry=By country ByCountry=By country

View File

@ -199,7 +199,7 @@ AccountancyJournal=Code journal comptabilité
COMPTA_PRODUCT_BUY_ACCOUNT=Code comptable par défaut pour l'achat de produits COMPTA_PRODUCT_BUY_ACCOUNT=Code comptable par défaut pour l'achat de produits
COMPTA_PRODUCT_SOLD_ACCOUNT=Code comptable par défaut pour la vente de produits COMPTA_PRODUCT_SOLD_ACCOUNT=Code comptable par défaut pour la vente de produits
COMPTA_SERVICE_BUY_ACCOUNT=Code comptable par défaut pour l'achat de services COMPTA_SERVICE_BUY_ACCOUNT=Code comptable par défaut pour l'achat de services
COMPTA_SERVICE_SOLD_ACCOUNT=Code comptable par défaut pour la vente de produits COMPTA_SERVICE_SOLD_ACCOUNT=Code comptable par défaut pour la vente de services
COMPTA_VAT_ACCOUNT=Code comptable par défaut pour l'encaissement de TVA COMPTA_VAT_ACCOUNT=Code comptable par défaut pour l'encaissement de TVA
COMPTA_VAT_BUY_ACCOUNT=Code comptable par défaut pour le versement de la TVA COMPTA_VAT_BUY_ACCOUNT=Code comptable par défaut pour le versement de la TVA
COMPTA_ACCOUNT_CUSTOMER=Code comptable par défaut des tiers clients COMPTA_ACCOUNT_CUSTOMER=Code comptable par défaut des tiers clients

View File

@ -25,9 +25,11 @@ NameAndSignatureOfExternalContact=Nom et signature du client :
DocumentModelStandard=Modèle de fiche d'intervention standard DocumentModelStandard=Modèle de fiche d'intervention standard
InterventionCardsAndInterventionLines=Fiches interventions et lignes d'interventions InterventionCardsAndInterventionLines=Fiches interventions et lignes d'interventions
ClassifyBilled=Classer "Facturée" ClassifyBilled=Classer "Facturée"
ClassifyUnBilled=Classer "Non facturée"
StatusInterInvoiced=Facturée StatusInterInvoiced=Facturée
RelatedInterventions=Interventions rattachées RelatedInterventions=Interventions rattachées
ShowIntervention=Afficher intervention ShowIntervention=Afficher intervention
SendInterventionRef=Envoi de la fiche intervention %s
##### Types de contacts ##### ##### Types de contacts #####
TypeContact_fichinter_internal_INTERREPFOLL=Responsable suivi de l'intervention TypeContact_fichinter_internal_INTERREPFOLL=Responsable suivi de l'intervention
TypeContact_fichinter_internal_INTERVENING=Intervenant TypeContact_fichinter_internal_INTERVENING=Intervenant

View File

@ -645,6 +645,7 @@ OptionalFieldsSetup=Configuration des attributs complémentaires
URLPhoto=URL de la photo/logo URLPhoto=URL de la photo/logo
SetLinkToThirdParty=Lier vers un autre tiers SetLinkToThirdParty=Lier vers un autre tiers
CreateDraft=Créer brouillon CreateDraft=Créer brouillon
SetToDraft=Repasser en brouillon
ClickToEdit=Cliquer ici pour éditer ClickToEdit=Cliquer ici pour éditer
ObjectDeleted=Objet %s supprimé ObjectDeleted=Objet %s supprimé
ByCountry=Par pays ByCountry=Par pays

View File

@ -46,7 +46,7 @@ $langs->load('orders');
$action=GETPOST('action', 'alpha'); $action=GETPOST('action', 'alpha');
$confirm=GETPOST('confirm', 'alpha'); $confirm=GETPOST('confirm', 'alpha');
$backtourl=GETPOST('backtourl'); $backtopage=GETPOST('backtopage');
// Security check // Security check
$id = GETPOST('id', 'int'); $id = GETPOST('id', 'int');
@ -150,7 +150,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->expeditio
if ($result > 0) if ($result > 0)
{ {
$db->commit(); $db->commit();
if (! empty($backtourl)) header("Location: ".$backtourl); if (! empty($backtopage)) header("Location: ".$backtopage);
else header("Location: ".DOL_URL_ROOT.'/expedition/index.php'); else header("Location: ".DOL_URL_ROOT.'/expedition/index.php');
exit; exit;
} }
@ -493,7 +493,7 @@ else
if ($action == 'delete') if ($action == 'delete')
{ {
$expedition_id = GETPOST("expid"); $expedition_id = GETPOST("expid");
print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$delivery->id.'&expid='.$expedition_id.'&backtourl='.urlencode($backtourl),$langs->trans("DeleteDeliveryReceipt"),$langs->trans("DeleteDeliveryReceiptConfirm",$delivery->ref),'confirm_delete','','',1); print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$delivery->id.'&expid='.$expedition_id.'&backtopage='.urlencode($backtopage),$langs->trans("DeleteDeliveryReceipt"),$langs->trans("DeleteDeliveryReceiptConfirm",$delivery->ref),'confirm_delete','','',1);
} }
@ -739,7 +739,7 @@ else
{ {
if ($conf->expedition_bon->enabled) if ($conf->expedition_bon->enabled)
{ {
print '<a class="butActionDelete" href="fiche.php?id='.$delivery->id.'&amp;expid='.$delivery->origin_id.'&amp;action=delete&amp;backtourl='.urlencode(DOL_URL_ROOT.'/expedition/fiche.php?id='.$delivery->origin_id).'">'.$langs->trans("Delete").'</a>'; print '<a class="butActionDelete" href="fiche.php?id='.$delivery->id.'&amp;expid='.$delivery->origin_id.'&amp;action=delete&amp;backtopage='.urlencode(DOL_URL_ROOT.'/expedition/fiche.php?id='.$delivery->origin_id).'">'.$langs->trans("Delete").'</a>';
} }
else else
{ {

View File

@ -30,7 +30,7 @@ require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
if (!$user->rights->opensurvey->read) accessforbidden(); if (!$user->rights->opensurvey->read) accessforbidden();
$action=GETPOST('action'); $action=GETPOST('action');
$id=GETPOST('id'); $id=GETPOST('id','alpha');
$numsondage= $id; $numsondage= $id;
$surveytitle=GETPOST('surveytitle'); $surveytitle=GETPOST('surveytitle');
$status=GETPOST('status'); $status=GETPOST('status');

View File

@ -6,7 +6,7 @@
* Copyright (C) 2007-2011 Jean Heimburger <jean@tiaris.info> * Copyright (C) 2007-2011 Jean Heimburger <jean@tiaris.info>
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013-2014 Cedric GROSS <c.gross@kreiz-it.fr> * Copyright (C) 2013-2014 Cedric GROSS <c.gross@kreiz-it.fr>
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com> * Copyright (C) 2013-2014 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com> * Copyright (C) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2014 Henry Florian <florian.henry@open-concept.pro> * Copyright (C) 2014 Henry Florian <florian.henry@open-concept.pro>
* Copyright (C) 2014 Philippe Grand <philippe.grand@atoo-net.com> * Copyright (C) 2014 Philippe Grand <philippe.grand@atoo-net.com>
@ -989,6 +989,62 @@ class Product extends CommonObject
} }
} }
/*
* Sets an accountancy code for a product.
* Also calls PRODUCT_MODIFY trigger when modified
*
* @param string $type It can be 'buy' or 'sell'
* @param string $value Accountancy code
* @return int <0 KO >0 OK
*/
public function setAccountancyCode($type, $value)
{
global $user, $langs, $conf;
$this->db->begin();
if ($type == 'buy') {
$field = 'accountancy_code_buy';
} elseif ($type == 'sell') {
$field = 'accountancy_code_sell';
} else {
return -1;
}
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET ";
$sql.= "$field = '".$this->db->escape($value)."'";
$sql.= " WHERE rowid = ".$this->id;
dol_syslog(get_class($this)."::".__FUNCTION__." sql=".$sql, LOG_DEBUG);
$resql = $this->db->query($sql);
if ($resql)
{
// Call triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('PRODUCT_MODIFY',$this,$user,$langs,$conf);
if ($result < 0)
{
$this->errors=$interface->errors;
$this->db->rollback();
return -1;
}
// End call triggers
$this->$field = $value;
$this->db->commit();
return 1;
}
else
{
$this->error=$this->db->lasterror();
$this->db->rollback();
return -1;
}
}
/** /**
* Load array this->multilangs * Load array this->multilangs
* *

View File

@ -6,7 +6,7 @@
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr> * Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
* Copyright (C) 2006 Auguria SARL <info@auguria.org> * Copyright (C) 2006 Auguria SARL <info@auguria.org>
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com> * Copyright (C) 2013-2014 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr> * Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com> * Copyright (C) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2014 Cédric Gross <c.gross@kreiz-it.fr> * Copyright (C) 2014 Cédric Gross <c.gross@kreiz-it.fr>
@ -145,19 +145,17 @@ if (empty($reshook))
} }
} }
if ($action == 'setaccountancy_code_buy') if ($action == 'setaccountancy_code_buy') {
{
$result = $object->setValueFrom('accountancy_code_buy', GETPOST('accountancy_code_buy')); $result = $object->setAccountancyCode('buy', GETPOST('accountancy_code_buy'));
if ($result < 0) setEventMessage(join(',',$object->errors), 'errors'); if ($result < 0) setEventMessage(join(',',$object->errors), 'errors');
else $object->accountancy_code_buy=GETPOST('accountancy_code_buy');
$action=""; $action="";
} }
if ($action == 'setaccountancy_code_sell') if ($action == 'setaccountancy_code_sell')
{ {
$result = $object->setValueFrom('accountancy_code_sell', GETPOST('accountancy_code_sell')); $result = $object->setAccountancyCode('sell', GETPOST('accountancy_code_sell'));
if ($result < 0) setEventMessage(join(',',$object->errors), 'errors'); if ($result < 0) setEventMessage(join(',',$object->errors), 'errors');
else $object->accountancy_code_sell=GETPOST('accountancy_code_sell');
$action=""; $action="";
} }

View File

@ -28,7 +28,7 @@ require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
$type=isset($_GET["type"])?$_GET["type"]:(isset($_POST["type"])?$_POST["type"]:''); $type=GETPOST("type",'int');
if ($type =='' && !$user->rights->produit->lire) $type='1'; // Force global page on service page only if ($type =='' && !$user->rights->produit->lire) $type='1'; // Force global page on service page only
if ($type =='' && !$user->rights->service->lire) $type='0'; // Force global page on product page only if ($type =='' && !$user->rights->service->lire) $type='0'; // Force global page on product page only

View File

@ -243,7 +243,7 @@ if ($resql)
print_liste_field_titre($langs->trans("Ref"),"reassort.php", "p.ref",$param,"","",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Ref"),"reassort.php", "p.ref",$param,"","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),"reassort.php", "p.label",$param,"","",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Label"),"reassort.php", "p.label",$param,"","",$sortfield,$sortorder);
if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre($langs->trans("Duration"),"reassort.php", "p.duration",$param,"",'align="center"',$sortfield,$sortorder); if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre($langs->trans("Duration"),"reassort.php", "p.duration",$param,"",'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("MininumStock"),"reassort.php", "p.seuil_stock_alerte",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("StockLimit"),"reassort.php", "p.seuil_stock_alerte",$param,"",'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DesiredStock"),"reassort.php", "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DesiredStock"),"reassort.php", "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("PhysicalStock"),"reassort.php", "stock_physique",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("PhysicalStock"),"reassort.php", "stock_physique",$param,"",'align="right"',$sortfield,$sortorder);
// TODO Add info of running suppliers/customers orders // TODO Add info of running suppliers/customers orders

View File

@ -135,7 +135,7 @@ if ($id > 0 || ! empty($ref))
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
if ($socid) $sql.= " AND s.rowid = ".$socid; if ($socid) $sql.= " AND s.rowid = ".$socid;
$sql.= " GROUP BY c.rowid, c.date_contrat, c.statut, s.nom, s.rowid, s.code_client"; $sql.= " GROUP BY c.rowid, c.date_contrat, c.statut, s.nom, s.rowid, s.code_client";
$sql.= " ORDER BY $sortfield $sortorder"; $sql.= $db->order($sortfield, $sortorder);
$sql.= $db->plimit($conf->liste_limit +1, $offset); $sql.= $db->plimit($conf->liste_limit +1, $offset);
$result = $db->query($sql); $result = $db->query($sql);

View File

@ -31,12 +31,12 @@ $langs->load("stocks");
// Security check // Security check
$result=restrictedArea($user,'stock'); $result=restrictedArea($user,'stock');
$sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"]; $sref=GETPOST("sref");;
$snom=isset($_GET["snom"])?$_GET["snom"]:$_POST["snom"]; $snom=GETPOST("snom");
$sall=isset($_GET["sall"])?$_GET["sall"]:$_POST["sall"]; $sall=GETPOST("sall");
$sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"]; $sortfield = GETPOST("sortfield");
$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"]; $sortorder = GETPOST("sortorder");
if (! $sortfield) $sortfield="e.label"; if (! $sortfield) $sortfield="e.label";
if (! $sortorder) $sortorder="ASC"; if (! $sortorder) $sortorder="ASC";
$page = $_GET["page"]; $page = $_GET["page"];
@ -50,13 +50,13 @@ $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e";
$sql.= " WHERE e.entity = ".$conf->entity; $sql.= " WHERE e.entity = ".$conf->entity;
if ($sref) if ($sref)
{ {
$sql.= " AND e.label like '%".$sref."%'"; $sql.= " AND e.label like '%".$db->escape($sref)."%'";
} }
if ($sall) if ($sall)
{ {
$sql.= " AND (e.description like '%".$sall."%' OR e.lieu like '%".$sall."%' OR e.address like '%".$sall."%' OR e.town like '%".$sall."%')"; $sql.= " AND (e.description like '%".$db->escape($sall)."%' OR e.lieu like '%".$db->escape($sall)."%' OR e.address like '%".$db->escape($sall)."%' OR e.town like '%".$db->escape($sall)."%')";
} }
$sql.= " ORDER BY $sortfield $sortorder"; $sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($limit+1, $offset); $sql.= $db->plimit($limit+1, $offset);
$result = $db->query($sql); $result = $db->query($sql);

View File

@ -43,9 +43,9 @@ $result=restrictedArea($user,'produit|service');
//checks if a product has been ordered //checks if a product has been ordered
$action = GETPOST('action','alpha'); $action = GETPOST('action','alpha');
$id_product = GETPOST('productid', 'productid'); $id_product = GETPOST('productid', 'int');
$id_sw = GETPOST('id_sw', 'id_sw'); $id_sw = GETPOST('id_sw', 'int');
$id_tw = GETPOST('id_tw', 'id_tw'); $id_tw = GETPOST('id_tw', 'int');
$qty = GETPOST('qty'); $qty = GETPOST('qty');
$idline = GETPOST('idline'); $idline = GETPOST('idline');

View File

@ -72,13 +72,8 @@ $sproduct = GETPOST('sproduct', 'int');
$sortorder = GETPOST('sortorder', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha');
$sortfield = GETPOST('sortfield', 'alpha'); $sortfield = GETPOST('sortfield', 'alpha');
if (!$sortorder) { if (!$sortorder) $sortorder = 'DESC';
$sortorder = 'DESC'; if (!$sortfield) $sortfield = 'cf.date_creation';
}
if (!$sortfield) {
$sortfield = 'cf.date_creation';
}
$offset = $conf->liste_limit * $page ; $offset = $conf->liste_limit * $page ;
@ -146,7 +141,7 @@ if (GETPOST('statut', 'int')) {
} }
$sql .= ' GROUP BY cf.rowid, cf.ref, cf.date_creation, cf.fk_statut'; $sql .= ' GROUP BY cf.rowid, cf.ref, cf.date_creation, cf.fk_statut';
$sql .= ', cf.total_ttc, cf.fk_user_author, u.login, s.rowid, s.nom'; $sql .= ', cf.total_ttc, cf.fk_user_author, u.login, s.rowid, s.nom';
$sql .= ' ORDER BY ' . $sortfield . ' ' . $sortorder . ' '; $sql .= $db->order($sortfield, $sortorder);
$sql .= $db->plimit($conf->liste_limit+1, $offset); $sql .= $db->plimit($conf->liste_limit+1, $offset);
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql)

View File

@ -296,7 +296,7 @@ class Project extends CommonObject
} }
else if (! empty($ref)) else if (! empty($ref))
{ {
$sql.= " WHERE ref='".$ref."'"; $sql.= " WHERE ref='".$this->db->escape($ref)."'";
$sql.= " AND entity IN (".getEntity('project').")"; $sql.= " AND entity IN (".getEntity('project').")";
} }

View File

@ -205,7 +205,7 @@ class Task extends CommonObject
$sql.= " FROM ".MAIN_DB_PREFIX."projet_task as t"; $sql.= " FROM ".MAIN_DB_PREFIX."projet_task as t";
$sql.= " WHERE "; $sql.= " WHERE ";
if (!empty($ref)) { if (!empty($ref)) {
$sql.="t.ref = '".$ref."'"; $sql.="t.ref = '".$this->db->escape($ref)."'";
}else { }else {
$sql.="t.rowid = ".$id; $sql.="t.rowid = ".$id;
} }

View File

@ -93,7 +93,7 @@ if ($action == 'swapstatut' && $user->rights->projet->creer)
{ {
if ($object->fetch($id)) if ($object->fetch($id))
{ {
$result=$object->swapContactStatus(GETPOST('ligne')); $result=$object->swapContactStatus(GETPOST('ligne','int'));
} }
else else
{ {
@ -105,7 +105,7 @@ if ($action == 'swapstatut' && $user->rights->projet->creer)
if (($action == 'deleteline' || $action == 'deletecontact') && $user->rights->projet->creer) if (($action == 'deleteline' || $action == 'deletecontact') && $user->rights->projet->creer)
{ {
$object->fetch($id); $object->fetch($id);
$result = $object->delete_contact($_GET["lineid"]); $result = $object->delete_contact(GETPOST("lineid"));
if ($result >= 0) if ($result >= 0)
{ {

View File

@ -63,7 +63,7 @@ $result = restrictedArea($user, 'projet', $object->id);
// fetch optionals attributes and labels // fetch optionals attributes and labels
$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); $extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
$date_start=dol_mktime(0,0,0,GETPOST('projectmonth','int'),GETPOST('projectday','int'),GETPOST('projectyear','int')); $date_start=dol_mktime(0,0,0,GETPOST('projectstartmonth','int'),GETPOST('projectstartday','int'),GETPOST('projectstartyear','int'));
$date_end=dol_mktime(0,0,0,GETPOST('projectendmonth','int'),GETPOST('projectendday','int'),GETPOST('projectendyear','int')); $date_end=dol_mktime(0,0,0,GETPOST('projectendmonth','int'),GETPOST('projectendday','int'),GETPOST('projectendyear','int'));
@ -216,7 +216,7 @@ if (empty($reshook))
$object->socid = GETPOST('socid','int'); $object->socid = GETPOST('socid','int');
$object->description = GETPOST('description'); // Do not use 'alpha' here, we want field as it is $object->description = GETPOST('description'); // Do not use 'alpha' here, we want field as it is
$object->public = GETPOST('public','alpha'); $object->public = GETPOST('public','alpha');
$object->date_start = empty($_POST["project"])?'':$date_start; $object->date_start = empty($_POST["projectstart"])?'':$date_start;
$object->date_end = empty($_POST["projectend"])?'':$date_end; $object->date_end = empty($_POST["projectend"])?'':$date_end;
// Fill array 'array_options' with data from add form // Fill array 'array_options' with data from add form
@ -446,7 +446,7 @@ if ($action == 'create' && $user->rights->projet->creer)
// Date start // Date start
print '<tr><td>'.$langs->trans("DateStart").'</td><td>'; print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
print $form->select_date(($date_start?$date_start:''),'project'); print $form->select_date(($date_start?$date_start:''),'projectstart');
print '</td></tr>'; print '</td></tr>';
// Date end // Date end
@ -578,7 +578,7 @@ else
// Date start // Date start
print '<tr><td>'.$langs->trans("DateStart").'</td><td>'; print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
print $form->select_date($object->date_start?$object->date_start:-1,'project'); print $form->select_date($object->date_start?$object->date_start:-1,'projectstart');
print ' &nbsp; &nbsp; <input type="checkbox" name="reportdate" value="yes" '; print ' &nbsp; &nbsp; <input type="checkbox" name="reportdate" value="yes" ';
if ($comefromclone){print ' checked="checked" ';} if ($comefromclone){print ' checked="checked" ';}
print '/> '. $langs->trans("ProjectReportDate"); print '/> '. $langs->trans("ProjectReportDate");

View File

@ -43,9 +43,9 @@ $socid=0;
if ($user->societe_id > 0) $socid = $user->societe_id; if ($user->societe_id > 0) $socid = $user->societe_id;
if (!$user->rights->projet->lire) accessforbidden(); if (!$user->rights->projet->lire) accessforbidden();
$sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"]; $sortfield = GETPOST("sortfield");
$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"]; $sortorder = GETPOST("sortorder");
$page = isset($_GET["page"])? $_GET["page"]:$_POST["page"]; $page = GETPOST("page");
$page = is_numeric($page) ? $page : 0; $page = is_numeric($page) ? $page : 0;
$page = $page == -1 ? 0 : $page; $page = $page == -1 ? 0 : $page;

View File

@ -130,16 +130,10 @@ if ($object->client)
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$nbFactsClient = $obj->nb; $nbFactsClient = $obj->nb;
$thirdTypeArray['customer']=$langs->trans("customer"); $thirdTypeArray['customer']=$langs->trans("customer");
<<<<<<< HEAD
if ($conf->propal->enabled && $user->rights->propal->lire) $elementTypeArray['propal']=$langs->transnoentitiesnoconv('Proposals'); if ($conf->propal->enabled && $user->rights->propal->lire) $elementTypeArray['propal']=$langs->transnoentitiesnoconv('Proposals');
if ($conf->commande->enabled && $user->rights->commande->lire) $elementTypeArray['order']=$langs->transnoentitiesnoconv('Orders'); if ($conf->commande->enabled && $user->rights->commande->lire) $elementTypeArray['order']=$langs->transnoentitiesnoconv('Orders');
if ($conf->facture->enabled && $user->rights->facture->lire) $elementTypeArray['invoice']=$langs->transnoentitiesnoconv('Invoices'); if ($conf->facture->enabled && $user->rights->facture->lire) $elementTypeArray['invoice']=$langs->transnoentitiesnoconv('Invoices');
if ($conf->ficheinter>enabled && $user->rights->ficheinter->lire) $elementTypeArray['fichinter']=$langs->transnoentitiesnoconv('Interventions'); if ($conf->ficheinter>enabled && $user->rights->ficheinter->lire) $elementTypeArray['fichinter']=$langs->transnoentitiesnoconv('Interventions');
=======
if ($conf->commande->enabled && $user->rights->commande->lire) $elementTypeArray['order']=$langs->trans('Orders');
if ($conf->propal->enabled && $user->rights->propal->lire) $elementTypeArray['propal']=$langs->trans('Proposals');
if ($conf->facture->enabled && $user->rights->facture->lire) $elementTypeArray['invoice']=$langs->trans('Invoices');
>>>>>>> branch 'develop' of git@github.com:Dolibarr/dolibarr.git
} }
if ($object->fournisseur) if ($object->fournisseur)
@ -185,9 +179,10 @@ if ($type_element == 'fichinter')
{ // Customer : show products from invoices { // Customer : show products from invoices
require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php';
$documentstatic=new Fichinter($db); $documentstatic=new Fichinter($db);
$sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datec as dateprint, '; $sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datec as dateprint, f.fk_statut as status, ';
$tables_from = MAIN_DB_PREFIX."fichinter as f,".MAIN_DB_PREFIX."fichinterdet as d"; $tables_from = MAIN_DB_PREFIX."fichinter as f LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as d ON d.fk_fichinter = f.rowid"; // Must use left join to work also with option that disable usage of lines.
$where = " WHERE d.fk_fichinter = f.rowid AND f.entity = ".$conf->entity; $where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid;
$where.= " AND f.entity = ".$conf->entity;
$dateprint = 'f.datec'; $dateprint = 'f.datec';
$doc_number='f.ref'; $doc_number='f.ref';
} }
@ -195,7 +190,7 @@ if ($type_element == 'invoice')
{ // Customer : show products from invoices { // Customer : show products from invoices
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
$documentstatic=new Facture($db); $documentstatic=new Facture($db);
$sql_select = 'SELECT f.rowid as doc_id, f.facnumber as doc_number, f.type as doc_type, f.datef as dateprint, '; $sql_select = 'SELECT f.rowid as doc_id, f.facnumber as doc_number, f.type as doc_type, f.datef as dateprint, f.fk_statut as status, ';
$tables_from = MAIN_DB_PREFIX."facture as f,".MAIN_DB_PREFIX."facturedet as d"; $tables_from = MAIN_DB_PREFIX."facture as f,".MAIN_DB_PREFIX."facturedet as d";
$where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid; $where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid;
$where.= " AND d.fk_facture = f.rowid"; $where.= " AND d.fk_facture = f.rowid";
@ -208,7 +203,7 @@ if ($type_element == 'propal')
{ {
require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
$documentstatic=new Propal($db); $documentstatic=new Propal($db);
$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.datep as datePrint, '; $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.datep as datePrint, c.fk_statut as status, ';
$tables_from = MAIN_DB_PREFIX."propal as c,".MAIN_DB_PREFIX."propaldet as d"; $tables_from = MAIN_DB_PREFIX."propal as c,".MAIN_DB_PREFIX."propaldet as d";
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
$where.= " AND d.fk_propal = c.rowid"; $where.= " AND d.fk_propal = c.rowid";
@ -221,7 +216,7 @@ if ($type_element == 'order')
{ {
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
$documentstatic=new Commande($db); $documentstatic=new Commande($db);
$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, '; $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, c.fk_statut as status, ';
$tables_from = MAIN_DB_PREFIX."commande as c,".MAIN_DB_PREFIX."commandedet as d"; $tables_from = MAIN_DB_PREFIX."commande as c,".MAIN_DB_PREFIX."commandedet as d";
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
$where.= " AND d.fk_commande = c.rowid"; $where.= " AND d.fk_commande = c.rowid";
@ -234,7 +229,7 @@ if ($type_element == 'supplier_invoice')
{ // Supplier : Show products from invoices. { // Supplier : Show products from invoices.
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
$documentstatic=new FactureFournisseur($db); $documentstatic=new FactureFournisseur($db);
$sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datef as dateprint, '; $sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datef as dateprint, f.fk_statut as status, ';
$tables_from = MAIN_DB_PREFIX."facture_fourn as f,".MAIN_DB_PREFIX."facture_fourn_det as d"; $tables_from = MAIN_DB_PREFIX."facture_fourn as f,".MAIN_DB_PREFIX."facture_fourn_det as d";
$where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid; $where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid;
$where.= " AND d.fk_facture_fourn = f.rowid"; $where.= " AND d.fk_facture_fourn = f.rowid";
@ -246,7 +241,7 @@ if ($type_element == 'supplier_order')
{ // Supplier : Show products from orders. { // Supplier : Show products from orders.
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
$documentstatic=new CommandeFournisseur($db); $documentstatic=new CommandeFournisseur($db);
$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, '; $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, ';
$tables_from = MAIN_DB_PREFIX."commande_fournisseur as c,".MAIN_DB_PREFIX."commande_fournisseurdet as d"; $tables_from = MAIN_DB_PREFIX."commande_fournisseur as c,".MAIN_DB_PREFIX."commande_fournisseurdet as d";
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
$where.= " AND d.fk_commande = c.rowid"; $where.= " AND d.fk_commande = c.rowid";
@ -281,7 +276,7 @@ if ($sref) $sql.= " AND ".$doc_number." LIKE '%".$sref."%'";
if ($sprod_fulldescr) $sql.= " AND (d.description LIKE '%".$sprod_fulldescr."%' OR p.label LIKE '%".$sprod_fulldescr."%')"; if ($sprod_fulldescr) $sql.= " AND (d.description LIKE '%".$sprod_fulldescr."%' OR p.label LIKE '%".$sprod_fulldescr."%')";
$sql.= $db->order($sortfield,$sortorder); $sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($limit + 1, $offset); $sql.= $db->plimit($limit + 1, $offset);
//print $sql;
// Define type of elements // Define type of elements
$typeElementString = $form->selectarray("type_element", $elementTypeArray, GETPOST('type_element'), 2); $typeElementString = $form->selectarray("type_element", $elementTypeArray, GETPOST('type_element'), 2);
@ -301,6 +296,7 @@ print '<table class="liste" width="100%">'."\n";
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
// Filters // Filters
@ -312,6 +308,8 @@ print '<td class="liste_titre">'; // date
print $formother->select_month($month?$month:-1,'month',1); print $formother->select_month($month?$month:-1,'month',1);
$formother->select_year($year?$year:-1,'year',1, 20, 1); $formother->select_year($year?$year:-1,'year',1, 20, 1);
print '</td>'; print '</td>';
print '<td class="liste_titre" align="center">';
print '</td>';
print '<td class="liste_titre" align="left">'; print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" name="sprod_fulldescr" size="15" value="'.dol_escape_htmltag($sprod_fulldescr).'">'; print '<input class="flat" type="text" name="sprod_fulldescr" size="15" value="'.dol_escape_htmltag($sprod_fulldescr).'">';
print '</td>'; print '</td>';
@ -328,16 +326,26 @@ if ($sql_select)
$i = 0; $i = 0;
while (($objp = $db->fetch_object($resql)) && $i < $conf->liste_limit ) while (($objp = $db->fetch_object($resql)) && $i < $conf->liste_limit )
{ {
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td class="nobordernopadding nowrap" width="100">';
$documentstatic->id=$objp->doc_id; $documentstatic->id=$objp->doc_id;
$documentstatic->ref=$objp->doc_number; $documentstatic->ref=$objp->doc_number;
$documentstatic->type=$objp->type; $documentstatic->type=$objp->type;
$documentstatic->fk_statut=$objp->status;
$documentstatic->fk_status=$objp->status;
$documentstatic->statut=$objp->status;
$documentstatic->status=$objp->status;
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td class="nobordernopadding nowrap" width="100">';
print $documentstatic->getNomUrl(1); print $documentstatic->getNomUrl(1);
print '</td>'; print '</td>';
print '<td align="center" width="80">'.dol_print_date($db->jdate($objp->dateprint),'day').'</td>'; print '<td align="center" width="80">'.dol_print_date($db->jdate($objp->dateprint),'day').'</td>';
// Status
print '<td align="center">';
print $documentstatic->getLibStatut(2);
print '</td>';
print '<td>'; print '<td>';
// Define text, description and type // Define text, description and type
@ -434,7 +442,8 @@ if ($sql_select)
} else { } else {
//if (! empty($objp->fk_parent_line)) echo img_picto('', 'rightarrow'); if (! empty($objp->label) || ! empty($objp->description))
{
if ($type==1) $text = img_object($langs->trans('Service'),'service'); if ($type==1) $text = img_object($langs->trans('Service'),'service');
else $text = img_object($langs->trans('Product'),'product'); else $text = img_object($langs->trans('Product'),'product');
@ -444,6 +453,7 @@ if ($sql_select)
} else { } else {
echo $text.' '.dol_htmlentitiesbr($objp->description); echo $text.' '.dol_htmlentitiesbr($objp->description);
} }
}
// Show range // Show range
echo get_date_range($objp->date_start,$objp->date_end); echo get_date_range($objp->date_start,$objp->date_end);

View File

@ -1,267 +0,0 @@
<?php
/* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
*
* 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/societe/localtaxes.php
* \ingroup societe
* \brief Page of third party localtaxes rates
*/
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
$langs->load("companies");
// Security check
$socid = GETPOST('socid','int');
$vatid = GETPOST('vatid','int');
$action = GETPOST('action','alpha');
if ($user->societe_id) $socid=$user->societe_id;
$result = restrictedArea($user, 'societe', $socid, '&societe');
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('localtaxesthirdparty'));
/*
* Actions
*/
$parameters=array('id'=>$socid);
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
$error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->errors);
/*
* View
*/
$contactstatic = new Contact($db);
$form = new Form($db);
if ($socid)
{
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
$langs->load("companies");
$soc = new Societe($db);
$result = $soc->fetch($socid);
llxHeader("",$langs->trans("LocalTaxes"),'');
if (! empty($conf->notification->enabled)) $langs->load("mails");
$head = societe_prepare_head($soc);
dol_fiche_head($head, 'localtaxes', $langs->trans("ThirdParty"),0,'company');
print '<table class="border" width="100%">';
print '<tr><td width="25%">'.$langs->trans("ThirdPartyName").'</td><td colspan="3">';
print $form->showrefnav($soc,'socid','',0,'rowid','nom');
print '</td></tr>';
if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field
{
print '<tr><td>'.$langs->trans('Prefix').'</td><td colspan="3">'.$soc->prefix_comm.'</td></tr>';
}
if ($soc->client)
{
print '<tr><td>';
print $langs->trans('CustomerCode').'</td><td colspan="3">';
print $soc->code_client;
if ($soc->check_codeclient() <> 0) print ' <font class="error">('.$langs->trans("WrongCustomerCode").')</font>';
print '</td></tr>';
}
if ($soc->fournisseur)
{
print '<tr><td>';
print $langs->trans('SupplierCode').'</td><td colspan="3">';
print $soc->code_fournisseur;
if ($soc->check_codefournisseur() <> 0) print ' <font class="error">('.$langs->trans("WrongSupplierCode").')</font>';
print '</td></tr>';
}
if (! empty($conf->barcode->enabled))
{
print '<tr><td>'.$langs->trans('Gencod').'</td><td colspan="3">'.$soc->barcode.'</td></tr>';
}
print "<tr><td valign=\"top\">".$langs->trans('Address')."</td><td colspan=\"3\">";
dol_print_address($soc->address, 'gmap', 'thirdparty', $soc->id);
print "</td></tr>";
// Zip / Town
print '<tr><td width="25%">'.$langs->trans('Zip').'</td><td width="25%">'.$soc->zip."</td>";
print '<td width="25%">'.$langs->trans('Town').'</td><td width="25%">'.$soc->town."</td></tr>";
// Country
if ($soc->country) {
print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">';
$img=picto_from_langcode($soc->country_code);
print ($img?$img.' ':'');
print $soc->country;
print '</td></tr>';
}
// EMail
print '<tr><td>'.$langs->trans('EMail').'</td><td colspan="3">';
print dol_print_email($soc->email,0,$soc->id,'AC_EMAIL');
print '</td></tr>';
// Web
print '<tr><td>'.$langs->trans('Web').'</td><td colspan="3">';
print dol_print_url($soc->url);
print '</td></tr>';
// Phone / Fax
print '<tr><td>'.$langs->trans('Phone').'</td><td>'.dol_print_phone($soc->phone,$soc->country_code,0,$soc->id,'AC_TEL').'</td>';
print '<td>'.$langs->trans('Fax').'</td><td>'.dol_print_phone($soc->fax,$soc->country_code,0,$soc->id,'AC_FAX').'</td></tr>';
if ($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1")
{
print '<tr><td class="nowrap">'.$langs->transcountry('LocalTax1IsUsed',$mysoc->country_code).'</td><td colspan="3">';
print yn($soc->localtax1_assuj);
print '</td></tr>';
print '<tr><td class="nowrap">'.$langs->transcountry('LocalTax2IsUsed',$mysoc->country_code).'</td><td colspan="3">';
print yn($soc->localtax2_assuj);
print '</td></tr>';
}
elseif($mysoc->localtax1_assuj=="1")
{
print '<tr><td>'.$langs->transcountry('LocalTax1IsUsed',$mysoc->country_code).'</td><td colspan="3">';
print yn($soc->localtax1_assuj);
print '</td></tr>';
}
elseif($mysoc->localtax2_assuj=="1")
{
print '<tr><td>'.$langs->transcountry('LocalTax2IsUsed',$mysoc->country_code).'</td><td colspan="3">';
print yn($soc->localtax2_assuj);
print '</td></tr>';
}
print '</table>';
dol_fiche_end();
print '<form action="'.$_SERVER["PHP_SELF"].'?socid='.$soc->id.'" method="post">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="updatetva">';
print '<input type="hidden" name="vatid" value="'.$vatid.'">';
// Localtaxes
print '<table id="tablelines" class="noborder" width="100%">';
print '<tr class="liste_titre nodrag nodrop">';
// Description
print '<td>'.$langs->trans('Description').'</td>';
// VAT
print '<td align="right" width="80">'.$langs->trans('VAT').' (%)</td>';
// Localtax 1
if ($mysoc->localtax1_assuj=="1" && $soc->localtax1_assuj)
print '<td align="right" width="80">'.$langs->transcountry('LocalTax1',$mysoc->country_code).' (%)</td>';
if ($mysoc->localtax2_assuj=="1" && $soc->localtax2_assuj)
print '<td align="right" width="80">'.$langs->transcountry('LocalTax2',$mysoc->country_code).' (%)</td>';
//print '<td width="10"></td>';
if ($user->rights->societe->creer)
print '<td width="10" class="nowrap"></td>'; // No width to allow autodim
print "</tr>\n";
$sql = "SELECT DISTINCT t.rowid, t.note, t.taux, t.localtax1, t.localtax2, t.recuperableonly";
$sql.= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c";
$sql.= " WHERE t.fk_pays = c.rowid";
$sql.= " AND t.active = 1";
$sql.= " AND c.code IN ('".$mysoc->country_code."')";
$sql.= " ORDER BY t.taux ASC, t.recuperableonly ASC";
$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
if ($num)
{
$var=True;
for ($i = 0; $i < $num; $i++)
{
$var=!$var;
$obj = $db->fetch_object($resql);
if ($action == 'edit' && $obj->rowid==$vatid && $user->rights->societe->creer)
{
print '<tr '.$bc[$var].'>';
print '<td>'.$obj->note.'</td>';
print '<td align="right">'.$obj->taux.'</td>';
if ($mysoc->localtax1_assuj=="1" && $soc->localtax1_assuj)
print '<td align="right"><input size="4" type="text" class="flat" name="localtax1" value="'.$obj->localtax1.'"></td>';
if ($mysoc->localtax2_assuj=="1" && $soc->localtax2_assuj)
print '<td align="right"><input size="4" type="text" class="flat" name="localtax2" value="'.$obj->localtax2.'"></td>';
print '<td align="right"><input type="submit" class="button" name="save" value="'.$langs->trans('Save').'">';
print '<br><input type="submit" class="button" name="cancel" value="'.$langs->trans('Cancel').'"></td>';
print '</tr>';
}
else
{
print '<tr '.$bc[$var].'>';
print '<td>'.$obj->note.'</td>';
print '<td align="right">'.$obj->taux.'</td>';
if ($mysoc->localtax1_assuj=="1" && $soc->localtax1_assuj)
print '<td align="right">'.$obj->localtax1.'</td>';
if ($mysoc->localtax2_assuj=="1" && $soc->localtax2_assuj)
print '<td align="right">'.$obj->localtax2.'</td>';
print '<td align="right">';
if ($user->rights->societe->creer)
{
// TODO Comment this because the action to save is not supported
//print '<a href="'.$_SERVER["PHP_SELF"].'?action=edit&socid='.$soc->id.'&vatid='.$obj->rowid.'">'.img_edit().'</a>';
}
print '</td>';
print "</tr>\n";
}
}
}
}
print '</table>';
print '</form>';
}
llxFooter();
$db->close();

View File

@ -181,14 +181,7 @@ if (empty($reshook))
$object->forme_juridique_code = GETPOST('forme_juridique_code', 'int'); $object->forme_juridique_code = GETPOST('forme_juridique_code', 'int');
$object->effectif_id = GETPOST('effectif_id', 'int'); $object->effectif_id = GETPOST('effectif_id', 'int');
if (GETPOST("private") == 1) $object->typent_id = GETPOST('typent_id');
{
$object->typent_id = dol_getIdFromCode($db,'TE_PRIVATE','c_typent');
}
else
{
$object->typent_id = GETPOST('typent_id', 'int');
}
$object->client = GETPOST('client', 'int'); $object->client = GETPOST('client', 'int');
$object->fournisseur = GETPOST('fournisseur', 'int'); $object->fournisseur = GETPOST('fournisseur', 'int');

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -942,7 +942,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
if ($conf->salaries->enabled) if ($conf->salaries->enabled && ! empty($user->rights->salaries->read))
{ {
$langs->load("salaries"); $langs->load("salaries");
@ -1268,7 +1268,7 @@ else
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
if ($conf->salaries->enabled) if ($conf->salaries->enabled && ! empty($user->rights->salaries->read))
{ {
$langs->load("salaries"); $langs->load("salaries");
@ -1957,10 +1957,10 @@ else
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
if ($conf->salaries->enabled && ! empty($user->rights->salaries->read))
{
$langs->load("salaries"); $langs->load("salaries");
if ($conf->salaries->enabled)
{
// THM // THM
print '<tr><td valign="top">'.$langs->trans("THM").'</td>'; print '<tr><td valign="top">'.$langs->trans("THM").'</td>';
print '<td>'; print '<td>';