33require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/core/class/commonpeople.class.php';
47 public $element =
'don';
52 public $table_element =
'don';
57 public $fk_element =
'fk_donation';
62 public $picto =
'donation';
109 public $phone_mobile;
115 public $mode_reglement;
120 public $mode_reglement_code;
135 public $fk_typepayment;
147 public $modepaymentid = 0;
151 const STATUS_DRAFT = 0;
152 const STATUS_VALIDATED = 1;
153 const STATUS_PAID = 2;
154 const STATUS_CANCELED = -1;
166 $this->ismultientitymanaged = 1;
192 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
194 $langs->load(
"donations");
195 $this->labelStatus[-1] = $langs->transnoentitiesnoconv(
"Canceled");
196 $this->labelStatus[0] = $langs->transnoentitiesnoconv(
"DonationStatusPromiseNotValidated");
197 $this->labelStatus[1] = $langs->transnoentitiesnoconv(
"DonationStatusPromiseValidated");
198 $this->labelStatus[2] = $langs->transnoentitiesnoconv(
"DonationStatusPaid");
199 $this->labelStatusShort[-1] = $langs->transnoentitiesnoconv(
"Canceled");
200 $this->labelStatusShort[0] = $langs->transnoentitiesnoconv(
"DonationStatusPromiseNotValidatedShort");
201 $this->labelStatusShort[1] = $langs->transnoentitiesnoconv(
"DonationStatusPromiseValidatedShort");
202 $this->labelStatusShort[2] = $langs->transnoentitiesnoconv(
"DonationStatusPaidShort");
205 $statusType =
'status'.$status;
206 if ($status == self::STATUS_CANCELED) {
207 $statusType =
'status9';
209 if ($status == self::STATUS_PAID) {
210 $statusType =
'status6';
213 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
233 $sql =
"SELECT rowid";
234 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe";
235 $sql .=
" WHERE client IN (1, 3)";
236 $sql .=
" AND entity = ".$conf->entity;
239 $resql = $this->db->query($sql);
241 $num_socs = $this->db->num_rows($resql);
243 while ($i < $num_socs) {
244 $row = $this->db->fetch_row($resql);
245 $socids[$i] = $row[0];
253 $this->
ref =
'SPECIMEN';
255 $this->lastname =
'Doe';
256 $this->firstname =
'John';
257 $this->socid = empty($socids[0]) ? 0 : $socids[0];
259 $this->date_valid = $now;
260 $this->amount = 100.90;
262 $this->societe =
'The Company';
263 $this->address =
'Twist road';
264 $this->zip =
'99999';
265 $this->town =
'Town';
266 $this->note_private =
'Private note';
267 $this->note_public =
'Public note';
268 $this->email =
'email@email.com';
269 $this->phone =
'0123456789';
270 $this->phone_mobile =
'0606060606';
287 $langs->load(
'main');
288 $langs->load(
'companies');
290 $error_string = array();
296 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Company').
'/'.$langs->transnoentitiesnoconv(
'Firstname').
'-'.$langs->transnoentitiesnoconv(
'Lastname'));
302 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Address'));
307 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Zip'));
312 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Town'));
317 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'EMail'));
321 $this->amount = (float) $this->amount;
325 for ($i = 0; $i < $len; $i++) {
326 if (!isset($map[substr((
string) $this->amount, $i, 1)])) {
327 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Amount'));
334 if (!$amount_invalid) {
335 if ($this->amount == 0) {
336 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Amount'));
339 if ($this->amount < $minimum && $minimum > 0) {
340 $error_string[] = $langs->trans(
'MinimumAmount', $minimum);
347 $this->errors = $error_string;
362 public function create($user, $notrigger = 0)
364 global $conf, $langs;
376 $this->amount = (float)
price2num($this->amount);
379 if ($this->amount < 0) {
380 $this->error = $langs->trans(
'FieldCannotBeNegative', $langs->transnoentitiesnoconv(
"Amount"));
386 $sql =
"INSERT INTO ".MAIN_DB_PREFIX.
"don (";
390 $sql .=
", fk_payment";
392 $sql .=
", firstname";
393 $sql .=
", lastname";
398 $sql .=
", fk_country";
400 $sql .=
", fk_projet";
401 $sql .=
", note_private";
402 $sql .=
", note_public";
403 $sql .=
", fk_user_author";
404 $sql .=
", fk_user_valid";
408 $sql .=
", phone_mobile";
409 $sql .=
") VALUES (";
410 $sql .=
"'".$this->db->idate($this->date ? $this->date : $now).
"'";
411 $sql .=
", ".((int) $conf->entity);
412 $sql .=
", ".((float) $this->amount);
413 $sql .=
", ".($this->modepaymentid ? $this->modepaymentid :
"null");
414 $sql .=
", ".($this->socid > 0 ? $this->socid :
"null");
415 $sql .=
", '".$this->db->escape($this->firstname).
"'";
416 $sql .=
", '".$this->db->escape($this->lastname).
"'";
417 $sql .=
", '".$this->db->escape($this->societe).
"'";
418 $sql .=
", '".$this->db->escape($this->address).
"'";
419 $sql .=
", '".$this->db->escape($this->zip).
"'";
420 $sql .=
", '".$this->db->escape($this->town).
"'";
421 $sql .=
", ".(int) ($this->country_id > 0 ? $this->country_id : 0);
422 $sql .=
", ".(int) $this->
public;
423 $sql .=
", ".($this->fk_project > 0 ? (int) $this->fk_project :
"null");
424 $sql .=
", ".(!empty($this->note_private) ? (
"'".$this->db->escape($this->note_private).
"'") :
"NULL");
425 $sql .=
", ".(!empty($this->note_public) ? (
"'".$this->db->escape($this->note_public).
"'") :
"NULL");
426 $sql .=
", ".((int) $user->id);
428 $sql .=
", '".$this->db->idate($this->date).
"'";
429 $sql .=
", '".(!empty($this->email) ? $this->db->escape(trim($this->email)) :
"").
"'";
430 $sql .=
", '".(!empty($this->phone) ? $this->db->escape(trim($this->phone)) :
"").
"'";
431 $sql .=
", '".(!empty($this->phone_mobile) ? $this->db->escape(trim($this->phone_mobile)) :
"").
"'";
434 $resql = $this->db->query($sql);
436 $this->
id = $this->db->last_insert_id(MAIN_DB_PREFIX.
"don");
448 $this->error = $this->db->lasterror();
469 $this->db->rollback();
481 public function update($user, $notrigger = 0)
493 $this->amount = (float)
price2num($this->amount);
496 if ($this->amount < 0) {
497 $this->error = $langs->trans(
'FieldCannotBeNegative', $langs->transnoentitiesnoconv(
"Amount"));
503 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"don SET";
504 $sql .=
" amount = ".((float) $this->amount);
505 $sql .=
", fk_payment = ".($this->modepaymentid ? $this->modepaymentid :
"null");
506 $sql .=
", firstname = '".$this->db->escape($this->firstname).
"'";
507 $sql .=
", lastname='".$this->db->escape($this->lastname).
"'";
508 $sql .=
", societe='".$this->db->escape($this->societe).
"'";
509 $sql .=
", address='".$this->db->escape($this->address).
"'";
510 $sql .=
", zip='".$this->db->escape($this->zip).
"'";
511 $sql .=
", town='".$this->db->escape($this->town).
"'";
512 $sql .=
", fk_country = ".($this->country_id > 0 ? ((int) $this->country_id) :
'0');
513 $sql .=
", public=".((int) $this->
public);
514 $sql .=
", fk_projet=".($this->fk_project > 0 ? $this->fk_project :
'null');
515 $sql .=
", note_private=".(!empty($this->note_private) ? (
"'".$this->db->escape($this->note_private).
"'") :
"NULL");
516 $sql .=
", note_public=".(!empty($this->note_public) ? (
"'".$this->db->escape($this->note_public).
"'") :
"NULL");
517 $sql .=
", datedon='".$this->db->idate($this->date).
"'";
518 $sql .=
", date_valid=".($this->date_valid ?
"'".$this->db->idate($this->date).
"'" :
"null");
519 $sql .=
", email='".$this->db->escape(trim($this->email)).
"'";
520 $sql .=
", phone='".$this->db->escape(trim($this->phone)).
"'";
521 $sql .=
", phone_mobile='".$this->db->escape(trim($this->phone_mobile)).
"'";
522 $sql .=
", fk_statut=".((int) $this->
statut);
523 $sql .=
" WHERE rowid = ".((int) $this->
id);
525 dol_syslog(get_class($this).
"::Update", LOG_DEBUG);
526 $resql = $this->db->query($sql);
549 $this->db->rollback();
553 $this->error = $this->db->lasterror();
554 $this->errors[] = $this->error;
555 $this->db->rollback();
556 dol_syslog(get_class($this).
"::Update error -2 ".$this->error, LOG_ERR);
569 public function delete($user, $notrigger = 0)
571 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
577 if (!$error && !$notrigger) {
589 $sql =
"DELETE FROM ".MAIN_DB_PREFIX.
"don_extrafields";
590 $sql .=
" WHERE fk_object = ".((int) $this->
id);
592 $resql = $this->db->query($sql);
594 $this->errors[] = $this->db->lasterror();
600 $sql =
"DELETE FROM ".MAIN_DB_PREFIX.
"don";
601 $sql .=
" WHERE rowid=".((int) $this->
id);
603 $resql = $this->db->query($sql);
605 $this->errors[] = $this->db->lasterror();
611 $dir = DOL_DATA_ROOT.
'/'.$this->element.
'/'.$this->ref;
615 $this->errors[] = $this->error;
625 foreach ($this->errors as $errmsg) {
626 dol_syslog(get_class($this).
"::delete ".$errmsg, LOG_ERR);
627 $this->error .= ($this->error ?
', '.$errmsg : $errmsg);
629 dol_syslog(get_class($this).
"::delete ".$this->error, LOG_ERR);
630 $this->db->rollback();
642 public function fetch($id, $ref =
'')
644 $sql =
"SELECT d.rowid, d.datec, d.date_valid, d.tms as datem, d.datedon,";
645 $sql .=
" d.fk_soc as socid, d.firstname, d.lastname, d.societe, d.amount, d.fk_statut as status, d.address, d.zip, d.town, ";
646 $sql .=
" d.fk_country, d.public, d.amount, d.fk_payment, d.paid, d.note_private, d.note_public, d.email, d.phone, ";
647 $sql .=
" d.phone_mobile, d.fk_projet as fk_project, d.model_pdf,";
648 $sql .=
" p.ref as project_ref,";
649 $sql .=
" cp.libelle as payment_label, cp.code as payment_code,";
650 $sql .=
" c.code as country_code, c.label as country";
651 $sql .=
" FROM ".MAIN_DB_PREFIX.
"don as d";
652 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = d.fk_projet";
653 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as cp ON cp.id = d.fk_payment";
654 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as c ON d.fk_country = c.rowid";
655 $sql .=
" WHERE d.entity IN (".getEntity(
'donation').
")";
657 $sql .=
" AND d.rowid=".((int) $id);
658 } elseif (!empty($ref)) {
659 $sql .=
" AND d.ref='".$this->db->escape($ref).
"'";
662 dol_syslog(get_class($this).
"::fetch", LOG_DEBUG);
663 $resql = $this->db->query($sql);
665 if ($this->db->num_rows($resql)) {
666 $obj = $this->db->fetch_object($resql);
668 $this->
id = $obj->rowid;
669 $this->
ref = $obj->rowid;
670 $this->date_creation = $this->db->jdate($obj->datec);
671 $this->datec = $this->db->jdate($obj->datec);
672 $this->date_validation = $this->db->jdate($obj->date_valid);
673 $this->date_valid = $this->db->jdate($obj->date_valid);
674 $this->date_modification = $this->db->jdate($obj->datem);
675 $this->datem = $this->db->jdate($obj->datem);
676 $this->date = $this->db->jdate($obj->datedon);
677 $this->socid = $obj->socid;
678 $this->firstname = $obj->firstname;
679 $this->lastname = $obj->lastname;
680 $this->societe = $obj->societe;
681 $this->
status = $obj->status;
682 $this->
statut = $obj->status;
683 $this->address = $obj->address;
684 $this->zip = $obj->zip;
685 $this->town = $obj->town;
686 $this->country_id = $obj->fk_country;
687 $this->country_code = $obj->country_code;
688 $this->country = $obj->country;
689 $this->email = $obj->email;
690 $this->phone = $obj->phone;
691 $this->phone_mobile = $obj->phone_mobile;
692 $this->project = $obj->project_ref;
693 $this->fk_projet = $obj->fk_project;
694 $this->fk_project = $obj->fk_project;
695 $this->
public = $obj->public;
696 $this->mode_reglement_id = $obj->fk_payment;
697 $this->mode_reglement_code = $obj->payment_code;
698 $this->mode_reglement = $obj->payment_label;
699 $this->paid = $obj->paid;
700 $this->amount = $obj->amount;
701 $this->note_private = $obj->note_private;
702 $this->note_public = $obj->note_public;
703 $this->model_pdf = $obj->model_pdf;
747 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"don SET fk_statut = 1, fk_user_valid = ".((int) $userid).
" WHERE rowid = ".((int) $id).
" AND fk_statut = 0";
749 $resql = $this->db->query($sql);
751 if ($this->db->affected_rows($resql)) {
763 $this->error = $this->db->lasterror();
771 $this->db->rollback();
783 public function setPaid($id, $modepayment = 0)
785 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"don SET fk_statut = 2, paid = 1";
787 $sql .=
", fk_payment = ".((int) $modepayment);
789 $sql .=
" WHERE rowid = ".((int) $id).
" AND fk_statut = 1";
791 $resql = $this->db->query($sql);
793 if ($this->db->affected_rows($resql)) {
816 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"don SET fk_statut = -1 WHERE rowid = ".((int) $id);
818 $resql = $this->db->query($sql);
820 if ($this->db->affected_rows($resql)) {
839 public function reopen($user, $notrigger = 0)
842 if ($this->
statut != self::STATUS_CANCELED) {
846 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'DON_REOPEN');
863 $sql =
"SELECT sum(amount) as total";
864 $sql .=
" FROM ".MAIN_DB_PREFIX.
"don";
865 $sql .=
" WHERE fk_statut = ".((int) $param);
866 $sql .=
" AND entity = ".$conf->entity;
868 $resql = $this->db->query($sql);
870 $obj = $this->db->fetch_object($resql);
871 $result = $obj->total;
886 $sql =
"SELECT count(d.rowid) as nb";
887 $sql .=
" FROM ".MAIN_DB_PREFIX.
"don as d";
888 $sql .=
" WHERE d.fk_statut > 0";
889 $sql .=
" AND d.entity IN (".getEntity(
'donation').
")";
891 $resql = $this->db->query($sql);
893 while ($obj = $this->db->fetch_object($resql)) {
894 $this->nb[
"donations"] = $obj->nb;
896 $this->db->free($resql);
900 $this->error = $this->db->error();
914 public function getNomUrl($withpicto = 0, $notooltip = 0, $moretitle =
'', $save_lastsearch_value = -1)
916 global $conf, $langs, $hookmanager;
918 if (!empty($conf->dol_no_mouse_hover)) {
923 $label =
img_picto(
'', $this->picto).
' <u class="paddingrightonly">'.$langs->trans(
"Donation").
'</u>';
924 if (isset($this->
status)) {
925 $label .=
' '.$this->getLibStatut(5);
927 if (!empty($this->
id)) {
928 $label .=
'<br><b>'.$langs->trans(
'Ref').
':</b> '.$this->id;
929 $label .=
'<br><b>'.$langs->trans(
'Date').
':</b> '.
dol_print_date($this->date,
'day');
932 $label .=
' - '.$moretitle;
935 $url = DOL_URL_ROOT.
'/don/card.php?id='.$this->id;
937 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
938 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
939 $add_save_lastsearch_values = 1;
941 if ($add_save_lastsearch_values) {
942 $url .=
'&save_lastsearch_values=1';
945 $linkstart =
'<a href="'.$url.
'" title="'.
dol_escape_htmltag($label, 1).
'" class="classfortooltip">';
948 $result .= $linkstart;
950 $result .=
img_object(($notooltip ?
'' : $label), $this->picto, ($notooltip ? (($withpicto != 2) ?
'class="paddingright"' :
'') :
'class="'.(($withpicto != 2) ?
'paddingright ' :
'').
'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
952 if ($withpicto != 2) {
953 $result .= $this->ref;
957 $hookmanager->initHooks(array($this->element .
'dao'));
958 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
959 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
961 $result = $hookmanager->resPrint;
963 $result .= $hookmanager->resPrint;
976 $sql =
'SELECT d.rowid, d.datec, d.fk_user_author, d.fk_user_valid,';
977 $sql .=
' d.tms as datem';
978 $sql .=
' FROM '.MAIN_DB_PREFIX.
'don as d';
979 $sql .=
' WHERE d.rowid = '.((int) $id);
981 dol_syslog(get_class($this).
'::info', LOG_DEBUG);
982 $result = $this->db->query($sql);
985 if ($this->db->num_rows($result)) {
986 $obj = $this->db->fetch_object($result);
987 $this->
id = $obj->rowid;
989 $this->user_creation_id = $obj->fk_user_author;
990 $this->user_validation_id = $obj->fk_user_valid;
991 $this->date_creation = $this->db->jdate($obj->datec);
992 $this->date_modification = (!empty($obj->tms) ? $this->db->jdate($obj->tms) :
"");
994 $this->db->free($result);
1011 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0)
1013 global $conf, $langs;
1015 $langs->load(
"bills");
1018 $modele =
'html_cerfafr';
1020 if ($this->model_pdf) {
1021 $modele = $this->model_pdf;
1033 $err = error_reporting();
1035 @set_time_limit(120);
1036 error_reporting($err);
1038 $srctemplatepath =
'';
1041 $tmp = explode(
':', $modele, 2);
1042 if (!empty($tmp[1])) {
1044 $srctemplatepath = $tmp[1];
1051 $dirmodels = array(
'/');
1052 if (is_array($conf->modules_parts[
'models'])) {
1053 $dirmodels = array_merge($dirmodels, $conf->modules_parts[
'models']);
1055 foreach ($dirmodels as $reldir) {
1056 foreach (array(
'html',
'doc',
'pdf') as $prefix) {
1057 $file = $prefix.
"_".preg_replace(
'/^html_/',
'', $modele).
".modules.php";
1060 $file =
dol_buildpath($reldir.
"core/modules/dons/".$file, 0);
1061 if (file_exists($file)) {
1063 $classname = $prefix.
'_'.$modele;
1078 $classname = $modele;
1079 $obj =
new $classname($this->db);
1083 $sav_charset_output = $outputlangs->charset_output;
1084 if ($obj->write_file(
$object, $outputlangs, $srctemplatepath, $hidedetails, $hidedesc, $hideref) > 0) {
1085 $outputlangs->charset_output = $sav_charset_output;
1088 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
1092 $outputlangs->charset_output = $sav_charset_output;
1098 print $langs->trans(
"Error").
" ".$langs->trans(
"ErrorFileDoesNotExists", $file);
1129 if (empty($this->
id)) {
1130 $this->error =
'Missing object id';
1131 $this->errors[] = $this->error;
1132 dol_syslog(__METHOD__.
' : '.$this->error, LOG_ERR);
1136 $sql =
"SELECT SUM(amount) as sum_amount FROM ".MAIN_DB_PREFIX.
"payment_donation WHERE fk_donation = ".((int) $this->
id);
1137 $resql = $this->db->query($sql);
1142 $sum_amount = (float) $this->db->fetch_object($resql)->sum_amount;
1143 return (
float) ($this->amount - $sum_amount);
1156 global $conf, $langs;
1158 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1160 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1161 $return .=
'<div class="info-box info-box-sm">';
1162 $return .=
'<span class="info-box-icon bg-infobox-action">';
1164 $return .=
'</span>';
1165 $return .=
'<div class="info-box-content">';
1166 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl(1) : $this->ref).
'</span>';
1167 if ($selected >= 0) {
1168 $return .=
'<input id="cb'.$this->id.
'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1170 if (property_exists($this,
'date')) {
1171 $return .=
' | <span class="info-box-label">'.dol_print_date($this->date,
'day',
'tzuserrel').
'</span>';
1173 if (property_exists($this,
'societe') && !empty($this->societe)) {
1174 $return .=
'<br><span class="opacitymedium">'.$langs->trans(
"Company").
'</span> : <span class="info-box-label">'.$this->societe.
'</span>';
1176 if (property_exists($this,
'amount')) {
1177 $return .=
'<br><span class="info-box-label amount">'.price($this->amount, 1, $langs, 1, -1, -1, $conf->currency).
'</span>';
1179 if (method_exists($this,
'LibStatut')) {
1180 $return .=
'<br><div class="info-box-status">'.$this->getLibStatut(3).
'</div>';
1182 $return .=
'</div>';
1183 $return .=
'</div>';
1184 $return .=
'</div>';
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
print $langs trans("AuditedSecurityEvents").'</strong >< span class="opacitymedium"></span >< br > status
Or an array listing all the potential status of the object: array: int of the status => translated la...
Parent class of all other business classes (invoices, contracts, proposals, orders,...
fetch_optionals($rowid=null, $optionsArray=null)
Function to get extra fields of an object into $this->array_options This method is in most cases call...
deleteEcmFiles($mode=0)
Delete related files of object in database.
setStatusCommon($user, $status, $notrigger=0, $triggercode='')
Set to a status.
static commonReplaceThirdparty(DoliDB $dbs, $origin_id, $dest_id, array $tables, $ignoreerrors=0)
Function used to replace a thirdparty id with another one.
insertExtraFields($trigger='', $userused=null)
Add/Update all extra fields values for the current object.
call_trigger($triggerName, $user)
Call trigger based on this instance.
Class to manage Dolibarr database access.
Class to manage donations.
getLibStatut($mode=0)
Returns the donation status label (draft, valid, abandoned, paid)
__construct($db)
Constructor.
initAsSpecimen()
Initialise an instance with random values.
create($user, $notrigger=0)
Create donation record into database.
getRemainToPay()
Function to get remaining amount to pay for a donation.
check($minimum=0)
Check params and init ->errors array.
setValid($user, $notrigger=0)
Validate a intervention.
valid_promesse($id, $userid, $notrigger=0)
Validate a promise of donation.
getKanbanView($option='', $arraydata=null)
Return clicable link of object (with eventually picto)
LibStatut($status, $mode=0)
Return the label of a given status.
static replaceThirdparty(DoliDB $dbs, $origin_id, $dest_id)
Function used to replace a thirdparty id with another one.
generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0)
Create a document onto disk according to template module.
fetch($id, $ref='')
Load donation from database.
reopen($user, $notrigger=0)
Set cancel status.
sum_donations($param)
Sum of donations.
info($id)
Information on record.
update($user, $notrigger=0)
Update a donation record.
set_cancel($id)
Set donation to status cancelled.
loadStateBoard()
Load the indicators this->nb for the state board.
setPaid($id, $modepayment=0)
Classify the donation as paid, the donation was received.
getNomUrl($withpicto=0, $notooltip=0, $moretitle='', $save_lastsearch_value=-1)
Return clicable name (with picto eventually)
trait CommonPeople
Support class for thirdparties, contacts, members, users or resources.
dol_delete_dir_recursive($dir, $count=0, $nophperrors=0, $onlysub=0, &$countdeleted=0, $indexdatabase=1, $nolog=0)
Remove a directory $dir and its subdirectories (or only files and subdirectories)
dol_is_dir($folder)
Test if filename is a directory.
dol_delete_preview($object)
Delete all preview files linked to object instance.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
dol_now($mode='auto')
Return date for now.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
publicphonebutton2 phonegreen basiclayout basiclayout TotalHT VATCode TotalVAT TotalLT1 TotalLT2 TotalTTC TotalHT clearboth nowraponall TAKEPOS_SHOW_SUBPRICE right right right takeposterminal SELECT e e e e e statut