Skip to content

Commit

Permalink
NEW Can clone expense report on another user
Browse files Browse the repository at this point in the history
  • Loading branch information
eldy committed May 29, 2017
1 parent 6f72349 commit 7066ec7
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 30 deletions.
38 changes: 20 additions & 18 deletions htdocs/expensereport/card.php
Expand Up @@ -156,10 +156,10 @@
{
if ($object->id > 0)
{
// Because createFromClone modifies the object, we must clone it so that we can restore it later
// Because createFromClone modifies the object, we must clone it so that we can restore it later if it fails
$orig = clone $object;

$result=$object->createFromClone($socid);
$result=$object->createFromClone(GETPOST('fk_user_author','int'));
if ($result > 0)
{
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result);
Expand Down Expand Up @@ -1448,8 +1448,11 @@
print '<td>'.$langs->trans("User").'</td>';
print '<td>';
$userfee=new User($db);
$userfee->fetch($object->fk_user_author);
print $userfee->getNomUrl(-1);
if ($object->fk_user_author > 0)
{
$userfee->fetch($object->fk_user_author);
print $userfee->getNomUrl(-1);
}
print '</td></tr>';

// Ref
Expand Down Expand Up @@ -1536,12 +1539,11 @@
// Clone confirmation
if ($action == 'clone') {
// Create an array for form
$criteriaforfilter='hierarchyme';
if (! empty($user->rights->expensereport->readall)) $criteriaforfilter='';
$formquestion = array(
// 'text' => $langs->trans("ConfirmClone"),
// array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' =>
// 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value'
// => 1),
'text' => '',
array('type' => 'other','name' => 'fk_user_author','label' => $langs->trans("SelectTargetUser"),'value' => $form->select_dolusers((GETPOST('fk_user_author', 'int')> 0 ? GETPOST('fk_user_author', 'int') : $user->id), 'fk_user_author', 0, null, 0, $criteriaforfilter))
);
// Paiement incomplet. On demande si motif = escompte ou autre
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloneExpenseReport'), $langs->trans('ConfirmCloneExpenseReport', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
Expand Down Expand Up @@ -1658,7 +1660,7 @@
$userauthor=new User($db);
$result=$userauthor->fetch($object->fk_user_author);
if ($result < 0) dol_print_error('',$userauthor->error);
print $userauthor->getNomUrl(-1);
elseif ($result > 0) print $userauthor->getNomUrl(-1);
}
print '</td></tr>';

Expand Down Expand Up @@ -1694,8 +1696,8 @@
if ($object->fk_user_validator > 0)
{
$userfee=new User($db);
$userfee->fetch($object->fk_user_validator);
print $userfee->getNomUrl(-1);
$result = $userfee->fetch($object->fk_user_validator);
if ($result > 0) print $userfee->getNomUrl(-1);
if (empty($userfee->email) || ! isValidEmail($userfee->email))
{
$langs->load("errors");
Expand All @@ -1712,8 +1714,8 @@
if ($object->fk_user_cancel > 0)
{
$userfee=new User($db);
$userfee->fetch($object->fk_user_cancel);
print $userfee->getNomUrl(-1);
$result = $userfee->fetch($object->fk_user_cancel);
if ($result > 0) print $userfee->getNomUrl(-1);
}
print '</td></tr>';

Expand All @@ -1734,8 +1736,8 @@
if ($object->fk_user_approve > 0)
{
$userapp=new User($db);
$userapp->fetch($object->fk_user_approve);
print $userapp->getNomUrl(-1);
$result = $userapp->fetch($object->fk_user_approve);
if ($result > 0) print $userapp->getNomUrl(-1);
}
print '</td></tr>';

Expand All @@ -1751,8 +1753,8 @@
print '<td>'.$langs->trans("REFUSEUR").'</td>';
print '<td>';
$userfee=new User($db);
$userfee->fetch($object->fk_user_refuse);
print $userfee->getNomUrl(-1);
$result = $userfee->fetch($object->fk_user_refuse);
if ($result > 0) print $userfee->getNomUrl(-1);
print '</td></tr>';

print '<tr>';
Expand Down
12 changes: 7 additions & 5 deletions htdocs/expensereport/class/expensereport.class.php
Expand Up @@ -256,17 +256,19 @@ function create($user, $notrigger=0)
/**
* Load an object from its id and create a new one in database
*
* @param int $socid Id of thirdparty
* @return int New id of clone
* @param int $fk_user_author Id of new user
* @return int New id of clone
*/
function createFromClone($socid=0)
function createFromClone($fk_user_author)
{
global $user,$hookmanager;

$error=0;

if (empty($fk_user_author)) $fk_user_author = $user->id;

$this->context['createfromclone'] = 'createfromclone';

$this->db->begin();

// get extrafields so they will be clone
Expand All @@ -282,7 +284,7 @@ function createFromClone($socid=0)
$this->fk_statut=0;

// Clear fields
$this->fk_user_author = $user->id; // Note fk_user_author is not the 'author' but the guy the expense report is for.
$this->fk_user_author = $fk_user_author; // Note fk_user_author is not the 'author' but the guy the expense report is for.
$this->fk_user_valid = '';
$this->date_create = '';
$this->date_creation = '';
Expand Down
9 changes: 3 additions & 6 deletions htdocs/expensereport/payment/payment.php
Expand Up @@ -29,6 +29,7 @@

$langs->load("bills");
$langs->load("banks");
$langs->load("trips");

$chid=GETPOST("id",'int');
$ref=GETPOST('ref','alpha');
Expand Down Expand Up @@ -285,16 +286,11 @@
{
$objp = $expensereport;



print '<tr class="oddeven">';

print '<td align="right">'.price($objp->total_ttc)."</td>";

print '<td align="right">'.price($sumpaid)."</td>";

print '<td align="right">'.price($objp->total_ttc - $sumpaid)."</td>";

print '<td align="center">';
if ($sumpaid < $objp->total_ttc)
{
Expand All @@ -308,6 +304,7 @@
print "</td>";

print "</tr>\n";

$total+=$objp->total;
$total_ttc+=$objp->total_ttc;
$totalrecu+=$objp->am;
Expand All @@ -316,7 +313,7 @@
if ($i > 1)
{
// Print total
print "<tr ".$bc[!$var].">";
print '<tr class="oddeven">';
print '<td colspan="2" align="left">'.$langs->trans("Total").':</td>';
print "<td align=\"right\"><b>".price($total_ttc)."</b></td>";
print "<td align=\"right\"><b>".price($totalrecu)."</b></td>";
Expand Down
1 change: 1 addition & 0 deletions htdocs/langs/en_US/main.lang
Expand Up @@ -715,6 +715,7 @@ from=from
toward=toward
Access=Access
SelectAction=Select action
SelectTargetUser=Select target user/employee
HelpCopyToClipboard=Use Ctrl+C to copy to clipboard
SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s")
OriginFileName=Original filename
Expand Down
2 changes: 1 addition & 1 deletion htdocs/langs/en_US/trips.lang
Expand Up @@ -88,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period.
ExpenseReportPayment=Expense report payment
ExpenseReportsToApprove=Expense reports to approve
ExpenseReportsToPay=Expense reports to pay
CloneExpenseReport=Clone expese report
CloneExpenseReport=Clone expense report
ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ?

0 comments on commit 7066ec7

Please sign in to comment.