CAO-XTensions
-------------

PHP-basierte Erweiterungen fr das
freie Warenwirtschaftssystem CAO-Faktura.

Versionshistorie:

0.1.0

 - Designentwurf, basierend auf dem Windows-basierten Programm
   CAO-Faktura, dessen Datenbank diesem Projekt zugrunde liegt.

 - Anpassung des Black Heartware CMS fr das Projekt.

 - Dummies fr geplante Module.


 0.2.0

 - Modul: Lagerbestand

 - Modul: Wareneingangsjournal


 0.2.5

 - Modul: RMA

 - Modul: RMA-Journal



 0.3.0

 - Bugfixes RMA-Modul

 - Modul: Eigenbestand

 - Modul: Reparaturbestand


 0.3.1

 - Design berarbeitet


 0.4.0 (Calisto)

 - Datenbank-Konfiguration ber Textdatei (caoxt.ini)

 - Flexibleres Modulsystem (ber scandir())

 - Logout-Button in Home-Modul

 - .htaccess hinzugefgt

 - Modul: Preis-Kalkulation

 - RMA-Modul berarbeitet und erweitert:
    - Bugfixes
    - Anpassung an neue Datenbankstruktur
    - Verschachtelung der Plausibilittsprfungen
      soweit mglich aufgehoben. Effekte:
      - Alle Eingabe- / Plausibilittsfehler
        werden nun angezeigt.
      - Formular merkt sich korrekte Eingaben,
        erneute Eingabe nicht mehr ntig
    - Fremd-RMA eingebaut (fr Kunden an Hersteller)
    - RMA-Nummer des Lieferanten
      ist nachtrglich nderbar
    - Nun deutlich ber 1000 Zeilen Sourcecode

 - Erweiterung und Umstellung der Datenbank:
   Module sind nicht mehr von
   Userfeldern der Artikel abhngig.

 - Modul: Reparaturbestand an neues
   Datenbankdesign angepasst

 - Modul: Eigenbestand an neues
   Datenbankdesign angepasst

 - Modul: RMA-Journal an neues
   Datenbankdesign angepasst

 - Unfertige Module fr Release
   ersteinmal rausgeschmissen

 - System komplett unter die GPL gestellt



 0.4.1 (Calisto)

 - error_reporting() ausgeschaltet, um
   Verwirrungen und unntige
   Ausgaben zu vermeiden.

 - SQL-Abfragen gendert,
   TABELLENNAMEN werden nun
   GROSS abgefragt.
   Danke an JanP fr den
   Hinweis zur Linux-
   Kompatibilitt

 - Passwortabfrage hinzu-
   gefgt. Danke an
   Christian (hhcm) fr
   den entsprechenden
   Sourcecode

 - PHP4-Support.
   Danke an Christian
   (hhcm) fr den
   Sourcecode


 0.4.2 (Calisto)

 - Bug im Umgang mit alphanumerischen
   Artikelnummern im RMA-Modul
   behoben

 - Bug im Setup-Script behoben, der
   Probleme mit einigen MySQL-Versionen
   machen kann: Danke an Tom (diabolo2k)
   fr den entsprechenden Code


 0.4.3 (Calisto)

 - Bugfix: In Fehlerbeschreibung, Kommentar
   und Statuskommentaren kann jetzt
   mit Anfhrungsstrichen (" und ')
   gearbeitet werden.


 0.4.4 (Calisto)

 - Ein Fall aus dem RMA-Journal kann
   in eine aktive RMA kopiert
   werden, um einen vermeintlich
   abgeschlossenen Fall erneut
   bearbeiten zu knnen.
   Jedes Datum ist in das bliche
   Formular zum Erstellen eines
   RMA-Falls vorgegeben, kann aber
   gendert werden.
   Der Link dazu findet sich rechts neben
   jedem Fall im RMA-Journal ("Kopie erstellen").

 - Im RMA-Journal wird nun der Artikel-
   name in der bersicht angezeigt.

 - Bugfix: RMA-Bestand wird nun
   korrekt verwaltet. Neue RMA-Artikel
   wurden u.U. nicht angelegt.

 - Bugfix: Anzeige des Kundennamens
   in RMA-bersicht bei Fremd-RMA
   funktioniert nun.

 - Bugfix: Anzeige des Kundennamens
   in bersicht des RMA-Journal bei
   Fremd-RMA funktioniert nun.

 - Bugfix: Anzeigeproblem bei
   Strings mit Anfhrungszeichen im
   RMA-Journal behoben.


0.4.5 (Calisto)

 - Bugfix: Logindaten mussten unter
   Umstnden doppelt eingegeben werden.
   Fehlerhafte Passwortprfung, die den
   Effekt produzierte, wurde korrigiert.


0.5.0 (Chameleon)

 - Modul: Bestnde (Bestandsnderungen)
   Es ist nun mglich, Ware aus dem Lager
   auszubuchen (und wieder zurck).
   Ziele dieser Umbuchungen knnen
   "Lager", "Eigenbestand", "Verlust"
   oder auch der "Reparaturbestand" sein.
   Zudem muss die Buchung kommentiert
   werden.
   Jede Buchung wirkt sich auf die ent-
   sprechenden Lager aus, zudem knnen
   Buchungen fr die FiBu generiert werden,
   das Gegenkonto ist frei definierbar.
   Im Prinzip hnlich der "CAO-Kasse".

 - Modul: Bestandsnderungsjournal.
   Alle Bestandsnderungen knnen
   als monatliche Liste eingesehen werden.

 - Modul: Rechnungsjournal.
   Erweiterte Anzeige zum Rechnungsjournal.
   Mglichkeit, aus alter Rechnung eine neue
   Rechnung oder ein Angebot zu kopieren.
   Mglichkeit, einen Artikel aus Rechnung
   (ggf. samt Seriennummer) direkt in RMA-Fall zu
   bernehmen (Kunden-RMA).

 - Modul: Wareneingangsjournal (Erweiterung)
   Mglichkeit, einen Artikel aus WE (ggf. samt
   Seriennummer) direkt in einen RMA-Fall
   zu bernehmen (Eigen-RMA).

 - Modul: RMA (Erweiterungen)
    - Mglichkeit, die eingegebene Seriennummer
      aus dem S/N-Bestand "auszubuchen", da dies
      bei einer Gutschrift oder Austausch nicht
      mglich ist.
      ber die Konfiguration abschaltbar.
    - Es knnen Quittungen fr den
      reklamierenden Kunden erstellt
      werden (siehe "Reports").
    - Neue Mglichkeiten, einen RMA-Fall
      abzuschliessen:
       - Austausch abgelehnt
       - Kein Fehler feststellbar

 - Modul: Home / Info (Erweiterung)
   Homepage, Lizenz und
   Readme verlinkt, Kontaktdaten,
   sowie ein Online-Versionsabgleich.
   Die Online-Funktion ist in der
   Konfiguration abschaltbar.

 - Modul: Seriennummernverwaltung
   Ausbuchen von Seriennummern, die
   noch als Leiche im System hngen,
   Buchen von S/N nach RMA, etc..
   Benutzer und Datum werden
   protokolliert.

 - Modul: Seriennummernprotokoll
   Monatliche Liste der nderungen
   am S/N-Bestand.

 - Modul: Konfiguration
   Die Werte der caoxt.ini knnen
   und sollten nun ber das
   Konfigurationsmodul gendert werden.
   Dazu ist ein spezielles Supervisor-
   Passwort ntig, welches in der
   caoxt.ini verschlsselt abgelegt ist.
   Datenbankzugang, Moduloptionen
   und DB-Tabellensetup (s.u.).

 - Neues Fehlerhandling:
   Ist die Datenbank nicht erreichbar
   oder die Logininformationen fehlen,
   so wird man nun auf das neue
   Konfigurationsmodul weitergeleitet.
   Nach Eingabe des Supervisorpassworts
   ist die nderung der Einstellungen
   auch offline mglich.

 - Stark vereinfachtes Datenbanksetup:
   Nach Einrichtung der Zugangsdaten
   knnen ber das Konfigurationsmodul
   fehlende Datenbanktabellen automatisch
   angelegt werden. Ein Update von einer
   Vorversion (0.4.X) oder eine
   Neuinstallation laufen ber dieselbe
   Installationsroutine ab.

 - includes/dbase.php entfernt. Erweiterte
   Funktionen der caoxt.ini werden nun
   von der includes/ini.php gemanaged.

 - "pref" in der caoxt.ini aktiviert.
   ber den Wert wird das Prefix der
   CAO-XT Datenbanktabellen definiert.
   Sollte nach dem erstmaligen Setup
   nicht mehr gendert werden.

 - Neue Monats-/Jahresnavigation fr die
   Journale. Um komfortabler arbeiten
   zu knnen, wurden Dropdown-Listen, wie
   bei Webanwendungen blich, fr die
   Navigation in den Journalen implementiert.
   Die "klassische" Navigation kann allerdings
   weiter genutzt werden. Dazu lediglich
   in der Konfiguration den Wert
   "navstyle=classic" setzen.

 - Modulnavigation berarbeitet:
   - Sektion "Hilfe" eingebaut
   - Info nach Hilfe verschoben
   - Einheitliche Hhe des Mens
     durch Nutzung von Dummiebuttons
   - Sektion "Werkzeuge" eingebaut

 - In allen Journalmodulen kann
   die Belegliste jetzt nach mehreren
   (aber nicht allen!) Kriterien sortiert
   werden, z.B. Belegnummer, Datum, Kunde, etc.
   Dazu auf den entsprechenden Spalten-
   kopf klicken.

 - Es knnen nun "Reports" generiert
   werden. Zunchst ist das Feature
   im RMA-Modul implementiert. Dem Kunden
   kann ein "Werkstattauftrag" mit den
   fr ihn relevanten Daten als Beleg
   ausgedruckt werden.
   Die Vorlage befindet sich als HTML-Datei
   im Ordner "reports" und kann an die
   persnlichen Gegebenheiten angepasst werden.
   Die Platzhalter "@@wert@@" mssen
   erhalten bleiben, da dort vom Programm
   die entsprechenden Falldaten eingetragen
   werden. Der Dateiname darf ebenfalls nicht
   gendert werden.
   Hilfe zu HTML: http://de.selfhtml.org

 - Bugfix: Bei Abschluss von "Fremd-RMA"
   werden nun keine Bestandsbuchungen
   am eigenen Lager mehr durchgefhrt.

 - Bugfix: Paletten der Navigations-
   Symbole korrigiert.

 - Bugfix: Fehler im RMA-Bestand und
   Eigenbestand behoben, wenn keine
   Daten vorhanden sind.
   Einem array_multisort() wurden
   in diesem Fall keine initialisierten
   Arrays als Parameter bergeben, was
   zu Fehlermeldungen fhrte.
   Danke an Andreas T. fr den Hinweis.


 0.5.1 (Chameleon)

 - In den Bestandsmodulen werden nun
   auch Artikel mit negativem Bestand
   angezeigt. Einzig Artikel mit Bestand
   "null" werden ausgeblendet.

 - Bugfix: Bestandsbuchungen auf das Lager
   werden nun korrekt durchgefhrt.
   Der alte Lagerbestand wurde als
   Berechnungsgrundlage nicht
   bercksichtigt.


 0.5.2 (Chameleon)

 - Bugfix: Falsch eingegebene Zugangsdaten
   fr die Datenbank werden vom Konfigurations-
   modul nun ausgewertet und ausgegeben.
   Danke an Oli (Onkel_Poppi) fr die
   entsprechenden Hinweise.

 - Einige Sicherheitsabfragen in Datenbankzugriffe
   verschiedener Module eingebaut.


  0.5.3 (Chameleon)

 - Kompatibilitt zu neueren Versionen von
   PHP5 verbessert. Wenn in der php.ini
   "register_long_arrays=Off" gesetzt ist,
   konnten $HTTP_GET_VARS und $HTTP_POST_VARS
   nicht verwendet werden, was das komplette
   System lahmlegte.
   Die entsprechenden Variablen werden nun
   mit ihren neuen Varianten $_GET und
   $_POST angesprochen.
   Mindestsystemanforderung ist damit
   PHP 4.1.0!

 - Modul: Sammler
   Es kann nun zu einer Bestellung (Rechnung
   in Bearbeitung) ein Formular fr die
   Materialsammlung im Lager erstellt werden.
   Zudem kann der Status des "Sammlers" ber
   das Modul gesetzt werden, der in CAO als
   Prfix im Bereich "Projekt/Kommentar"
   angezeigt wird:
   SA -> Sammler in Arbeit
   SF -> Sammler fertig
   Wie beim "RMA-Beleg" wird ein neues
   Fenster mit dem Beleg geffnet, wo
   dieser dann ausgedruckt werden kann.
   Eine Modifikation des Formulars ist
   an der Datei "reports/sammler.html"
   vorzunehmen.


  0.5.4 (Chameleon)

 - Die offenen Flle im RMA-Modul knnen nun
   nach mehreren Kriterien sortiert werden:
   RMA-Nummer, Kunde, Lieferant, Lief.-RMA,
   erstellt am, erstellt von.

 - Bugfix: Fr die in 0.5 eingefhrten End-
   Stadien wird nun das korrekte Icon
   in der RMA-Liste angezeigt.

 - Kleine nderungen am RMA-Journal.


  0.5.6 (Chameleon)

 - Bugfix: Beim manuellen Erstellen
   von RMA-Belegen geht der Status
   der Navigationsleiste nun nicht
   mehr verloren.

 - Bugfix: Diverse Kompatibilitts-
   Probleme mit Linux-Servern und
   PHP4-Installationen behoben.
   Der Einsatz unter solchen Systemen
   sollte nun problemfrei sein.

 - Etwa ein dutzend kleinere Fehler
   behoben.

 - Das System prft nun beim Start,
   ob die notwendige MySQL-Erweiterung
   fr PHP geladen ist.
   Ist dies nicht der Fall, versucht es
   diese selbststndig zu laden.
   Gelingt dies ebenfalls nicht, wird
   eine entsprechende Fehlermeldung
   vom Konfigurationsmodul angezeigt.

 - Falls der Browser dies untersttzt,
   werden die anzuzeigenden dynamischen
   Webseiten mittels gzip komprimiert
   an den Client bertragen, um schnellere
   Ladezeiten bei langen Tabellen zu erreichen
   und die Abschaltung des Browsercaches
   (Sicherheitsfeature, Dritte knnen
   keine eingesehenen Daten aus dem Cache
   rekonstruieren) fr das System
   auszugleichen.

 - In den Wizard fr das manuelle Erstellen
   von RMA-Belegen wird nun ein Hinweis
   fr die simplere Generierung von
   Kunden- und Eigen-RMA aus den
   entsprechenden Journalen angezeigt.

 - Einem RMA-Fall knnen nun Ersatzteile
   zugeordnet werden. Zum Abschluss des Falls
   kann eine Kundenrechnung automatisch
   generiert werden, folgende Optionen
   sind bei Kunden- und Fremd-RMA mglich:
    - keine Kundenrechnung erstellen
    - kostenfreie Garantieleistung
    - kostenpflichtige Garantieleistung
   Neben evtl. verbauten Ersatzteilen werden
   auch ausgetauschte Teile zwecks S/N-Erfassung
   in den Beleg generiert.

 - Neue RMA-Abschlussmglichkeiten hinzugefgt:
    - Reparierte Ware eingetroffen
    - Ware selbst repariert
   Diese Optionen dienen vorwiegend der korrekten
   Dokumentation und ggf. Seriennummerverwaltung.

 - RMA-Kommentarfunktion erweitert. Es sind nun
   mehrzeilige Kommentare im Verlauf mglich um
   Sachverhalte oder Testergebnisse genauer
   festhalten zu knnen.

 - Fr Formulare bentigte Adress- und
   Artikelnummern knnen nun ber
   Popup-Fenster gesucht und ausgewhlt werden.
   Die Arbeitsweise hnelt der von CAO,
   allerdings muss auf den gewnschten Datensatz
   geklickt werden; Nur in der Detailansicht
   ist eine bernahme der Kunden-, Lieferanten-
   oder Artikelnummer mglich.
   Das Verndern vorhandener und Anlegen neuer
   Datenstze in Adress- und Artikelstamm ist
   mglich.

 - Modul: Rechnungen. Belegerstellung
   wie unter CAO, mit leichten Verbesserungen
   auf der einen und leichten Einschrnkungen
   auf der anderen Seite.
   Beispielsweise werden in der Positions-
   bearbeitung Kontaktdaten wie Telefonnummern
   angezeit.


  0.5.7 (Chameleon)

 - Bugfix: fatal error bei verschiedenen Popup-
   Modulen unter PHP4.X behoben. Das System sollte nun
   unter PHP4.x ebenso stabil laufen wie unter PHP5.x.

 - Modulerweiterung: Rechnungen. Die erstellten Belege
   knnen nun auch gebucht und ber ein HTML-Formular
   ausgegeben und gedruckt werden. Bei der Buchung werden
   (wie im CAO-Hauptprogramm) die Lagerbestnde und
   Seriennummern angepasst. Der Abschluss der Rechnung
   entspricht damit voll dem des Hauptprogramms.
   Es sollte allerdings beachtet werden, dass eine Rechnung
   im HTML-Format den Empfnger nicht zum Vorsteuer-Abzug
   berechtigt! Dazu ist eine signierte PDF-Rechnung oder eine
   Rechnung in Papierform notwendig!
   Das HTML-Formular befindet sich im Ordner "reports"
   und kann den eigenen Bedrfnissen angepasst werden.

 - Modulerweiterung: Rechnungsjournal. Es knnen bereits
   erstellte Rechnungen als HTML-Formular ausgegeben werden
   (siehe Rechnungsmodul). Das Erstellen von Angeboten
   und Rechnungen wurde etwas bersichtlicher gemacht,
   es wird nun eine CAO-konforme "interne Nummer" fr den
   Beleg generiert.

 - Modul: Angebote. Es knnen nun analog zum Rechnungsmodul
   auch Angebote ber das Webinterface erstellt werden.
   Die Angebote knnen wie in CAO selbst bearbeitet, gespeichert
   und als HTML-Formular ausgegeben werden.
   Das HTML-Formular befindet sich im Ordner "reports"
   und kann den eigenen Bedrfnissen angepasst werden.

 - Modul: Angebotsjournal. Analog zum Rechnungsjournal
   existiert nun ein Angebotsjournal. Gespeicherte Angebote
   knnen eingesehen und als HTML-Formular ausgegeben werden
   (siehe Angebotsmodul). Es knnen zudem Rechnungen oder
   Angebotskopien aus dem Angebot erstellt und dann entweder
   unter CAO oder den entsprechenden CAO-XT-Modulen bearbeitet
   werden.

 - Abgesehen von Bugfixes letztes Release vor einer 100%
   CAO 1.4-konformen Version 0.6.x.


  0.5.7a (Chameleon)

 - Bugfix: Im Rechnungs- und Angebotsmodul sind nun
   analog zum CAO-Hauptprogramm alphanumerische
   Belegnummern mglich.

 - Bugfix: Fr die neuen RMA-Stadien werden nun
   in der bersicht korrekt die Statusleuchten angezeigt.

 - Bugfix: Aus RMA-Vorgngen generierte Garantierechnungen /
   Servicerechnungen benutzen fr die vorgenerierte Artikel-
   beschreibung nun den Langnamen statt des Kurznamens.

   
  0.5.7b (Chameleon)

 - Bugfix: Problem behoben, welches das Anlegen von RMA-
   Fllen bei Vorhandensein von alphanumerischen
   Kunden- oder Rechnungsnummern verhindert hat.


  0.5.7b (Chameleon fr CAO 1.4.x)

 - Anpassung an CAO Version 1.4.x
