/***************************************************************************
                          dokudoc.h  -  Interface Klasse DokuDoc (Model)
                             -------------------                                         
    begin                : Wed Aug  4 17:32:35 MEST 1999
                                           
    copyright            : (C) 1999 by Stephan Uhlmann                         
    email                : suhlmann@gmx.de                                     
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   * 
 *                                                                         *
 ***************************************************************************/

#ifndef DOKUDOC_H
#define DOKUDOC_H

// include files for QT
#include <qobject.h>

// application specific includes

#include "mappe.h"
#include "dokument.h"
#include "formular.h"
#include "vertrag.h"
#include "dauerauf.h"


/**
  * Die Klasse DokuDoc ist die Dokumenten Klasse (Model)
  * der Applikation.
  * Hier wird eine CDokumentenmappe angelegt und dessen
  * Persistenzhaltung implementiert.
  */


class DokuDoc : public QObject  {
  Q_OBJECT
public:
  /** Konstruktor */
  DokuDoc();
  /** Destruktor */
  ~DokuDoc();
  /** generiert eine neue Dokumentenmappe */
  void newDoc();
  /** speichert die Dokumentenmappe */
  bool save();
  /** speichert die Dokumentenmappe in die angegebene Datei */
  bool saveAs(QString filename);
  /** laedt eine Dokumentenmappe aus der angegebenen Datei */
  bool load(QString filename);
  /** schliesst die Dokumentenmappe */
  bool close();
  /** TRUE wenn die Dokumentenmappe seit dem letzten sichern geaendert wurde */
  bool isModified();
  /** TRUE wenn eine CDokumentenmappe in DokuDoc angelegt wurde */
  bool mappeExists();
  /** gibt den Dateinamen der Dokumentenmappe zurueck */
  QString getName();
  /** liefert die Anzahl der Dokumente in der Dokumentenmappe zurueck */
  unsigned int LiefereAnzahl();
  /** liefert das Dokument an einer bestimmten Position in der Liste zurueck */
  /* zaehlung von number beginnt bei 0 == erstes element */
	CDokument* LiefereDokumentNumber(unsigned int number);
  /** fuegt ein CDokument in die Dokumentenmappe ein */
  bool insertDokument(QString Verfasser, QString Titel, QString Schluessel);
  /** fuegt ein CVertrag in die Dokumentenmappe ein */
	bool insertVertrag(QString Verfasser, QString Titel, QString Schluessel,
                     bool UnterschriftKundeVorhanden, bool UnterschriftBankVorhanden,
                     QString Vertragsnummer, QString Vertragstext);
  /** fuegt ein CFormular in die Dokumentenmappe ein */
	bool insertFormular(QString Verfasser, QString Titel, QString Schluessel,
                      bool Geprueft, bool UnterschriftKundeVorhanden, QString Formvorschrift);
  /** fuegt ein CDauerauftrag in die Dokumentenmappe ein */
	bool insertDauerauftrag(QString Verfasser, QString Titel, QString Schluessel,
                          bool Geprueft, bool UnterschriftKundeVorhanden, QString Formvorschrift,
                          QString Betrag, QString Intervall, QString Quelle, QString Ziel,
                          QString Buchungstext);

  /** loescht das Dokument mit dem angegebenen Schluessel */
	bool deleteDokument(QString Schluessel);
  /** liefert das Dokument mit dem angegebenen Schluessel zurueck */
	CDokument* searchDokument(QString Schluessel);


 signals:
  /** wird ausgesandt, wenn die Dokumentenmappe geaendert wurde */
  void documentChanged();
  /** wird ausgesandt, wenn das Dokument gespeichert wurde */
  void documentSaved();



protected:
  /** TRUE, wenn die Dokumentenmappe seit dem letzten speichern veraendert wurde */
  bool b_modified;
  /** TRUE, wenn eine CDokumentenmappe in der Klasse instanziiert ist */
  bool mappe_exists;

private:
  /** Instanz der verwalteten CDokumentenmappe */
  CDokumentenmappe* mappe;
  /** Dateiname unter der die Dokumentenmappe zuletzt gespeichert wurde.
    * Wurde kein Name bisher bestimmt ist name=="unbenannt.map" */
  QString name;

};


#endif



























































Documentation generated by uhlmann@fara2 on Mon Aug 30 20:37:52 MEST 1999