public static function _generateInvoiceNumber($a_user_id = 0) { global $ilSetting; if ($a_user_id == 0) { global $ilUser; $a_user_id = $ilUser->getId(); } $inst_id = $ilSetting->get('inst_id'); $cur_time = time(); include_once './Services/Payment/classes/class.ilUserDefinedInvoiceNumber.php'; $invObj = new ilUserDefinedInvoiceNumber(); if ($invObj->getUDInvoiceNumberActive() == 1) { $next_number = ilUserDefinedInvoiceNumber::_nextIncCurrentValue(); $invoice_number = $invObj->getInvoiceNumberText(); $invoice_number = str_replace('[CURRENT_TIMESTAMP]', $cur_time, $invoice_number); $invoice_number = str_replace('[INSTALLATION_ID]', $inst_id, $invoice_number); $invoice_number = str_replace('[USER_ID]', $a_user_id, $invoice_number); $invoice_number = str_replace('[DAY]', date('d', $cur_time), $invoice_number); $invoice_number = str_replace('[MONTH]', date('m', $cur_time), $invoice_number); $invoice_number = str_replace('[YEAR]', date('Y', $cur_time), $invoice_number); $invoice_number = str_replace('[INCREMENTAL_NUMBER]', $next_number, $invoice_number); } else { $inst_id_time = $inst_id . '_' . $a_user_id . '_' . substr((string) $cur_time, -3); $invoice_number = $inst_id_time . substr(md5(uniqid(rand(), true)), 0, 4); } return $invoice_number; }
public function check() { require_once 'Services/Payment/classes/class.ilUserDefinedInvoiceNumber.php'; $msn = new ilUserDefinedInvoiceNumber(); $msn->cronCheck(); return true; }
public function run() { require_once 'Services/Payment/classes/class.ilPaymentNotification.php'; $msn = new ilPaymentNotification(); $msn->send(); include_once './Services/Payment/classes/class.ilUserDefinedInvoiceNumber.php'; if (ilUserDefinedInvoiceNumber::_isUDInvoiceNumberActive()) { $msn = new ilUserDefinedInvoiceNumber(); $msn->cronCheck(); } $result = new ilCronJobResult(); $result->setStatus(ilCronJobResult::STATUS_OK); return $result; }
public function saveInvoiceNumberObject() { // check conditions if ($_POST['ud_invoice_number'] == 1) { if ($_POST['inc_start_value'] <= 0 || $_POST['inc_start_value'] == NULL) { $this->error = $this->lng->txt('start_value_cannot_be_null'); ilUtil::sendFailure($this->error); /** @noinspection PhpVoidFunctionResultUsedInspection */ return $this->InvoiceNumberObject(); } if ($_POST['invoice_number_text'] !== NULL) { $check_text = $_POST['invoice_number_text']; if (strpos($check_text, '[INCREMENTAL_NUMBER]') === FALSE) { $this->error = $this->lng->txt('invoice_number_must_contain_incremental_number'); ilUtil::sendFailure($this->error); $this->InvoiceNumberObject(); return true; } else { if ($_POST['inc_reset_period'] == 1) { if (strpos($check_text, '[YEAR]') === FALSE && strpos($check_text, '[CURRENT_TIMESTAMP]') === FALSE) { $this->error = $this->lng->txt('invoice_number_must_contain_year_ct'); ilUtil::sendFailure($this->error); $this->InvoiceNumberObject(); return true; } } else { if ($_POST['inc_reset_period'] == 2) { if ((strpos($check_text, '[YEAR]') === FALSE || strpos($check_text, '[MONTH]') === FALSE) && strpos($check_text, '[CURRENT_TIMESTAMP]') === FALSE) { $this->error = $this->lng->txt('invoice_number_must_contain_year_month_ct'); ilUtil::sendFailure($this->error); $this->InvoiceNumberObject(); return true; } } } } } else { ilUtil::sendFailure($this->lng->txt('invoice_number_text_cannot_be_null')); $this->InvoiceNumberObject(); return true; } } // everythink ok .... update settings $invObj = new ilUserDefinedInvoiceNumber(); $invObj->setUDInvoiceNumberActive($_POST['ud_invoice_number']); $invObj->setIncStartValue($_POST['inc_start_value']); $invObj->setIncResetPeriod($_POST['inc_reset_period']); $invObj->setInvoiceNumberText($_POST['invoice_number_text']); $invObj->update(); $this->InvoiceNumberObject(); ilUtil::sendSuccess($this->lng->txt('pays_updated_general_settings')); return true; }
/** * Init cron jobs form. */ public function initCronJobsForm() { global $lng, $ilSetting, $rbacreview, $ilObjDataCache; include_once "Services/Form/classes/class.ilPropertyFormGUI.php"; $this->form = new ilPropertyFormGUI(); $cls = new ilNonEditableValueGUI($this->lng->txt('cronjob_last_start'), 'cronjob_last_start'); if ($ilSetting->get('last_cronjob_start_ts')) { include_once './Services/Calendar/classes/class.ilDatePresentation.php'; $cls->setInfo(ilDatePresentation::formatDate(new ilDateTime($ilSetting->get('last_cronjob_start_ts'), IL_CAL_UNIX))); } else { $cls->setInfo($this->lng->txt('cronjob_last_start_unknown')); } $this->form->addItem($cls); // check user accounts $cb = new ilCheckboxInputGUI($this->lng->txt("check_user_accounts"), "cron_user_check"); $cb->setInfo($this->lng->txt("check_user_accounts_desc")); if ($ilSetting->get("cron_user_check")) { $cb->setChecked(true); } $this->form->addItem($cb); // delete inactive user accounts require_once 'Services/User/classes/class.ilCronDeleteInactiveUserAccounts.php'; $cb = new ilCheckboxInputGUI($this->lng->txt("delete_inactive_user_accounts"), "cron_inactive_user_delete"); $cb->setInfo($this->lng->txt("delete_inactive_user_accounts_desc")); if ($ilSetting->get("cron_inactive_user_delete", false)) { $cb->setChecked(true); } $sub_list = new ilSelectInputGUI($this->lng->txt('delete_inactive_user_accounts_interval'), 'cron_inactive_user_delete_interval'); $sub_list->setInfo($this->lng->txt('delete_inactive_user_accounts_interval_desc')); $sub_list->setOptions(ilCronDeleteInactiveUserAccounts::getPossibleIntervalsArray()); $sub_list->setValue($ilSetting->get('cron_inactive_user_delete_interval', ilCronDeleteInactiveUserAccounts::getDefaultIntervalKey())); $cb->addSubItem($sub_list); include_once 'Services/Form/classes/class.ilMultiSelectInputGUI.php'; $sub_mlist = new ilMultiSelectInputGUI($this->lng->txt('delete_inactive_user_accounts_include_roles'), 'cron_inactive_user_delete_include_roles'); $sub_mlist->setInfo($this->lng->txt('delete_inactive_user_accounts_include_roles_desc')); $roles = array(); foreach ($rbacreview->getGlobalRoles() as $role_id) { if ($role_id != ANONYMOUS_ROLE_ID) { $roles[$role_id] = $ilObjDataCache->lookupTitle($role_id); } } $sub_mlist->setOptions($roles); $setting = $ilSetting->get('cron_inactive_user_delete_include_roles', null); if ($setting === null) { $setting = array(); } else { $setting = explode(',', $setting); } $sub_mlist->setValue($setting); $sub_mlist->setWidth(300); #$sub_mlist->setHeight(100); $cb->addSubItem($sub_mlist); $default_setting = ilCronDeleteInactiveUserAccounts::DEFAULT_INACTIVITY_PERIOD; $sub_text = new ilTextInputGUI($this->lng->txt('delete_inactive_user_accounts_period'), 'cron_inactive_user_delete_period'); $sub_text->setInfo($this->lng->txt('delete_inactive_user_accounts_period_desc')); $sub_text->setValue($ilSetting->get("cron_inactive_user_delete_period", $default_setting)); $sub_text->setSize(2); $sub_text->setMaxLength(3); $cb->addSubItem($sub_text); /* $default_setting = ilCronDeleteInactiveUserAccounts::DEFAULT_SETTING_INCLUDE_ADMINS; $sub_cb = new ilCheckboxInputGUI($this->lng->txt('delete_inactive_user_accounts_include_admins'),'cron_inactive_user_delete_include_admins'); $sub_cb->setChecked($ilSetting->get("cron_inactive_user_delete_include_admins", $default_setting) ? 1 : 0 ); //$sub_cb->setOptionTitle($this->lng->txt('delete_inactive_user_accounts_include_admins')); $sub_cb->setInfo($this->lng->txt('delete_inactive_user_accounts_include_admins_desc')); $cb->addSubItem($sub_cb); */ $this->form->addItem($cb); // delete inactivated user accounts require_once 'Services/User/classes/class.ilCronDeleteInactivatedUserAccounts.php'; $cb = new ilCheckboxInputGUI($this->lng->txt("delete_inactivated_user_accounts"), "cron_inactivated_user_delete"); $cb->setInfo($this->lng->txt("delete_inactivated_user_accounts_desc")); if ($ilSetting->get("cron_inactivated_user_delete", false)) { $cb->setChecked(true); } $sub_list = new ilSelectInputGUI($this->lng->txt('delete_inactivated_user_accounts_interval'), 'cron_inactivated_user_delete_interval'); $sub_list->setInfo($this->lng->txt('delete_inactivated_user_accounts_interval_desc')); $sub_list->setOptions(ilCronDeleteInactiveUserAccounts::getPossibleIntervalsArray()); $sub_list->setValue($ilSetting->get('cron_inactivated_user_delete_interval', ilCronDeleteInactiveUserAccounts::getDefaultIntervalKey())); $cb->addSubItem($sub_list); include_once 'Services/Form/classes/class.ilMultiSelectInputGUI.php'; $sub_mlist = new ilMultiSelectInputGUI($this->lng->txt('delete_inactivated_user_accounts_include_roles'), 'cron_inactivated_user_delete_include_roles'); $sub_mlist->setInfo($this->lng->txt('delete_inactivated_user_accounts_include_roles_desc')); $roles = array(); foreach ($rbacreview->getGlobalRoles() as $role_id) { if ($role_id != ANONYMOUS_ROLE_ID) { $roles[$role_id] = $ilObjDataCache->lookupTitle($role_id); } } $sub_mlist->setOptions($roles); $setting = $ilSetting->get('cron_inactivated_user_delete_include_roles', null); if ($setting === null) { $setting = array(); } else { $setting = explode(',', $setting); } $sub_mlist->setValue($setting); $sub_mlist->setWidth(300); #$sub_mlist->setHeight(100); $cb->addSubItem($sub_mlist); $default_setting = ilCronDeleteInactiveUserAccounts::DEFAULT_INACTIVITY_PERIOD; $sub_text = new ilTextInputGUI($this->lng->txt('delete_inactivated_user_accounts_period'), 'cron_inactivated_user_delete_period'); $sub_text->setInfo($this->lng->txt('delete_inactivated_user_accounts_period_desc')); $sub_text->setValue($ilSetting->get("cron_inactivated_user_delete_period", $default_setting)); $sub_text->setSize(2); $sub_text->setMaxLength(3); $cb->addSubItem($sub_text); /* $default_setting = ilCronDeleteInactiveUserAccounts::DEFAULT_SETTING_INCLUDE_ADMINS; $sub_cb = new ilCheckboxInputGUI($this->lng->txt('delete_inactivated_user_accounts_include_admins'),'cron_inactivated_user_delete_include_admins'); $sub_cb->setChecked($ilSetting->get("cron_inactivated_user_delete_include_admins", $default_setting) ? 1 : 0 ); //$sub_cb->setOptionTitle($this->lng->txt('delete_inactivated_user_accounts_include_admins')); $sub_cb->setInfo($this->lng->txt('delete_inactivated_user_accounts_include_admins_desc')); $cb->addSubItem($sub_cb); */ $this->form->addItem($cb); // link check $cb = new ilCheckboxInputGUI($this->lng->txt("check_link"), "cron_link_check"); $cb->setInfo($this->lng->txt("check_link_desc")); if ($ilSetting->get("cron_link_check")) { $cb->setChecked(true); } $this->form->addItem($cb); // check web resources $options = array("0" => $lng->txt("never"), "1" => $lng->txt("daily"), "2" => $lng->txt("weekly"), "3" => $lng->txt("monthly"), "4" => $lng->txt("quarterly")); $si = new ilSelectInputGUI($this->lng->txt("check_web_resources"), "cron_web_resource_check"); $si->setOptions($options); $si->setInfo($this->lng->txt("check_web_resources_desc")); $si->setValue($ilSetting->get("cron_web_resource_check")); $this->form->addItem($si); // update lucene $cb = new ilCheckboxInputGUI($this->lng->txt("cron_lucene_index"), "cron_lucene_index"); $cb->setInfo($this->lng->txt("cron_lucene_index_info")); if ($ilSetting->get("cron_lucene_index")) { $cb->setChecked(true); } $this->form->addItem($cb); // forum notifications $options = array("0" => $lng->txt("cron_forum_notification_never"), "1" => $lng->txt("cron_forum_notification_directly"), "2" => $lng->txt("cron_forum_notification_cron")); $si = new ilSelectInputGUI($this->lng->txt("cron_forum_notification"), "forum_notification"); $si->setOptions($options); $si->setInfo($this->lng->txt("cron_forum_notification_desc")); $si->setValue($ilSetting->get("forum_notification")); $this->form->addItem($si); // mail notifications $options = array("0" => $lng->txt("cron_mail_notification_never"), "1" => $lng->txt("cron_mail_notification_cron")); $si = new ilSelectInputGUI($this->lng->txt("cron_mail_notification"), "mail_notification"); $si->setOptions($options); $si->setInfo($this->lng->txt("cron_mail_notification_desc")); $si->setValue($ilSetting->get("mail_notification")); $this->form->addItem($si); if ($ilSetting->get("mail_notification") == '1') { $cb = new ilCheckboxInputGUI($this->lng->txt("cron_mail_notification_message"), "mail_notification_message"); $cb->setInfo($this->lng->txt("cron_mail_notification_message_info")); if ($ilSetting->get("mail_notification_message")) { $cb->setChecked(true); } $this->form->addItem($cb); } // disk quota and disk quota reminder mail $dq_settings = new ilSetting('disk_quota'); $cb = new ilCheckboxInputGUI($this->lng->txt("enable_disk_quota"), "enable_disk_quota"); $cb->setInfo($this->lng->txt("enable_disk_quota_info")); if ($dq_settings->get('enabled')) { $cb->setChecked(true); } $this->form->addItem($cb); $cb_reminder = new ilCheckboxInputGUI($this->lng->txt("enable_disk_quota_reminder_mail"), "enable_disk_quota_reminder_mail"); $cb_reminder->setInfo($this->lng->txt("disk_quota_reminder_mail_desc")); if ($dq_settings->get('reminder_mail_enabled')) { $cb_reminder->setChecked(true); } $cb->addSubItem($cb_reminder); // Enable summary mail for certain users $cb_prop_summary = new ilCheckboxInputGUI($lng->txt("enable_disk_quota_summary_mail"), "enable_disk_quota_summary_mail"); $cb_prop_summary->setValue(1); $cb_prop_summary->setChecked((int) $dq_settings->get('summary_mail_enabled', 0) == 1); $cb_prop_summary->setInfo($lng->txt('enable_disk_quota_summary_mail_desc')); $cb->addSubItem($cb_prop_summary); // Edit disk quota recipients $summary_rcpt = new ilTextInputGUI($lng->txt("disk_quota_summary_rctp"), "disk_quota_summary_rctp"); $summary_rcpt->setValue($dq_settings->get('summary_rcpt', '')); $summary_rcpt->setInfo($lng->txt('disk_quota_summary_rctp_desc')); $cb_prop_summary->addSubItem($summary_rcpt); // Enable payment notifications $payment_noti = new ilCheckboxInputGUI($lng->txt("payment_notification"), "payment_notification"); $payment_noti->setValue(1); $payment_noti->setChecked((int) $ilSetting->get('payment_notification', 0) == 1); $payment_noti->setInfo($lng->txt('payment_notification_desc')); $num_days = new ilNumberInputGUI($this->lng->txt('payment_notification_days'), 'payment_notification_days'); $num_days->setSize(3); $num_days->setMinValue(0); $num_days->setMaxValue(120); $num_days->setRequired(true); $num_days->setValue($ilSetting->get('payment_notification_days')); $num_days->setInfo($lng->txt('payment_notification_days_desc')); $payment_noti->addSubItem($num_days); $this->form->addItem($payment_noti); // reset payment incremental invoice number $inv_options = array("1" => $lng->txt("yearly"), "2" => $lng->txt("monthly")); include_once './Services/Payment/classes/class.ilUserDefinedInvoiceNumber.php'; if (ilUserDefinedInvoiceNumber::_isUDInvoiceNumberActive()) { $inv_reset = new ilSelectInputGUI($this->lng->txt("invoice_number_reset_period"), "invoice_number_reset_period"); $inv_reset->setOptions($inv_options); $inv_reset->setInfo($this->lng->txt("invoice_number_reset_period_desc")); $inv_reset->setValue(ilUserDefinedInvoiceNumber::_getResetPeriod()); $this->form->addItem($inv_reset); } else { $inv_info = new ilNonEditableValueGUI($this->lng->txt('invoice_number_reset_period'), 'invoice_number_reset_period'); $inv_info->setInfo($lng->txt('payment_userdefined_invoice_number_not_activated')); $this->form->addItem($inv_info); } // course/group notifications $crsgrp_ntf = new ilCheckboxInputGUI($this->lng->txt("enable_course_group_notifications"), "crsgrp_ntf"); $crsgrp_ntf->setInfo($this->lng->txt("enable_course_group_notifications_desc")); if ($ilSetting->get('crsgrp_ntf')) { $crsgrp_ntf->setChecked(true); } $this->form->addItem($crsgrp_ntf); $this->form->addCommandButton("saveCronJobs", $lng->txt("save")); $this->form->setTitle($lng->txt("cron_jobs")); $this->form->setDescription($lng->txt("cron_jobs_desc")); $this->form->setFormAction($this->ctrl->getFormAction($this)); }
private function initTasks() { global $ilias; require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php'; require_once 'Services/Payment/classes/class.ilUserDefinedInvoiceNumber.php'; $this->default_tasks = array('ilLDAPCronSynchronization::start', 'ilCronCheckUserAccounts::check', 'ilLuceneIndexer::index', 'ilCronLinkCheck::check', 'ilCronWebResourceCheck::check', 'ilCronForumNotification::sendNotifications', 'ilCronMailNotification::sendNotifications', 'ilCronValidator::check', 'ilCronDiskQuotaCheck::updateDiskUsageStatistics', 'ilCronDiskQuotaCheck::sendReminderMails', 'ilCronDeleteInactiveUserAccounts::run', 'ilCronDeleteInactivatedUserAccounts::run', 'ilCronPaymentNotification::sendNotifications', 'ilCronCourseGroupNotification::check', 'ilCronPaymentUDInvoiceNumberReset::check', 'ilCronObjectStatisticsCheck::check'); $this->possible_tasks = array('ilLDAPCronSynchronization::start' => array('classname' => 'ilLDAPCronSynchronization', 'method' => 'start', 'location' => 'Services/LDAP', 'condition' => true), 'ilCronCheckUserAccounts::check' => array('classname' => 'ilCronCheckUserAccounts', 'method' => 'check', 'location' => 'cron', 'condition' => $ilias->getSetting('cron_user_check')), 'ilLuceneIndexer::index' => array('classname' => 'ilLuceneIndexer', 'method' => 'index', 'location' => 'Services/Search', 'sub_location' => 'Lucene', 'condition' => $ilias->getSetting("cron_lucene_index")), 'ilCronLinkCheck::check' => array('classname' => 'ilCronLinkCheck', 'method' => 'check', 'location' => 'cron', 'condition' => $ilias->getSetting("cron_link_check")), 'ilCronWebResourceCheck::check' => array('classname' => 'ilCronWebResourceCheck', 'method' => 'check', 'location' => 'cron', 'condition' => $ilias->getSetting("cron_web_resource_check")), 'ilCronForumNotification::sendNotifications' => array('classname' => 'ilCronForumNotification', 'method' => 'sendNotifications', 'location' => 'cron', 'condition' => $ilias->getSetting('forum_notification') == 2), 'ilCronMailNotification::sendNotifications' => array('classname' => 'ilCronMailNotification', 'method' => 'sendNotifications', 'location' => 'cron', 'condition' => $ilias->getSetting('mail_notification') == 1), 'ilCronValidator::check' => array('classname' => 'ilCronValidator', 'method' => 'check', 'location' => 'cron', 'condition' => $ilias->getSetting('systemcheck_cron') == 1), 'ilCronDiskQuotaCheck::updateDiskUsageStatistics' => array('classname' => 'ilCronDiskQuotaCheck', 'method' => 'updateDiskUsageStatistics', 'location' => 'cron', 'condition' => ilDiskQuotaActivationChecker::_isActive()), 'ilCronDiskQuotaCheck::sendReminderMails' => array('classname' => 'ilCronDiskQuotaCheck', 'method' => 'sendReminderMails', 'location' => 'cron', 'condition' => ilDiskQuotaActivationChecker::_isReminderMailActive()), 'ilCronDiskQuotaCheck::sendSummaryMails' => array('classname' => 'ilCronDiskQuotaCheck', 'method' => 'sendSummaryMails', 'location' => 'cron', 'condition' => ilDiskQuotaActivationChecker::_isSummaryMailActive()), 'ilCronDeleteInactiveUserAccounts::run' => array('classname' => 'ilCronDeleteInactiveUserAccounts', 'method' => 'run', 'location' => 'Services/User', 'condition' => $ilias->getSetting('cron_inactive_user_delete', 0)), 'ilCronDeleteInactivatedUserAccounts::run' => array('classname' => 'ilCronDeleteInactivatedUserAccounts', 'method' => 'run', 'location' => 'Services/User', 'condition' => $ilias->getSetting('cron_inactivated_user_delete', 0)), 'ilCronPaymentNotification::sendNotifications' => array('classname' => 'ilCronPaymentNotification', 'method' => 'sendNotifications', 'location' => 'cron', 'condition' => $ilias->getSetting('payment_notifications') == 1), 'ilCronCourseGroupNotification::check' => array('classname' => 'ilCronCourseGroupNotification', 'method' => 'sendNotifications', 'location' => 'cron', 'condition' => $ilias->getSetting("crsgrp_ntf")), 'ilCronPaymentUDInvoiceNumberReset::check' => array('classname' => 'ilCronPaymentUDInvoiceNumberReset', 'method' => 'check', 'location' => 'cron', 'condition' => ilUserDefinedInvoiceNumber::_isUDInvoiceNumberActive()), 'ilCronObjectStatisticsCheck::check' => array('classname' => 'ilCronObjectStatisticsCheck', 'method' => 'check', 'location' => 'cron', 'condition' => true)); }