1 #include "datahandling.h"
\r
2 #include "newround.h"
\r
3 #include "xmlparser.h"
\r
4 #include "basicscorecard.h"
\r
7 datahandling::datahandling()
\r
12 const QList<player>& datahandling::getPlayers()
\r
17 void datahandling::addPlayer(QString name,QString hcp,QString gender)
\r
19 m_players.push_back(player(name,hcp,gender));
\r
22 const QList<course>& datahandling::getCourses()
\r
27 void datahandling::addCourses(QString name, QString file)
\r
29 m_courses.push_back(course(name, file));
\r
32 const QList<courseData>& datahandling::getCourseData()
\r
34 return m_courseData;
\r
37 void datahandling::addCourseData(QString name, QString par, double latitude, double longitude, QString country, QString city)
\r
39 m_courseData.push_back(courseData(name, par, latitude, longitude, country, city));
\r
42 const QList<courseCrMale>& datahandling::getCourseCrMale()
\r
44 return m_courseCrMale;
\r
47 void datahandling::addCourseCrMale(double white, double yellow, double blue, double red)
\r
49 m_courseCrMale.push_back(courseCrMale(white, yellow, blue, red));
\r
52 const QList<courseCrFemale>& datahandling::getCourseCrFemale()
\r
54 return m_courseCrFemale;
\r
57 void datahandling::addCourseCrFemale(double yellow, double blue, double red)
\r
59 m_courseCrFemale.push_back(courseCrFemale(yellow, blue, red));
\r
62 const QList<courseSlopeMale>& datahandling::getCourseSlopeMale()
\r
64 return m_courseSlopeMale;
\r
67 void datahandling::addCourseSlopeMale(double white, double yellow, double blue, double red)
\r
69 m_courseSlopeMale.push_back(courseSlopeMale(white, yellow, blue, red));
\r
72 const QList<courseSlopeFemale>& datahandling::getCourseSlopeFemale()
\r
74 return m_courseSlopeFemale;
\r
77 void datahandling::addCourseSlopeFemale(double yellow, double blue, double red)
\r
79 m_courseSlopeFemale.push_back(courseSlopeFemale(yellow, blue, red));
\r
82 const QList<holeData>& datahandling::getHoleData()
\r
87 void datahandling::addHoleData(QString id, QString hcp, QString par, QString map_uri)
\r
89 m_holeData.push_back(holeData(id, hcp, par, map_uri));
\r
92 const QList<whiteTee>& datahandling::getWhiteTee()
\r
97 void datahandling::addWhiteTee(QString length, double latitude, double longitude)
\r
99 m_whiteTee.push_back(whiteTee(length, latitude, longitude));
\r
102 const QList<yellowTee>& datahandling::getYellowTee()
\r
104 return m_yellowTee;
\r
107 void datahandling::addYellowTee(QString length, double latitude, double longitude)
\r
109 m_yellowTee.push_back(yellowTee(length, latitude, longitude));
\r
112 const QList<blueTee>& datahandling::getBlueTee()
\r
117 void datahandling::addBlueTee(QString length, double latitude, double longitude)
\r
119 m_blueTee.push_back(blueTee(length, latitude, longitude));
\r
122 const QList<redTee>& datahandling::getRedTee()
\r
127 void datahandling::addRedTee(QString length, double latitude, double longitude)
\r
129 m_redTee.push_back(redTee(length, latitude, longitude));
\r
132 const QList<greenInfo>& datahandling::getGreenInfo()
\r
134 return m_greenInfo;
\r
137 void datahandling::addGreenInfo(double latitude, double longitude)
\r
139 m_greenInfo.push_back(greenInfo(latitude, longitude));
\r
142 void datahandling::clearData()
\r
148 datahandling* datahandling::instance()
\r
151 m_instance = new datahandling();
\r
153 return (m_instance);
\r
156 void datahandling::calculateHandicaps()
\r
165 for(int i = 0; i < 4; i++)
\r
171 for(int i = 0; i < 3; i++)
\r
178 this->selectedPlayersHandicap.clear();
\r
180 foreach(courseData cD,this->m_courseData)
\r
182 temp.push_back(cD.m_par);
\r
183 par = temp[0].toInt();
\r
188 foreach(courseCrMale crM, this->m_courseCrMale)
\r
190 cr[0] = (double)crM.m_white;
\r
191 cr[1] = (double)crM.m_yellow;
\r
192 cr[2] = (double)crM.m_blue;
\r
193 cr[3] = (double)crM.m_red;
\r
198 foreach(courseSlopeMale sM, this->m_courseSlopeMale)
\r
200 slope[0] = sM.m_white;
\r
201 slope[1] = sM.m_yellow;
\r
202 slope[2] = sM.m_blue;
\r
203 slope[3] = sM.m_red;
\r
208 foreach(courseCrFemale crF, this->m_courseCrFemale)
\r
210 fcr[0] = crF.m_yellow;
\r
211 fcr[1] = crF.m_blue;
\r
212 fcr[2] = crF.m_red;
\r
217 foreach(courseSlopeFemale sF, this->m_courseSlopeFemale)
\r
219 fslope[0] = sF.m_yellow;
\r
220 fslope[1] = sF.m_blue;
\r
221 fslope[2] = sF.m_red;
\r
224 for(int i = 0; i < this->selectedPlayers.count(); i++)
\r
227 if(QString::compare(this->selectedPlayersTee[i], "White", Qt::CaseInsensitive) == 0 &&
\r
228 QString::compare(this->selectedPlayersGender[i], "male", Qt::CaseInsensitive) == 0)
\r
231 handicap = this->selectedPlayersHcp[i].toDouble() * (double)(slope[0] / 113) + (double)(cr[0] - par) + 0.5;
\r
232 selectedPlayersHandicap << QString::number(handicap);
\r
233 qDebug() << "Male White: " << handicap;
\r
234 qDebug() << "Slope: " << slope[0] << " CR: " << cr[0];
\r
237 else if(QString::compare(this->selectedPlayersTee[i], "Yellow", Qt::CaseInsensitive) == 0 &&
\r
238 QString::compare(this->selectedPlayersGender[i], "male", Qt::CaseInsensitive) == 0)
\r
240 handicap = this->selectedPlayersHcp[i].toDouble() * (double)(slope[1] / 113) + (double)(cr[1] - par) + 0.5;
\r
241 selectedPlayersHandicap << QString::number(handicap);
\r
242 qDebug() << "Male Yellow: " << handicap;
\r
245 else if(QString::compare(this->selectedPlayersTee[i], "Blue", Qt::CaseInsensitive) == 0 &&
\r
246 QString::compare(this->selectedPlayersGender[i], "male", Qt::CaseInsensitive) == 0)
\r
248 handicap = this->selectedPlayersHcp[i].toDouble() * (double)(slope[2] / 113) + (double)(cr[2] - par) + 0.5;
\r
249 selectedPlayersHandicap << QString::number(handicap);
\r
250 qDebug() << "Male Blue: " << handicap;
\r
253 else if(QString::compare(this->selectedPlayersTee[i], "Red", Qt::CaseInsensitive) == 0 &&
\r
254 QString::compare(this->selectedPlayersGender[i], "male", Qt::CaseInsensitive) == 0)
\r
256 handicap = this->selectedPlayersHcp[i].toDouble() * (double)(slope[3] / 113) + (double)(cr[3] - par) + 0.5;
\r
257 selectedPlayersHandicap << QString::number(handicap);
\r
258 qDebug() << "Male Red: " << handicap;
\r
262 if(QString::compare(this->selectedPlayersTee[i], "White", Qt::CaseInsensitive) == 0 &&
\r
263 QString::compare(this->selectedPlayersGender[i], "female", Qt::CaseInsensitive) == 0)
\r
266 handicap = this->selectedPlayersHcp[i].toDouble() * (double)(fslope[0] / 113) + (double)(fcr[0] - par) + 0.5;
\r
267 selectedPlayersHandicap << QString::number(handicap);
\r
268 qDebug() << "Female White: " << handicap;
\r
271 else if(QString::compare(this->selectedPlayersTee[i], "Yellow", Qt::CaseInsensitive) == 0 &&
\r
272 QString::compare(this->selectedPlayersGender[i], "female", Qt::CaseInsensitive) == 0)
\r
274 handicap = this->selectedPlayersHcp[i].toDouble() * (double)(fslope[0] / 113) + (double)(fcr[0] - par) + 0.5;
\r
275 selectedPlayersHandicap << QString::number(handicap);
\r
276 qDebug() << "Female Yellow: " << handicap;
\r
279 else if(QString::compare(this->selectedPlayersTee[i], "Blue", Qt::CaseInsensitive) == 0 &&
\r
280 QString::compare(this->selectedPlayersGender[i], "female", Qt::CaseInsensitive) == 0)
\r
282 handicap = this->selectedPlayersHcp[i].toDouble() * (double)(fslope[1] / 113) + (double)(fcr[1] - par) + 0.5;
\r
283 selectedPlayersHandicap << QString::number(handicap);
\r
284 qDebug() << "Female Blue: " << handicap;
\r
287 else if(QString::compare(this->selectedPlayersTee[i], "Red", Qt::CaseInsensitive) == 0 &&
\r
288 QString::compare(this->selectedPlayersGender[i], "female", Qt::CaseInsensitive) == 0)
\r
290 handicap = this->selectedPlayersHcp[i].toDouble() * (double)(fslope[2] / 113) + (double)(fcr[2] - par) + 0.5;
\r
291 selectedPlayersHandicap << QString::number(handicap);
\r
292 qDebug() << "Female Red: " << handicap;
\r