Buchführungssystem. Softwarepraktikum 2003. Projektdokumentation (Teilbeleg 3)



Ähnliche Dokumente
Buchführungssystem. Softwarepraktikum Projektdokumentation (Teilbeleg 2)

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Projekt Online-Shop:

Erstellung botoptimierter Partnerlinks

Erstellen eines HTML-Templates mit externer CSS-Datei

Die Dateiablage Der Weg zur Dateiablage

Aufruf der Buchungssystems über die Homepage des TC-Bamberg

2.1 Briefkopf Klicken Sie im Menü Einstellungen auf den Button Briefkopf. Folgendes Formular öffnet sich:

Änderung des Portals zur MesseCard-Abrechnung

Vorgehensweise für die Umstellung von Quicken-Konten bei Bargeldbuchungen auf ein Wertpapierkonto

Artikel Schnittstelle über CSV

Import, Export und Löschung von Zertifikaten mit dem Microsoft Internet Explorer

Durchführung der Datenübernahme nach Reisekosten 2011

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

1 Konto mit HBCI-PIN/TAN einrichten

MWF-Bore-Admin Version 1.0.7

Hier mal einige Tipps zum Einbau vom "Anfy" Applets. Hier die Seite von "Anfy" und zum Download des Programms:

Benutzeranleitung Superadmin Tool

Der naldo-offline-handyfahrplan

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Alerts für Microsoft CRM 4.0

Verbuchung von Zahlungseingängen über das PayPal-Konto

Einrichten des Elektronischen Postfachs

Einstieg in Exact Online Buchungen erfassen. Stand 05/2014

1 Konto mit HBCI-PIN/TAN einrichten

Anlegen eines DLRG Accounts

Schritt 1 - Registrierung und Anmeldung

Arbeiten mit dem Outlook Add-In

Einkaufslisten verwalten. Tipps & Tricks

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Arbeiten in der FIBU mit Zahlungsmittelkonten

Für die Einrichtung des elektronischen Postfachs melden Sie sich wie gewohnt in unserem Online-Banking auf an.

Bedienungsanleitung für den Online-Shop

Dokumentation IBIS Monitor

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Registrierung am Elterninformationssysytem: ClaXss Infoline

Zugriff auf Daten der Wago über eine Webseite

desk.modul : Intercompany

Software WISO Hausverwalter 2014 Datenübernahme aus WISO Mein Geld Version / Datum V 1.0 /

Vertrieb durch: h+f Informatik und Elektrotechnik Washingtonstrasse 32 CH-9400 Rorschach Tel: +41 (0) Mobile: +41 (0)

Kommunikations-Management

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Kostenstellen verwalten. Tipps & Tricks

BsBanking. Nach dem Anmelden werden Ihnen alle Rechtsanwälte angezeigt. Sie können hier auch neue anlegen und vorhandene bearbeiten.

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Verwaltungsnummer festlegen oder ändern mit Ausnahme der 1XPPHUSie bestätigen die Eintragungen mit Drücken der Taste Return.

Erfassen von Service-Meldungen über das Web-Interface auf

M-net -Adressen einrichten - Apple iphone

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Fülle das erste Bild "Erforderliche Information für das Google-Konto" vollständig aus und auch das nachfolgende Bild.

Konvertieren von Settingsdateien

Kulturobjekte der Donau Das ContentManagementSystem (CMS)

Vorlagen im Online Banking. Anlegen von Vorlagen

Die neue Datenraum-Center-Administration in. Brainloop Secure Dataroom Service Version 8.30

Individuelle Formulare

Anmeldung bei einem registrierten Konto (Account)

Installationsbeschreibung Import / ATLAS / PV Zollsystem für die EDV-Abteilung

1 Konto mit HBCI-PIN/TAN einrichten

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erstellen einer in OWA (Outlook Web App)

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Datenübernahme bei Umstieg von T-Online Banking 6 auf Quicken 2010 so wird s gemacht!

Kleines Handbuch zur Fotogalerie der Pixel AG

Tutorial: Wie nutze ich den Mobile BusinessManager?

Internationales Altkatholisches Laienforum

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern

VR-NetWorld Software Kontoumstellung mittels HBCI-Benutzerkennung oder VR-Networld-Card

ecaros2 - Accountmanager

SEMINAR Modifikation für die Nutzung des Community Builders

1 Konto für HBCI/FinTS mit Chipkarte einrichten

Internet online Update (Internet Explorer)

Firefox: Die Lesezeichen im Griff

Statistik. Unter dem Register Statistik werden alle Sendeaufträge verwaltet, die Sie für den Versand Ihrer Newsletter angelegt haben.

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

IAWWeb PDFManager. - Kurzanleitung -

TELIS FINANZ Login App

LESS-FIBU Firmen-Wechsel 1

Summenbildung in Bauteiltabellen mit If Then Abfrage

So eröffnen Sie schnell und bequem Ihr Internet-Festgeld

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Anleitung Datenfernsicherung SecureSafe

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Handbuch. Anlegen von Vermittlern, Gruppen und Anwendern. 1. Auflage. (Stand: )

1. Einführung. 2. Weitere Konten anlegen

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

Folgeanleitung für Klassenlehrer

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

> HBCI PIN/TAN und T-Online Banking 6.0

Auslesen der Fahrtdaten wiederholen Schritt für Schritt erklärt (Funktion Abfrage zur Datensicherung erstellen )

Profi cash 10. Electronic Banking. Installation und erste Schritte. Ihre Spezialisten für den elektronischen Zahlungsverkehr und moderne Bezahlsysteme

Internet online Update (Mozilla Firefox)

Anleitung zum LPI ATP Portal

Kurzanleitung MAN E-Learning (WBT)

Transkript:

Softwarepraktikum 2003 Buchführungssystem Projektdokumentation (Teilbeleg 3) Teamleiter: Dominique Petersen Mitglieder des Projektteams: Annette Keusch Nadine Pollmer Dirk Brückner Marco Döring Praktikumsbetreuer: Christian Meichsner Chemnitz, den 11.07.2003

Inhaltsverzeichnis 1 Programmdokumentation 3 1.1 Definition der Interfaces in der Implementierungssprache...3 1.2 Kommentierte Quelltexte...12 1.3 Testplan...117 1.3.1 Testfälle...117 1.3.2 Testmatrix...128 1.3.3 Zeitplan und Verantwortlichkeiten für den Systemtest...129 1.4 Systemtest...130 1.5 Abschlusseinschätzung...132 2 Systemhandbuch 133 2.1 Installationsanleitung...133 2.2 Programm-Filesystem...133 2.3 Administrationsanleitung...134 3 Anwenderdokumentation 135 3.1 Produktzweck...135 3.2 Basismaschine und Ressourcenanforderungen...135 3.3 Nutzerklassen...136 3.4 Bedienungsanleitung...136 4 Übersicht über die Arbeitsaufgaben aller Teammitglieder bei der Projektbearbeitung 154 2

