1 /***************************************************************************
2 unitmanager -
3 -------------------
4 begin : 2004-05-05
5 copyright : (C) 2004 by Klaas Freitag
6 email : freitag@kde.org
7 ***************************************************************************/
8
9 /***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18 #include <QSqlQuery>
19
20 // include files for KDE
21 #include <kraftdb.h>
22 #include <QDebug>
23
24 #include "unitmanager.h"
25 #include "einheit.h"
26
Q_GLOBAL_STATIC(UnitManager,mSelf)27 Q_GLOBAL_STATIC(UnitManager, mSelf)
28
29 UnitManager* UnitManager::self()
30 {
31 return mSelf;
32 }
33
UnitManager()34 UnitManager::UnitManager( )
35 {
36
37 }
38
load()39 void UnitManager::load()
40 {
41 QSqlQuery q( "SELECT unitID, unitShort, unitLong, unitPluShort, unitPluLong FROM units");
42
43 while( q.next())
44 {
45 int unitID = q.value(0).toInt();
46 Einheit e( unitID,
47 q.value(1).toString(),
48 q.value(2).toString(),
49 q.value(3).toString(),
50 q.value(4).toString() );
51 mUnits.append(e);
52 }
53 }
54
nextFreeId()55 int UnitManager::nextFreeId()
56 {
57 int id = 0;
58 if( mUnits.size() == 0 ) {
59 load();
60 }
61 foreach( Einheit u, mUnits ) {
62 if( u.id() > id ) {
63 id = u.id();
64 }
65 }
66 return id+1;
67 }
68
allUnits()69 QStringList UnitManager::allUnits()
70 {
71 QStringList list;
72
73 if(mUnits.size() == 0 ) load();
74 foreach( Einheit e, mUnits ) {
75 QString uSing = e.einheitSingular();
76 if( !uSing.isEmpty())
77 list << uSing;
78 }
79 return list;
80 }
81
getPauschUnit()82 Einheit UnitManager::getPauschUnit()
83 {
84 int id = getUnitIDSingular(QStringLiteral("pausch."));
85 if (id > -1)
86 return getUnit(id);
87 return Einheit();
88 }
89
getUnit(int id)90 Einheit UnitManager::getUnit( int id )
91 {
92 if( mUnits.size() == 0 ) load();
93
94 // qDebug() << "Searching unit ID " << id << endl;
95 foreach( Einheit e, mUnits ) {
96 if( e.id() == id ) return e;
97 }
98 return Einheit();
99 }
100
getUnitIDSingular(const QString & einheitStr)101 int UnitManager::getUnitIDSingular( const QString& einheitStr )
102 {
103 if( mUnits.size() == 0 ) load();
104
105 foreach( Einheit tmp, mUnits ) {
106
107 if( tmp.einheitSingular() == einheitStr ||
108 tmp.einheitPlural() == einheitStr ) {
109 // qDebug() << "Thats it, returning " << tmp.id() << endl;
110 return tmp.id();
111 }
112 }
113 return -1;
114 }
115
~UnitManager()116 UnitManager::~UnitManager( )
117 {
118 }
119
120 /* END */
121
122
123