Merge pull request #14941 from aspangaro/13a22
WIP NEW Add clone functionality on miscellaneous payment
This commit is contained in:
commit
213cefb570
@ -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
|
||||
*
|
||||
|
||||
@ -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.'&action=clone">'.$langs->trans("ToClone")."</a></div>";
|
||||
}
|
||||
|
||||
// Delete
|
||||
if (empty($object->rappro))
|
||||
{
|
||||
|
||||
@ -490,9 +490,9 @@ if ($result)
|
||||
print $accountstatic->getNomUrl(1);
|
||||
} else {
|
||||
print ' ';
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
}
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
}
|
||||
|
||||
// Bank entry
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user