Benutzer-Werkzeuge

Webseiten-Werkzeuge


tombejo:tombejo_spezifikation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tombejo:tombejo_spezifikation [2016/09/17 23:55]
sarah
tombejo:tombejo_spezifikation [2017/11/03 15:21] (aktuell)
f.rauch_girona.de
Zeile 1: Zeile 1:
-Tombejo\\+ 
 + 
 +**Tombejo** 
 + 
 +**Grundsätzliches zur Architektur** 
 + 
 +Server und Client kommunizieren,​ vom ersten Laden abgesehen, ausschliceßlich über Ajax Requests. Die Logik dazu befindet sich in der Datei js/ajax.js, besonders die Funktion getXMLData, die auch die callback entgegen nimmt, die anschließend ausgeführt wird. Die callbacks die zur Verfügung stehen befinden sich in js/​callbacks.js,​ die standard callback ist die '​onReceiveXMLDefault',​ soll zusätzlich noch ein Fenster aufgebaut werden, wird die '​onReceiveWindowXML'​ aufgerufen. 
 + 
 +Die wesentlichen Teile der Geschäftslogik befinden sich im Ordner classes_new/​business_classes. Die module entsprechen im wesentlichen folgendem muster 
 + 
 +Ordner xyz enthält drei klassen: xyzEntry.class,​ xyzList.class,​ xyzTableColumns.class. Entry und List sind selbsterklärend,​ die Table Columns Klasse fügt Metadaten zu den vorhanden Tabellenspalten des Moduls hinzu. Dies wirkt sich insbesondere auf die Listen-Anzeige aus. 
 + 
 +Die zu ladenden Felder der Liste werden im Feld "​standardColumns"​ abgelegt, die Methode "​setColumnProperties"​ wird aufgerufen, wenn es sich um eine Hauptliste handelt (also beim klick auf ein Modul vom Startbildschirm),​ die Methode "​setSublistColumnProperties"​ wird aufgerufen, wenn es sich um eine Subliste handelt. Insbesondere bei Contacts, tabelle ol_nadress, unterscheiden sich diese Methoden. 
 + 
 +Sollen Felder dargestellt werden, die nicht in der Datenbank vorhanden sind, sondern errechnet werden, muss eine entsprechende Zeile hinzugefügt werden (wichtig ist hier vor allem isDBCol ⇒ false): 
 + 
 +Ein Beispiel ist der Name der Druckvorlage,​ '​printtplname' ​ in Ol_InvoiceTableColumns 
 \\ \\
 \\ \\
-GHAUPT\\+\\ 
 +**GHAUPT** \\
 \\ \\
 der Zentrale Datensatz des Tombejo Friedhofs ist der GHAUPT. \\ der Zentrale Datensatz des Tombejo Friedhofs ist der GHAUPT. \\
Zeile 14: Zeile 32:
 \\ \\
 \\ \\
-HAUPT01\\+**HAUPT01** \\
 \\ \\
 HAUPT01 steht in einer one-to-many-relation zu GHAUPT. Zu jedem HAUPT01 gibt es genau einen GHAUPT, zu jedem GHAUPT mindestens einen HAUPT01. KINDEX (mit MANDANT_ID) des HAUPT01 verweist auf den dazugehörigen GHAUPT. Der interne sekundärschlüssel des HAUPT01 zum GHAUPT ist der FZEIG. Ein HAUPT01 ist also spezifiziert durch KINDEX, MANDANT_ID und FZEIG. WIE ein GHAUPT hat auch ein HAUPT01 eine ARCHIV_ID, die analog funktioniert.\\ HAUPT01 steht in einer one-to-many-relation zu GHAUPT. Zu jedem HAUPT01 gibt es genau einen GHAUPT, zu jedem GHAUPT mindestens einen HAUPT01. KINDEX (mit MANDANT_ID) des HAUPT01 verweist auf den dazugehörigen GHAUPT. Der interne sekundärschlüssel des HAUPT01 zum GHAUPT ist der FZEIG. Ein HAUPT01 ist also spezifiziert durch KINDEX, MANDANT_ID und FZEIG. WIE ein GHAUPT hat auch ein HAUPT01 eine ARCHIV_ID, die analog funktioniert.\\
Zeile 22: Zeile 40:
 \\ \\
 \\ \\