1 Programmdokumentation 1.1 Definition der Interfaces in der Implementierungssprache 1.1.1 Modul Datenbank include("globals.php"); function DB_connect() Die Funktion versucht, eine dauerhafte Verbindung zur MySQL-Datenbank aufzubauen. Bei Erfolg wird FehlerNr = 0 zurückgeliefert, ansonsten ein entsprechend anderer Wert. function DB_close() Die Funktion versucht, die Verbindung zur MySQL-Datenbank zu schließen. Bei Erfolg wird FehlerNr = 0 zurückgeliefert, ansonsten ein entsprechend anderer Wert. function DB_QuerySend($DB_Query) Sendet einen Query an den MySQL-Datenbankserver. Der Rückgabewert ist eine Ressource-ID, mittels derer auf das Ergebnis der Abfrage zugegriffen werden kann. function DB_QueryGrepNumberAffectedRows($DB_ResID) Liefert die Anzahl der Datenbankzeilen, die durch die letzte Operation betroffen waren. function DB_QueryGrepRow($DB_ResID) Liefert die nächste Zeile einer Abfrage als assoziatives Array zurück. Gibt 0 (FALSE) nach dem letzten Datensatz. function DB_QueryFetchArray($DB_ResID) Liefert den nächsten Datensatz einer Abfrage als assoziatives Array zurück. function DB_getConnectedUsers() Überprüft, wie viele Benutzer zur Zeit angemeldet ist und gibt die Anzahl zurück. function DB_removeConnectedUser() Entfernt einen angemeldeten Benutzer aus dem System. 1.1.2 Modul Geschäftsfälle include("../datenbank.php"); function GF_new($GF_Nr, $GF_Name, $GF_Vorgangsdaten) Die Funktion erstellt aus GF_Nr, GF_Name und GF_Vorgangsdaten einen neuen Geschäftsfalldatensatz und speichert diesen in der Datenbank ab. Zurückgeliefert wird die Fehlernummer, die gleich Null ist, wenn alles erfolgreich gespeichert wurde. function GF_get($GF_Nr, $GF_Name, $GF_Vorgangsdaten) Die Funktion sucht in der Datenbank nach dem Geschäftsfall mit der GF_Nr. Wird er gefunden, so werden alle Speicherdaten des Geschäftsfalls (GF_Nr, GF_Name, GF_Vorgangsdaten) und die FehlerNr = 0 zurückgegeben. Ist der Geschäftsfall nicht vorhanden, wird nur die entsprechende FehlerNr zurückgegeben. 3

function GF_delete($GF_Nr) Die Funktion sucht in der Datenbank nach dem Geschäftsfall mit der GF_Nr. Wird er gefunden, so werden alle Speicherdaten des Geschäftsfalls (GF_Nr, GF_Name, GF_Vorgangsdaten) aus der Datenbank gelöscht und die FehlerNr = 0 zurückgegeben. Ist der Geschäftsfall nicht vorhanden oder der Geschäftsfall konnte nicht gelöscht werden, wird nur die entsprechende FehlerNr zurückgegeben. function GF_find($GF_Nr, $GF_Name) Die Funktion durchsucht die Datenbank und liefert ein Array der Elemente GF_Nr und GF_Name aller existierenden Geschäftsfälle zurück. Ist mindestens ein Geschäftsfall gefunden worden und es sind keine Fehler aufgetreten, so wird außerdem FehlerNr = 0 zurückgegeben, ansonsten eine entsprechende FehlerNr. 1.1.3 Modul Konten include("../datenbank.php"); function Kto_new($Kto_Nr, $Kto_Name, $Kto_Art, $Kto_Wertigkeit, $Kto_Datumsflag, $OberKto_Nr) Wenn noch kein Konto mit der Kto_Nr in der Datenbank existiert, erstellt die Funktion einen neuen Kontodatensatz mit Kto_Nr, Kto_Name, Kto_Art, Kto_Datumsflag, Kto_Wertigkeit, OberKto_Nr und dem (noch leeren) Kto_Inhalt und speichert den Datensatz in der Datenbank ab. Verläuft alles korrekt, wird die FehlerNr = 0 zurückgegeben, ansonsten der jeweilige Fehlercode. function Kto_Get($Kto_Nr, $Kto_Name, $Kto_Art, $Kto_Datumsflag, $Kto_Wertigkeit, $OberKto_Nr, $Kto_Sollsumme, $Kto_Habensumme, $Kto_Sollbuchung, $Kto_Habenbuchung) Die Funktion sucht in der Datenbank nach dem Konto mit der Kto_Nr und dem Kto_Datumsflag. Wird das Konto gefunden, so wird der gesamte Kontodatensatz (bestehend aus Kto_Nr, Kto_Name, Kto_Art, Kto_Datumsflag, Kto_Wertigkeit, OberKto_Nr, Kto_Inhalt) und die FehlerNr = 0 zurückgegeben. Ist das Konto nicht vorhanden, wird nur die entsprechende FehlerNr zurückgegeben. function Kto_find ($Kto_Nr, $Kto_Name, $Kto_Art, $Kto_Datumsflag, $Kto_Wertigkeit, $OberKto_Nr, $Kto_Sollsumme, $Kto_Habensumme, $Kto_Sollbuchung, $Kto_Habenbuchung) Die Funktion durchsucht die Datenbank und liefert ein Array der Elemente Kto_Nr, Kto_Name und Kto_Datumsflag aller die Kriterien (angegebene in-parameter) erfüllenden Konten zurück. Ist mindestens ein Konto gefunden worden und es sind keine Fehler aufgetreten, so wird FehlerNr = 0 zurückgegeben, ansonsten eine entsprechende FehlerNr. function Kto_delete ($Kto_Nr, $Kto_Datumsflag) Die Funktion sucht in der Datenbank nach dem Konto mit der Kto_Nr und dem Kto_Datumsflag. Wird das Konto gefunden, so wird der gesamte Kontodatensatz (bestehend aus Kto_Nr, Kto_Name, Kto_Art, Kto_Datumsflag, Kto_Wertigkeit, OberKto_Nr, Kto_Inhalt) gelöscht und die FehlerNr = 0 zurückgegeben. Ist das Konto nicht vorhanden oder es trat ein Fehler beim Löschen auf, wird nur die entsprechende FehlerNr zurückgegeben. 4

function Kto_insertContentRow($Kto_Nr, $Kto_Seite, $Buchungseintrag) Die Funktion sucht das aktuelle Konto mit Kto_Nr in der Datenbank. Ist das Konto vorhanden, speichert es den neuen Buchungseintrag auf der durch Kto_Seite bestimmten Seite des Kto_Inhalts, aktualisiert die betroffene Kto_SeitenSumme und gibt die FehlerNr = 0 zurück. Existiert das Konto nicht oder ein Fehler bei der Speicherung ist erfolgt, so liefert die Funktion den entsprechenden Fehlercode zurück. function Kto_changeFlag($Kto_Nr, $Kto_Datumsflag, $Kto_DatumsflagNew) Die Funktion sucht in der Datenbank nach dem Konto mit Kto_Nr und Kto_Datumsflag. Wird das Konto gefunden, so wird das in seinem Datensatz gespeicherte Kto_Datumsflag durch Kto_DatumsflagNew ersetzt und die FehlerNr = 0 zurückgegeben. Ist das Konto nicht vorhanden oder es trat ein Fehler auf, wird eine entsprechende FehlerNr!= 0 zurückgegeben. 1.1.4 Modul Grundbücher include("../datenbank.php"); function GB_new($GB_Datumsflag) Die Funktion speichert das Grundbuch unter dem GB_Datumsflag in der Datenbank, es besitzt noch keinen Inhalt. Verläuft alles korrekt, wird die FehlerNr = 0 zurückgegeben, ansonsten der jeweilige Fehlercode. function GB_Get($GB_Datumsflag, $GB_Inhalt) Die Funktion sucht in der Datenbank nach dem Grundbuch mit dem GB_Datumsflag. Wird das Grundbuch gefunden, so werden GB_Datumsflag, GB_Inhalt und die FehlerNr = 0 zurückgegeben. Ist das Grundbuch nicht vorhanden, wird nur die entsprechende FehlerNr zurückgegeben. function GB_find ($GB_Datumsflag) Die Funktion durchsucht die Datenbank und liefert ein Array des Elementes GB_Datumsflag aller Grundbuecher zurück, deren Datumsflag GB_Datumsflag ist bzw. die überhaupt existieren (für den Fall, dass GB_Datumsflag nicht als in-parameter angegeben ist). Ist mindestens ein Grundbuch gefunden worden und es sind keine Fehler aufgetreten, so wird FehlerNr = 0 zurückgegeben, ansonsten eine entsprechende FehlerNr. function GB_delete ($GB_Datumsflag) Die Funktion sucht in der Datenbank nach dem Grundbuch mit dem GB_Datumsflag. Wird das Grundbuch gefunden, so wird sein gesamter Datensatz (GB_Datumsflag und GB_Inhalt) gelöscht und die FehlerNr = 0 zurückgegeben. Ist das Grundbuch nicht vorhanden oder es trat ein Fehler beim Löschen auf, wird nur die entsprechende FehlerNr zurückgegeben. 5

