Merge remote-tracking branch 'Upstream/develop' into develop-accounting
This commit is contained in:
commit
db4be17f5b
16
ChangeLog
16
ChangeLog
@ -5,6 +5,8 @@ English Dolibarr ChangeLog
|
||||
|
||||
***** ChangeLog for 3.7 compared to 3.6.* *****
|
||||
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: Add help info of field type into dictionary of payment types.
|
||||
- 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: Must unaccent strings into SEPA file.
|
||||
- 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.* *****
|
||||
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: [ 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 #1544 ] Can remove date from invoice
|
||||
Fix: list event view lost type event filter
|
||||
Fix: Add code save on create event
|
||||
Fix: [ bug #1544 ] Can remove date from invoice.
|
||||
Fix: list event view lost type event filter.
|
||||
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 *****
|
||||
Fix: Hide title of event when agenda module disabled.
|
||||
|
||||
@ -39,7 +39,7 @@ Description: Web based software to manage a company or foundation
|
||||
It's a web software you can install as a standalone program or on any web
|
||||
hosting provider to use it from anywhere with any web browser.
|
||||
.
|
||||
Dolibarr was designed to be easy to use. Only the features that you need
|
||||
Dolibarr was designed to be easy to use. Only the features that you need
|
||||
are visible, depending on which modules were activated.
|
||||
.
|
||||
This is an example of most common used modules:
|
||||
|
||||
@ -61,7 +61,7 @@ License: GPL-3+
|
||||
Files: htdocs/includes/adodbtime/*
|
||||
Copyright: 2003-2005, John Lim
|
||||
unknown, jackbbs
|
||||
License: BSD
|
||||
License: BSD-3-Clause
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
@ -272,7 +272,7 @@ Comment:
|
||||
|
||||
Files: htdocs/includes/jquery/plugins/flot/*
|
||||
Copyright: Flot team
|
||||
License: Public Domain
|
||||
License: Public-Domain
|
||||
This work is not subject to copyright in any jurisdiction
|
||||
Comment:
|
||||
Those files are not shipped in the binary package because we configure
|
||||
|
||||
@ -7,40 +7,20 @@ tmpdir=$(mktemp -d)
|
||||
if [ -n "$1" ]; then
|
||||
uscan_opts="--download-version=$1"
|
||||
fi
|
||||
#uscan --noconf --force-download --no-symlink --destdir=$tmpdir $uscan_opts
|
||||
#uscan --noconf --force-download --no-symlink --verbose --destdir=$tmpdir $uscan_opts
|
||||
|
||||
cd $tmpdir
|
||||
|
||||
# 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
|
||||
zipfile=$(echo *.zip)
|
||||
version=$(echo "$zipfile" | perl -pi -e 's/^tcpdf_//; s/\.zip$//; s/_/./g; s/$/+dfsg/;')
|
||||
|
||||
# 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
|
||||
tgzfile=$(echo *.tgz)
|
||||
version=$(echo "$tgzfile" | perl -pi -e 's/^dolibarr-//; s/\.tgz$//; s/_/./g; s/\+nmu1//; ')
|
||||
|
||||
cd - >/dev/null
|
||||
|
||||
if [ -e ../tcpdf_${version}.orig.tar.xz ]; then
|
||||
echo "Not overwriting ../tcpdf_${version}.orig.tar.xz";
|
||||
else
|
||||
echo "Created ../tcpdf_${version}.orig.tar.xz"
|
||||
mv $tmpdir/tcpdf_${version}.orig.tar.xz ../
|
||||
fi
|
||||
mv $tmpdir/dolibarr-${version}.tgz ../
|
||||
echo "File ../dolibarr-${version}.tgz is ready for git-import-orig"
|
||||
|
||||
rm -rf $tmpdir
|
||||
|
||||
@ -1070,7 +1070,7 @@ class Adherent extends CommonObject
|
||||
if ($rowid) $sql.= " AND d.rowid=".$rowid;
|
||||
elseif ($ref || $fk_soc) {
|
||||
$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 ($ref_ext)
|
||||
|
||||
@ -316,7 +316,7 @@ if ($action == 'create')
|
||||
print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td><td>';
|
||||
if ($parent_rowid)
|
||||
{
|
||||
print 'Left';
|
||||
print $langs->trans('Left');
|
||||
print '<input type="hidden" name="type" value="left">';
|
||||
}
|
||||
else
|
||||
|
||||
@ -39,6 +39,7 @@ if ( $_SESSION['uid'] > 0 )
|
||||
}
|
||||
|
||||
$usertxt=GETPOST('user','',1);
|
||||
$err=GETPOST("err");
|
||||
|
||||
|
||||
/*
|
||||
@ -64,7 +65,7 @@ top_htmlhead('','',0,0,'',$arrayofcss);
|
||||
|
||||
<div class="contenu">
|
||||
<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>
|
||||
<form id="frmLogin" method="POST" action="index_verif.php">
|
||||
<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" />
|
||||
|
||||
@ -466,6 +466,8 @@ class ActionComm extends CommonObject
|
||||
$sql.= ", fk_user_mod = '".$user->id."'";
|
||||
$sql.= ", fk_user_action=".($this->usertodo->id > 0 ? "'".$this->usertodo->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;
|
||||
|
||||
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||
|
||||
@ -105,9 +105,14 @@ if ($object->id > 0)
|
||||
$author->fetch($object->author->id);
|
||||
$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);
|
||||
|
||||
$now=dol_now();
|
||||
$delay_warning=$conf->global->MAIN_DELAY_ACTIONS_TODO*24*60*60;
|
||||
|
||||
dol_fiche_head($head, 'documents', $langs->trans("Action"),0,'action');
|
||||
|
||||
// Affichage fiche action en mode visu
|
||||
@ -138,7 +143,7 @@ if ($object->id > 0)
|
||||
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"));
|
||||
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 '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
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="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 name="listactionsfilterweek" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST">';
|
||||
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="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 name="listactionsfilterday" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
@ -164,9 +169,18 @@ if ($object->id > 0)
|
||||
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_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 '</td>';
|
||||
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 '</td>';
|
||||
print '</tr>';
|
||||
|
||||
// Date end
|
||||
@ -184,7 +198,11 @@ if ($object->id > 0)
|
||||
// Location
|
||||
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%">';
|
||||
|
||||
|
||||
|
||||
@ -101,7 +101,7 @@ if (GETPOST('addassignedtouser'))
|
||||
$action='create';
|
||||
}
|
||||
// Add action
|
||||
if ($action == 'add_action')
|
||||
if ($action == 'add')
|
||||
{
|
||||
$error=0;
|
||||
|
||||
@ -317,7 +317,7 @@ if ($action == 'update')
|
||||
$apmin=GETPOST('apmin');
|
||||
$p2hour=GETPOST('p2hour');
|
||||
$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
|
||||
if ($aphour == -1) $aphour='0';
|
||||
@ -345,6 +345,7 @@ if ($action == 'update')
|
||||
$object->pnote = $_POST["note"];
|
||||
$object->fk_element = $_POST["fk_element"];
|
||||
$object->elementtype = $_POST["elementtype"];
|
||||
|
||||
if (! $datef && $percentage == 100)
|
||||
{
|
||||
$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 '<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 (GETPOST("actioncode") == 'AC_RDV') print_fiche_titre($langs->trans("AddActionRendezVous"));
|
||||
@ -547,6 +548,10 @@ if ($action == 'create')
|
||||
// Date end
|
||||
$datef=($datef?$datef:$object->datef);
|
||||
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>';
|
||||
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');
|
||||
@ -612,7 +617,7 @@ if ($action == 'create')
|
||||
$societe = new Societe($db);
|
||||
$societe->fetch(GETPOST('socid','int'));
|
||||
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
|
||||
{
|
||||
|
||||
@ -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;
|
||||
$param.="&maxprint=".$maxprint;
|
||||
|
||||
|
||||
$prev = dol_get_first_day_week($day, $month, $year);
|
||||
$prev_year = $prev['prev_year'];
|
||||
$prev_month = $prev['prev_month'];
|
||||
@ -657,7 +656,7 @@ jQuery(document).ready(function() {
|
||||
if (ids == \'none\') /* 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;
|
||||
}
|
||||
else if (ids.indexOf(",") > -1) /* There is several events */
|
||||
|
||||
@ -92,7 +92,7 @@ if ($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;
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
@ -351,7 +351,6 @@ else if ($action == 'add' && $user->rights->propal->creer) {
|
||||
}
|
||||
|
||||
$id = $object->create($user);
|
||||
|
||||
if ($id > 0)
|
||||
{
|
||||
dol_include_once('/' . $element . '/class/' . $subelement . '.class.php');
|
||||
@ -435,11 +434,11 @@ else if ($action == 'add' && $user->rights->propal->creer) {
|
||||
if ($reshook < 0)
|
||||
$error ++;
|
||||
} else {
|
||||
$mesgs [] = $srcobject->error;
|
||||
setEventMessages($srcobject->error, $srcobject->errors, 'errors');
|
||||
$error ++;
|
||||
}
|
||||
} else {
|
||||
$mesgs [] = $object->error;
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
$error ++;
|
||||
}
|
||||
} // Standard creation
|
||||
@ -448,23 +447,29 @@ else if ($action == 'add' && $user->rights->propal->creer) {
|
||||
$id = $object->create($user);
|
||||
}
|
||||
|
||||
if ($id > 0) {
|
||||
if ($id > 0)
|
||||
{
|
||||
// Insertion contact par defaut si defini
|
||||
if (GETPOST('contactidp') > 0) {
|
||||
if (GETPOST('contactidp') > 0)
|
||||
{
|
||||
$result = $object->add_contact(GETPOST('contactidp'), 'CUSTOMER', 'external');
|
||||
if ($result < 0) {
|
||||
$error ++;
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
setEventMessage($langs->trans("ErrorFailedToAddContact"), 'errors');
|
||||
}
|
||||
}
|
||||
|
||||
if (! $error) {
|
||||
if (! $error)
|
||||
{
|
||||
$db->commit();
|
||||
|
||||
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) {
|
||||
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
|
||||
{
|
||||
// Define output language
|
||||
$outputlangs = $langs;
|
||||
if (! empty($conf->global->MAIN_MULTILANGS)) {
|
||||
if (! empty($conf->global->MAIN_MULTILANGS))
|
||||
{
|
||||
$outputlangs = new Translate("", $conf);
|
||||
$newlang = (GETPOST('lang_id') ? GETPOST('lang_id') : $object->thirdparty->default_lang);
|
||||
$outputlangs->setDefaultLang($newlang);
|
||||
@ -475,13 +480,18 @@ else if ($action == 'add' && $user->rights->propal->creer) {
|
||||
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $id);
|
||||
exit();
|
||||
} else {
|
||||
$db->rollback();
|
||||
}
|
||||
} else {
|
||||
dol_print_error($db, $object->error);
|
||||
else
|
||||
{
|
||||
$db->rollback();
|
||||
$action='create';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
$db->rollback();
|
||||
exit();
|
||||
$action='create';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -864,20 +864,20 @@ class Propal extends CommonObject
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('PROPAL_CREATE',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
$error++;
|
||||
}
|
||||
|
||||
@ -895,7 +895,7 @@ class Propal extends CommonObject
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->error();
|
||||
$this->error=$this->db->lasterror();
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
@ -1011,7 +1011,7 @@ class Propal extends CommonObject
|
||||
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('PROPAL_CLONE',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@ -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.= " WHERE p.fk_statut = c.id";
|
||||
$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;
|
||||
|
||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||
@ -1331,7 +1331,7 @@ class Propal extends CommonObject
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('PROPAL_VALIDATE',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@ -1669,7 +1669,7 @@ class Propal extends CommonObject
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('PROPAL_REOPEN',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
}
|
||||
@ -1677,8 +1677,8 @@ class Propal extends CommonObject
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
if (!empty($this->errors))
|
||||
{
|
||||
if (!empty($this->errors))
|
||||
{
|
||||
foreach($this->errors as $errmsg)
|
||||
{
|
||||
dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
|
||||
@ -1751,7 +1751,7 @@ class Propal extends CommonObject
|
||||
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('PROPAL_CLOSE_SIGNED',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
else
|
||||
@ -1773,7 +1773,7 @@ class Propal extends CommonObject
|
||||
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('PROPAL_CLOSE_REFUSED',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
if ( ! $error )
|
||||
@ -2040,7 +2040,7 @@ class Propal extends CommonObject
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('PROPAL_DELETE',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@ -2520,7 +2520,7 @@ class Propal extends CommonObject
|
||||
{
|
||||
$file = $conf->global->PROPALE_ADDON.".php";
|
||||
$classname = $conf->global->PROPALE_ADDON;
|
||||
|
||||
|
||||
// Include file with class
|
||||
foreach ($conf->file->dol_document_root as $dirroot)
|
||||
{
|
||||
@ -2926,10 +2926,10 @@ class PropaleLigne extends CommonObject
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINEPROPAL_INSERT',$user);
|
||||
if ($result < 0)
|
||||
{
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@ -2976,10 +2976,10 @@ class PropaleLigne extends CommonObject
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINEPROPAL_DELETE',$user);
|
||||
if ($result < 0)
|
||||
{
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
// End call triggers
|
||||
|
||||
$this->db->commit();
|
||||
@ -3085,11 +3085,11 @@ class PropaleLigne extends CommonObject
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINEPROPAL_UPDATE',$user);
|
||||
if ($result < 0)
|
||||
{
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
/* 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
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -27,6 +28,8 @@
|
||||
|
||||
<?php
|
||||
|
||||
global $user;
|
||||
|
||||
$langs = $GLOBALS['langs'];
|
||||
$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>
|
||||
<td><?php echo $object->ref_client; ?></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>
|
||||
</tr>
|
||||
<?php
|
||||
$total = $total + $object->total_ht;
|
||||
}
|
||||
|
||||
?>
|
||||
<tr class="liste_total">
|
||||
<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> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -1559,7 +1559,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
||||
}
|
||||
|
||||
// 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
|
||||
// hook
|
||||
if (empty($reshook) && ! empty($extrafields->attribute_label)) {
|
||||
|
||||
@ -34,7 +34,7 @@ $langs->load("sendings");
|
||||
|
||||
// Security check
|
||||
$socid=0;
|
||||
$comid = isset($_GET["id"])?$_GET["id"]:'';
|
||||
$comid = GETPOST("id",'int');
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$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');
|
||||
|
||||
$commande = new Commande($db);
|
||||
$commande->fetch($_GET["id"]);
|
||||
$commande->info($_GET["id"]);
|
||||
$commande->fetch($comid);
|
||||
$commande->info($comid);
|
||||
$soc = new Societe($db);
|
||||
$soc->fetch($commande->socid);
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ $langs->load('companies');
|
||||
if (! $user->rights->facture->creer)
|
||||
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');
|
||||
$action = GETPOST('action','alpha');
|
||||
$confirm = GETPOST('confirm','alpha');
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* 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
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -22,6 +23,8 @@
|
||||
|
||||
<?php
|
||||
|
||||
global $user;
|
||||
|
||||
$langs = $GLOBALS['langs'];
|
||||
$linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
|
||||
|
||||
@ -47,17 +50,23 @@ foreach($linkedObjectBlock as $object)
|
||||
<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>
|
||||
<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>
|
||||
</tr>
|
||||
<?php
|
||||
$total = $total + $object->total_ht;
|
||||
}
|
||||
|
||||
?>
|
||||
<tr class="liste_total">
|
||||
<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> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
* Copyright (C) 2004 Christophe Combelles <ccomb@free.fr>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* 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>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -268,17 +268,22 @@ if ($id > 0 || ! empty($ref))
|
||||
//Total pages
|
||||
$totalPages = ceil($total_lines/$viewline);
|
||||
|
||||
if ($page > 0)
|
||||
{
|
||||
$limitsql = ($totalPages - $page) * $viewline;
|
||||
if ($limitsql < $viewline) $limitsql = $viewline;
|
||||
$nbline = $limitsql;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($totalPages == 0) {
|
||||
$page = 0;
|
||||
$limitsql = $nbline;
|
||||
} else {
|
||||
|
||||
if ($page > 0) {
|
||||
$limitsql = ($totalPages - $page) * $viewline;
|
||||
if ($limitsql < $viewline) {
|
||||
$limitsql = $viewline;
|
||||
}
|
||||
$nbline = $limitsql;
|
||||
} else {
|
||||
$page = 0;
|
||||
$limitsql = $nbline;
|
||||
}
|
||||
}
|
||||
|
||||
//print $limitsql.'-'.$page.'-'.$viewline;
|
||||
|
||||
// Onglets
|
||||
@ -474,7 +479,7 @@ if ($id > 0 || ! empty($ref))
|
||||
// VAT
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu2 ON bu2.fk_bank = b.rowid AND bu2.type='payment_vat'";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."tva as t ON bu2.url_id = t.rowid";
|
||||
|
||||
|
||||
// Salary payment
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu3 ON bu3.fk_bank = b.rowid AND bu3.type='payment_salary'";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."payment_salary as sal ON bu3.url_id = sal.rowid";
|
||||
|
||||
@ -34,7 +34,7 @@ $langs->load("categories");
|
||||
$langs->load("bills");
|
||||
|
||||
$action=GETPOST('action');
|
||||
$id=GETPOST('id');
|
||||
$id=GETPOST('id','int');
|
||||
$ref=GETPOST('ref');
|
||||
|
||||
// Security check
|
||||
|
||||
@ -605,7 +605,7 @@ else if ($action == 'add' && $user->rights->facture->creer)
|
||||
$ret = $extrafields->setOptionalsFromPost($extralabels, $object);
|
||||
if ($ret < 0) $error ++;
|
||||
|
||||
// Replacement invoice
|
||||
// Replacement invoice
|
||||
if ($_POST['type'] == Facture::TYPE_REPLACEMENT)
|
||||
{
|
||||
$dateinvoice = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
|
||||
@ -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
|
||||
if($facture_source->fetch($object->fk_facture_source)>0) {
|
||||
if ($facture_source->fetch($object->fk_facture_source)>0)
|
||||
{
|
||||
$totalpaye = $facture_source->getSommePaiement();
|
||||
$totalcreditnotes = $facture_source->getSumCreditNotesUsed();
|
||||
$totaldeposits = $facture_source->getSumDepositsUsed();
|
||||
@ -1061,9 +1062,9 @@ else if ($action == 'add' && $user->rights->facture->creer)
|
||||
{
|
||||
$db->rollback();
|
||||
$action = 'create';
|
||||
$_GET ["origin"] = $_POST["origin"];
|
||||
$_GET ["originid"] = $_POST["originid"];
|
||||
setEventMessage($object->error, 'errors');
|
||||
$_GET["origin"] = $_POST["origin"];
|
||||
$_GET["originid"] = $_POST["originid"];
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* 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
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -22,6 +23,8 @@
|
||||
|
||||
<?php
|
||||
|
||||
global $user;
|
||||
|
||||
$langs = $GLOBALS['langs'];
|
||||
$linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
|
||||
|
||||
@ -47,16 +50,22 @@ foreach($linkedObjectBlock as $object)
|
||||
<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>
|
||||
<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>
|
||||
</tr>
|
||||
<?php
|
||||
$total = $total + $object->total_ht;
|
||||
}
|
||||
?>
|
||||
<tr class="liste_total">
|
||||
<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> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -914,7 +914,7 @@ class BonPrelevement extends CommonObject
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_bons (";
|
||||
$sql.= " ref, entity, datec";
|
||||
$sql.= ") VALUES (";
|
||||
$sql.= "'".$ref."'";
|
||||
$sql.= "'".$this->db->escape($ref)."'";
|
||||
$sql.= ", ".$conf->entity;
|
||||
$sql.= ", '".$this->db->idate($now)."'";
|
||||
$sql.= ")";
|
||||
|
||||
@ -78,19 +78,19 @@ $sql.= " AND f.entity = ".$conf->entity;
|
||||
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
||||
if ($search_line)
|
||||
{
|
||||
$sql.= " AND pl.rowid = '".$search_line."'";
|
||||
$sql.= " AND pl.rowid = '".$db->escape($search_line)."'";
|
||||
}
|
||||
if ($search_bon)
|
||||
{
|
||||
$sql.= " AND p.ref LIKE '%".$search_bon."%'";
|
||||
$sql.= " AND p.ref LIKE '%".$db->escape($search_bon)."%'";
|
||||
}
|
||||
if ($search_code)
|
||||
{
|
||||
$sql.= " AND s.code_client LIKE '%".$search_code."%'";
|
||||
$sql.= " AND s.code_client LIKE '%".$db->escape($search_code)."%'";
|
||||
}
|
||||
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->plimit($conf->liste_limit+1, $offset);
|
||||
@ -104,7 +104,7 @@ if ($result)
|
||||
$urladd = "&statut=".$statut;
|
||||
$urladd .= "&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 '<table class="liste" width="100%">';
|
||||
|
||||
@ -76,7 +76,8 @@ $sql.= " AND pl.fk_prelevement_bons = p.rowid";
|
||||
$sql.= " AND pl.fk_soc = s.rowid";
|
||||
$sql.= " AND p.entity = ".$conf->entity;
|
||||
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);
|
||||
if ($result)
|
||||
|
||||
@ -30,7 +30,7 @@ $langs->load("companies");
|
||||
if (! empty($conf->facture->enabled)) $langs->load("bills");
|
||||
|
||||
// Security check
|
||||
$socid = $_GET["socid"];
|
||||
$socid = GETPOST("socid",'int');
|
||||
if ($user->societe_id > 0)
|
||||
{
|
||||
$action = '';
|
||||
|
||||
@ -31,22 +31,22 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/contact.lib.php';
|
||||
$langs->load("companies");
|
||||
|
||||
// Security check
|
||||
$contactid = isset($_GET["id"])?$_GET["id"]:'';
|
||||
$contactid = GETPOST("id",'int');
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'contact', $contactid, 'socpeople&societe');
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
* View
|
||||
*/
|
||||
|
||||
llxHeader('',$langs->trans("ContactsAddresses"),'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas');
|
||||
|
||||
|
||||
$contact = new Contact($db);
|
||||
$contact->fetch($_GET["id"], $user);
|
||||
$contact->info($_GET["id"]);
|
||||
$contact->fetch($contactid, $user);
|
||||
$contact->info($contactid);
|
||||
|
||||
|
||||
$head = contact_prepare_head($contact);
|
||||
|
||||
@ -406,7 +406,7 @@ class Contrat extends CommonObject
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."contrat";
|
||||
if ($ref)
|
||||
{
|
||||
$sql.= " WHERE ref='".$ref."'";
|
||||
$sql.= " WHERE ref='".$this->db->escape($ref)."'";
|
||||
$sql.= " AND entity IN (".getEntity('contract').")";
|
||||
}
|
||||
else $sql.= " WHERE rowid=".$id;
|
||||
@ -2077,7 +2077,7 @@ class ContratLigne extends CommonObject
|
||||
$sql.= " t.commentaire";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."contratdet as t";
|
||||
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);
|
||||
$resql=$this->db->query($sql);
|
||||
|
||||
@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
|
||||
$langs->load("contracts");
|
||||
|
||||
// Security check
|
||||
$contratid = isset($_GET["id"])?$_GET["id"]:'';
|
||||
$contratid = GETPOST("id",'int');
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result = restrictedArea($user, 'contrat',$contratid,'');
|
||||
|
||||
@ -41,8 +41,8 @@ $result = restrictedArea($user, 'contrat',$contratid,'');
|
||||
llxHeader();
|
||||
|
||||
$contrat = new Contrat($db);
|
||||
$contrat->fetch($_GET["id"]);
|
||||
$contrat->info($_GET["id"]);
|
||||
$contrat->fetch($contratid);
|
||||
$contrat->info($contratid);
|
||||
|
||||
$head = contract_prepare_head($contrat);
|
||||
|
||||
|
||||
@ -1141,7 +1141,6 @@ abstract class CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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.
|
||||
@ -2085,7 +2084,7 @@ abstract class CommonObject
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element;
|
||||
$sql.= " WHERE entity IN (".getEntity($this->element, 1).")";
|
||||
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);
|
||||
if ($resql)
|
||||
@ -3460,6 +3459,7 @@ abstract class CommonObject
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers($trigger_name,$this,$user,$langs,$conf);
|
||||
|
||||
if ($result < 0)
|
||||
{
|
||||
if (!empty($this->errors))
|
||||
@ -3471,6 +3471,7 @@ abstract class CommonObject
|
||||
$this->errors=$interface->errors;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@ -187,6 +187,7 @@ class FormActions
|
||||
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('By').'</th>';
|
||||
print '<th class="liste_titre" align="right">'.$langs->trans('Status').'</th>';
|
||||
print '</tr>';
|
||||
print "\n";
|
||||
|
||||
@ -204,7 +205,15 @@ class FormActions
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$ref.'</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>';
|
||||
if (! empty($action->author->id))
|
||||
{
|
||||
@ -214,6 +223,12 @@ class FormActions
|
||||
print $userstatic->getNomUrl(1);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="right">';
|
||||
if (! empty($action->author->id))
|
||||
{
|
||||
print $action->getLibStatut(3);
|
||||
}
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
print '</table>';
|
||||
@ -226,7 +241,7 @@ class FormActions
|
||||
/**
|
||||
* 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 $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)
|
||||
@ -235,7 +250,7 @@ class FormActions
|
||||
*/
|
||||
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);
|
||||
|
||||
|
||||
@ -520,7 +520,7 @@ class FormCompany
|
||||
* @param string $htmlname Name of HTML form
|
||||
* @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 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.
|
||||
* @return int The selected third party ID
|
||||
*/
|
||||
@ -573,13 +573,13 @@ class FormCompany
|
||||
var obj = '.json_encode($events).';
|
||||
$.each(obj, function(key,values) {
|
||||
if (values.method.length) {
|
||||
getMethod'.$htmlname.'(values);
|
||||
runJsCodeForEvent'.$htmlname.'(values);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Function used to execute events when search_htmlname change
|
||||
function getMethod'.$htmlname.'(obj) {
|
||||
function runJsCodeForEvent'.$htmlname.'(obj) {
|
||||
var id = $("#'.$htmlname.'").val();
|
||||
var method = obj.method;
|
||||
var url = obj.url;
|
||||
@ -612,8 +612,8 @@ class FormCompany
|
||||
}
|
||||
|
||||
print "\n".'<!-- Input text for third party with Ajax.Autocompleter (selectCompaniesForNewContact) -->'."\n";
|
||||
print '<table class="nobordernopadding"><tr class="nobordernopadding">';
|
||||
print '<td class="nobordernopadding">';
|
||||
//print '<table class="nobordernopadding"><tr class="nobordernopadding">';
|
||||
//print '<td class="nobordernopadding">';
|
||||
if ($obj->rowid == 0)
|
||||
{
|
||||
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 ajax_autocompleter(($socid?$socid:-1),$htmlname,DOL_URL_ROOT.'/societe/ajaxcompanies.php','',$minLength);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
print '</table>';
|
||||
print "\n";
|
||||
//print '</td>';
|
||||
//print '</tr>';
|
||||
//print '</table>';
|
||||
//print "\n";
|
||||
return $socid;
|
||||
}
|
||||
else
|
||||
|
||||
139
htdocs/core/class/html.formintervention.class.php
Normal file
139
htdocs/core/class/html.formintervention.class.php
Normal 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"> </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 '';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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.
|
||||
*
|
||||
* @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
|
||||
* @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).';
|
||||
$.each(obj, function(key,values) {
|
||||
if (values.method.length) {
|
||||
getMethod(values);
|
||||
runJsCodeForEvent(values);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function getMethod(obj) {
|
||||
function runJsCodeForEvent(obj) {
|
||||
var id = $("#'.$htmlname.'").val();
|
||||
var method = obj.method;
|
||||
var url = obj.url;
|
||||
@ -382,6 +382,7 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0)
|
||||
} else {
|
||||
$("#inputautocomplete"+htmlname).val("");
|
||||
}
|
||||
$("select#" + htmlname).change(); /* Trigger event change */
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.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 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 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||
*
|
||||
@ -72,14 +72,6 @@ function societe_prepare_head($object)
|
||||
$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) ))
|
||||
{
|
||||
$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 (! 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][1] = $langs->trans("Referers");
|
||||
|
||||
@ -131,12 +131,13 @@ function getServerTimeZoneInt($refgmtdate='now')
|
||||
*
|
||||
* @param int $time Date timestamp (or string with format YYYY-MM-DD)
|
||||
* @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
|
||||
*/
|
||||
function dol_time_plus_duree($time,$duration_value,$duration_unit)
|
||||
{
|
||||
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_value > 0) $deltastring="+".abs($duration_value);
|
||||
if ($duration_value < 0) $deltastring="-".abs($duration_value);
|
||||
|
||||
@ -270,7 +270,7 @@ function pdf_getPDFFontSize($outputlangs)
|
||||
function pdf_getHeightForLogo($logo, $url = false)
|
||||
{
|
||||
global $conf;
|
||||
$height=(empty($conf->global->MAIN_DOCUMENTS_LOGO_HEIGHT)?22:$conf->global->MAIN_DOCUMENTS_LOGO_HEIGHT);
|
||||
$height=(empty($conf->global->MAIN_DOCUMENTS_LOGO_HEIGHT)?22:$conf->global->MAIN_DOCUMENTS_LOGO_HEIGHT);
|
||||
$maxwidth=130;
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
|
||||
$tmp=dol_getImageSize($logo, $url);
|
||||
@ -1602,6 +1602,24 @@ function pdf_getLinkedObjects($object,$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
|
||||
|
||||
@ -27,6 +27,8 @@
|
||||
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/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
|
||||
@ -59,6 +61,7 @@ class CommActionRapport
|
||||
{
|
||||
global $conf,$langs;
|
||||
$langs->load("commercial");
|
||||
$langs->load("projects");
|
||||
|
||||
$this->db = $db;
|
||||
$this->description = "";
|
||||
@ -197,9 +200,9 @@ class CommActionRapport
|
||||
$y++;
|
||||
$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.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.= " u.login";
|
||||
$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.= " ORDER BY a.datep DESC";
|
||||
|
||||
$eventstatic=new ActionComm($this->db);
|
||||
$projectstatic=new Project($this->db);
|
||||
|
||||
dol_syslog(get_class($this)."::_page", LOG_DEBUG);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
@ -221,6 +227,11 @@ class CommActionRapport
|
||||
{
|
||||
$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);
|
||||
|
||||
// Calculate height of text
|
||||
@ -228,6 +239,16 @@ class CommActionRapport
|
||||
if (! preg_match('/^'.preg_quote($obj->label).'/',$obj->note)) $text=$obj->label."\n";
|
||||
$text.=$obj->note;
|
||||
$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;
|
||||
$nboflines=dol_nboflines($text);
|
||||
$heightlinemax=max(2*$height,$nboflines*$height);
|
||||
@ -249,7 +270,7 @@ class CommActionRapport
|
||||
|
||||
// Third party
|
||||
$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();
|
||||
|
||||
// Action code
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
/* 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
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -21,6 +22,8 @@
|
||||
|
||||
<?php
|
||||
|
||||
global $user;
|
||||
|
||||
$langs = $GLOBALS['langs'];
|
||||
$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>
|
||||
<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="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>
|
||||
</tr>
|
||||
<?php
|
||||
$total = $total + $object->total_ht;
|
||||
}
|
||||
|
||||
?>
|
||||
<tr class="liste_total">
|
||||
<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> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -796,7 +796,7 @@ class Fichinter extends CommonObject
|
||||
*
|
||||
* @param User $user Object user who modify
|
||||
* @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)
|
||||
{
|
||||
@ -808,7 +808,6 @@ class Fichinter extends CommonObject
|
||||
$sql.= " SET description = '".$this->db->escape($description)."'";
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " AND fk_statut = 0";
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
|
||||
@ -1627,8 +1627,10 @@ else if ($id > 0 || ! empty($ref))
|
||||
// Modify
|
||||
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 '>'.$langs->trans("Modify").'</a></div>';
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="fiche.php?id='.$object->id.'&action=modify">';
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) print $langs->trans("Modify");
|
||||
else print $langs->trans("SetToDraft");
|
||||
print '</a></div>';
|
||||
}
|
||||
|
||||
// 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>';
|
||||
}
|
||||
|
||||
// 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&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid.'&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
|
||||
if (! empty($conf->propal->enabled) && $object->statut > 0)
|
||||
{
|
||||
|
||||
@ -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_input_method as cm ON cm.rowid = c.fk_input_method";
|
||||
$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;
|
||||
|
||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
||||
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* 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
|
||||
* 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_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
|
||||
*
|
||||
@ -74,7 +87,7 @@ class PaiementFourn extends Paiement
|
||||
function fetch($id)
|
||||
{
|
||||
$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.= ' 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 ';
|
||||
@ -95,6 +108,7 @@ class PaiementFourn extends Paiement
|
||||
$this->bank_line = $obj->fk_bank;
|
||||
$this->montant = $obj->amount;
|
||||
$this->note = $obj->note;
|
||||
$this->type_code = $obj->paiement_code;
|
||||
$this->type_libelle = $obj->paiement_type;
|
||||
$this->statut = $obj->statut;
|
||||
$error = 1;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
/* 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
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -21,6 +22,8 @@
|
||||
|
||||
<?php
|
||||
|
||||
global $user;
|
||||
|
||||
$langs = $GLOBALS['langs'];
|
||||
$linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
|
||||
|
||||
@ -44,17 +47,23 @@ foreach($linkedObjectBlock as $object)
|
||||
<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>
|
||||
<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>
|
||||
</tr>
|
||||
<?php
|
||||
$total = $total + $object->total_ht;
|
||||
}
|
||||
|
||||
?>
|
||||
<tr class="liste_total">
|
||||
<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> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
/* 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
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -21,6 +22,8 @@
|
||||
|
||||
<?php
|
||||
|
||||
global $user;
|
||||
|
||||
$langs = $GLOBALS['langs'];
|
||||
$linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
|
||||
|
||||
@ -45,16 +48,22 @@ foreach($linkedObjectBlock as $object)
|
||||
<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>
|
||||
<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>
|
||||
</tr>
|
||||
<?php
|
||||
$total = $total + $object->total_ht;
|
||||
}
|
||||
?>
|
||||
<tr class="liste_total">
|
||||
<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> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
||||
* 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
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -178,7 +178,8 @@ if ($result > 0)
|
||||
print '</td></tr>';
|
||||
|
||||
// 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
|
||||
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">';
|
||||
|
||||
@ -51,7 +51,7 @@ $offset = $conf->liste_limit * $page ;
|
||||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
|
||||
$id = GETPOST('id');
|
||||
$id = GETPOST('id','int');
|
||||
|
||||
$search_ref = GETPOST('search_ref');
|
||||
$month_create = GETPOST('month_create');
|
||||
|
||||
@ -87,4 +87,5 @@ AgendaExtNb=Calendar nb %s
|
||||
ExtSiteUrlAgenda=URL to access .ical file
|
||||
ExtSiteNoLabel=No Description
|
||||
WorkingTimeRange=Working time range
|
||||
WorkingDaysRange=Working days range
|
||||
WorkingDaysRange=Working days range
|
||||
AddEvent=Create event
|
||||
@ -290,6 +290,8 @@ CurrencySingXOF=CFA Franc BCEAO
|
||||
CurrencyXPF=CFP Francs
|
||||
CurrencySingXPF=CFP Franc
|
||||
CurrencyCentSingEUR=cent
|
||||
CurrencyCentINR=paisa
|
||||
CurrencyCentSingINR=paise
|
||||
CurrencyThousandthSingTND=thousandth
|
||||
#### Input reasons #####
|
||||
DemandReasonTypeSRC_INTE=Internet
|
||||
|
||||
@ -645,6 +645,7 @@ OptionalFieldsSetup=Extra attributes setup
|
||||
URLPhoto=URL of photo/logo
|
||||
SetLinkToThirdParty=Link to another third party
|
||||
CreateDraft=Create draft
|
||||
SetToDraft=Back to draft
|
||||
ClickToEdit=Click to edit
|
||||
ObjectDeleted=Object %s deleted
|
||||
ByCountry=By country
|
||||
|
||||
@ -199,7 +199,7 @@ AccountancyJournal=Code journal comptabilité
|
||||
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_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_BUY_ACCOUNT=Code comptable par défaut pour le versement de la TVA
|
||||
COMPTA_ACCOUNT_CUSTOMER=Code comptable par défaut des tiers clients
|
||||
|
||||
@ -25,9 +25,11 @@ NameAndSignatureOfExternalContact=Nom et signature du client :
|
||||
DocumentModelStandard=Modèle de fiche d'intervention standard
|
||||
InterventionCardsAndInterventionLines=Fiches interventions et lignes d'interventions
|
||||
ClassifyBilled=Classer "Facturée"
|
||||
ClassifyUnBilled=Classer "Non facturée"
|
||||
StatusInterInvoiced=Facturée
|
||||
RelatedInterventions=Interventions rattachées
|
||||
ShowIntervention=Afficher intervention
|
||||
SendInterventionRef=Envoi de la fiche intervention %s
|
||||
##### Types de contacts #####
|
||||
TypeContact_fichinter_internal_INTERREPFOLL=Responsable suivi de l'intervention
|
||||
TypeContact_fichinter_internal_INTERVENING=Intervenant
|
||||
|
||||
@ -645,6 +645,7 @@ OptionalFieldsSetup=Configuration des attributs complémentaires
|
||||
URLPhoto=URL de la photo/logo
|
||||
SetLinkToThirdParty=Lier vers un autre tiers
|
||||
CreateDraft=Créer brouillon
|
||||
SetToDraft=Repasser en brouillon
|
||||
ClickToEdit=Cliquer ici pour éditer
|
||||
ObjectDeleted=Objet %s supprimé
|
||||
ByCountry=Par pays
|
||||
|
||||
@ -46,7 +46,7 @@ $langs->load('orders');
|
||||
|
||||
$action=GETPOST('action', 'alpha');
|
||||
$confirm=GETPOST('confirm', 'alpha');
|
||||
$backtourl=GETPOST('backtourl');
|
||||
$backtopage=GETPOST('backtopage');
|
||||
|
||||
// Security check
|
||||
$id = GETPOST('id', 'int');
|
||||
@ -150,7 +150,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->expeditio
|
||||
if ($result > 0)
|
||||
{
|
||||
$db->commit();
|
||||
if (! empty($backtourl)) header("Location: ".$backtourl);
|
||||
if (! empty($backtopage)) header("Location: ".$backtopage);
|
||||
else header("Location: ".DOL_URL_ROOT.'/expedition/index.php');
|
||||
exit;
|
||||
}
|
||||
@ -493,7 +493,7 @@ else
|
||||
if ($action == 'delete')
|
||||
{
|
||||
$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)
|
||||
{
|
||||
print '<a class="butActionDelete" href="fiche.php?id='.$delivery->id.'&expid='.$delivery->origin_id.'&action=delete&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.'&expid='.$delivery->origin_id.'&action=delete&backtopage='.urlencode(DOL_URL_ROOT.'/expedition/fiche.php?id='.$delivery->origin_id).'">'.$langs->trans("Delete").'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -30,7 +30,7 @@ require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
||||
if (!$user->rights->opensurvey->read) accessforbidden();
|
||||
|
||||
$action=GETPOST('action');
|
||||
$id=GETPOST('id');
|
||||
$id=GETPOST('id','alpha');
|
||||
$numsondage= $id;
|
||||
$surveytitle=GETPOST('surveytitle');
|
||||
$status=GETPOST('status');
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
* Copyright (C) 2007-2011 Jean Heimburger <jean@tiaris.info>
|
||||
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
|
||||
* 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) 2014 Henry Florian <florian.henry@open-concept.pro>
|
||||
* 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
|
||||
*
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
|
||||
* Copyright (C) 2006 Auguria SARL <info@auguria.org>
|
||||
* 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) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||
* Copyright (C) 2014 Cédric Gross <c.gross@kreiz-it.fr>
|
||||
@ -145,20 +145,18 @@ if (empty($reshook))
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'setaccountancy_code_buy')
|
||||
{
|
||||
$result = $object->setValueFrom('accountancy_code_buy', GETPOST('accountancy_code_buy'));
|
||||
if ($action == 'setaccountancy_code_buy') {
|
||||
|
||||
$result = $object->setAccountancyCode('buy', GETPOST('accountancy_code_buy'));
|
||||
if ($result < 0) setEventMessage(join(',',$object->errors), 'errors');
|
||||
else $object->accountancy_code_buy=GETPOST('accountancy_code_buy');
|
||||
$action="";
|
||||
}
|
||||
|
||||
if ($action == 'setaccountancy_code_sell')
|
||||
{
|
||||
$result = $object->setValueFrom('accountancy_code_sell', GETPOST('accountancy_code_sell'));
|
||||
if ($result < 0) setEventMessage(join(',',$object->errors), 'errors');
|
||||
else $object->accountancy_code_sell=GETPOST('accountancy_code_sell');
|
||||
$action="";
|
||||
$result = $object->setAccountancyCode('sell', GETPOST('accountancy_code_sell'));
|
||||
if ($result < 0) setEventMessage(join(',',$object->errors), 'errors');
|
||||
$action="";
|
||||
}
|
||||
|
||||
// Add a product or service
|
||||
|
||||
@ -28,7 +28,7 @@ require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.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->service->lire) $type='0'; // Force global page on product page only
|
||||
|
||||
|
||||
@ -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("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);
|
||||
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("PhysicalStock"),"reassort.php", "stock_physique",$param,"",'align="right"',$sortfield,$sortorder);
|
||||
// TODO Add info of running suppliers/customers orders
|
||||
|
||||
@ -70,7 +70,7 @@ if ($id > 0 || ! empty($ref))
|
||||
{
|
||||
$product = new Product($db);
|
||||
$result = $product->fetch($id, $ref);
|
||||
|
||||
|
||||
$parameters=array('id'=>$id);
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters,$product,$action); // Note that $action and $object may have been modified by some hooks
|
||||
$error=$hookmanager->error; $errors=$hookmanager->errors;
|
||||
@ -83,7 +83,7 @@ if ($id > 0 || ! empty($ref))
|
||||
$titre=$langs->trans("CardProduct".$product->type);
|
||||
$picto=($product->type==1?'service':'product');
|
||||
dol_fiche_head($head, 'referers', $titre, 0, $picto);
|
||||
|
||||
|
||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$product,$action); // Note that $action and $object may have been modified by hook
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
@ -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 ($socid) $sql.= " AND s.rowid = ".$socid;
|
||||
$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);
|
||||
|
||||
$result = $db->query($sql);
|
||||
|
||||
@ -31,12 +31,12 @@ $langs->load("stocks");
|
||||
// Security check
|
||||
$result=restrictedArea($user,'stock');
|
||||
|
||||
$sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"];
|
||||
$snom=isset($_GET["snom"])?$_GET["snom"]:$_POST["snom"];
|
||||
$sall=isset($_GET["sall"])?$_GET["sall"]:$_POST["sall"];
|
||||
$sref=GETPOST("sref");;
|
||||
$snom=GETPOST("snom");
|
||||
$sall=GETPOST("sall");
|
||||
|
||||
$sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"];
|
||||
$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"];
|
||||
$sortfield = GETPOST("sortfield");
|
||||
$sortorder = GETPOST("sortorder");
|
||||
if (! $sortfield) $sortfield="e.label";
|
||||
if (! $sortorder) $sortorder="ASC";
|
||||
$page = $_GET["page"];
|
||||
@ -50,13 +50,13 @@ $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e";
|
||||
$sql.= " WHERE e.entity = ".$conf->entity;
|
||||
if ($sref)
|
||||
{
|
||||
$sql.= " AND e.label like '%".$sref."%'";
|
||||
$sql.= " AND e.label like '%".$db->escape($sref)."%'";
|
||||
}
|
||||
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);
|
||||
|
||||
$result = $db->query($sql);
|
||||
|
||||
@ -43,9 +43,9 @@ $result=restrictedArea($user,'produit|service');
|
||||
//checks if a product has been ordered
|
||||
|
||||
$action = GETPOST('action','alpha');
|
||||
$id_product = GETPOST('productid', 'productid');
|
||||
$id_sw = GETPOST('id_sw', 'id_sw');
|
||||
$id_tw = GETPOST('id_tw', 'id_tw');
|
||||
$id_product = GETPOST('productid', 'int');
|
||||
$id_sw = GETPOST('id_sw', 'int');
|
||||
$id_tw = GETPOST('id_tw', 'int');
|
||||
$qty = GETPOST('qty');
|
||||
$idline = GETPOST('idline');
|
||||
|
||||
|
||||
@ -72,13 +72,8 @@ $sproduct = GETPOST('sproduct', 'int');
|
||||
$sortorder = GETPOST('sortorder', 'alpha');
|
||||
$sortfield = GETPOST('sortfield', 'alpha');
|
||||
|
||||
if (!$sortorder) {
|
||||
$sortorder = 'DESC';
|
||||
}
|
||||
|
||||
if (!$sortfield) {
|
||||
$sortfield = 'cf.date_creation';
|
||||
}
|
||||
if (!$sortorder) $sortorder = 'DESC';
|
||||
if (!$sortfield) $sortfield = 'cf.date_creation';
|
||||
|
||||
$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 .= ', 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);
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
@ -317,7 +312,7 @@ if ($resql)
|
||||
'</form>';
|
||||
|
||||
$db->free($resql);
|
||||
|
||||
|
||||
dol_fiche_end();
|
||||
}
|
||||
else
|
||||
|
||||
@ -296,7 +296,7 @@ class Project extends CommonObject
|
||||
}
|
||||
else if (! empty($ref))
|
||||
{
|
||||
$sql.= " WHERE ref='".$ref."'";
|
||||
$sql.= " WHERE ref='".$this->db->escape($ref)."'";
|
||||
$sql.= " AND entity IN (".getEntity('project').")";
|
||||
}
|
||||
|
||||
|
||||
@ -205,7 +205,7 @@ class Task extends CommonObject
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."projet_task as t";
|
||||
$sql.= " WHERE ";
|
||||
if (!empty($ref)) {
|
||||
$sql.="t.ref = '".$ref."'";
|
||||
$sql.="t.ref = '".$this->db->escape($ref)."'";
|
||||
}else {
|
||||
$sql.="t.rowid = ".$id;
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ if ($action == 'swapstatut' && $user->rights->projet->creer)
|
||||
{
|
||||
if ($object->fetch($id))
|
||||
{
|
||||
$result=$object->swapContactStatus(GETPOST('ligne'));
|
||||
$result=$object->swapContactStatus(GETPOST('ligne','int'));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -105,7 +105,7 @@ if ($action == 'swapstatut' && $user->rights->projet->creer)
|
||||
if (($action == 'deleteline' || $action == 'deletecontact') && $user->rights->projet->creer)
|
||||
{
|
||||
$object->fetch($id);
|
||||
$result = $object->delete_contact($_GET["lineid"]);
|
||||
$result = $object->delete_contact(GETPOST("lineid"));
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
|
||||
@ -63,7 +63,7 @@ $result = restrictedArea($user, 'projet', $object->id);
|
||||
// fetch optionals attributes and labels
|
||||
$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'));
|
||||
|
||||
|
||||
@ -216,7 +216,7 @@ if (empty($reshook))
|
||||
$object->socid = GETPOST('socid','int');
|
||||
$object->description = GETPOST('description'); // Do not use 'alpha' here, we want field as it is
|
||||
$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;
|
||||
|
||||
// Fill array 'array_options' with data from add form
|
||||
@ -446,7 +446,7 @@ if ($action == 'create' && $user->rights->projet->creer)
|
||||
|
||||
// Date start
|
||||
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>';
|
||||
|
||||
// Date end
|
||||
@ -578,7 +578,7 @@ else
|
||||
|
||||
// Date start
|
||||
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 ' <input type="checkbox" name="reportdate" value="yes" ';
|
||||
if ($comefromclone){print ' checked="checked" ';}
|
||||
print '/> '. $langs->trans("ProjectReportDate");
|
||||
|
||||
@ -43,9 +43,9 @@ $socid=0;
|
||||
if ($user->societe_id > 0) $socid = $user->societe_id;
|
||||
if (!$user->rights->projet->lire) accessforbidden();
|
||||
|
||||
$sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"];
|
||||
$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"];
|
||||
$page = isset($_GET["page"])? $_GET["page"]:$_POST["page"];
|
||||
$sortfield = GETPOST("sortfield");
|
||||
$sortorder = GETPOST("sortorder");
|
||||
$page = GETPOST("page");
|
||||
$page = is_numeric($page) ? $page : 0;
|
||||
$page = $page == -1 ? 0 : $page;
|
||||
|
||||
|
||||
@ -130,16 +130,10 @@ if ($object->client)
|
||||
$obj = $db->fetch_object($resql);
|
||||
$nbFactsClient = $obj->nb;
|
||||
$thirdTypeArray['customer']=$langs->trans("customer");
|
||||
<<<<<<< HEAD
|
||||
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->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->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)
|
||||
@ -185,9 +179,10 @@ if ($type_element == 'fichinter')
|
||||
{ // Customer : show products from invoices
|
||||
require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php';
|
||||
$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, ';
|
||||
$tables_from = MAIN_DB_PREFIX."fichinter as f,".MAIN_DB_PREFIX."fichinterdet as d";
|
||||
$where = " WHERE d.fk_fichinter = f.rowid AND f.entity = ".$conf->entity;
|
||||
$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 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 f.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$where.= " AND f.entity = ".$conf->entity;
|
||||
$dateprint = 'f.datec';
|
||||
$doc_number='f.ref';
|
||||
}
|
||||
@ -195,7 +190,7 @@ if ($type_element == 'invoice')
|
||||
{ // Customer : show products from invoices
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||
$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";
|
||||
$where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$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';
|
||||
$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";
|
||||
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$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';
|
||||
$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";
|
||||
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$where.= " AND d.fk_commande = c.rowid";
|
||||
@ -234,7 +229,7 @@ if ($type_element == 'supplier_invoice')
|
||||
{ // Supplier : Show products from invoices.
|
||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||
$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";
|
||||
$where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$where.= " AND d.fk_facture_fourn = f.rowid";
|
||||
@ -246,7 +241,7 @@ if ($type_element == 'supplier_order')
|
||||
{ // Supplier : Show products from orders.
|
||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
|
||||
$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";
|
||||
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$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."%')";
|
||||
$sql.= $db->order($sortfield,$sortorder);
|
||||
$sql.= $db->plimit($limit + 1, $offset);
|
||||
|
||||
//print $sql;
|
||||
|
||||
// Define type of elements
|
||||
$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_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('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('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
|
||||
// Filters
|
||||
@ -312,6 +308,8 @@ print '<td class="liste_titre">'; // date
|
||||
print $formother->select_month($month?$month:-1,'month',1);
|
||||
$formother->select_year($year?$year:-1,'year',1, 20, 1);
|
||||
print '</td>';
|
||||
print '<td class="liste_titre" align="center">';
|
||||
print '</td>';
|
||||
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 '</td>';
|
||||
@ -328,16 +326,26 @@ if ($sql_select)
|
||||
$i = 0;
|
||||
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->ref=$objp->doc_number;
|
||||
$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 '</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>';
|
||||
|
||||
// Define text, description and type
|
||||
@ -434,15 +442,17 @@ if ($sql_select)
|
||||
|
||||
} else {
|
||||
|
||||
//if (! empty($objp->fk_parent_line)) echo img_picto('', 'rightarrow');
|
||||
if ($type==1) $text = img_object($langs->trans('Service'),'service');
|
||||
else $text = img_object($langs->trans('Product'),'product');
|
||||
if (! empty($objp->label) || ! empty($objp->description))
|
||||
{
|
||||
if ($type==1) $text = img_object($langs->trans('Service'),'service');
|
||||
else $text = img_object($langs->trans('Product'),'product');
|
||||
|
||||
if (! empty($objp->label)) {
|
||||
$text.= ' <strong>'.$objp->label.'</strong>';
|
||||
echo $form->textwithtooltip($text,dol_htmlentitiesbr($objp->description),3,'','',$i,0,'');
|
||||
} else {
|
||||
echo $text.' '.dol_htmlentitiesbr($objp->description);
|
||||
if (! empty($objp->label)) {
|
||||
$text.= ' <strong>'.$objp->label.'</strong>';
|
||||
echo $form->textwithtooltip($text,dol_htmlentitiesbr($objp->description),3,'','',$i,0,'');
|
||||
} else {
|
||||
echo $text.' '.dol_htmlentitiesbr($objp->description);
|
||||
}
|
||||
}
|
||||
|
||||
// Show range
|
||||
|
||||
@ -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();
|
||||
@ -181,14 +181,7 @@ if (empty($reshook))
|
||||
|
||||
$object->forme_juridique_code = GETPOST('forme_juridique_code', 'int');
|
||||
$object->effectif_id = GETPOST('effectif_id', 'int');
|
||||
if (GETPOST("private") == 1)
|
||||
{
|
||||
$object->typent_id = dol_getIdFromCode($db,'TE_PRIVATE','c_typent');
|
||||
}
|
||||
else
|
||||
{
|
||||
$object->typent_id = GETPOST('typent_id', 'int');
|
||||
}
|
||||
$object->typent_id = GETPOST('typent_id');
|
||||
|
||||
$object->client = GETPOST('client', 'int');
|
||||
$object->fournisseur = GETPOST('fournisseur', 'int');
|
||||
@ -1112,7 +1105,7 @@ else
|
||||
|
||||
dol_fiche_head($head, 'card', $langs->trans("ThirdParty"),0,'company');
|
||||
|
||||
|
||||
|
||||
// Load object modCodeTiers
|
||||
$module=(! empty($conf->global->SOCIETE_CODECLIENT_ADDON)?$conf->global->SOCIETE_CODECLIENT_ADDON:'mod_codeclient_leopard');
|
||||
if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php')
|
||||
@ -1148,9 +1141,9 @@ else
|
||||
{
|
||||
$prefixSupplierIsUsed = $modCodeFournisseur->verif_prefixIsUsed();
|
||||
}
|
||||
|
||||
|
||||
$object->oldcopy=dol_clone($object);
|
||||
|
||||
|
||||
if (GETPOST('nom'))
|
||||
{
|
||||
// We overwrite with values if posted
|
||||
@ -1182,7 +1175,7 @@ else
|
||||
$object->barcode = GETPOST('barcode', 'san_alpha');
|
||||
$object->forme_juridique_code = GETPOST('forme_juridique_code', 'int');
|
||||
$object->default_lang = GETPOST('default_lang', 'san_alpha');
|
||||
|
||||
|
||||
$object->tva_assuj = GETPOST('assujtva_value', 'int');
|
||||
$object->tva_intra = GETPOST('tva_intra', 'san_alpha');
|
||||
$object->status = GETPOST('status', 'int');
|
||||
@ -1269,7 +1262,7 @@ else
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="socid" value="'.$object->id.'">';
|
||||
if ($modCodeClient->code_auto || $modCodeFournisseur->code_auto) print '<input type="hidden" name="code_auto" value="1">';
|
||||
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Name
|
||||
|
||||
BIN
htdocs/theme/amarok/img/object_address.png
Normal file
BIN
htdocs/theme/amarok/img/object_address.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@ -942,7 +942,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
if ($conf->salaries->enabled)
|
||||
if ($conf->salaries->enabled && ! empty($user->rights->salaries->read))
|
||||
{
|
||||
$langs->load("salaries");
|
||||
|
||||
@ -1268,7 +1268,7 @@ else
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
if ($conf->salaries->enabled)
|
||||
if ($conf->salaries->enabled && ! empty($user->rights->salaries->read))
|
||||
{
|
||||
$langs->load("salaries");
|
||||
|
||||
@ -1957,11 +1957,11 @@ else
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
$langs->load("salaries");
|
||||
|
||||
if ($conf->salaries->enabled)
|
||||
if ($conf->salaries->enabled && ! empty($user->rights->salaries->read))
|
||||
{
|
||||
// THM
|
||||
$langs->load("salaries");
|
||||
|
||||
// THM
|
||||
print '<tr><td valign="top">'.$langs->trans("THM").'</td>';
|
||||
print '<td>';
|
||||
print '<input size="8" type="text" name="thm" value="'.price2num(GETPOST('thm')?GETPOST('thm'):$object->thm).'">';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user