- Page principale
- Classes
- Fichiers
- Pages associées

# /home/eric/Bureau/MedinTux-V-2.00/Plug/Compta2/compta/ComptaMoteurBase.h

    00001  /********************************* ComptaMoteurBase.h ************************************
    00002  *   This program is free software; you can redistribute it and/or modify         *
    00003  *   it under the terms of the CeCILL Version 2                     *
    00004  *   License (GPL compatible)                                                     *
    00005  *                              http://www.cecill.info/                           *
    00006  *   as published by :                                                            *
    00007  *                                                                                *
    00008  *   Commissariat a l'Energie Atomique                                            *
    00009  *   - CEA,                                                                       *
    00010  *                            31-33 rue de la Federation, 75752 PARIS cedex 15.   *
    00011  *                            FRANCE                                              *
    00012  *   Centre National de la Recherche Scientifique                                 *
    00013  *   - CNRS,                                                                      *
    00014  *                            3 rue Michel-Ange, 75794 Paris cedex 16.            *
    00015  *                            FRANCE                                              *
    00016  *   Institut National de Recherche en Informatique et en Automatique             *
    00017  *   - INRIA,                                                                     *
    00018  *                            Domaine de Voluceau, Rocquencourt, BP 105, 78153    *
    00019  *                            FRANCE                                              *
    00020  *                                                                                *
    00021  *         This program is distributed in the hope that it will be useful,        *
    00022  *         but WITHOUT ANY WARRANTY; without even the implied warranty of         *
    00023  *         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                   *
    00024  *         CeCILL  License (GPL compatible) for more details.                     *
    00025  *                                                                                *
    00026  **********************************************************************************/
    00044 #ifndef COMPTAMOTEURBASE_H
    00045 #define COMPTAMOTEURBASE_H
    00046
    00047 #include <qstringlist.h>
    00048 #include <qmessagebox.h>
    00049 #include <qsqldatabase.h>
    00050 #include <qstring.h>
    00051 #include <qsqlcursor.h>
    00052 #include <qsqlrecord.h>
    00053 #include <qdatetime.h>
    00054
    00055 #include <qfile.h>
    00056 #include <qmessagebox.h>
    00057
    00058 #include "Listes.h"
    00059 #include "Tools.h"
    00060 #include "Defines.h"
    00061 #include "../../../MedinTuxTools/CGestIni.h"
    00062
    00063
    00064 #define  ERR_PASS_MAX       1
    00065 #define  ERR_PASS_ZERO      2
    00066 #define  ERR_PASS_OK        3
    00067
    00068 class Actes;
    00069 class Honoraires;
    00070 class Paiements;
    00071
    00077 class ComptaMoteurBase : public Tools
    00078 {
    00079 public:
    00080     ComptaMoteurBase();
    00081
    00082    ComptaMoteurBase(       const char* driver,        // nom du driver: "QODBC3" "QMYSQL3" "QPSQL7"
    00083                            const char* DataBaseName,  // nom de la base: si QODBC3 -> nom de la source de données (userDSN)
    00084                            const char* user,          // = "root"
    00085                            const char* password,      // = ""
    00086                            const char* hostname,
    00087                            const char* confFile,
    00088                            const char* baseLabel,
    00089                            QString*    errMess);
    00090
    00091     ~ComptaMoteurBase();
    00092
    00094                 //              INITIALISATIOIN                 //
    00096
    00097
    00098         void    setParams               ( Utilisateurs* pUtilisateur);
    00099
    00100   void initBase   (const char* driver,        // nom du driver: "QODBC3" "QMYSQL3" "QPSQL7"
    00101                    const char* DataBaseName,  // nom de la base: si QODBC3 -> nom de la source de données (userDSN)
    00102                    const char* user,          // = "root"
    00103                    const char* password,      // = ""
    00104                    const char* hostname,
    00105                    const char* confFile,
    00106                    const char* baseLabel,
    00107                    QString*    errMess);
    00108
    00109   QSqlDatabase*  BaseConnect(const char* driver,        // nom du driver: "QODBC3" "QMYSQL3" "QPSQL7"
    00110                              const char* DataBaseName,  // nom de la base: si QODBC3 -> nom de la source de données (userDSN)
    00111                              const char* user,          // = "root"
    00112                              const char* pasword,       // = ""
    00113                              const char* hostname,      // = "localhost"
    00114                              QString*    errMess ,
    00115                              QString     baseLabel);
    00116
    00117    bool          connexion();
    00118
    00120                 //              RECUPERATION                    //
    00122
    00123         void            readHonoraire                   (QSqlCursor & SQL_Curseur, Honoraires* hono);
    00124         void            readMouvement                   (QSqlCursor & SQL_Curseur, Mouvements* mvt);
    00125         void            readImmobilisation              (QSqlCursor & SQL_Curseur, Immobilisations* immo);
    00126
    00127
    00128         bool            getActesForCombobox             (ACTES_LISTE& al);
    00129         QStringList     getActesDisponiblesDefauts      ();
    00130
    00131         bool            getHonoraire                    ( int id , Honoraires* hono );
    00132         bool            getHonorairesForTable           (HONO_LISTE* hl);
    00133         bool            getHonorairesForDepot           (HONO_LISTE* hl);
    00134         bool            getHonorairesFromBlobDepot      ( const char* listeHono , HONO_LISTE& lHono );
    00135         bool            getHonoraires_DAF_ForGestion    (HONO_LISTE* hl);
    00136         bool            getHonoraires_MontantTotal      (double& total, double& dus, double& esp,
    00137                                                          bool& tousHonoValide, bool pourBilanAnnuel=FALSE,
    00138                                                          int annee=0);
    00139
    00140         bool            checkDus                        ( Utilisateurs* user , const char* GUID, int& total_Du );
    00141         int             checkDoubleHono                 (Honoraires *pHono);
    00142         bool            checkDoubleUser                 (int idDrTux, int &retour);
    00143
    00144         bool            getMvts                         (MVTS_LISTE& ml, int id_immobilisation = -1);
    00145         bool            getMvtsDispo                    (MVTS_LISTE& ml);
    00146         bool            getMvtsForReleve                (MVTS_LISTE& ml);
    00147         bool            getMvts_MontantTotal            (double& recettes, double& depenses, double& esp,
    00148                                                          bool pourBilanAnnuel=FALSE, int annee=0);
    00149
    00150         bool            getImmobilisations              (IMMO_LISTE* il);
    00151
    00152         bool            getUsersForList                 (UTILISATEURS_LISTE * ul);
    00153         bool            getDrTuxUsers                   (UTILISATEURS_LISTE * ul);
    00154         bool            getIdUsrFromDrTuxPk             (int &idDrTuxToModify);
    00155         bool            getUsers                        (int id_baseCompta, Utilisateurs& resultat);
    00156
    00157         bool            getComptes                      (COMPTES_LISTE& cl);
    00158
    00159         bool            getDepotsForList                (DEPOTS_LISTE& retour);
    00160         bool            getDepot                        (int depot_id, Depots &retour);
    00161         bool            getDepots_MontantTotal          (double& total, double& esp,
    00162                                                          bool pourBilanAnnuel, int annee);
    00163
    00164
    00165         bool            getVersion                      (QString& resultat);
    00166
    00167
    00168
    00170                 //              VALIDATION                      //
    00172
    00173         bool    valideHonoraires                        (HONO_LISTE* pHono_Liste,
    00174                                                          Utilisateurs* pUtilisateurActuel,
    00175                                                          int & nbUpdated);
    00176         bool    valideMouvements                        (MVTS_LISTE* pMvts_Liste,
    00177                                                          Utilisateurs* pUtilisateurActuel,
    00178                                                          int idCpt, int & nbUpdated);
    00179
    00180         bool    encaisseDAF                             (HONO_LISTE* pHono_Liste,
    00181                                                          Utilisateurs* pUtilisateurActuel,
    00182                                                          int & nbUpdated);
    00183
    00184
    00185
    00187                 //              SAUVEGARDE                      //
    00189         bool            saveUserToBase          (Utilisateurs* pUser);
    00190         bool            saveHonorairesToBase    (Honoraires* pHono);
    00191         bool            saveActe                (Actes* pActe);
    00192         bool            saveCptToBase           (Comptes* pCpt);
    00193         bool            saveMvtToBase           (Mouvements* pMvt);
    00194         bool            saveDepotToBase         (QDate* dt_depot, HONO_LISTE* hl, const char* rib, int idCpt);
    00195         bool            saveDepotEspecesToBase  (Depots* depot);
    00196         bool            saveImmobToBase         (Immobilisations* pImm);
    00197
    00198
    00199         bool            deleteHonoraire         (QSqlRecord* h);
    00200         bool            deleteHonoraire         (int id);
    00201         bool            deleteMvt               (int id);
    00202         bool            deleteActe              (int id);
    00203
    00204         bool            updateRemarqueHonoraires(Honoraires *hono);
    00205         bool            updateHonoraires        (Honoraires *hono);
    00206         bool            updateMvt               (Mouvements* pMvt);
    00207         bool            updateCpt               (Comptes* pCpt);
    00208         bool            updateActe              (Actes* acte);
    00209         bool            updateImmob             (Immobilisations* pImm);
    00210
    00211
    00212
    00214                 //              DIVERS                          //
    00216         QString         getFiltre               (const char* table, int moreParams=0);
    00217         QString         getFiltrePeriode        ();
    00218         int             getIdListeFromIdCpt     (COMPTES_LISTE& cl, int idCpt);
    00219
    00220         bool            getBilanAnnuel          (const char* annee, QString& retour, bool pourGrandLivre=FALSE);
    00221         int             nbSubRubriques          (MVTS_LISTE& mvts, int id, MVTS_LISTE& sRub);
    00222
    00223         bool            integrationEspecesRestantes(const char* annee);
    00224
    00225         QString         Utf8_Query              (QSqlQuery &cur, int field);
    00226         QString         dateForSQL              (const QString &date);
    00227         int             PassWordEncode          (QString &pass);
    00228         int             PassWordDecode          (const char* str_to_decode, const char* str_pass);
    00229         static  UINT16  HexToUINT( const char *str);
    00230         static  QString UINTtoHex( UINT16 val);
    00231
    00232
    00234                 //              DONNEES                 //
    00236 public:
    00237         QSqlDatabase*   m_DataBase;
    00238         QString         m_DriverName;
    00239         QString         m_BaseName;
    00240         QString         m_UserName;
    00241         QString         m_PassWord;
    00242         QString         m_HostName;
    00246         QStringList     m_DefautActes;
    00248         QString         m_messageErreur;
    00250   Utilisateurs*                 m_pUtilisateurActuel;
    00251   int                   m_UsrPk;
    00252   QDate                 m_Filtre_Date_Debut;
    00253   QDate                 m_Filtre_Date_Fin;
    00254   QString               m_Filtre_Type_Paiement;
    00255   QString               m_Filtre_Autre;
    00256   bool                  m_Filtre_Change;
    00259 private:
    00260    QString      m_BaseLabel;
    00261    int          m_XmlDepth;
    00262    int          m_ConvertRun;
    00263
    00265                 //              DONNEES PRIVÉES                //
    00267
    00268
    00269 };
    00270
    00271 #endif