function GB_insertContentRow($GB_Datumsflag, $Grundbucheintrag) Die Funktion sucht das Grundbuch mit dem GB_Datumsflag in der Datenbank. Ist das Grundbuch vorhanden, speichert es den neuen Grundbucheintrag im GB_Inhalt des gefundenen Grundbuchs ab und gibt die FehlerNr = 0 zurück. Existiert das Grundbuch nicht oder ein Fehler bei der Speicherung ist erfolgt, so liefert die Funktion den entsprechenden Fehlercode zurück. function GB_changeFlag($GB_Datumsflag, $GB_DatumsflagNew) Die Funktion sucht in der Datenbank nach dem Grundbuch mit dem GB_Datumsflag. Wird das Grundbuch gefunden, so wird das in seinem Datensatz gespeicherte GB_Datumsflag durch GB_DatumsflagNew ersetzt (das Grundbuch wird dadurch abgeschlossen) und die FehlerNr = 0 zurückgegeben. Ist das Grundbuch nicht vorhanden oder es trat ein Fehler auf, wird eine entsprechende FehlerNr!= 0 zurückgegeben. 1.1.5 Modul Bilanzen include("../datenbank.php"); function Bz_new($B_Datum, $B_Name, $B_Art) Die Funktion erstellt aus den Parametern B_Name, B_Datum und B_Art einen neuen Bilanzdatensatz und speichert die neue (noch leere) Bilanz in der Datenbank ab. Verläuft alles korrekt, wird die FehlerNr = 0 zurückgegeben, ansonsten der jeweilige Fehlercode. function Bz_Get($B_Datum, $B_Art, $B_Name, $B_Inhalt, $B_Aktivasumme, $B_Passivasumme) Die Funktion sucht anhand der ausgewählten Kriterien (B_Datum, B_Art und/oder B_Name) in der Datenbank nach der passenden Bilanz. Wird die Bilanz gefunden, so werden ihre gesamten Speicherdaten (B_Datum, B_Art, B_Name, B_Inhalt) und die FehlerNr = 0 zurückgegeben. Ist die Bilanz nicht vorhanden, wird nur die entsprechende FehlerNr zurückgegeben. function Bz_find ($B_Datum, $B_DatumMax, $B_Art, $B_Name) Die Funktion durchsucht die Datenbank und liefert ein Array der Elemente B_Datum, B_Art und B_Name aller die Kriterien erfüllenden Bilanzen zurück. Ist mindestens eine Bilanz gefunden worden und es sind keine Fehler aufgetreten, so wird FehlerNr = 0 zurückgegeben, ansonsten eine entsprechende FehlerNr. function Bz_delete ($B_Datum, $B_Art) Die Funktion sucht in der Datenbank nach der Bilanz mit dem B_Datum und der B_Art. Wird die Bilanz gefunden, so wird sie aus der Datenbank gelöscht und die FehlerNr = 0 zurückgegeben. Ist die Bilanz nicht vorhanden oder ein Fehler bei der Löschung trat auf, wird nur die entsprechende FehlerNr zurückgegeben. function Bz_insertContentRow($B_Datum, $B_Art, $B_Seite, $B_Posten) Die Funktion fügt B_Posten in die durch die Paramteter vorgegebene Bilanz (auf deren durch B_Seite bestimmte Seite) in der Datenbank ein und aktualisiert B_SeitenSumme der betroffenen Bilanzseite. Verläuft alles korrekt, wird FehlerNr = 0 zurückgegeben, ansonsten der jeweilige Fehlercode. 6

1.1.6 Modul Geschäftsfallanzeige include("../mod_var/geschaeftsfaelle.php"); include("../interface.php"); include("../error.php"); function GF_anzeigen($GF_Nr, $GF_Name, $GF_Vorgangsdaten) Die Funktion ruft mit dem Parameter GF_Nr die Funktion GF_get auf und liefert deren Rückgabewerte zurück. 1.1.7 Modul Geschäftsfallbearbeitung include("../mod_var/geschaeftsfaelle.php"); include("../interface.php"); include("../error.php"); function GF_anlegen($GF_Nr, $GF_Name, $GF_Vorgangsdaten) Die Funktion ruft mit den übergebenen Parametern GF_Nr, GF_Name und GF_Vorgangsdaten die Funktion GF_new auf und liefert deren Rückgabewert zurück. Falls die von GF_new zurückgelieferte FehlerNr = 0 ist, werden zusätzlich die übergebenen Parameter zurückgeliefert. function GF_loeschen($GF_Nr, $direkt=0) Die Funktion ruft mit dem Parameter GF_Nr die Funktion GF_delete auf und liefert deren Rückgabewert (FehlerNr) zurück. 1.1.8 Modul Kontoanzeige include("../mod_var/konten.php"); include("../interface.php"); include("../error.php"); function Kto_anzeigen($Kto_Nr, $Kto_Datumsflag, $Kto_Name, $Kto_Art, $OberKto_Nr, $Kto_Inhalt) Die Funktion ruft mit den Parametern Kto_Nr und Kto_Datumsflag die Funktion Kto_get auf und liefert deren Rückgabewerte (bis auf Kto_Wertigkeit) zurück. 1.1.9 Modul Kontobearbeitung include("../mod_var/konten.php"); include("../interface.php"); include("../error.php"); 7

function Kto_anlegen($Kto_Nr, $Kto_Name, $Kto_Art, $OberKto_Nr) Die Funktion überprüft zunächst mit Kto_find, ob in der Datenbank bereits ein aktuelles Konto mit Kto_Nr existiert. Ist dem nicht so, wird mithilfe von Kto_get die Kto_Wertigkeit des angegebenen Oberkontos (außer bei OberKto_Nr = 0000) in Erfahrung gebracht, um die Kto_Wertigkeit des anzulegenden Kontos berechnen zu können. Anschließend ruft die Funktion mit sämtlichen in-parametern, der ermittelten Kto_Wertigkeit und einem generierten Kto_Datumsflag die Funktion Kto_new auf. Handelt es sich bei dem angelegten Konto um ein Hauptkonto (Kto_Wertigkeit = 1), wird zusätzlich noch ein Anfangsbestand in Höhe von 0 mithilfe der Funktion Kto_insertContenRow in den Kto_Inhalt des angelegten Kontos eingetragen. Trat an irgendeiner Stelle ein Fehler auf, wird die entsprechende FehlerNr zurückgeliefert, ansonsten FehlerNr = 0. function Kto_loeschen($Kto_Nr, $Kto_Datumsflag) Die Funktion findet mit rekursiven Aufrufen von Kto_find sämtliche direkten und indirekten (aktuellen) Unterkonten des Kontos in der Datenbank. Diese werden dann einschließlich des ursprünglich zu löschenden Kontos sukzessive mithilfe der Funktion Kto_delete aus der Datenbank gelöscht. Verlief der Vorgang erfolgreich, wird FehlerNr = 0 zurückgeliefert, ansonsten eine entsprechend andere Fehlernummer. 1.1.10 Modul Buchung include("../globals.php"); include("../error.php"); include("../interface.php"); include("../buchfuehrungsverwaltung.php"); function B_Buchung($BuchungsDatum, $Beleg_Kommentar, $Kontenliste, &$Beleg_ID) Die Funktion generiert eine Beleg_ID und stellt aus Buchungsdatum, Beleg_ID, Beleg_Kommentar und Kontenliste einen Grundbucheintrag zusammen, mit dem die Funktion GB_insertContentRow aufgerufen wird, um den Eintrag in den GB_Inhalt des laufenden Grundbuchs in der Datenbank zu speichern (Buchung aufs Grundbuch). Anschließend wird für jeden Kontenlisteneintrag der Kontenliste wie folgt verfahren: aus der generierten Beleg_ID und dem im Kontenlisteneintrag angegebenen BuchungsBetrag wird ein Buchungseintrag erstellt, der zusammen mit der im Kontenlisteneintrag bezeichneten Kto_Nr und betr_kto_seite an die Funktion Kto_insertContentRow übergeben wird (Buchung aufs Konto). Trat bei diesen Aktionen kein Fehler auf, wird FehlerNr = 0 und die generierte Beleg_ID zurückgegeben, ansonsten lediglich eine entsprechend andere Fehlernummer. 1.1.11 Modul Grundbuchanzeige include("../mod_var/grundbuecher.php"); include("../interface.php"); include("../error.php"); function GB_anzeigen($GB_Datumsflag) Die Funktion ruft mit dem Parameter GB_Datumsflag die Funktion GB_get auf und liefert deren Rückgabewerte auf dem Bildschirm zurück. 8

