Merge pull request #14941 from aspangaro/13a22

WIP NEW Add clone functionality on miscellaneous payment
This commit is contained in:
Laurent Destailleur 2020-10-07 15:31:09 +02:00 committed by GitHub
commit 213cefb570
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 101 additions and 4 deletions

View File

@ -338,6 +338,24 @@ class PaymentVarious extends CommonObject
$this->fk_user_modif = '';
}
/**
* Check if a miscellaneous payment can be created into database
*
* @return boolean True or false
*/
public function check()
{
$newamount = price2num($this->amount, 'MT');
// Validation of parameters
if (!($newamount) > 0 || empty($this->datep))
{
return false;
}
return true;
}
/**
* Create in database
*

View File

@ -41,8 +41,9 @@ $langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy", "cat
// Get parameters
$id = GETPOST('id', 'int');
$action = GETPOST('action', 'alpha');
$cancel = GETPOST('cancel', 'aZ09');
$action = GETPOST('action', 'alpha');
$confirm = GETPOST('confirm');
$cancel = GETPOST('cancel', 'aZ09');
$backtopage = GETPOST('backtopage', 'alpha');
$accountid = GETPOST("accountid") > 0 ? GETPOST("accountid", "int") : 0;
@ -225,6 +226,64 @@ if (empty($reshook))
}
}
// Action clone object
if ($action == 'confirm_clone' && $confirm != 'yes') { $action = ''; }
if ($action == 'confirm_clone' && $confirm == 'yes' && ($user->rights->banque->modifier))
{
$db->begin();
$originalId = $id;
$object->fetch($id);
if ($object->id > 0)
{
$object->id = $object->ref = null;
if (GETPOST('clone_label', 'alphanohtml')) {
$object->label = GETPOST('clone_label', 'alphanohtml');
} else {
$object->label = $langs->trans("CopyOf").' '.$object->label;
}
$newdatepayment = dol_mktime(0, 0, 0, GETPOST('clone_date_paymentmonth', 'int'), GETPOST('clone_date_paymentday', 'int'), GETPOST('clone_date_paymentyear', 'int'));
$newdatevalue = dol_mktime(0, 0, 0, GETPOST('clone_date_valuemonth', 'int'), GETPOST('clone_date_valueday', 'int'), GETPOST('clone_date_valueyear', 'int'));
if ($newdatepayment) $object->datep = $newdatepayment;
if (!empty($newdatevalue)) {
$object->datev = $newdatevalue;
} else {
$object->datev = $newdatepayment;
}
if ($object->check())
{
$id = $object->create($user);
if ($id > 0)
{
$db->commit();
$db->close();
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
exit;
} else {
$id = $originalId;
$db->rollback();
setEventMessages($object->error, $object->errors, 'errors');
}
} else {
$id = $originalId;
$db->rollback();
setEventMessages($object->error, $object->errors, 'errors');
}
} else {
$db->rollback();
dol_print_error($db, $object->error);
}
}
/*
* View
@ -419,6 +478,19 @@ if ($id)
$head = various_payment_prepare_head($object);
// Clone confirmation
if ($action === 'clone')
{
$formquestion = array(
array('type' => 'text', 'name' => 'clone_label', 'label' => $langs->trans("Label"), 'value' => $langs->trans("CopyOf").' '.$object->label),
);
$formquestion[] = array('type' => 'date', 'tdclass'=>'fieldrequired', 'name' => 'clone_date_payment', 'label' => $langs->trans("DatePayment"), 'value' => -1);
$formquestion[] = array('type' => 'date', 'name' => 'clone_date_value', 'label' => $langs->trans("DateValue"), 'value' => -1);
$formquestion[] = array('type' => 'other', 'tdclass'=>'fieldrequired', 'name' => 'accountid', 'label' => $langs->trans("BankAccount"), 'value' => $form->select_comptes($accountid, "accountid", 0, '', 1));
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneVariousPayment', $object->ref), 'confirm_clone', $formquestion, 'yes', 1, 300);
}
dol_fiche_head($head, 'card', $langs->trans("VariousPayment"), -1, $object->picto);
$morehtmlref = '<div class="refidno">';
@ -542,6 +614,12 @@ if ($id)
// TODO
// Add button modify
// Clone
if ($user->rights->banque->modifier)
{
print '<div class="inline-block divButAction"><a class="butAction" href="'.dol_buildpath("/compta/bank/various_payment/card.php", 1).'?id='.$object->id.'&amp;action=clone">'.$langs->trans("ToClone")."</a></div>";
}
// Delete
if (empty($object->rappro))
{

View File

@ -490,9 +490,9 @@ if ($result)
print $accountstatic->getNomUrl(1);
} else {
print '&nbsp;';
print '</td>';
if (!$i) $totalarray['nbfield']++;
}
print '</td>';
if (!$i) $totalarray['nbfield']++;
}
// Bank entry

View File

@ -168,6 +168,7 @@ ShowVariousPayment=Show miscellaneous payment
AddVariousPayment=Add miscellaneous payment
VariousPaymentId=Miscellaneous payment ID
VariousPaymentLabel=Miscellaneous payment label
ConfirmCloneVariousPayment=Confirm the clone of a miscellaneous payment
SEPAMandate=SEPA mandate
YourSEPAMandate=Your SEPA mandate
FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to