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';
128 public $phone_mobile;
133 public $mode_reglement;
138 public $mode_reglement_code;
153 public $fk_typepayment;
164 public $modepaymentid = 0;
168 const STATUS_DRAFT = 0;
169 const STATUS_VALIDATED = 1;
170 const STATUS_PAID = 2;
171 const STATUS_CANCELED = -1;
183 $this->ismultientitymanaged = 1;
209 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
211 $langs->load(
"donations");
212 $this->labelStatus[-1] = $langs->transnoentitiesnoconv(
"Canceled");
213 $this->labelStatus[0] = $langs->transnoentitiesnoconv(
"DonationStatusPromiseNotValidated");
214 $this->labelStatus[1] = $langs->transnoentitiesnoconv(
"DonationStatusPromiseValidated");
215 $this->labelStatus[2] = $langs->transnoentitiesnoconv(
"DonationStatusPaid");
216 $this->labelStatusShort[-1] = $langs->transnoentitiesnoconv(
"Canceled");
217 $this->labelStatusShort[0] = $langs->transnoentitiesnoconv(
"DonationStatusPromiseNotValidatedShort");
218 $this->labelStatusShort[1] = $langs->transnoentitiesnoconv(
"DonationStatusPromiseValidatedShort");
219 $this->labelStatusShort[2] = $langs->transnoentitiesnoconv(
"DonationStatusPaidShort");
222 $statusType =
'status'.$status;
223 if ($status == self::STATUS_CANCELED) {
224 $statusType =
'status9';
226 if ($status == self::STATUS_PAID) {
227 $statusType =
'status6';
230 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
250 $sql =
"SELECT rowid";
251 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe";
252 $sql .=
" WHERE client IN (1, 3)";
253 $sql .=
" AND entity = ".$conf->entity;
256 $resql = $this->db->query($sql);
258 $num_socs = $this->db->num_rows($resql);
260 while ($i < $num_socs) {
261 $row = $this->db->fetch_row($resql);
262 $socids[$i] = $row[0];
270 $this->
ref =
'SPECIMEN';
272 $this->lastname =
'Doe';
273 $this->firstname =
'John';
274 $this->socid = empty($socids[0]) ? 0 : $socids[0];
276 $this->date_valid = $now;
277 $this->amount = 100.90;
279 $this->societe =
'The Company';
280 $this->address =
'Twist road';
281 $this->zip =
'99999';
282 $this->town =
'Town';
283 $this->note_private =
'Private note';
284 $this->note_public =
'Public note';
285 $this->email =
'email@email.com';
286 $this->phone =
'0123456789';
287 $this->phone_mobile =
'0606060606';
304 $langs->load(
'main');
305 $langs->load(
'companies');
307 $error_string = array();
313 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Company').
'/'.$langs->transnoentitiesnoconv(
'Firstname').
'-'.$langs->transnoentitiesnoconv(
'Lastname'));
319 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Address'));
324 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Zip'));
329 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Town'));
334 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'EMail'));
338 $this->amount = (float) $this->amount;
342 for ($i = 0; $i < $len; $i++) {
343 if (!isset($map[substr((
string) $this->amount, $i, 1)])) {
344 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Amount'));
351 if (!$amount_invalid) {
352 if ($this->amount == 0) {
353 $error_string[] = $langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Amount'));
356 if ($this->amount < $minimum && $minimum > 0) {
357 $error_string[] = $langs->trans(
'MinimumAmount', $minimum);
364 $this->errors = $error_string;
379 public function create($user, $notrigger = 0)
381 global $conf, $langs;
393 $this->amount = (float)
price2num($this->amount);
396 if ($this->amount < 0) {
397 $this->error = $langs->trans(
'FieldCannotBeNegative', $langs->transnoentitiesnoconv(
"Amount"));
403 $sql =
"INSERT INTO ".MAIN_DB_PREFIX.
"don (";
407 $sql .=
", fk_payment";
409 $sql .=
", firstname";
410 $sql .=
", lastname";
415 $sql .=
", fk_country";
417 $sql .=
", fk_projet";
418 $sql .=
", note_private";
419 $sql .=
", note_public";
420 $sql .=
", fk_user_author";
421 $sql .=
", fk_user_valid";
425 $sql .=
", phone_mobile";
426 $sql .=
") VALUES (";
427 $sql .=
"'".$this->db->idate($this->date ? $this->date : $now).
"'";
428 $sql .=
", ".((int) $conf->entity);
429 $sql .=
", ".((float) $this->amount);
430 $sql .=
", ".($this->modepaymentid ? $this->modepaymentid :
"null");
431 $sql .=
", ".($this->socid > 0 ? $this->socid :
"null");
432 $sql .=
", '".$this->db->escape($this->firstname).
"'";
433 $sql .=
", '".$this->db->escape($this->lastname).
"'";
434 $sql .=
", '".$this->db->escape($this->societe).
"'";
435 $sql .=
", '".$this->db->escape($this->address).
"'";
436 $sql .=
", '".$this->db->escape($this->zip).
"'";
437 $sql .=
", '".$this->db->escape($this->town).
"'";
438 $sql .=
", ".(int) ($this->country_id > 0 ? $this->country_id : 0);
439 $sql .=
", ".(int) $this->
public;
440 $sql .=
", ".($this->fk_project > 0 ? (int) $this->fk_project :
"null");
441 $sql .=
", ".(!empty($this->note_private) ? (
"'".$this->db->escape($this->note_private).
"'") :
"NULL");
442 $sql .=
", ".(!empty($this->note_public) ? (
"'".$this->db->escape($this->note_public).
"'") :
"NULL");
443 $sql .=
", ".((int) $user->id);
445 $sql .=
", '".$this->db->idate($this->date).
"'";
446 $sql .=
", '".(!empty($this->email) ? $this->db->escape(trim($this->email)) :
"").
"'";
447 $sql .=
", '".(!empty($this->phone) ? $this->db->escape(trim($this->phone)) :
"").
"'";
448 $sql .=
", '".(!empty($this->phone_mobile) ? $this->db->escape(trim($this->phone_mobile)) :
"").
"'";
451 $resql = $this->db->query($sql);
453 $this->
id = $this->db->last_insert_id(MAIN_DB_PREFIX.
"don");
465 $this->error = $this->db->lasterror();
486 $this->db->rollback();
498 public function update($user, $notrigger = 0)
510 $this->amount = (float)
price2num($this->amount);
513 if ($this->amount < 0) {
514 $this->error = $langs->trans(
'FieldCannotBeNegative', $langs->transnoentitiesnoconv(
"Amount"));
520 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"don SET";
521 $sql .=
" amount = ".((float) $this->amount);
522 $sql .=
", fk_payment = ".($this->modepaymentid ? $this->modepaymentid :
"null");
523 $sql .=
", firstname = '".$this->db->escape($this->firstname).
"'";
524 $sql .=
", lastname='".$this->db->escape($this->lastname).
"'";
525 $sql .=
", societe='".$this->db->escape($this->societe).
"'";
526 $sql .=
", address='".$this->db->escape($this->address).
"'";
527 $sql .=
", zip='".$this->db->escape($this->zip).
"'";
528 $sql .=
", town='".$this->db->escape($this->town).
"'";
529 $sql .=
", fk_country = ".($this->country_id > 0 ? ((int) $this->country_id) :
'0');
530 $sql .=
", public=".((int) $this->
public);
531 $sql .=
", fk_projet=".($this->fk_project > 0 ? $this->fk_project :
'null');
532 $sql .=
", note_private=".(!empty($this->note_private) ? (
"'".$this->db->escape($this->note_private).
"'") :
"NULL");
533 $sql .=
", note_public=".(!empty($this->note_public) ? (
"'".$this->db->escape($this->note_public).
"'") :
"NULL");
534 $sql .=
", datedon='".$this->db->idate($this->date).
"'";
535 $sql .=
", date_valid=".($this->date_valid ?
"'".$this->db->idate($this->date).
"'" :
"null");
536 $sql .=
", email='".$this->db->escape(trim($this->email)).
"'";
537 $sql .=
", phone='".$this->db->escape(trim($this->phone)).
"'";
538 $sql .=
", phone_mobile='".$this->db->escape(trim($this->phone_mobile)).
"'";
539 $sql .=
", fk_statut=".((int) $this->
status);
540 $sql .=
" WHERE rowid = ".((int) $this->
id);
542 dol_syslog(get_class($this).
"::Update", LOG_DEBUG);
543 $resql = $this->db->query($sql);
566 $this->db->rollback();
570 $this->error = $this->db->lasterror();
571 $this->errors[] = $this->error;
572 $this->db->rollback();
573 dol_syslog(get_class($this).
"::Update error -2 ".$this->error, LOG_ERR);
586 public function delete($user, $notrigger = 0)
588 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
594 if (!$error && !$notrigger) {
606 $sql =
"DELETE FROM ".MAIN_DB_PREFIX.
"don_extrafields";
607 $sql .=
" WHERE fk_object = ".((int) $this->
id);
609 $resql = $this->db->query($sql);
611 $this->errors[] = $this->db->lasterror();
617 $sql =
"DELETE FROM ".MAIN_DB_PREFIX.
"don";
618 $sql .=
" WHERE rowid=".((int) $this->
id);
620 $resql = $this->db->query($sql);
622 $this->errors[] = $this->db->lasterror();
628 $dir = DOL_DATA_ROOT.
'/'.$this->element.
'/'.$this->ref;
632 $this->errors[] = $this->error;
642 foreach ($this->errors as $errmsg) {
643 dol_syslog(get_class($this).
"::delete ".$errmsg, LOG_ERR);
644 $this->error .= ($this->error ?
', '.$errmsg : $errmsg);
646 dol_syslog(get_class($this).
"::delete ".$this->error, LOG_ERR);
647 $this->db->rollback();
659 public function fetch($id, $ref =
'')
661 $sql =
"SELECT d.rowid, d.datec, d.date_valid, d.tms as datem, d.datedon,";
662 $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, ";
663 $sql .=
" d.fk_country, d.public, d.amount, d.fk_payment, d.paid, d.note_private, d.note_public, d.email, d.phone, ";
664 $sql .=
" d.phone_mobile, d.fk_projet as fk_project, d.model_pdf,";
665 $sql .=
" p.ref as project_ref,";
666 $sql .=
" cp.libelle as payment_label, cp.code as payment_code,";
667 $sql .=
" c.code as country_code, c.label as country";
668 $sql .=
" FROM ".MAIN_DB_PREFIX.
"don as d";
669 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = d.fk_projet";
670 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as cp ON cp.id = d.fk_payment";
671 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as c ON d.fk_country = c.rowid";
672 $sql .=
" WHERE d.entity IN (".getEntity(
'donation').
")";
674 $sql .=
" AND d.rowid=".((int) $id);
675 } elseif (!empty($ref)) {
676 $sql .=
" AND d.ref='".$this->db->escape($ref).
"'";
679 dol_syslog(get_class($this).
"::fetch", LOG_DEBUG);
680 $resql = $this->db->query($sql);
682 if ($this->db->num_rows($resql)) {
683 $obj = $this->db->fetch_object($resql);
685 $this->
id = $obj->rowid;
686 $this->
ref = $obj->rowid;
687 $this->date_creation = $this->db->jdate($obj->datec);
688 $this->datec = $this->db->jdate($obj->datec);
689 $this->date_validation = $this->db->jdate($obj->date_valid);
690 $this->date_valid = $this->db->jdate($obj->date_valid);
691 $this->date_modification = $this->db->jdate($obj->datem);
692 $this->datem = $this->db->jdate($obj->datem);
693 $this->date = $this->db->jdate($obj->datedon);
694 $this->socid = $obj->socid;
695 $this->firstname = $obj->firstname;
696 $this->lastname = $obj->lastname;
697 $this->societe = $obj->societe;
698 $this->
status = $obj->status;
699 $this->
statut = $obj->status;
700 $this->address = $obj->address;
701 $this->zip = $obj->zip;
702 $this->town = $obj->town;
703 $this->country_id = $obj->fk_country;
704 $this->country_code = $obj->country_code;
705 $this->country = $obj->country;
706 $this->email = $obj->email;
707 $this->phone = $obj->phone;
708 $this->phone_mobile = $obj->phone_mobile;
709 $this->project = $obj->project_ref;
710 $this->fk_projet = $obj->fk_project;
711 $this->fk_project = $obj->fk_project;
712 $this->
public = $obj->public;
713 $this->mode_reglement_id = $obj->fk_payment;
714 $this->mode_reglement_code = $obj->payment_code;
715 $this->mode_reglement = $obj->payment_label;
716 $this->paid = $obj->paid;
717 $this->amount = $obj->amount;
718 $this->note_private = $obj->note_private;
719 $this->note_public = $obj->note_public;
720 $this->model_pdf = $obj->model_pdf;
764 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"don SET fk_statut = 1, fk_user_valid = ".((int) $userid).
" WHERE rowid = ".((int) $id).
" AND fk_statut = 0";
766 $resql = $this->db->query($sql);
768 if ($this->db->affected_rows($resql)) {
780 $this->error = $this->db->lasterror();
788 $this->db->rollback();
800 public function setPaid($id, $modepayment = 0)
802 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"don SET fk_statut = 2, paid = 1";
804 $sql .=
", fk_payment = ".((int) $modepayment);
806 $sql .=
" WHERE rowid = ".((int) $id).
" AND fk_statut = 1";
808 $resql = $this->db->query($sql);
810 if ($this->db->affected_rows($resql)) {
833 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"don SET fk_statut = -1 WHERE rowid = ".((int) $id);
835 $resql = $this->db->query($sql);
837 if ($this->db->affected_rows($resql)) {
856 public function reopen($user, $notrigger = 0)
859 if ($this->
status != self::STATUS_CANCELED) {
863 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'DON_REOPEN');
880 $sql =
"SELECT sum(amount) as total";
881 $sql .=
" FROM ".MAIN_DB_PREFIX.
"don";
882 $sql .=
" WHERE fk_statut = ".((int) $param);
883 $sql .=
" AND entity = ".$conf->entity;
885 $resql = $this->db->query($sql);
887 $obj = $this->db->fetch_object($resql);
888 $result = $obj->total;
903 $sql =
"SELECT count(d.rowid) as nb";
904 $sql .=
" FROM ".MAIN_DB_PREFIX.
"don as d";
905 $sql .=
" WHERE d.fk_statut > 0";
906 $sql .=
" AND d.entity IN (".getEntity(
'donation').
")";
908 $resql = $this->db->query($sql);
910 while ($obj = $this->db->fetch_object($resql)) {
911 $this->nb[
"donations"] = $obj->nb;
913 $this->db->free($resql);
917 $this->error = $this->db->error();
931 public function getNomUrl($withpicto = 0, $notooltip = 0, $moretitle =
'', $save_lastsearch_value = -1)
933 global $conf, $langs, $hookmanager;
935 if (!empty($conf->dol_no_mouse_hover)) {
940 $label =
img_picto(
'', $this->picto).
' <u class="paddingrightonly">'.$langs->trans(
"Donation").
'</u>';
941 if (isset($this->
status)) {
942 $label .=
' '.$this->getLibStatut(5);
944 if (!empty($this->
id)) {
945 $label .=
'<br><b>'.$langs->trans(
'Ref').
':</b> '.$this->id;
946 $label .=
'<br><b>'.$langs->trans(
'Date').
':</b> '.
dol_print_date($this->date,
'day');
949 $label .=
' - '.$moretitle;
952 $url = DOL_URL_ROOT.
'/don/card.php?id='.$this->id;
954 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
955 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
956 $add_save_lastsearch_values = 1;
958 if ($add_save_lastsearch_values) {
959 $url .=
'&save_lastsearch_values=1';
962 $linkstart =
'<a href="'.$url.
'" title="'.
dol_escape_htmltag($label, 1).
'" class="classfortooltip">';
965 $result .= $linkstart;
967 $result .=
img_object(($notooltip ?
'' : $label), $this->picto, ($notooltip ? (($withpicto != 2) ?
'class="paddingright"' :
'') :
'class="'.(($withpicto != 2) ?
'paddingright ' :
'').
'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
969 if ($withpicto != 2) {
970 $result .= $this->ref;
974 $hookmanager->initHooks(array($this->element .
'dao'));
975 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
976 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
978 $result = $hookmanager->resPrint;
980 $result .= $hookmanager->resPrint;
993 $sql =
'SELECT d.rowid, d.datec, d.fk_user_author, d.fk_user_valid,';
994 $sql .=
' d.tms as datem';
995 $sql .=
' FROM '.MAIN_DB_PREFIX.
'don as d';
996 $sql .=
' WHERE d.rowid = '.((int) $id);
998 dol_syslog(get_class($this).
'::info', LOG_DEBUG);
999 $result = $this->db->query($sql);
1002 if ($this->db->num_rows($result)) {
1003 $obj = $this->db->fetch_object($result);
1004 $this->
id = $obj->rowid;
1006 $this->user_creation_id = $obj->fk_user_author;
1007 $this->user_validation_id = $obj->fk_user_valid;
1008 $this->date_creation = $this->db->jdate($obj->datec);
1009 $this->date_modification = (!empty($obj->tms) ? $this->db->jdate($obj->tms) :
"");
1011 $this->db->free($result);
1028 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0)
1030 global $conf, $langs;
1032 $langs->load(
"bills");
1035 $modele =
'html_cerfafr';
1037 if ($this->model_pdf) {
1038 $modele = $this->model_pdf;
1050 $err = error_reporting();
1052 @set_time_limit(120);
1053 error_reporting($err);
1055 $srctemplatepath =
'';
1058 $tmp = explode(
':', $modele, 2);
1059 if (!empty($tmp[1])) {
1061 $srctemplatepath = $tmp[1];
1068 $dirmodels = array(
'/');
1069 if (is_array($conf->modules_parts[
'models'])) {
1070 $dirmodels = array_merge($dirmodels, $conf->modules_parts[
'models']);
1072 foreach ($dirmodels as $reldir) {
1073 foreach (array(
'html',
'doc',
'pdf') as $prefix) {
1074 $file = $prefix.
"_".preg_replace(
'/^html_/',
'', $modele).
".modules.php";
1077 $file =
dol_buildpath($reldir.
"core/modules/dons/".$file, 0);
1078 if (file_exists($file)) {
1080 $classname = $prefix.
'_'.$modele;
1095 $classname = $modele;
1096 $obj =
new $classname($this->db);
1100 $sav_charset_output = $outputlangs->charset_output;
1101 if ($obj->write_file(
$object, $outputlangs, $srctemplatepath, $hidedetails, $hidedesc, $hideref) > 0) {
1102 $outputlangs->charset_output = $sav_charset_output;
1105 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
1109 $outputlangs->charset_output = $sav_charset_output;
1115 print $langs->trans(
"Error").
" ".$langs->trans(
"ErrorFileDoesNotExists", $file);
1146 if (empty($this->
id)) {
1147 $this->error =
'Missing object id';
1148 $this->errors[] = $this->error;
1149 dol_syslog(__METHOD__.
' : '.$this->error, LOG_ERR);
1153 $sql =
"SELECT SUM(amount) as sum_amount FROM ".MAIN_DB_PREFIX.
"payment_donation WHERE fk_donation = ".((int) $this->
id);
1154 $resql = $this->db->query($sql);
1159 $sum_amount = (float) $this->db->fetch_object($resql)->sum_amount;
1160 return (
float) ($this->amount - $sum_amount);
1173 global $conf, $langs;
1175 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1177 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1178 $return .=
'<div class="info-box info-box-sm">';
1179 $return .=
'<span class="info-box-icon bg-infobox-action">';
1181 $return .=
'</span>';
1182 $return .=
'<div class="info-box-content">';
1183 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl(1) : $this->ref).
'</span>';
1184 if ($selected >= 0) {
1185 $return .=
'<input id="cb'.$this->id.
'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1187 if (property_exists($this,
'date')) {
1188 $return .=
' | <span class="info-box-label">'.dol_print_date($this->date,
'day',
'tzuserrel').
'</span>';
1190 if (property_exists($this,
'societe') && !empty($this->societe)) {
1191 $return .=
'<br><span class="opacitymedium">'.$langs->trans(
"Company").
'</span> : <span class="info-box-label">'.$this->societe.
'</span>';
1193 if (property_exists($this,
'amount')) {
1194 $return .=
'<br><span class="info-box-label amount">'.price($this->amount, 1, $langs, 1, -1, -1, $conf->currency).
'</span>';
1196 if (method_exists($this,
'LibStatut')) {
1197 $return .=
'<br><div class="info-box-status">'.$this->getLibStatut(3).
'</div>';
1199 $return .=
'</div>';
1200 $return .=
'</div>';
1201 $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