1.1.12 Modul Archivdatenlöschung include("../mod_var/bilanzen.php"); include("../mod_var/grundbuecher.php"); include("../mod_var/konten.php"); include("../interface.php"); include("../error.php"); function ADaten_loeschen() Die Funktion generiert den Parameter DatumsflagMax := heute() 10 Jahre und ruft mit diesem die Funktionen Kto_find, Bz_find und GB_find auf. Ist mindestens eine zurückgegebene FehlerNr = 0, so werden alle gefundenen Konten, Bilanzen und Grundbücher sukzessive mithilfe der Funktionen Kto_delete, Bz_delete und GB_delete aus der Datenbank gelöscht. Verlief der gesamte Vorgang erfolgreich, wird FehlerNr = 0 zurückgeliefert, ansonsten eine entsprechend andere Fehlernummer.. 1.1.13 Modul SBilanzerstellung include("../interface.php"); include("../mod_var/konten.php"); include("../error.php"); include("../mod_var/bilanzen.php"); include("../mod_var/grundbuecher.php"); function SBz_erstellen($B_Name, $B_Datum, $B_Art, $B_Inhalt, $B_Aktivasumme, $B_Passivasumme) Die Funktion erstellt eine neue leere Bilanz mit B_Name und B_Datum. Anschließend werden alle Konten mit dem Datumsflag 0 in der Datenbank gesucht, der Saldo berechnet und auf das jeweilige Konto gebucht. Dann werden die Salden der Konten mit der Wertigkeit 1 in das Schlussbilanzkonto gebucht, die alten Konten bekommen das AbschlussDatum als Datumsflag. Der Schlussbilanzkontoinhalt wird in die neue Bilanz eingetragen und zurückgegeben. Nun werden neue Konten (inklusive SBK) mit den jeweiligen Anfangsbeständen (welche bei Wertigkeit 1 geändert werden konnten) erstellt, dabei bleiben Kto_Name und Kto_Nr gleich. Dann wird das aktuelle Grundbuch abgeschlossen und ein neues leeres Grundbuch erstellt. 1.1.14 Modul EBilanzerstellung include("../interface.php"); include("../mod_var/konten.php"); include("../error.php"); include("../mod_var/bilanzen.php"); 9

function EBz_erstellen($B_Name, $B_Datum, $B_Art, $B_Inhalt, $AB_Aenderungsliste) Wenn es noch keine andere Bilanz in der Datenbank gibt, werden alle Konten mit der Wertigkeit 1 herausgesucht und die Anfangsbestände eingetragen, diese werden ebenfalls in das SBK gebucht. Anschließend (egal ob bei erster Eröffnungsbilanz oder im Kontenabschlussprozess) erstellt die Funktion eine neue leere Bilanz mit B_Name und B_Datum. Ebenfalls wird ein neues Konto mit der Kto_Art EK erstellt und die jeweiligen Beträge aus dem SBK entsprechend gebucht. Der B_Inhalt wird dann mit den Daten aus dem EK gefüllt und zurückgegeben. Die Bilanzerstellung ist beendet. 1.1.15 Modul Bilanzanzeige include("../interface.php"); include("../error.php"); include("../mod_var/bilanzen.php"); function Bz_anzeigen($B_Datum, $B_Art, $B_Name, $B_Inhalt) Die Funktion ruft mit den Parametern B_Datum und B_Art die Funktion Bz_get auf und liefert deren Rückgabewerte zurück. 1.1.16 Modul Fehlerbehandlung function error_decode($fehlernr) Die Funktion liest mit der gegebenen FehlerNr die Fehlernachricht ErrorMsg aus der Fehlercodetabelle (siehe unten) und gibt sie auf dem Bildschirm aus. 1.1.17 Modul Buchführungsverwaltung include("../error.php"); include("../interface.php"); include("../mod_var/geschaeftsfaelle.php"); include("../mod_var/konten.php"); include("../mod_var/bilanzen.php"); include("../bilanz/sbilanzerstellung.php"); include("../bilanz/ebilanzerstellung.php"); include("../anzeigen/grundbuchanzeige.php"); include("../bearbeiten/geschaeftsfallbearbeitung.php"); function BV_StartBuchung() function BV_BuchungDirekt($anzahl_konten) function BV_BuchungGF($GF) function BV_BuchungBest($Buchungsdaten) function BV_StartAnzeige() function BV_AnzeigenGB($GB_Datumsflag) function BV_AnzeigenGF($GF_Nr) function BV_StartBearbeiten() function BV_BearbeitenGFAnlegen($anzahl_SK,$anzahl_HK) function BV_BearbeitenGFBest($GFDaten) function BV_StartBilanz() 10

function BV_SB_get_Data() function BV_SB_erstellen($B_Name) function BV_EB_get_data() function BV_EB_erstellen ($_Name, $_Datum, $_AB_Liste) function BV_anzeigen_bilanz($B_Datum, $B_Art, $B_Name, $B_Inhalt, $B_Aktivasumme, $B_Passivasumme, $source) 1.1.18 Modul Interface include("error.php"); function IF_doSpaces($anzahl) function IF_fillzero($temp, $count) function IF_adddecimal($temp) function IF_number($temp) function IF_prepKto($temp) function IF_init_table($IF_status = "active", $IF_additional_title = "null") function IF_end_table() function IF_showDatumsflag($Datumsflag) function IF_makeStartButton($b_name) function IF_makeYesNoButton($name1, $link1, $name2, $link2) function IF_anzeigen_Konto($Kto_Nr, $Kto_Name, $Kto_Art, $Kto_Datumsflag, $OberKto_Nr, $Kto_Sollsumme, $Kto_Habensumme, $Kto_Sollbuchung, $Kto_Habenbuchung) function IF_anzeigen_Geschaeftsfall($GF_Nr, $GF_Name, $GF_Vorgangsdaten) function IF_bearbeiten_GF_loeschen($GF_Nr, $GF_Name) function IF_bearbeiten_GF_anlegen_Best($GF_Nr) function IF_bearbeiten_GF_loeschen_Best($GF_Nr, $Result) function IF_bearbeiten_Kto_anlegen_Best($Kto_Nr) function IF_StartBuchung ($GF_Nr, $GF_Name) function IF_BuchungDirekt($anzahl_SK, $anzahl_hk,$kontenliste) function IF_BuchungGF ($SK,$HK,$GF,$GF_Name) function IF_BuchungBest($Beleg_ID) function IF_StartAnzeige($kontenliste,$grundbuecher,$geschaeftsfaelle,$bilanzen) function IF_StartBearbeiten($GF_Nr,$GF_Name) function IF_BearbeitenGFAnlegen($anzahl_SK, $anzahl_hk,$kontenliste) function IF_BearbeitenKtoAnlegen() function IF_anzeigen_bilanz_inhalt($B_Datum, $B_Art, $B_Name, $B_aktiva_seite, $B_passiva_seite, $B_Aktivasumme, $B_Passivasumme) function IF_anzeigen_bilanz_sbe() function IF_anzeigen_bilanz($B_Datum, $B_Art, $B_Name, $B_aktiva_seite, $B_passiva_seite, $B_Aktivasumme, $B_Passivasumme) function IF_StartBilanz($B_Wahl) function IF_SB_get_Data($B_Name) function IF_EB_get_Data($B_Name, $_AB_Aenderungsliste) Anmerkung: Es sind nicht alle einzelnen Module aufgelistet, sondern nur die Hauptmodule. Ein paar kleine Hilfsmodule wurden aufgrund der Übersichtlichkeit bewusst weggelassen. 11