-Auflösen\\+**Auflösen** \\
 \\ \\
 Unter Grab→mehrfachstellen→auflösen. Zu jeder HAUPT01-Stelle des GHAUPT wird ein neuer GHAUPT angelegt, zu dem alle HAUPT01e die die jeweilige Stelle haben, zugeordnet werden. Eine Stelle wird ausgewählt,​ innerhalb der die Primärdaten des GHAUPTs übernommen werden:\\ Unter Grab→mehrfachstellen→auflösen. Zu jeder HAUPT01-Stelle des GHAUPT wird ein neuer GHAUPT angelegt, zu dem alle HAUPT01e die die jeweilige Stelle haben, zugeordnet werden. Eine Stelle wird ausgewählt,​ innerhalb der die Primärdaten des GHAUPTs übernommen werden:\\
Zeile 45: Zeile 63:
 \\ \\
 \\ \\
-Verbinden\\ +**Verbinden** \\ 
-\\+Unter Grab→mehrfachstellen→verbinden. 
 + 
 +Es erscheint der "​Verbinden"​ Dialog. Im Gegensatz zum Auflösen Dialog hat dieser keinen Bezug zum GHAUPT, aus dem man kommt. Es geht hier darum, zwei Grabstätten auszusuchen,​ die, gemeinsam mit den zwischen Ihnen liegenden, in eine gemeinsame Grabstätte (GHAUPT) verschmelzen,​ in der alle HAUPT01 dieser Grabstätten liegen. Zuoberst befindet sich eine Suchleiste, in der man sich den Bereich auswählen kann, in dem die zu verschmelzenden Grabstätten liegen. Es ist erforderlich,​ dass diese Friedhof, Abteilung und Reihe gemeinsam haben, um miteinander zu verschmelzen. 
 + 
 +Aus der unteren List lässt sich ein Anfangs- und (mit Shift) Endpunkt anklicken. Die markierten Gräber werden verschmolzen. Es gibt außerdem Eingabefelder für den neuen Grabnamen und die Felder "​stelle"​ und "​stellebis"​. ​ Anhand des Radiobutton wird  entschieden,​ ob das erste oder letzte GHAUPT derjenige ist, auf dem die ganzen HAUPT01 landen. ​ Alle anderen GHAUPTS, die ja nun keine HAUPT01 mehr haben, werden gelöscht. Das ist die einzige Stelle im Programm (neben Verbinden über Kopf), an der GHAUPTs gelöscht und nicht archiviert werden. 
 + 
 +**Verbinden über Kopf** ​\\ 
 +Unter Grab→mehrfachstellen→verbinden über Kopf. 
 + 
 +Dieser Dialog ist recht ähnlich wie der Verbinden Dialog. Es werden dieses mal genau zwei Grabstätten verschmolzen,​ die Friedhof und Abteilung gleich, aber NICHT die gleiche Reihe haben müssen. Von daher kann neben Grabnamen, Stelle und Stellebis auch die Reihe für die neue GHAUPT Stelle angegeben werden. Es gibt außerdem noch einen check button, der überprüft ob die neue Grabnummer in Ordnung ist, oder gegen einen Constraint verstößt. (<​nowiki>​*</​nowiki>​Genauer<​nowiki>​*</​nowiki>​). Standardmäßig bekommet Reihe den Wert GHAUPT1["​reihe"​] - GHAUPT2["​reihe"​],​ also z.b. 3-4. Stelle bekommt den Wert GHAUPT1["​stelle"​]-GHAUPT1["​reihe"​],​ stellebis bekommt GHAUPT2["​stelle"​]-GHAUPT2["​reihe"​]. 
 \\ \\
 +Der Code für die Verbindung befindet sich in der Datei popups/​VerbindenDlogPopupWindow sowie in js/​new_classes/​cemetery.js\\
 \\ \\
 \\ \\
 \\ \\
-Verlegen+**Verlegen ​** 
 + 
 +Verlegt wird ein Haupt01. Die Verlegung beginnt im Friedhofsregister,​ Tab Sterbefall/​Weiteres,​ Button "​innerhalb der Verlegung",​ bzw. temporäre Stelle umlegen. Die Grabstelle lässt sich entweder in einen GHaupt umlegen, so dass ein neuer Haupt01 angelegt wird (Button Stelle erzeugen und umbetten) oder in einen vorhandenen,​ freien Haupt01 (Umbetten). ​ Der Code für die Verlegung befindet sich in der Date cemetery/​StaticCemeteryFunctions.class.php,​ die Funktion '​importhaupt01tohaupt01'​. Dort befinden sich auch die anderen Funktionen zum Verlegen von einem Modul in ein anderes (z.b. '​importKrematorToHaupt01'​). 
  
tombejo/tombejo_spezifikation.1474149344.txt.gz · Zuletzt geändert: 2016/09/17 23:55 von sarah