diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php
index 6495811ab9d..ed1e0502020 100644
--- a/htdocs/public/payment/newpayment.php
+++ b/htdocs/public/payment/newpayment.php
@@ -1423,7 +1423,150 @@ if ($source == 'membersubscription')
print ''."\n";
}
+// Payment on donation
+if ($source == 'donation')
+{
+ $found=true;
+ $langs->load("don");
+ require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
+
+ $don=new Don($db);
+ $result=$don->fetch($ref);
+ if ($result <= 0)
+ {
+ $mesg=$don->error;
+ $error++;
+ }
+ else
+ {
+ $don->fetch_thirdparty();
+ $object = $don;
+ }
+
+ if ($action != 'dopayment') // Do not change amount if we just click on first dopayment
+ {
+ $amount=$subscription->total_ttc;
+ if (GETPOST("amount",'int')) $amount=GETPOST("amount",'int');
+ $amount=price2num($amount);
+ }
+
+ $fulltag='DON='.$don->ref.'.DAT='.dol_print_date(dol_now(),'%Y%m%d%H%M');
+ if (! empty($TAG)) { $tag=$TAG; $fulltag.='.TAG='.$TAG; }
+ $fulltag=dol_string_unaccent($fulltag);
+
+ // Creditor
+
+ print '
| '.$langs->trans("Creditor");
+ print ' | '.$creditor.'';
+ print '';
+ print ' |
'."\n";
+
+ // Debitor
+
+ print '| '.$langs->trans("Member");
+ print ' | ';
+ if ($don->morphy == 'mor' && ! empty($don->societe)) print $don->societe;
+ else print $don->getFullName($langs);
+ print '';
+
+ // Object
+
+ $text=''.$langs->trans("PaymentDonation").'';
+ if (GETPOST('desc','alpha')) $text=''.$langs->trans(GETPOST('desc','alpha')).'';
+ print ' |
| '.$langs->trans("Designation");
+ print ' | '.$text;
+ print '';
+ print '';
+ print ' |
'."\n";
+
+ // Amount
+
+ print '| '.$langs->trans("Amount");
+ if (empty($amount))
+ {
+ if (empty($conf->global->MEMBER_NEWFORM_AMOUNT)) print ' ('.$langs->trans("ToComplete");
+ if (! empty($conf->global->MEMBER_EXT_URL_SUBSCRIPTION_INFO)) print ' - '.$langs->trans("SeeHere").'';
+ if (empty($conf->global->MEMBER_NEWFORM_AMOUNT)) print ')';
+ }
+ print ' | ';
+ $valtoshow='';
+ if (empty($amount) || ! is_numeric($amount))
+ {
+ $valtoshow=price2num(GETPOST("newamount",'alpha'),'MT');
+ // force default subscription amount to value defined into constant...
+ if (empty($valtoshow))
+ {
+ if (! empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) {
+ if (! empty($conf->global->MEMBER_NEWFORM_AMOUNT)) {
+ $valtoshow = $conf->global->MEMBER_NEWFORM_AMOUNT;
+ }
+ }
+ else {
+ if (! empty($conf->global->MEMBER_NEWFORM_AMOUNT)) {
+ $amount = $conf->global->MEMBER_NEWFORM_AMOUNT;
+ }
+ }
+ }
+ }
+ if (empty($amount) || ! is_numeric($amount))
+ {
+ //$valtoshow=price2num(GETPOST("newamount",'alpha'),'MT');
+ if (! empty($conf->global->MEMBER_MIN_AMOUNT) && $valtoshow) $valtoshow=max($conf->global->MEMBER_MIN_AMOUNT,$valtoshow);
+ print '';
+ print '';
+ }
+ else {
+ $valtoshow=$amount;
+ if (! empty($conf->global->MEMBER_MIN_AMOUNT) && $valtoshow) $valtoshow=max($conf->global->MEMBER_MIN_AMOUNT,$valtoshow);
+ print ''.price($valtoshow).'';
+ print '';
+ print '';
+ }
+ // Currency
+ print ' '.$langs->trans("Currency".$currency).'';
+ print '';
+ print ' |
'."\n";
+
+ // Tag
+
+ print '| '.$langs->trans("PaymentCode");
+ print ' | '.$fulltag.'';
+ print '';
+ print '';
+ print ' |
'."\n";
+
+ // Shipping address
+ $shipToName=$don->getFullName($langs);
+ $shipToStreet=$don->address;
+ $shipToCity=$don->town;
+ $shipToState=$don->state_code;
+ $shipToCountryCode=$don->country_code;
+ $shipToZip=$don->zip;
+ $shipToStreet2='';
+ $phoneNum=$don->phone;
+ if ($shipToName && $shipToStreet && $shipToCity && $shipToCountryCode && $shipToZip)
+ {
+ print '';
+ print ''."\n";
+ print ''."\n";
+ print ''."\n";
+ print ''."\n";
+ print ''."\n";
+ print ''."\n";
+ print ''."\n";
+ print ''."\n";
+ }
+ else
+ {
+ print ''."\n";
+ }
+ if (is_object($don->thirdparty)) print ''."\n";
+ print ''."\n";
+ $labeldesc = $langs->trans("PaymentSubscription");
+ if (GETPOST('desc','alpha')) $labeldesc=GETPOST('desc','alpha');
+ print ''."\n";
+}
if (! $found && ! $mesg) $mesg=$langs->trans("ErrorBadParameters");