1.2. Kommentierte Quelltexte Im Nachfolgenden sind die kommentierten Quelltexte aller php-dateien und wichtiger Systemdateien, wie z.b. der bfs.sql, aufgelistet. Im Kopf der Dateien befinden sich Informationen über die jeweiligen Eigenschaften, den Autor und die Funktionen. Letztere sind noch einmal detailliert an der jeweiligen Stelle beschrieben, sowie durch einzelne Kommentare innerhalb der Funktionen. 12

globals.php 10.07.2003 23:32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <?php / SWP - Buchfuehrungssystem File: globals.php Description: Globale Variablen History: created: 2003/06/05 @ 14:58 by: Dominique Petersen content: Just guess it! :-) / $_systemname = "Buchführungssystem"; $_systemversion = "0.96 beta"; $_systemwriter = "Softwarepraktikum Gruppe 1"; $_email_subject = "[SWP - Buchfuehrung] "; $_systemdir $_mysqlserver $_mysqluser $_mysqlpwd $_mysqldatabase = "/swp/"; = "infiniter.csn.tu-chemnitz.de"; = "swp"; = "ajh3t5z5"; = "swp"; $_maxsimultaneoususers = "1"; $_maxusers_filename = "bfs.tmp"; $_abschlussdatum = strtotime(date("d F Y")); // EOF 13

index.php 10.07.2003 23:26 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 <?php / SWP - Buchfuehrungssystem File: index.php Description: Eröffnungsdatei History: created: 2003/06/05 @ 15:03 by: Dominique Petersen / // einbinden der globalen Variablen include_once("globals.php"); // einbinden des Error-Handlings include_once("error.php"); // einbinden der Oberflaeche include_once("interface.php"); // einbinden der Datenbank include_once("datenbank.php"); if(db_getconnectedusers() == "") else // starten des Seitenlayouts IF_init_table("active"); // Inhalt laden und "rechts unten" ausgeben include("./main/content.php"); // starten des Seitenlayouts IF_init_table("inactive"); // access denied echo "<br>".error_decode("0131"); echo "<br><br><center>bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal."; echo "<br><br><br><input value=\" Nochmal versuchen \" type=button onclick=\"self.location.href='index.php'\"></center>"; // beenden des Seitenlayouts IF_end_table(); // EOF 14

main.php 10.07.2003 23:27 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 <?php / SWP - Buchfuehrungssystem File: main.php Description: Hauptdatei History: created: 2003/06/05 @ 15:03 by: Dominique Petersen / // einbinden der globalen Variablen include_once("globals.php"); // einbinden des Error-Handlings include_once("error.php"); // einbinden der Oberflaeche include_once("interface.php"); // einbinden der Datenbank include_once("datenbank.php"); // starten des Seitenlayouts IF_init_table("active"); // Inhalt laden und "rechts unten" ausgeben include("./main/content.php"); // beenden des Seitenlayouts IF_end_table(); // EOF 15

content.php 10.07.2003 23:27 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 <?php / SWP - Buchfuehrungssystem File: /main/content.php Description: Auflistung des Systeminhalts History: created: 2003/06/05 @ 16:49 by: Dominique Petersen content: die Startseite, mit allen Infos / // einbinden der globalen Variablen include_once("globals.php"); <center><h2> <br>inhalt des <?php echo $GLOBALS["_systemname"]; <br><br><br> </h2></center> <table align=center> <td><h3>buchung</h3></td> <td><h3>anzeigen</h3></td> <td> direkt</td> <td> Konto</td> <td> über Geschäftsfall</td> <td> Grundbuch</td> <td> </td> <td> Geschäftsfall</td> <td> </td> <td> Bilanz<br><br><br><br></td> <td><h3>bearbeiten</h3></td> <td><h3>bilanz</h3></td> <td> Konto anlegen</td> <td> Schlussbilanz erstellen</td> <td> Geschäftsfall anlegen </td> <td> Eröffnungsbilanz mittels Inventarliste erstellen</td> <td> Geschäftsfall löschen</td> <td> </td> <td> Archivdaten löschen</td> <td> </td> </table> <?php // EOF 16

ende.php 10.07.2003 23:28 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 <?php / SWP - Buchfuehrungssystem File: ende.php Description: Beendet das Programm History: created: 2003/06/05 @ 18:21 by: Dominique Petersen content: all leads to an end... / // einbinden der Datenbank include_once("datenbank.php"); // "entferne" angemeldeten Benutzer DB_removeConnectedUser(); <html> <head> <title>das Programm kann nun geschlossen werden.</title> </head> <body onload='javascript:self.close()' bgcolor="#000000"> <br><br><br><br><br> <center><b><font face="arial Black" color="#cc6600" size="6">sie können den Browser jetzt schliessen.</font></b></center> </body> </html> <?php // EOF 17

error.php 10.07.2003 23:28 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 <?php / SWP - Buchfuehrungssystem File: error.php Description: Datei fuers Error-Handling History: created: 2003/06/12 @ 20:07 by: Dominique Petersen content: error_decode() / // Funktion gibt die Fehlerbeschreibung anhand des Errorcodes wieder // Aufbau der FehlerNr (4 stellig) anhand eines Bsp: // "1234" -> 12 3 4 // 12. Modul 3. Funktion 4. Fehler // Gänsefüsschen (") nicht vergessen!!! function error_decode($fehlernr) if (($FehlerNr == 0) OR ($FehlerNr == "")) return ""; // Error Array Table // Modul 1: Datenbanken $error_array["0111"] = "Verbindung zur Datenbank konnte nicht aufgebaut werden."; $error_array["0121"] = "Verbindung zur Datenbank konnte nicht geschlossen werden."; $error_array["0131"] = "Die Höchstgrenze der gleichzeitigen Benutzeranzahl ist erreicht."; // Modul 2: Geschaeftsfaelle $error_array["0211"] = "Der neue Geschäftsfall konnte nicht in der Datenbank gespeichert werden."; $error_array["0221"] = "Der angegebene Geschäftsfall konnte nicht aus der Datenbank gelesen werden."; $error_array["0231"] = "Der angegebene Geschäftsfall konnte nicht aus der Datenbank gelöscht werden."; $error_array["0241"] = "Mindestesns ein Geschäftsfall konnte nicht aus der Datenbank gelesen werden."; // Modul 3: Konten $error_array["0311"] = "Das neue Konto konnte nicht in der Datenbank gespeichert werden."; $error_array["0321"] = "Das angegebene Konto konnte nicht aus der Datenbank gelesen werden."; $error_array["0331"] = "Mindestens ein Konto konnte nicht aus der Datenbank gelesen werden."; $error_array["0341"] = "Das angegebene Konto konnte nicht aus der Datenbank gelöscht werden."; $error_array["0351"] = "In das angegebene Konto konnte kein weiterer Inhalt eingefügt werden."; $error_array["0361"] = "Das Datumsflag des angegebenen Kontos konnte nicht geändert werden."; // Modul 4: Grundbuecher $error_array["0411"] = "Das neue Grundbuch konnte nicht in der Datenbank gespeichert werden."; $error_array["0421"] = "Das angegebene Grundbuch konnte nicht aus der Datenbank gelesen werden."; $error_array["0431"] = "Mindestens ein Grundbuch konnte nicht aus der Datenbank gelesen werden."; $error_array["0441"] = "Das angegebene Grundbuch konnte nicht aus der Datenbank gelöscht werden."; $error_array["0451"] = "In das angegebene Grundbuch konnte kein weiterer Inhalt eingefügt werden."; $error_array["0461"] = "Das Datumsflag des angegebenen Grundbuchs konnte nicht geändert werden."; // Modul 5: Bilanzen $error_array["0511"] = "Die neue Bilanz konnte nicht in der Datenbank gespeichert werden."; $error_array["0521"] = "Die angegebene Bilanz konnte nicht aus der Datenbank gelesen werden."; $error_array["0531"] = "Mindestens eine Bilanz konnte nicht aus der Datenbank gelesen 18

