diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 1dbcbfc1335..dff27139581 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -156,10 +156,10 @@ if (empty($reshook)) { 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); @@ -1448,8 +1448,11 @@ else print ''.$langs->trans("User").''; print ''; $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 ''; // Ref @@ -1536,12 +1539,11 @@ else // 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); @@ -1658,7 +1660,7 @@ else $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 ''; @@ -1694,8 +1696,8 @@ else 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"); @@ -1712,8 +1714,8 @@ else 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 ''; @@ -1734,8 +1736,8 @@ else 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 ''; @@ -1751,8 +1753,8 @@ else print ''.$langs->trans("REFUSEUR").''; print ''; $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 ''; print ''; diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index eb16583df26..d62de0596e1 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -256,17 +256,19 @@ class ExpenseReport extends CommonObject /** * 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 @@ -282,7 +284,7 @@ class ExpenseReport extends CommonObject $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 = ''; diff --git a/htdocs/expensereport/payment/payment.php b/htdocs/expensereport/payment/payment.php index cb81598fc83..fdac304ffcb 100644 --- a/htdocs/expensereport/payment/payment.php +++ b/htdocs/expensereport/payment/payment.php @@ -29,6 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $langs->load("bills"); $langs->load("banks"); +$langs->load("trips"); $chid=GETPOST("id",'int'); $ref=GETPOST('ref','alpha'); @@ -285,16 +286,11 @@ if ($action == 'create' || empty($action)) { $objp = $expensereport; - - print ''; print ''.price($objp->total_ttc).""; - print ''.price($sumpaid).""; - print ''.price($objp->total_ttc - $sumpaid).""; - print ''; if ($sumpaid < $objp->total_ttc) { @@ -308,6 +304,7 @@ if ($action == 'create' || empty($action)) print ""; print "\n"; + $total+=$objp->total; $total_ttc+=$objp->total_ttc; $totalrecu+=$objp->am; @@ -316,7 +313,7 @@ if ($action == 'create' || empty($action)) if ($i > 1) { // Print total - print ""; + print ''; print ''.$langs->trans("Total").':'; print "".price($total_ttc).""; print "".price($totalrecu).""; diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 96973ad1b46..1ff0b9a9aa4 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -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 "%s" (otherwise "%s") OriginFileName=Original filename diff --git a/htdocs/langs/en_US/trips.lang b/htdocs/langs/en_US/trips.lang index 9c6902d3279..a51a392499b 100644 --- a/htdocs/langs/en_US/trips.lang +++ b/htdocs/langs/en_US/trips.lang @@ -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 ? \ No newline at end of file