void InflationTermStructure::checkRange(const Date& d, bool extrapolate) const { QL_REQUIRE(d >= baseDate(), "date (" << d << ") is before base date"); QL_REQUIRE(extrapolate || allowsExtrapolation() || d <= maxDate(), "date (" << d << ") is past max curve date (" << maxDate() << ")"); }
void TermStructure::checkRange(const Date& d, bool extrapolate) const { QL_REQUIRE(d >= referenceDate(), "date (" << d << ") before reference date (" << referenceDate() << ")"); QL_REQUIRE(extrapolate || allowsExtrapolation() || d <= maxDate(), "date (" << d << ") is past max curve date (" << maxDate() << ")"); }
void YoYOptionletVolatilitySurface::checkRange(const Date& d, Rate strike, bool extrapolate) const { QL_REQUIRE(d >= baseDate(), "date (" << d << ") is before base date"); QL_REQUIRE(extrapolate || allowsExtrapolation() || d <= maxDate(), "date (" << d << ") is past max curve date (" << maxDate() << ")"); QL_REQUIRE(extrapolate || allowsExtrapolation() || (strike >= minStrike() && strike <= maxStrike()), "strike (" << strike << ") is outside the curve domain [" << minStrike() << "," << maxStrike()<< "]] at date = " << d); }
void Date::checkSerialNumber(BigInteger serialNumber) { QL_REQUIRE(serialNumber >= minimumSerialNumber() && serialNumber <= maximumSerialNumber(), "Date's serial number (" << serialNumber << ") outside " "allowed range [" << minimumSerialNumber() << "-" << maximumSerialNumber() << "], i.e. [" << minDate() << "-" << maxDate() << "]"); }
void CalendarTemplateElement::apply( Calendar& result, const Calendar& mask ) const { // Empty mask : exit if(mask.empty()) { return; } // Min and max dates of the update date minDate(_minDate); if( minDate.is_neg_infinity() || (minDate < mask.getFirstActiveDate() && _step.days() == 1) ){ minDate = mask.getFirstActiveDate(); } date maxDate(_maxDate); if (maxDate > mask.getLastActiveDate()) { maxDate = mask.getLastActiveDate(); } // Abort if no date if(minDate > maxDate) { return; } // Base mask Calendar elementMask(minDate, maxDate, _step); elementMask &= mask; if(_include) { elementMask = _include->getResult(elementMask); } // Applying the element on the result switch(_operation) { case ADD: result |= elementMask; break; case SUB: result -= elementMask; break; case AND: result &= elementMask; break; } }
// Testing get/set functions void tst_QCalendarWidget::getSetCheck() { QWidget topLevel; QCalendarWidget object(&topLevel); //horizontal header formats object.setHorizontalHeaderFormat(QCalendarWidget::NoHorizontalHeader); QCOMPARE(QCalendarWidget::NoHorizontalHeader, object.horizontalHeaderFormat()); object.setHorizontalHeaderFormat(QCalendarWidget::SingleLetterDayNames); QCOMPARE(QCalendarWidget::SingleLetterDayNames, object.horizontalHeaderFormat()); object.setHorizontalHeaderFormat(QCalendarWidget::ShortDayNames); QCOMPARE(QCalendarWidget::ShortDayNames, object.horizontalHeaderFormat()); object.setHorizontalHeaderFormat(QCalendarWidget::LongDayNames); QCOMPARE(QCalendarWidget::LongDayNames, object.horizontalHeaderFormat()); //vertical header formats object.setVerticalHeaderFormat(QCalendarWidget::ISOWeekNumbers); QCOMPARE(QCalendarWidget::ISOWeekNumbers, object.verticalHeaderFormat()); object.setVerticalHeaderFormat(QCalendarWidget::NoVerticalHeader); QCOMPARE(QCalendarWidget::NoVerticalHeader, object.verticalHeaderFormat()); //maximum Date QDate maxDate(2006, 7, 3); object.setMaximumDate(maxDate); QCOMPARE(maxDate, object.maximumDate()); //minimum date QDate minDate(2004, 7, 3); object.setMinimumDate(minDate); QCOMPARE(minDate, object.minimumDate()); //day of week object.setFirstDayOfWeek(Qt::Thursday); QCOMPARE(Qt::Thursday, object.firstDayOfWeek()); //grid visible object.setGridVisible(true); QVERIFY(object.isGridVisible()); object.setGridVisible(false); QVERIFY(!object.isGridVisible()); //header visible object.setNavigationBarVisible(true); QVERIFY(object.isNavigationBarVisible()); object.setNavigationBarVisible(false); QVERIFY(!object.isNavigationBarVisible()); //selection mode QCOMPARE(QCalendarWidget::SingleSelection, object.selectionMode()); object.setSelectionMode(QCalendarWidget::NoSelection); QCOMPARE(QCalendarWidget::NoSelection, object.selectionMode()); object.setSelectionMode(QCalendarWidget::SingleSelection); QCOMPARE(QCalendarWidget::SingleSelection, object.selectionMode()); //selected date QDate selectedDate(2005, 7, 3); QSignalSpy spy(&object, SIGNAL(selectionChanged())); object.setSelectedDate(selectedDate); QCOMPARE(spy.count(), 1); QCOMPARE(selectedDate, object.selectedDate()); //month and year object.setCurrentPage(2004, 1); QCOMPARE(1, object.monthShown()); QCOMPARE(2004, object.yearShown()); object.showNextMonth(); QCOMPARE(2, object.monthShown()); object.showPreviousMonth(); QCOMPARE(1, object.monthShown()); object.showNextYear(); QCOMPARE(2005, object.yearShown()); object.showPreviousYear(); QCOMPARE(2004, object.yearShown()); //date range minDate = QDate(2006,1,1); maxDate = QDate(2010,12,31); object.setDateRange(minDate, maxDate); QCOMPARE(maxDate, object.maximumDate()); QCOMPARE(minDate, object.minimumDate()); //date should not go beyond the minimum. selectedDate = minDate.addDays(-10); object.setSelectedDate(selectedDate); QCOMPARE(minDate, object.selectedDate()); QVERIFY(selectedDate != object.selectedDate()); //date should not go beyond the maximum. selectedDate = maxDate.addDays(10); object.setSelectedDate(selectedDate); QCOMPARE(maxDate, object.selectedDate()); QVERIFY(selectedDate != object.selectedDate()); //show today QDate today = QDate::currentDate(); object.showToday(); QCOMPARE(today.month(), object.monthShown()); QCOMPARE(today.year(), object.yearShown()); //slect a different date and move. object.setSelectedDate(minDate); object.showSelectedDate(); QCOMPARE(minDate.month(), object.monthShown()); QCOMPARE(minDate.year(), object.yearShown()); }
inline Time TermStructure::maxTime() const { return timeFromReference(maxDate()); }
void GeldRechen::calcStudentFees() { /* absencies are NOT and SHOULD NOT be taken into account unless SERIOUS REASON see table absent discounts ???? */ qDebug () << "FEE FOR STUDENTS"; QSqlQuery q,q2,q3,q4; q.exec("SELECT GroupID,StartDate FROM Groups"); while (q.next()) { QString gid=q.value(0).toString(); QDate start_date = q.value(1).toDate(); //for every active group qDebug() << " fee calc for group " << gid; // a student may have joined the group after the group started and may have left before the group ended //for every student in that group q2.prepare("SELECT StudID,Added,Dropped FROM Ensembles WHERE GroupID=:gid"); q2.bindValue(":gid",gid); q2.exec(); while (q2.next()) { QString studid=q2.value(0).toString(); QDate joined=q2.value(1).toDate(); QDate dropped = q2.value(2).toDate(); float discount =0; qDebug() << "--------------------"; qDebug () << "studid " << studid << "joined " << maxDate(joined,start_date) << " dropped " << minDate(dropped,QDate::currentDate()); //get group history from GREATEST(groupstart,added) up to LEAST(dropout,curdate) MINUS Truant==0 abscencies q3.prepare("SELECT Duration,fee+ fee*vat FROM History Where Dat>= :join_date AND Dat<=:leave_date AND GroupID=:gid AND Valid=1 AND HistID NOT IN (SELECT HistID FROM Absent WHERE StudentID=:sid and Truant=0)") ; qDebug() << "Joined date " << joined.toString() << " dropped " << dropped.toString(); q3.bindValue(":join_date",maxDate(joined,start_date)); q3.bindValue(":leave_date",minDate(dropped,QDate::currentDate())); q3.bindValue(":gid",gid); q3.bindValue(":sid",studid); q3.exec(); float unterricht = 0; float muss_bezahlen=0; while (q3.next()) { //qDebug() << "VATED" << q3.value(1).toFloat(); muss_bezahlen += q3.value(0).toFloat() * q3.value(1).toFloat() ; unterricht += q3.value(0).toFloat(); } //discount muss_bezahlen -= muss_bezahlen * discount/100.0f; qDebug() << "student " << studid << "group " << gid << " must pay " << muss_bezahlen << " total hours " << unterricht; QString qry=" UPDATE ShouldBePayed SET Amount=:euro , Updated=CURDATE() WHERE GroupID=:gid AND StudentID=:stid "; q4.prepare(qry); q4.bindValue(":stid",studid); q4.bindValue(":gid",gid); q4.bindValue(":euro",muss_bezahlen); if (!q4.exec()) { qDebug() << "error.." << q4.lastError().driverText() << " " << q4.lastError().databaseText(); } } } }