error.php 10.07.2003 23:28 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 werden."; $error_array["0541"] = "Die angegebene Bilanz konnte nicht aus der Datenbank gelöscht werden."; $error_array["0551"] = "In die angegebene Bilanz konnte kein weiterer Inhalt eingefügt werden."; // Modul 6: Geschaeftsfallanzeige $error_array["0611"] = "Der angegebene Geschäftsfall wurde in der Datenbank nicht gefunden."; // Modul 7: Geschaeftsfallbearbeitung $error_array["0711"] = "Der angegebene Geschäftsfall existiert bereits in der Datenbank."; $error_array["0721"] = "Der angegebene Geschäftsfall wurde in der Datenbank nicht gefunden."; $error_array["0731"] = "Die angegebene Nummer ist ungültig."; $error_array["0732"] = "Der angegebene Name ist mir zu kurz."; // Modul 8: Kontoanzeige $error_array["0811"] = "Das angegebene Konto wurde in der Datenbank nicht gefunden."; $error_array["0821"] = "Es wurden keine Konten gefunden."; // Modul 9: Kontobearbeitung $error_array["0911"] = "Das angegebene Konto konnte nicht in der Datenbank angelegt werden."; $error_array["0912"] = "Das angegebene Konto ist bereits in der Datenbank vorhanden."; $error_array["0921"] = "Das angegebene Konto konnte nicht aus der Datenbank gelöscht werden."; $error_array["0931"] = "Die angegebene Kontonummer ist ungültig."; $error_array["0932"] = "Der angegebene Name ist mir ein wenig zu kurz."; // Modul 10: Buchung $error_array["1011"] = "Zwischen zu buchenden Soll und Haben Beträgen besteht eine Differenz."; $error_array["1012"] = "Es wurde versucht, auf ein abgeschlossenes Konto zu buchen."; $error_array["1013"] = "Es wurde mindestens ein ungültiger Betrag angegeben."; // Modul 11: Grundbuchanzeige $error_array["1111"] = "Das angegebene Grundbuch konnte nicht gelesen werden."; // Modul 12: Archivdatenloeschung $error_array["1211"] = "Es wurden keine Archivdaten gefunden, die älter als 10 Jahre sind. "; $error_array["1212"] = "Bei der Löschung von alten Datenbeständen ist ein Fehler aufgetreten."; // Modul 13: SBilanzerstellung $error_array["1311"] = "Schlussbilanz kann nicht erstellt werden, da keine Eröffnungsbilanz gefunden wurde!"; $error_array["1321"] = "Grundbuch konnte nicht abgeschlossen werden!"; $error_array["1322"] = "Fehler beim Anlegen eines neuen Grundbuches (altes wurde bereits abgeschlossen)!"; $error_array["1323"] = "Kein offenes Grundbuch in der Datenbank gefunden!"; $error_array["1331"] = "Fehler bei Bilanzerstellung (Bilanz von heute existiert bereits und kann nicht erstellt werden)!"; $error_array["1332"] = "Fehler bei Bilanzerstellung (offenen Konten können nicht gefunden bzw. ausgelesen werden)!"; $error_array["1333"] = "Eines der Konten konnte nicht abgeschlossen oder neuangelegt werden!"; $error_array["1334"] = "Fehler in Unterfunktion von Bilanz_erstellen!"; $error_array["1335"] = "Fehler in Unterfunktion Grundbuch_abschließen_und_neu von Bilanzerstellen! -> Grundbuch wurde nicht abgeschlossen oder neu angelegt!"; $error_array["1341"] = "Fehler in Konto_abschliessen_und_neu!"; $error_array["1342"] = "Fehler bei Kontoabschlussbuchung!"; $error_array["1343"] = "Fehler bei Grundbucheintrag für Kontoabschluß!"; $error_array["1344"] = "Fehler beim setzen des Konto_abschluss_flag!"; $error_array["1345"] = "Fehler beim Neuerstellen eines abgeschlossenen Kontos!"; $error_array["1351"] = "Fehler beim Anlegen einer neuen (leeren) Abschlußbilanz!"; $error_array["1352"] = "Konto (SBK) konnte nicht gefunden/ausgelesen werden!"; $error_array["1353"] = "In Bilanz konnte nicht geschrieben werden!"; $error_array["1354"] = "Konto (SBK) konnte nicht abgeschlossen werden (Fehler beim Setzten des Abschlussflags)!"; $error_array["1355"] = "Fehler beim anlegen eines neuen SBK (altes bereits abgeschlossen!)!"; // Modul 14: EBilanzerstellung $error_array["1311"] = "Die EBilanz konnte nicht erstellt werden."; $error_array["1421"] = "Es existiert bereits eine Bilanz in der Datenbank -> EB kann 19

error.php 10.07.2003 23:28 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 // EOF nicht erstellt werden!"; $error_array["1422"] = "Fehler beim anlegen einer neuen (leeren) Bilanz!"; $error_array["1423"] = "Fehler beim Konten suchen/auslesen bzw. es wurden keine Konten mit Anfangsbeständen gefunden!"; $error_array["1424"] = "Fehler, es konnte kein neues (leeres) Grundbuch angelegt werden!"; $error_array["1431"] = "Fehler bei der Datenübermittlung zum AB_Änderung_vortragen!"; $error_array["1432"] = "Fehler beim Öffnen der Eröffnungsbilanz zum Eintragen der AB!"; $error_array["1433"] = "Fehler beim Schreiben in die Eröffnungsbilanz!"; $error_array["1434"] = "Fehler beim Buchen in ein Konto!"; // Modul 15: Bilanzanzeige $error_array["1511"] = "Die angegebene Bilanz konnte nicht gefunden werden."; // Modul 16: Parameter (globale Dateien) $error_array["1611"] = " "; // da gibt's nun wirklich nix g // Modul 17: Fehlerbehandlung $error_array["1711"] = "Es wurde zu der gegebenen Fehlernummer ".$FehlerNr." keine Beschreibung gefunden."; // Modul 18: Hilfe $error_array["1811"] = " "; // die Hilfe kann keine Fehler haben // Modul 19: Buchfuehrungsverwaltung $error_array["1931"] = "Der aufzurufende Geschäftsfall enthält ungültige Informationen."; $error_array["1941"] = "Das angegebene Datum ist von ungültigem Format."; $error_array["1951"] = "Es sind noch zu wenige Konten angelegt, um einen sinnvollen Geschäftsfall definieren zu können."; // Modul 20: Nutzerinterface $error_array["2011"] = " "; // Nutzerinterface kann keine Fehler haben // check on valid errorcode if ($error_array[$fehlernr] == "") $FehlerNr = "1711"; // output error return "<center><b><font color=red>oops: </font></b>".$error_array[$fehlernr]."</center>"; 20

impressum.php 10.07.2003 23:29 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 <?php / SWP - Buchfuehrungssystem File: impressum.php Description: Copyrightinformationen History: created: 2003/06/05 @ 17:52 by: Dominique Petersen content: just a simple PHP (okay, more HTML) script / include_once("globals.php"); <html> <body> <h2> <?php echo("\"".$globals["_systemname"]."\" Entwicklerteam:<br>"); </h2> <table> <td><b>teamleiter:</b><br><br></td> <td><a href='mailto:email@dominique-petersen.com?subject=<?php echo $GLOBALS["_email_subject"]; '>Dominique Petersen</a><br><br></td> <td><b>teammitglieder:</b></td> <td><a href='mailto:annette.keusch@informatik.tu-chemnitz.de?subject=<?php echo $GLOBALS["_email_subject"]; '>Annette Keusch</a></td> <td> </td> <td><a href='mailto:nadine.pollmer@informatik.tu-chemnitz.de?subject=<?php echo $GLOBALS["_email_subject"]; '>Nadine Pollmer</a></td> <td> </td> <td><a href='mailto:dirk.brueckner@informatik.tu-chemnitz.de?subject=<?php echo $GLOBALS["_email_subject"]; '>Dirk Brückner</a></td> <td> </td> <td><a href='mailto:marco.doering@informatik.tu-chemnitz.de?subject=<?php echo $GLOBALS["_email_subject"]; '>Marco Döring</a><br><br></td> <td><b>homepage:</b><br><br></td> <td><a href='http://www.softwarepraktikum.de'>www.softwarepraktikum.de</a><br><br></td> </table> </body> </html> <?php // EOF 21

