/***************************************************************************
                          dauerauf.h  -  Interface Klasse CDauerauftrag
                             -------------------                                         
    begin                : Wed Aug 4 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 __DAUERAUF_H__
#define __DAUERAUF_H__

#include <qdatastream.h>

#include "formular.h" /* Import Klasse CFormular */


/**
 * Die Klasse CDauerauftrag stellt die Daten und Methoden zur Verfuegung
 * um einen Dauerauftrag zu verwalten.
 * Diese Klasse erbt von der Klasse CFormular.
 */

class CDauerauftrag : public CFormular
{
 private:
  /** umzubuchender Betrag */
  float Betrag;
  /** anzuzeigender Buchungstext */
  QString Buchungstext;
  /** Quellkonto */
  QString Quelle;
  /** Zielkonto */
  QString Ziel;
  /** Intervall (in Sekunden) */
  long Intervall;

 public:
  /** Konstruktor */
  /* pre: this existiert nicht */
  /* post: this existiert und ist gueltig */
  CDauerauftrag();
  
  /** Destruktor */
  /* pre: this existiert */
  /* post: this existiert nicht */
  virtual ~CDauerauftrag();

  /** generiert ein Objekt der Klasse CDauerauftrag und gibt Zeiger darauf zurueck */
  /* pre: CDauerauftrag existiert nicht */
  /* post: CDauerauftrag existiert und ist gueltig */
  virtual CDokument* Generate() const;
  
  /** gibt ein Objekt der Klasse CDauerauftrag wieder frei */
  /* pre: this existiert */
  /* post: this ist ungueltig */
  virtual void Free();
  
  /** prueft die Klasseninvarianz des Objektes */
  /* pre: this existiert */
  /* post: ClassInvariant ist TRUE wenn this gueltig ist, sonst FALSE */
  virtual bool ClassInvariant() const;
  
  /** kopiert in das aktuelle Objekt das Objekt src */
  /* pre: this existiert; src ist gueltig */
  /* post: this ist gueltig; this ist gleich src */
  virtual bool Copy(CDokument* src);
  
  /** vergleicht das Objekt mit dem Objekt src */
  /* pre:  this und src existieren und sind gueltig */
  /* post: TRUE wenn Inhalt von this gleich Inhalt von src, sonst FALSE */
  virtual bool EqualValue(CDokument* src) const;

  /** initialisiert ein instanziiertes Objekt mit gegebenen Werten */
  /* pre: this existiert und ist gueltig */
  /* post: this enthaelt die gewuenschten Werte */
  bool InitDauerauftrag(QString NVerfasser,
                        QString NTitel,
        	        	    QString NSchluessel,
												bool NGeprueft,
										    bool NUnterschriftKundeVorhanden,
										    QString NFormvorschrift,
										    float NBetrag,
										    QString NBuchungstext,
										    QString NQuelle,
										    QString NZiel,
										    long NIntervall);
			
  /** gibt den abzubuchenden Betrag des Dauerauftrages zurueck */
  /* pre: this existiert und ist gueltig */
  /* post:  */
  float LiefereBetrag() const;

  /** gibt den Buchungstext des Dauerauftrages zurueck */
  /* pre: this existiert und ist gueltig */
  /* post:  */
  QString LiefereBuchungstext() const;

  /** gibt das Quellkonto des Dauerauftrages zurueck */
  /* pre: this existiert und ist gueltig */
  /* post:  */
  QString LiefereQuelle() const;

  /** gibt das Zielkonto des Dauerauftrages zurueck */
  /* pre: this existiert und ist gueltig */
  /* post:  */
  QString LiefereZiel() const;

  /** liefert das Intervall in denen der Dauerauftrag ausgefuehrt werden soll */
  /* pre: this existiert und ist gueltig */
  /* post:  */
  long LiefereIntervall() const;

  /** prueft ob ein Kontoidentifikator zulaessig ist */
  /* pre:  */
  /* post: TRUE wenn src gueltig ist, sonst FALSE */
  bool ZulaessigerKontoIdentifikator(QString src) const;

  /** prueft ob ein Intervall gueltig sein kann */
  /* pre:  */
  /* post: TRUE wenn src gueltig ist, sonst FALSE */
  bool ZulaessigesIntervall(long src) const;

  /** schreibt den Inhalt des Dauerauftrages in den angegebenen stream */
  /* pre: this existiert und ist gueltig */
  /* post: TRUE wenn der CDauerauftrag geschrieben werden konnte, sonst FALSE */
  bool readData(QDataStream* stream);

  /** laedt den Inhalt des Dauerauftrages aus dem angegebenen stream */
  /* pre: this existiert und ist gueltig */
  /* post: TRUE wenn der CDauerauftrag geladen werden konnte, sonst FALSE */
  bool writeData(QDataStream* stream) const;


};



#endif /* __DAUERAUF_H__ */

























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