public static function registerApplication() { Common::registerModule(); Prospect::registerModule(); Student::registerModule(); Custody::registerModule(); }
/** * @param TblPerson $tblPerson * @param array $Meta * * @return Stage */ public function frontendMeta(TblPerson $tblPerson = null, $Meta = array()) { $Stage = new Stage(); $Stage->setMessage(new Danger(new Info() . ' Es dürfen ausschließlich für die Schulverwaltung notwendige Informationen gespeichert werden.')); if (null !== $tblPerson) { $Global = $this->getGlobal(); if (!isset($Global->POST['Meta'])) { /** @var TblCommon $tblCommon */ $tblCommon = Common::useService()->getCommonByPerson($tblPerson); if ($tblCommon) { $Global->POST['Meta']['Remark'] = $tblCommon->getRemark(); /** @var TblCommonBirthDates $tblCommonBirthDates */ $tblCommonBirthDates = $tblCommon->getTblCommonBirthDates(); if ($tblCommonBirthDates) { $Global->POST['Meta']['BirthDates']['Birthday'] = $tblCommonBirthDates->getBirthday(); $Global->POST['Meta']['BirthDates']['Birthplace'] = $tblCommonBirthDates->getBirthplace(); $Global->POST['Meta']['BirthDates']['Gender'] = $tblCommonBirthDates->getGender(); } /** @var TblCommonInformation $tblCommonInformation */ $tblCommonInformation = $tblCommon->getTblCommonInformation(); if ($tblCommonInformation) { $Global->POST['Meta']['Information']['Nationality'] = $tblCommonInformation->getNationality(); $Global->POST['Meta']['Information']['Denomination'] = $tblCommonInformation->getDenomination(); $Global->POST['Meta']['Information']['IsAssistance'] = $tblCommonInformation->getIsAssistance(); $Global->POST['Meta']['Information']['AssistanceActivity'] = $tblCommonInformation->getAssistanceActivity(); } $Global->savePost(); } } } $Stage->setContent(Common::useService()->createMeta((new Form(array(new FormGroup(array(new FormRow(array(new FormColumn(array(new Panel('Geburtsdaten', array(new DatePicker('Meta[BirthDates][Birthday]', 'Geburtstag', 'Geburtstag', new Calendar()), new AutoCompleter('Meta[BirthDates][Birthplace]', 'Geburtsort', 'Geburtsort', array(), new MapMarker()), new SelectBox('Meta[BirthDates][Gender]', 'Geschlecht', array(TblCommonBirthDates::VALUE_GENDER_NULL => '', TblCommonBirthDates::VALUE_GENDER_MALE => 'Männlich', TblCommonBirthDates::VALUE_GENDER_FEMALE => 'Weiblich'), new Child())), Panel::PANEL_TYPE_INFO), new Panel('Sonstiges', array(new TextArea('Meta[Remark]', 'Bemerkungen', 'Bemerkungen', new Pencil())), Panel::PANEL_TYPE_INFO)), 6), new FormColumn(array(new Panel('Informationen', array(new AutoCompleter('Meta[Information][Nationality]', 'Staatsangehörigkeit', 'Staatsangehörigkeit', array(), new Nameplate()), new AutoCompleter('Meta[Information][Denomination]', 'Konfession', 'Konfession', array(), new TempleChurch()), new SelectBox('Meta[Information][IsAssistance]', 'Mitarbeitsbereitschaft', array(TblCommonInformation::VALUE_IS_ASSISTANCE_NULL => '', TblCommonInformation::VALUE_IS_ASSISTANCE_YES => 'Ja', TblCommonInformation::VALUE_IS_ASSISTANCE_NO => 'Nein'), new Sheriff()), new TextArea('Meta[Information][AssistanceActivity]', 'Mitarbeitsbereitschaft - Tätigkeiten', 'Mitarbeitsbereitschaft - Tätigkeiten', new Pencil())), Panel::PANEL_TYPE_INFO)), 6)))))), new Primary('Informationen speichern')))->setConfirm('Eventuelle Änderungen wurden noch nicht gespeichert.'), $tblPerson, $Meta)); return $Stage; }
/** * @return bool|TblCommonInformation */ public function getTblCommonInformation() { if (null === $this->tblCommonInformation) { return false; } else { return Common::useService()->getCommonInformationById($this->tblCommonInformation); } }
/** * @param bool|false|string $TabActive * * @param null|int $Id * @param null|array $Person * @param null|array $Meta * * @return Stage */ public function frontendPerson($TabActive = 'Common', $Id = null, $Person = null, $Meta = null) { $Stage = new Stage('Personen', 'Datenblatt'); if (!$Id) { $BasicTable = Person::useService()->createPerson($this->formPerson()->appendFormButton(new Primary('Grunddaten anlegen'))->setConfirm('Eventuelle Änderungen wurden noch nicht gespeichert'), $Person); $Stage->setContent(new Layout(array(new LayoutGroup(new LayoutRow(new LayoutColumn($BasicTable)), new Title(new PersonParent() . ' Grunddaten', 'der Person'))))); } else { $tblPerson = Person::useService()->getPersonById($Id); $Global = $this->getGlobal(); if (!isset($Global->POST['Person'])) { $Global->POST['Person']['Salutation'] = $tblPerson->getTblSalutation()->getId(); $Global->POST['Person']['Title'] = $tblPerson->getTitle(); $Global->POST['Person']['FirstName'] = $tblPerson->getFirstName(); $Global->POST['Person']['SecondName'] = $tblPerson->getSecondName(); $Global->POST['Person']['LastName'] = $tblPerson->getLastName(); $tblGroupAll = Group::useService()->getGroupAllByPerson($tblPerson); if (!empty($tblGroupAll)) { /** @var TblGroup $tblGroup */ foreach ((array) $tblGroupAll as $tblGroup) { $Global->POST['Person']['Group'][$tblGroup->getId()] = $tblGroup->getId(); } } $Global->savePost(); } $BasicTable = Person::useService()->updatePerson($this->formPerson()->appendFormButton(new Primary('Grunddaten speichern'))->setConfirm('Eventuelle Änderungen wurden noch nicht gespeichert'), $tblPerson, $Person); $MetaTabs = Group::useService()->getGroupAllByPerson($tblPerson); // Sort by Name usort($MetaTabs, function (TblGroup $ObjectA, TblGroup $ObjectB) { return strnatcmp($ObjectA->getName(), $ObjectB->getName()); }); // Create Tabs /** @noinspection PhpUnusedParameterInspection */ array_walk($MetaTabs, function (TblGroup &$tblGroup, $Index, TblPerson $tblPerson) { switch (strtoupper($tblGroup->getMetaTable())) { case 'COMMON': $tblGroup = new LayoutTab('Personendaten', $tblGroup->getMetaTable(), array('Id' => $tblPerson->getId())); break; case 'PROSPECT': $tblGroup = new LayoutTab('Interessent', $tblGroup->getMetaTable(), array('Id' => $tblPerson->getId())); break; case 'STUDENT': $tblGroup = new LayoutTab('Schülerakte', $tblGroup->getMetaTable(), array('Id' => $tblPerson->getId())); break; case 'CUSTODY': $tblGroup = new LayoutTab('Sorgerechtdaten', $tblGroup->getMetaTable(), array('Id' => $tblPerson->getId())); break; default: $tblGroup = false; } }, $tblPerson); /** @var LayoutTab[] $MetaTabs */ $MetaTabs = array_filter($MetaTabs); // Folded ? if (!empty($MetaTabs)) { if (!$TabActive || $TabActive == '#') { array_unshift($MetaTabs, new LayoutTab(' ' . new ChevronRight() . ' ', '#', array('Id' => $tblPerson->getId()))); $MetaTabs[0]->setActive(); } else { if ($TabActive == 'Common') { array_unshift($MetaTabs, new LayoutTab(' ' . new ChevronUp() . ' ', '#', array('Id' => $tblPerson->getId()))); $MetaTabs[1]->setActive(); } else { array_unshift($MetaTabs, new LayoutTab(' ' . new ChevronUp() . ' ', '#', array('Id' => $tblPerson->getId()))); } } } switch (strtoupper($TabActive)) { case 'COMMON': $MetaTable = Common::useFrontend()->frontendMeta($tblPerson, $Meta); break; case 'PROSPECT': $MetaTable = Prospect::useFrontend()->frontendMeta($tblPerson, $Meta); break; case 'STUDENT': $MetaTable = Student::useFrontend()->frontendMeta($tblPerson, $Meta); break; case 'CUSTODY': $MetaTable = Custody::useFrontend()->frontendMeta($tblPerson, $Meta); break; default: if (!empty($MetaTabs)) { $MetaTable = new Well(new Muted('Bitte wählen Sie eine Rubrik')); } else { $MetaTable = new Well(new Warning('Keine Informationen verfügbar')); } } $Stage->setContent(new Layout(array(new LayoutGroup(new LayoutRow(new LayoutColumn(array(new Panel(new PersonIcon() . ' Person', $tblPerson->getFullName(), Panel::PANEL_TYPE_SUCCESS), $BasicTable))), new Title(new PersonParent() . ' Grunddaten', 'der Person')), new LayoutGroup(array(new LayoutRow(new LayoutColumn(new LayoutTabs($MetaTabs))), new LayoutRow(new LayoutColumn($MetaTable))), new Title(new Tag() . ' Informationen', 'zur Person')), new LayoutGroup(array(new LayoutRow(new LayoutColumn(Address::useFrontend()->frontendLayoutPerson($tblPerson)))), (new Title(new TagList() . ' Adressdaten', 'der Person'))->addButton(new Standard('Adresse hinzufügen', '/People/Person/Address/Create', new ChevronDown(), array('Id' => $tblPerson->getId())))), new LayoutGroup(array(new LayoutRow(new LayoutColumn(Phone::useFrontend()->frontendLayoutPerson($tblPerson) . Mail::useFrontend()->frontendLayoutPerson($tblPerson)))), (new Title(new TagList() . ' Kontaktdaten', 'der Person'))->addButton(new Standard('Telefonnummer hinzufügen', '/People/Person/Phone/Create', new ChevronDown(), array('Id' => $tblPerson->getId())))->addButton(new Standard('E-Mail Adresse hinzufügen', '/People/Person/Mail/Create', new ChevronDown(), array('Id' => $tblPerson->getId())))), new LayoutGroup(array(new LayoutRow(new LayoutColumn(array(Relationship::useFrontend()->frontendLayoutPerson($tblPerson), Relationship::useFrontend()->frontendLayoutCompany($tblPerson))))), (new Title(new TagList() . ' Beziehungen', 'zu Personen und Firmen'))->addButton(new Standard('Personenbeziehung hinzufügen', '/People/Person/Relationship/Create', new ChevronDown(), array('Id' => $tblPerson->getId())))->addButton(new Standard('Firmenbeziehung hinzufügen', '/Corporation/Company/Relationship/Create', new ChevronDown(), array('Id' => $tblPerson->getId()))))))); } return $Stage; }