interface.php 10.07.2003 23:30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 <?php / SWP - Buchfuehrungssystem File: interface.php Description: Oberflaeche des Systems History: created: 2003/06/05 @ 15:10 by: Dominique Petersen content: IF_init_table() IF_end_table() changed: 2003/06/17 @ 12:18 by: Dominique Petersen content: IF_makeStartButton() IF_makeYesNoButton() IF_doSpaces() IF_fillzero() IF_adddecimal() IF_number() IF_prepKto() IF_anzeigen_Konto() IF_anzeigen_Geschaeftsfall() IF_bearbeiten_GF_anlegen_Best() IF_bearbeiten_GF_loeschen() IF_bearbeiten_GF_loeschen_Best() IF_BearbeitenKtoAnlegen() changed: 2003/06/28 by: Dirk Brückner content: IF_StartBuchung() IF_BuchungDirekt() IF_BuchungGF() IF_BuchungBest() IF_StartAnzeige() IF_StartBearbeiten() IF_BearbeitenGFAnlegen() changed: 2003/07/07 by: Marco Döring content: IF_anzeigen_bilanz_inhalt() IF_anzeigen_bilanz_sbe() IF_anzeigen_bilanz() IF_StartBilanz() IF_SB_get_Data() IF_EB_get_Data() / // einbinden des ErrorHandlings include_once("error.php"); // gibt eine angegebene Anzahl an Leerzeichen aus function IF_doSpaces($anzahl) for($i = 0; $i<$anzahl; $i++) echo " "; // fill string up to given lenght with zeros function IF_fillzero($temp, $count) if (floor($temp) == ceil($temp)) return ",00"; $end=substr($temp, strpos($temp, ".")+1); while(strlen($end) < $count) $end=$end."0"; return ",".$end; 22

interface.php 10.07.2003 23:30 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 //floor($temp). // add decimal for perfect output ggg function IF_adddecimal($temp) $string = ""; if($temp < 1000) return floor($temp); else while($temp >= 1000) $div=$temp % 1000; if($string == "") $string = $div; else $string = $div.".".$string; $temp = floor($temp / 1000); return $temp.".".$string; // add decimal && fill up with zeros function IF_number($temp) return IF_adddecimal($temp).IF_fillzero($temp, 2); // füge führende Null hinzu function IF_prepKto($temp) while(strlen($temp) < 4) $temp="0".$temp; return $temp; //!begin draw main menu table // IF_status: // "active": draw all buttons accessable // "inactive": draw first four buttons disabled // IF_additional_title: // (optional) expend title with " - $IF_additional_title" function IF_init_table($IF_status = "active", $IF_additional_title = "null") <html> <head> </head> <body> <table border=1 width=100% height=95%> <tr width=100% height=100%> <td height=100% width=150px> <form action="buchung.php" method=post> <center> <?php if ($IF_status == "inactive") <input type="button" disabled name="do_buchung" value=" Buchung " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; buchung/buchung.php'"><br><br> <input type="button" disabled name="do_buchung" value=" Anzeigen " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; anzeigen/anzeigen.php'"><br><br> <input type="button" disabled name="do_buchung" value=" Bearbeiten " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; bearbeiten/bearbeiten.php'"><br><br> <input type="button" disabled name="do_buchung" value=" Bilanz " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; bilanz/bilanz.php'"><br><br><br><br><br><br><br><br><br><br><br><br> <input type="button" name="do_buchung" value=" Hilfe " onclick="window.open('<?php echo $GLOBALS["_systemdir"]; hilfe/hilfe.php','displaywindow','width=800,height=670,menubar=no,location=no,a lwaysraised=yes,screenx=0,screeny=0')"><br><br> 23

interface.php 10.07.2003 23:30 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 <input type="button" disabled name="do_buchung" value=" Beenden " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; ende.php'"> <?php else <input type="button" name="do_buchung" value=" Buchung " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; buchung/buchung.php'"><br><br> <input type="button" name="do_buchung" value=" Anzeigen " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; anzeigen/anzeigen.php'"><br><br> <input type="button" name="do_buchung" value=" Bearbeiten " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; bearbeiten/bearbeiten.php'"><br><br> <input type="button" name="do_buchung" value=" Bilanz " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; bilanz/bilanz.php'"><br><br><br><br><br><br><br><br><br><br><br><br> <input type="button" name="do_buchung" value=" Hilfe " onclick="window.open('<?php echo $GLOBALS["_systemdir"]; hilfe/hilfe.php','displaywindow','width=800,height=670,menubar=no,location=no,a lwaysraised=yes,screenx=0,screeny=0')"><br><br> <input type="button" name="do_buchung" value=" Beenden " onclick="self.location.href='<?php echo $GLOBALS["_systemdir"]; ende.php'"> <?php </center> </form> </td> <td> <table border=1 width=100% height=100%> <tr width=100% height=70px> <td> <center><h1> <?php echo($globals["_systemname"]); if($if_additional_title!= "null") echo(" - ".$IF_additional_title) </h1></center> </td> <tr width=100%> <td align=left valign=top> <?php //!draw main menu table end // no parameters function IF_end_table() </td> </table> </td> </table> <?php echo("<address><br>".$globals["_systemname"].", Version ".$GLOBALS["_systemversion"].", written by <a href=".$globals["_systemdir"]."impressum.php target=_new>".$globals["_systemwriter"]."</a></address>"); </body> </html> <?php 24

interface.php 10.07.2003 23:30 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 // gibt aus einem Datumsflag ein gültiges Datum zurück function IF_showDatumsflag($Datumsflag) if ($Datumsflag == "0") return "aktuell"; else return date("d.m.y", $Datumsflag); // erstellt einen HTML Button, der zur Startseite führt function IF_makeStartButton($b_name) echo "<br><form action='../main.php' method=post>"; echo"<center><input type='button' name='gotostart' value='".$b_name."' onclick=\"self.location.href='../main.php'\"></center>"; echo "</form>"; // erstellt zwei HTML Buttons, die zu den gegebenen Links führen function IF_makeYesNoButton($name1, $link1, $name2, $link2) echo "<br><br><br><form action='../main.php' method=post><center>"; echo "<input type='button' name='yes' value='".$name1."' onclick=\"self.location.href='".$link1."'\">"; IF_doSpaces(30); echo "<input type='button' name='no' value='".$name2."' onclick=\"self.location.href='".$link2."'\">"; echo "</center></form>"; // zeigt anhand der angegebenen Daten ein Konto als HTML an function IF_anzeigen_Konto($Kto_Nr, $Kto_Name, $Kto_Art, $Kto_Datumsflag, $OberKto_Nr, $Kto_Sollsumme, $Kto_Habensumme, $Kto_Sollbuchung, $Kto_Habenbuchung) // Header echo "<br><center><table border=0><td> <b>kontonummer:</b> ".IF_prepKto($Kto_Nr)."</td><td> <b>kontoname:</b> ".$Kto_Name."</td><td> <b>kontoart:</b> ".$Kto_Art."</td>"; echo "<td> <b>datum:</b> "; echo IF_showDatumsflag($Kto_Datumsflag); echo "</td><td> <b>oberkontonummer:</b> ".$OberKto_Nr."</td>"; echo "<td colspan=3> <b>inhalt:</b><br><br></td></table>"; echo "<table border=1><td width=350 align=left><b>soll (in )</b></td><td width=350 align=right><b>haben (in )</b></td>"; echo "<td valign=top align=center>"; // Sollinhalt echo "<table width=100%>"; foreach ($Kto_Sollbuchung as $key => $value) if($value[3]!=0) echo "<td>".$value[0]."</td><td>".$value[1]."</td><td>".$value[2]."</td><td align=right>".if_number($value[3])."</td>"; else echo "<td> </td><td></td><td></td><td align=right></td>"; echo "</table>"; echo "</td><td valign=top>"; // Habeninhalt echo "<table width=100%>"; foreach ($Kto_Habenbuchung as $key => $value) if($value[3]!=0) echo "<td>".$value[0]."</td><td>".$value[1]."</td><td>".$value[2]."</td><td align=right>".if_number($value[3])."</td>"; else echo "<td> </td><td></td><td></td><td align=right></td>"; echo "</table>"; echo "</td>"; echo "<td align=right><b>".if_number($kto_sollsumme)."</b> </td><td align=right><b>".if_number($kto_habensumme)."</b> </td></table>"; 25

