PageRenderTime 45ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/htdocs/compta/dons/fiche.php

https://bitbucket.org/speedealing/speedealing
PHP | 588 lines | 394 code | 116 blank | 78 comment | 80 complexity | b2f3641d3517fae552578013e6456251 MD5 | raw file
Possible License(s): LGPL-3.0, LGPL-2.1, GPL-3.0, MIT
  1. <?php
  2. /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  3. * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
  4. * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. /**
  20. * \file htdocs/compta/dons/fiche.php
  21. * \ingroup don
  22. * \brief Page of donation card
  23. */
  24. require '../../main.inc.php';
  25. require_once DOL_DOCUMENT_ROOT.'/core/modules/dons/modules_don.php';
  26. require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
  27. require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
  28. require_once DOL_DOCUMENT_ROOT.'/compta/dons/class/don.class.php';
  29. require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
  30. if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
  31. $langs->load("companies");
  32. $langs->load("donations");
  33. $langs->load("bills");
  34. $id=GETPOST('rowid')?GETPOST('rowid','int'):GETPOST('id','int');
  35. $action=GETPOST('action','alpha');
  36. $cancel=GETPOST('cancel');
  37. $amount=GETPOST('amount');
  38. $mesg="";
  39. $mesgs=array();
  40. $don = new Don($db);
  41. $donation_date=dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
  42. // Security check
  43. $result = restrictedArea($user, 'don', $id);
  44. // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
  45. $hookmanager->initHooks(array('doncard'));
  46. /*
  47. * Actions
  48. */
  49. if ($action == 'update')
  50. {
  51. if (! empty($cancel))
  52. {
  53. header("Location: ".$_SERVER['PHP_SELF']."?id=".$id);
  54. exit;
  55. }
  56. $error=0;
  57. if (empty($donation_date))
  58. {
  59. $mesgs[]=$langs->trans("ErrorFieldRequired",$langs->trans("Date"));
  60. $action = "create";
  61. $error++;
  62. }
  63. if (empty($amount))
  64. {
  65. $mesgs[]=$langs->trans("ErrorFieldRequired",$langs->trans("Amount"));
  66. $action = "create";
  67. $error++;
  68. }
  69. if (! $error)
  70. {
  71. $don->fetch($id);
  72. $don->prenom = $_POST["prenom"];
  73. $don->nom = $_POST["nom"];
  74. $don->societe = $_POST["societe"];
  75. $don->adresse = $_POST["adresse"];
  76. $don->amount = price2num($_POST["amount"]);
  77. $don->cp = $_POST["zipcode"];
  78. $don->ville = $_POST["town"];
  79. $don->zip = $_POST["zipcode"];
  80. $don->town = $_POST["town"];
  81. $don->email = $_POST["email"];
  82. $don->date = $donation_date;
  83. $don->note = $_POST["note"];
  84. $don->pays = $_POST["pays"];
  85. $don->public = $_POST["public"];
  86. $don->fk_project = $_POST["projectid"];
  87. $don->note = $_POST["comment"];
  88. $don->modepaiementid = $_POST["modepaiement"];
  89. if ($don->update($user) > 0)
  90. {
  91. header("Location: ".$_SERVER['PHP_SELF']."?id=".$don->id);
  92. exit;
  93. }
  94. }
  95. }
  96. if ($action == 'add')
  97. {
  98. if (! empty($cancel))
  99. {
  100. header("Location: index.php");
  101. exit;
  102. }
  103. $error=0;
  104. if (empty($donation_date))
  105. {
  106. $mesgs[]=$langs->trans("ErrorFieldRequired",$langs->trans("Date"));
  107. $action = "create";
  108. $error++;
  109. }
  110. if (empty($amount))
  111. {
  112. $mesgs[]=$langs->trans("ErrorFieldRequired",$langs->trans("Amount"));
  113. $action = "create";
  114. $error++;
  115. }
  116. if (! $error)
  117. {
  118. $don->prenom = $_POST["prenom"];
  119. $don->nom = $_POST["nom"];
  120. $don->societe = $_POST["societe"];
  121. $don->adresse = $_POST["adresse"];
  122. $don->amount = price2num($_POST["amount"]);
  123. $don->cp = $_POST["zipcode"];
  124. $don->ville = $_POST["town"];
  125. $don->zip = $_POST["zipcode"];
  126. $don->town = $_POST["town"];
  127. $don->email = $_POST["email"];
  128. $don->date = $donation_date;
  129. $don->note = $_POST["note"];
  130. $don->pays = $_POST["pays"];
  131. $don->public = $_POST["public"];
  132. $don->fk_project = $_POST["projectid"];
  133. $don->note = $_POST["comment"];
  134. $don->modepaiementid = $_POST["modepaiement"];
  135. if ($don->create($user) > 0)
  136. {
  137. header("Location: index.php");
  138. exit;
  139. }
  140. }
  141. }
  142. if ($action == 'delete')
  143. {
  144. $don->delete($id);
  145. header("Location: liste.php");
  146. exit;
  147. }
  148. if ($action == 'commentaire')
  149. {
  150. $don->fetch($id);
  151. $don->update_note($_POST["commentaire"]);
  152. }
  153. if ($action == 'valid_promesse')
  154. {
  155. if ($don->valid_promesse($id, $user->id) >= 0)
  156. {
  157. header("Location: ".$_SERVER['PHP_SELF']."?id=".$id);
  158. exit;
  159. }
  160. else $mesg=$don->error;
  161. }
  162. if ($action == 'set_cancel')
  163. {
  164. if ($don->set_cancel($id) >= 0)
  165. {
  166. header("Location: ".$_SERVER['PHP_SELF']."?id=".$id);
  167. exit;
  168. }
  169. else $mesg=$don->error;
  170. }
  171. if ($action == 'set_paid')
  172. {
  173. if ($don->set_paye($id, $modepaiement) >= 0)
  174. {
  175. header("Location: ".$_SERVER['PHP_SELF']."?id=".$id);
  176. exit;
  177. }
  178. else $mesg=$don->error;
  179. }
  180. if ($action == 'set_encaisse')
  181. {
  182. if ($don->set_encaisse($id) >= 0)
  183. {
  184. header("Location: ".$_SERVER['PHP_SELF']."?id=".$id);
  185. exit;
  186. }
  187. else $mesg=$don->error;
  188. }
  189. /*
  190. * Build doc
  191. */
  192. if ($action == 'builddoc')
  193. {
  194. $donation = new Don($db);
  195. $donation->fetch($id);
  196. if ($_REQUEST['model'])
  197. {
  198. $donation->setDocModel($user, $_REQUEST['model']);
  199. }
  200. // Define output language
  201. $outputlangs = $langs;
  202. $newlang='';
  203. if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id'];
  204. if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$donation->client->default_lang;
  205. if (! empty($newlang))
  206. {
  207. $outputlangs = new Translate();
  208. $outputlangs->setDefaultLang($newlang);
  209. }
  210. $result=don_create($db, $donation->id, '', $donation->modelpdf, $outputlangs);
  211. if ($result <= 0)
  212. {
  213. dol_print_error($db,$result);
  214. exit;
  215. }
  216. else
  217. {
  218. header('Location: '.$_SERVER["PHP_SELF"].'?id='.$donation->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc'));
  219. exit;
  220. }
  221. }
  222. /*
  223. * View
  224. */
  225. llxHeader('',$langs->trans("Donations"),'EN:Module_Donations|FR:Module_Dons|ES:M&oacute;dulo_Donaciones');
  226. $form=new Form($db);
  227. $formfile = new FormFile($db);
  228. $formcompany = new FormCompany($db);
  229. /* ************************************************************************** */
  230. /* */
  231. /* Creation */
  232. /* */
  233. /* ************************************************************************** */
  234. if ($action == 'create')
  235. {
  236. print_fiche_titre($langs->trans("AddDonation"));
  237. dol_htmloutput_errors($mesg,$mesgs);
  238. print '<form name="add" action="fiche.php" method="post">';
  239. print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
  240. print '<table class="border" width="100%">';
  241. print '<input type="hidden" name="action" value="add">';
  242. $nbrows=11;
  243. if (! empty($conf->projet->enabled)) $nbrows++;
  244. // Date
  245. print '<tr><td class="fieldrequired">'.$langs->trans("Date").'</td><td>';
  246. $form->select_date($donation_date?$donation_date:-1,'','','','',"add",1,1);
  247. print '</td>';
  248. print '<td rowspan="'.$nbrows.'" valign="top">'.$langs->trans("Comments").' :<br>';
  249. print "<textarea name=\"comment\" wrap=\"soft\" cols=\"40\" rows=\"15\">".$_POST["comment"]."</textarea></td>";
  250. print "</tr>";
  251. // Amount
  252. print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" value="'.$_POST["amount"].'" size="10"> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
  253. print '<tr><td class="fieldrequired">'.$langs->trans("PublicDonation")."</td><td>";
  254. print $form->selectyesno("public",isset($_POST["public"])?$_POST["public"]:1,1);
  255. print "</td></tr>\n";
  256. print "<tr>".'<td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" value="'.$_POST["societe"].'" size="40"></td></tr>';
  257. print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td><input type="text" name="prenom" value="'.$_POST["prenom"].'" size="40"></td></tr>';
  258. print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td><input type="text" name="nom" value="'.$_POST["nom"].'" size="40"></td></tr>';
  259. print "<tr>".'<td>'.$langs->trans("Address").'</td><td>';
  260. print '<textarea name="adresse" wrap="soft" cols="40" rows="3">'.$_POST["adresse"].'</textarea></td></tr>';
  261. // Zip / Town
  262. print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>';
  263. print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$don->zip),'zipcode',array('town','selectcountry_id','departement_id'),6);
  264. print ' ';
  265. print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$don->town),'town',array('zipcode','selectcountry_id','departement_id'));
  266. print '</tr>';
  267. print "<tr>".'<td>'.$langs->trans("Country").'</td><td><input type="text" name="pays" value="'.$_POST["pays"].'" size="40"></td></tr>';
  268. print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" value="'.$_POST["email"].'" size="40"></td></tr>';
  269. print "<tr><td>".$langs->trans("PaymentMode")."</td><td>\n";
  270. $form->select_types_paiements('', 'modepaiement', 'CRDT', 0, 1);
  271. print "</td></tr>\n";
  272. if (! empty($conf->projet->enabled))
  273. {
  274. // Si module projet actif
  275. print "<tr><td>".$langs->trans("Project")."</td><td>";
  276. select_projects('',$_POST["projectid"],"projectid");
  277. print "</td></tr>\n";
  278. }
  279. // Other attributes
  280. $parameters=array('colspan' => ' colspan="1"');
  281. $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$don,$action); // Note that $action and $object may have been modified by hook
  282. print "</table>\n";
  283. print '<br><center><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'"> &nbsp; &nbsp; <input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></center>';
  284. print "</form>\n";
  285. }
  286. /* ************************************************************ */
  287. /* */
  288. /* Fiche don en mode edition */
  289. /* */
  290. /* ************************************************************ */
  291. if (! empty($id) && $action == 'edit')
  292. {
  293. $don->fetch($id);
  294. $h=0;
  295. $head[$h][0] = $_SERVER['PHP_SELF']."?id=".$don->id;
  296. $head[$h][1] = $langs->trans("Card");
  297. $hselected=$h;
  298. $h++;
  299. dol_fiche_head($head, $hselected, $langs->trans("Donation"), 0, 'generic');
  300. print '<form name="update" action="fiche.php" method="post">';
  301. print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
  302. print '<table class="border" width="100%">';
  303. print '<input type="hidden" name="action" value="update">';
  304. print '<input type="hidden" name="rowid" value="'.$don->id.'">';
  305. // Ref
  306. print "<tr>".'<td>'.$langs->trans("Ref").'</td><td colspan="2">';
  307. print $don->getNomUrl();
  308. print '</td>';
  309. print '</tr>';
  310. $nbrows=12;
  311. if (! empty($conf->projet->enabled)) $nbrows++;
  312. // Date
  313. print "<tr>".'<td width="25%" class="fieldrequired">'.$langs->trans("Date").'</td><td>';
  314. $form->select_date($don->date,'','','','',"update");
  315. print '</td>';
  316. print '<td rowspan="'.$nbrows.'" valign="top">'.$langs->trans("Comments").' :<br>';
  317. print "<textarea name=\"comment\" wrap=\"soft\" cols=\"40\" rows=\"15\">".$don->note."</textarea></td>";
  318. print "</tr>";
  319. // Amount
  320. print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" size="10" value="'.$don->amount.'"> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
  321. print '<tr><td class="fieldrequired">'.$langs->trans("PublicDonation")."</td><td>";
  322. print $form->selectyesno("public",1,1);
  323. print "</td>";
  324. print "</tr>\n";
  325. $langs->load("companies");
  326. print "<tr>".'<td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" size="40" value="'.$don->societe.'"></td></tr>';
  327. print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td><input type="text" name="prenom" size="40" value="'.$don->prenom.'"></td></tr>';
  328. print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td><input type="text" name="nom" size="40" value="'.$don->nom.'"></td></tr>';
  329. print "<tr>".'<td>'.$langs->trans("Address").'</td><td>';
  330. print '<textarea name="adresse" wrap="soft" cols="40" rows="'.ROWS_3.'">'.$don->adresse.'</textarea></td></tr>';
  331. // Zip / Town
  332. print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>';
  333. print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$don->zip),'zipcode',array('town','selectcountry_id','departement_id'),6);
  334. print ' ';
  335. print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$don->town),'town',array('zipcode','selectcountry_id','departement_id'));
  336. print '</tr>';
  337. print "<tr>".'<td>'.$langs->trans("Country").'</td><td><input type="text" name="pays" size="40" value="'.$don->pays.'"></td></tr>';
  338. print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" size="40" value="'.$don->email.'"></td></tr>';
  339. print "<tr><td>".$langs->trans("PaymentMode")."</td><td>\n";
  340. $form->select_types_paiements('', 'modepaiement', 'CRDT', 0, 1);
  341. print "</td></tr>\n";
  342. print "<tr>".'<td>'.$langs->trans("Status").'</td><td>'.$don->getLibStatut(4).'</td></tr>';
  343. // Project
  344. if (! empty($conf->projet->enabled))
  345. {
  346. $langs->load('projects');
  347. print '<tr><td>'.$langs->trans('Project').'</td><td>';
  348. select_projects(-1, (isset($_POST["projectid"])?$_POST["projectid"]:$don->fk_project), 'projectid');
  349. print '</td></tr>';
  350. }
  351. // Other attributes
  352. $parameters=array('colspan' => ' colspan="1"');
  353. $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$don,$action); // Note that $action and $object may have been modified by hook
  354. print "</table>\n";
  355. print '<br><center><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'"> &nbsp; &nbsp; <input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></center>';
  356. print "</form>\n";
  357. print "</div>\n";
  358. }
  359. /* ************************************************************ */
  360. /* */
  361. /* Fiche don en mode visu */
  362. /* */
  363. /* ************************************************************ */
  364. if (! empty($id) && $action != 'edit')
  365. {
  366. $result=$don->fetch($id);
  367. $h=0;
  368. $head[$h][0] = $_SERVER['PHP_SELF']."?id=".$don->id;
  369. $head[$h][1] = $langs->trans("Card");
  370. $hselected=$h;
  371. $h++;
  372. dol_fiche_head($head, $hselected, $langs->trans("Donation"), 0, 'generic');
  373. print "<form action=\"fiche.php\" method=\"post\">";
  374. print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
  375. print '<table class="border" width="100%">';
  376. $linkback = '<a href="'.DOL_URL_ROOT.'/compta/dons/liste.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
  377. $nbrows=12;
  378. if (! empty($conf->projet->enabled)) $nbrows++;
  379. // Ref
  380. print "<tr>".'<td>'.$langs->trans("Ref").'</td><td colspan="2">';
  381. print $form->showrefnav($don, 'rowid', $linkback, 1, 'rowid', 'ref', '');
  382. print '</td>';
  383. print '</tr>';
  384. // Date
  385. print '<tr><td width="25%">'.$langs->trans("Date").'</td><td>';
  386. print dol_print_date($don->date,"day");
  387. print "</td>";
  388. print '<td rowspan="'.$nbrows.'" valign="top" width="50%">'.$langs->trans("Comments").' :<br>';
  389. print nl2br($don->note).'</td></tr>';
  390. print "<tr>".'<td>'.$langs->trans("Amount").'</td><td>'.price($don->amount).' '.$langs->trans("Currency".$conf->currency).'</td></tr>';
  391. print "<tr><td>".$langs->trans("PublicDonation")."</td><td>";
  392. print yn($don->public);
  393. print "</td></tr>\n";
  394. print "<tr>".'<td>'.$langs->trans("Company").'</td><td>'.$don->societe.'</td></tr>';
  395. print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td>'.$don->prenom.'</td></tr>';
  396. print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td>'.$don->nom.'</td></tr>';
  397. print "<tr>".'<td>'.$langs->trans("Address").'</td><td>'.dol_nl2br($don->adresse).'</td></tr>';
  398. // Zip / Town
  399. print "<tr>".'<td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>'.$don->cp.($don->cp && $don->ville?' / ':'').$don->ville.'</td></tr>';
  400. // Country
  401. print "<tr>".'<td>'.$langs->trans("Country").'</td><td>'.$don->pays.'</td></tr>';
  402. // EMail
  403. print "<tr>".'<td>'.$langs->trans("EMail").'</td><td>'.dol_print_email($don->email).'</td></tr>';
  404. // Payment mode
  405. print "<tr><td>".$langs->trans("PaymentMode")."</td><td>";
  406. print $don->modepaiement;
  407. print "</td></tr>\n";
  408. print "<tr>".'<td>'.$langs->trans("Status").'</td><td>'.$don->getLibStatut(4).'</td></tr>';
  409. // Project
  410. if (! empty($conf->projet->enabled))
  411. {
  412. print "<tr>".'<td>'.$langs->trans("Project").'</td><td>'.$don->projet.'</td></tr>';
  413. }
  414. // Other attributes
  415. $parameters=array('colspan' => ' colspan="1"');
  416. $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$don,$action); // Note that $action and $object may have been modified by hook
  417. print "</table>\n";
  418. print "</form>\n";
  419. print "</div>";
  420. // TODO Gerer action emettre paiement
  421. $resteapayer = 0;
  422. /**
  423. * Barre d'actions
  424. */
  425. print '<div class="tabsAction">';
  426. print '<a class="butAction" href="fiche.php?action=edit&rowid='.$don->id.'">'.$langs->trans('Modify').'</a>';
  427. if ($don->statut == 0)
  428. {
  429. print '<a class="butAction" href="fiche.php?rowid='.$don->id.'&action=valid_promesse">'.$langs->trans("ValidPromess").'</a>';
  430. }
  431. if (($don->statut == 0 || $don->statut == 1) && $resteapayer == 0 && $don->paye == 0)
  432. {
  433. print "<a class=\"butAction\" href=\"fiche.php?rowid=$don->id&action=set_cancel\">".$langs->trans("ClassifyCanceled")."</a>";
  434. }
  435. // TODO Gerer action emettre paiement
  436. if ($don->statut == 1 && $resteapayer > 0)
  437. {
  438. print "<a class=\"butAction\" href=\"paiement.php?facid=$facid&action=create\">".$langs->trans("DoPayment")."</a>";
  439. }
  440. if ($don->statut == 1 && $resteapayer == 0 && $don->paye == 0)
  441. {
  442. print "<a class=\"butAction\" href=\"fiche.php?rowid=$don->id&action=set_paid\">".$langs->trans("ClassifyPaid")."</a>";
  443. }
  444. if ($user->rights->don->supprimer)
  445. {
  446. print "<a class=\"butActionDelete\" href=\"fiche.php?rowid=$don->id&action=delete\">".$langs->trans("Delete")."</a>";
  447. }
  448. else
  449. {
  450. print "<a class=\"butActionRefused\" href=\"#\">".$langs->trans("Delete")."</a>";
  451. }
  452. print "</div>";
  453. print '<table width="100%"><tr><td width="50%" valign="top">';
  454. /*
  455. * Documents generes
  456. */
  457. $filename=dol_sanitizeFileName($don->id);
  458. $filedir=$conf->don->dir_output . '/' . get_exdir($filename,2);
  459. $urlsource=$_SERVER['PHP_SELF'].'?rowid='.$don->id;
  460. // $genallowed=($fac->statut == 1 && ($fac->paye == 0 || $user->admin) && $user->rights->facture->creer);
  461. // $delallowed=$user->rights->facture->supprimer;
  462. $genallowed=1;
  463. $delallowed=0;
  464. $var=true;
  465. print '<br>';
  466. $formfile->show_documents('donation',$filename,$filedir,$urlsource,$genallowed,$delallowed);
  467. print '</td><td>&nbsp;</td>';
  468. print '</tr></table>';
  469. }
  470. llxFooter();
  471. $db->close();
  472. ?>