5declare(strict_types = 1);
8use \ILIAS\UI\Component\Input\Field;
9use \ILIAS\Refinery\Factory as Refinery;
34 throw new InvalidArgumentException(
35 'Numbers less than 0 are not allowed for qualification_period'
40 throw new InvalidArgumentException(
41 'Numbers less than 0 are not allowed for restart_period'
59 throw new InvalidArgumentException(
60 'Numbers less than 0 are not allowed'
71 return $this->qualification_date;
78 $clone->qualification_date = $qualification_date;
85 return $this->restart_period;
91 if (!is_null($restart_period) && 0 > $restart_period) {
92 throw new InvalidArgumentException(
93 'Numbers less than 0 are not allowed'
97 $clone->restart_period = $restart_period;
108 $format = $data_factory->dateFormat()->germanShort();
109 $grp1 = $input->group([],
$lng->txt(
'prg_no_validity_qualification'));
110 $grp2 = $input->group(
112 'vq_period' => $input->numeric(
114 $lng->txt(
'validity_qualification_period_desc')
116 ->withAdditionalTransformation($refinery->int()->isGreaterThan(0))
117 ->withValue($this->getQualificationPeriod() !==
null ? $this->getQualificationPeriod() :
null)
119 $lng->txt(
'validity_qualification_period')
121 $grp3 = $input->group(
123 'vq_date' => $input->dateTime(
125 $lng->txt(
'validity_qualification_date_desc')
128 ->withValue($this->getQualificationDate() !==
null ? $this->getQualificationDate()->format(
'd.m.Y') :
'')
131 $lng->txt(
'validity_qualification_date')
133 $grp4 = $input->group([],
$lng->txt(
'prg_no_restart'));
134 $grp5 = $input->group(
136 'vq_restart_period' => $input->numeric(
138 $lng->txt(
'restart_period_desc')
140 ->withAdditionalTransformation($refinery->int()->isGreaterThan(0))
141 ->withValue($this->getRestartPeriod() !==
null ? $this->getRestartPeriod() :
null)
143 $lng->txt(
'restart_period')
146 $sg1 = $input->switchableGroup(
148 'opt_no_validity_qualification' => $grp1,
149 'opt_validity_qualification_period' => $grp2,
150 'opt_validity_qualification_date' => $grp3
155 $sg2 = $input->switchableGroup(
157 'opt_no_restart' => $grp4,
158 'opt_restart_period' => $grp5,
163 $validity_qualification =
"opt_no_validity_qualification";
164 if (!is_null($this->getQualificationPeriod()) && $this->getQualificationPeriod() > 0) {
165 $validity_qualification =
'opt_validity_qualification_period';
168 if (!is_null($this->getQualificationDate())) {
169 $validity_qualification =
'opt_validity_qualification_date';
172 $restart_value =
'opt_no_restart';
173 if (!is_null($this->getRestartPeriod()) && $this->getRestartPeriod() > 0) {
174 $restart_value =
'opt_restart_period';
177 return $input->section(
179 'validity_qualification' => $sg1->withValue($validity_qualification),
180 'restart' => $sg2->withValue($restart_value)
182 $lng->txt(
'prg_validity_of_qualification')
184 ->withAdditionalTransformation($refinery->custom()->transformation(function (array $vals) {
189 if (isset($vals[
'validity_qualification'][1][
'vq_period'])) {
190 $vq_period = (int) $vals[
'validity_qualification'][1][
'vq_period'];
193 if (isset($vals[
'validity_qualification'][1][
'vq_date'])) {
194 $vq_date =
new DateTime($vals[
'validity_qualification'][1][
'vq_date']);
198 count($vals[
'restart'][1]) > 0 &&
199 !is_null($vals[
'restart'][1][
'vq_restart_period'])
201 $restart = (int) $vals[
'restart'][1][
'vq_restart_period'];
An exception for terminatinating execution or to throw for unit testing.
withQualificationPeriod(?int $qualification_period)
withQualificationDate(?DateTime $qualification_date)
__construct(?int $qualification_period, ?DateTime $qualification_date, ?int $restart_period)
toFormInput(Field\Factory $input, \ilLanguage $lng, Refinery $refinery, Factory $data_factory)
withRestartPeriod(?int $restart_period)
if(!file_exists(getcwd() . '/ilias.ini.php'))
registration confirmation script for ilias