interface.php 10.07.2003 23:30 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 // zeigt anhand der angegebenen Daten ein Geschäftsfall als HTML an // setzt voraus, dass GF_Vorgangsdaten nach Soll und Haben sortiert sind! function IF_anzeigen_Geschaeftsfall($GF_Nr, $GF_Name, $GF_Vorgangsdaten) echo "<br><center><table border=0><td> <b>geschäftsfallnummer:</b> ".$GF_Nr."</td><td colspan=2> <b>geschäftsfallname:</b> ".$GF_Name."</td>"; echo "<td colspan=3><br><br><center><table border=0>"; $first = 1; foreach ($GF_Vorgangsdaten as $key => $value) if($first) if (strtolower($value[2]) == "haben") $first = 0; echo "<td></td><td align=center>an</td><td><br><br></td>"; echo "<td> ".$value[0]."</td><td> ". $value[1]."</td><td> ".$value[2]."</td>"; echo "</table></center></td></table></center>"; // gibt die Frage (bb!bb) aus function IF_bearbeiten_GF_loeschen($GF_Nr, $GF_Name) echo "<center><br><table><td colspan=2>soll folgender Geschäftsfall wirklich gelöscht werden?<br><br></td>"; echo "<td><b>geschäftsfall Nummer:</b> ".$GF_Nr."</td><td> <b>geschäftsfall Name:</b> ".$GF_Name."</td></table><br><br>"; // gibt die Bestätigung zum Geschäftsfall anlegen aus function IF_bearbeiten_GF_anlegen_Best($GF_Nr) echo "<br> Der angegebene Geschäftsfall mit der Nummer ".$GF_Nr." wurde erfolgreich angelegt."; // gibt die jeweilige Bestätigung zum Geschäftsfall löschen aus function IF_bearbeiten_GF_loeschen_Best($GF_Nr, $Result) if($result!= 0) echo "<br> ".error_decode($result); else echo "<br> Der Geschäftsfall mit der Nummer \"".$GF_Nr."\" wurde gelöscht."; // gibt die jeweilige Bestätigung zum Konto löschen aus function IF_bearbeiten_Kto_anlegen_Best($Kto_Nr) echo "<br> Das Konto mit der Nummer \"".IF_prepKto((INTEGER)$Kto_Nr)."\" wurde erfolgreich angelegt."; //Formularoberfläche zur Auswahl Buchung direkt oder Gesch.-Fall function IF_StartBuchung ($GF_Nr, $GF_Name) // starten des Seitenlayouts 26

interface.php 10.07.2003 23:30 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 IF_init_table("active", "Buchung-Auswahl"); <form action="buchung.php" method="post" > <center><table width=80% height=80% > <td><h3>buchung durchführen</h3></td> <td> <input type="radio" name="buchungsart" value="direkt" checked>direkt </td> <td> <input type="radio" name="buchungsart" value="gf">über Geschäftsfall <br><br> <select name="gf" size="10"> <?php //generiert eine Auswahlliste mit allen Geschaeftsfaellen //Uebergabe der GF-Nr als string an buchung.php for($i=0; $i<count($gf_nr); $i++) echo("<option selected value='". $GF_Nr[$i]. "'>".$GF_Nr[$i]. " ".$GF_Name[$i]."</option>"); </select> </td> <td align="right"> <input type="button" value=" Abbrechen " onclick="self.location.href='../main.php'"> <input type="submit" value=" Weiter " > </td> </table></center> </form> <?php // beenden des Seitenlayouts IF_end_table(); // generiert Eingabemaske fuer direkte Buchung, mehrmals aufgerufen wenn komplexe Buchung function IF_BuchungDirekt($anzahl_SK, $anzahl_hk,$kontenliste) // starten des Seitenlayouts IF_init_table("active", "Buchung-direkt"); <center> <form action="buchung.php" method="post"> <!-- verstecktes Feld zur Uebergabe des Status 'jetzt buchen'--> <input type='hidden' name='buchungsart' value='buchen!'> <table height=80% width=80% > <td><h3>buchungssatz</h3></td> <td align="right"><input type="text" name="datum" value="<? echo date('d.m.y');" size="10" maxlength="10"> </td> <td colspan=2>bitte wählen Sie vor Eintragen der Beträge die gewünschte Anzahl Konten.</td> <td colspan=2> <table> <td> <!-- Beginn des Bereichs der Sollkonten--> <table> <?php for($i=0; $i<$anzahl_sk; $i++) 27

interface.php 10.07.2003 23:30 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 echo("<td><select name='sk".$i." size='1'>"); // Auswahloption fuer jedes moegliche Konto ausser SBK for($j=0; $j<count($kontenliste['kto_nr']); $j++) Kto_get($kontenliste['Kto_Nr'][$j], "", &$Kto_Art, "0", "", "", "", "", "", ""); if($kto_art!= "SBK") // alle ausser SBK // 'Kto_NrKto_Name' als Eintrag und Beschriftung echo("<option value='". $kontenliste['kto_nr'][$j]. "". $kontenliste['kto_name'][$j]. "'>". IF_prepKto($kontenliste['Kto_Nr'][$j])." ". $kontenliste['kto_name'][$j]); echo("</select></td> <td width='50'>soll</td> <td> <input type='text' name='sk_betrag".$i. "' value='0.00' size='10' maxlength='10'> </input> </td> <td>&#128;</td> "); </table> </td> <td> <!-- Klickbutton fuer Erweiterung der Sollkontenliste --> <script type="text/javascript"> <!-- function ein_konto_mehr(anzahl_sk, anzahl_hk) self.location.href="buchung.php?&sk="+anzahl_sk+"&hk="+anzahl_hk; //--> </script> <input type="button" value=" + " onclick="ein_konto_mehr(<?php echo($anzahl_sk+1);, <?php echo $anzahl_hk; )"> </input> </td> <td align='center'>an</td> <!-- Beginn des Bereichs der Habenkonten --> <td> <table> <?php for($i=0; $i<$anzahl_hk; $i++) echo("<td><select name='hk".$i." size='1'>"); // Auswahloption fuer jedes moegliche Konto ausser SBK for($j=0; $j<count($kontenliste['kto_nr']); $j++) Kto_get($kontenliste['Kto_Nr'][$j], "", &$Kto_Art, "0", "", "", "", "", "", ""); if($kto_art!= "SBK") // alle ausser SBK // 'Kto_NrKto_Name' als Eintrag und Beschriftung echo("<option value='". $kontenliste['kto_nr'][$j]. "". $kontenliste['kto_name'][$j]. "'>". IF_prepKto($kontenliste['Kto_Nr'][$j])." ". $kontenliste['kto_name'][$j]); echo("</select></td> <td width='50'>haben</td> <td> <input type='text' name='hk_betrag".$i. "' value='0.00' size='10' maxlength='10'> </input> </td> <td>&#128;</td> "); 28