kplato

#include <kptresource.h>

Public Types

enum  Type { Type_Work , Type_Material }
 

Public Member Functions

 Resource (Project *project)
 
 Resource (Resource *resource)
 
TQString id () const
 
bool setId (TQString id)
 
void generateId ()
 
void setType (Type type)
 
void setType (const TQString &type)
 
Type type () const
 
TQString typeToString () const
 
void setName (TQString n)
 
const TQString & name () const
 
void setInitials (TQString initials)
 
const TQString & initials () const
 
void setEmail (TQString email)
 
const TQString & email () const
 
void copy (Resource *resource)
 
void setAvailableFrom (const TQDateTime &af)
 
const DateTime & availableFrom () const
 
void setAvailableUntil (const TQDateTime au)
 
const DateTime & availableUntil () const
 
void addWorkingHour (TQTime from, TQTime until)
 
TQPtrList< TQTime > workingHours ()
 
DateTime getFirstAvailableTime (DateTime after=DateTime())
 
DateTime getBestAvailableTime (Duration duration)
 
DateTime getBestAvailableTime (const DateTime after, const Duration duration)
 
bool load (TQDomElement &element)
 
void save (TQDomElement &element) const
 
TQPtrList< Appointment > appointments ()
 
Appointment * findAppointment (Node *node)
 
virtual bool addAppointment (Appointment *appointment)
 
virtual bool addAppointment (Appointment *appointment, Schedule &main)
 
virtual void addAppointment (Schedule *node, DateTime &start, DateTime &end, double load=100)
 
void initiateCalculation (Schedule &sch)
 
bool isAvailable (Task *task)
 
void makeAppointment (Schedule *schedule)
 
bool isOverbooked () const
 
bool isOverbooked (const TQDate &date) const
 
bool isOverbooked (const DateTime &start, const DateTime &end) const
 
double normalRate () const
 
void setNormalRate (double rate)
 
double overtimeRate () const
 
void setOvertimeRate (double rate)
 
double fixedCost () const
 
void setFixedCost (double value)
 
int units () const
 
void setUnits (int units)
 
Project * project () const
 
Calendar * calendar (bool local=false) const
 
Calendar * calendar (const TQString id) const
 
void setCalendar (Calendar *calendar)
 
void registerRequest (const ResourceRequest *request)
 
void unregisterRequest (const ResourceRequest *request)
 
const TQPtrList< ResourceRequest > & requests () const
 
Duration effort (const DateTime &start, const Duration &duration, bool backward, bool *ok=0) const
 
DateTime availableAfter (const DateTime &time, const DateTime limit=DateTime(), bool checkAppointments=false) const
 
DateTime availableBefore (const DateTime &time, const DateTime limit=DateTime(), bool checkAppointments=false) const
 
Resource * findId () const
 
Resource * findId (const TQString &id) const
 
bool removeId ()
 
bool removeId (const TQString &id)
 
void insertId (const TQString &id)
 
Calendar * findCalendar (const TQString &id) const
 
Appointment appointmentIntervals () const
 
Duration plannedEffort (const TQDate &date) const
 
void setCurrentSchedule (Schedule *schedule)
 
void setCurrentSchedule (long id)
 
Schedule * currentSchedule () const
 
TQIntDict< Schedule > & schedules ()
 
Schedule * findSchedule (long id)
 
void removeSchedule (Schedule *schedule)
 
void takeSchedule (const Schedule *schedule)
 
void addSchedule (Schedule *schedule)
 
ResourceSchedule * createSchedule (TQString name, int type, long id)
 
ResourceSchedule * createSchedule (Schedule *parent)
 
void printDebug (TQString ident)
 

Protected Member Functions

void makeAppointment (Schedule *node, const DateTime &from, const DateTime &end)
 

Detailed Description

Any resource that is used by a task.

A resource can be a worker, or maybe wood. If the resources is a worker or a piece of equiment which can be reused but can only be used by one node in time, then we can use the scheduling methods of the resource to schedule the resource available time for the project. The Idea is that all nodes which need this resource point to it and the scheduling code (partly implemented here) schedules the actual usage. See also ResourceGroup

Definition at line 187 of file kptresource.h.

Member Enumeration Documentation

◆ Type

enum KPlato::Resource::Type

Definition at line 198 of file kptresource.h.

Constructor & Destructor Documentation

◆ Resource() [1/2]

KPlato::Resource::Resource ( Project *  project)

Definition at line 202 of file kptresource.cpp.

◆ Resource() [2/2]

KPlato::Resource::Resource ( Resource *  resource)

Definition at line 218 of file kptresource.cpp.

◆ ~Resource()

KPlato::Resource::~Resource ( )
virtual

Definition at line 223 of file kptresource.cpp.

Member Function Documentation

◆ addAppointment() [1/3]

bool KPlato::Resource::addAppointment ( Appointment *  appointment)
virtual

Adds appointment to current schedule.

Definition at line 416 of file kptresource.cpp.

◆ addAppointment() [2/3]

bool KPlato::Resource::addAppointment ( Appointment *  appointment,
Schedule &  main 
)
virtual

Adds appointment to schedule sch.

Definition at line 422 of file kptresource.cpp.

◆ addAppointment() [3/3]

void KPlato::Resource::addAppointment ( Schedule *  node,
DateTime &  start,
DateTime &  end,
double  load = 100 
)
virtual

Adds appointment to both this resource and node.

Definition at line 431 of file kptresource.cpp.

◆ addSchedule()

void KPlato::Resource::addSchedule ( Schedule *  schedule)

Definition at line 457 of file kptresource.cpp.

◆ addWorkingHour()

void KPlato::Resource::addWorkingHour ( TQTime  from,
TQTime  until 
)

Definition at line 318 of file kptresource.cpp.

◆ appointmentIntervals()

Appointment KPlato::Resource::appointmentIntervals ( ) const

Definition at line 693 of file kptresource.cpp.

◆ appointments()

TQPtrList< Appointment > KPlato::Resource::appointments ( )

Return the list of appointments for current schedule.

Definition at line 399 of file kptresource.cpp.

◆ availableAfter()

DateTime KPlato::Resource::availableAfter ( const DateTime &  time,
const DateTime  limit = DateTime(),
bool  checkAppointments = false 
) const

Find the first available time after time, within limit.

Returns invalid DateTime if not available.

Definition at line 597 of file kptresource.cpp.

◆ availableBefore()

DateTime KPlato::Resource::availableBefore ( const DateTime &  time,
const DateTime  limit = DateTime(),
bool  checkAppointments = false 
) const

Find the first available time before time, within limit.

Returns invalid DateTime if not available.

Definition at line 627 of file kptresource.cpp.

◆ availableFrom()

const DateTime & KPlato::Resource::availableFrom ( ) const
inline

Return the time when the resource is available to this project.

Definition at line 218 of file kptresource.h.

◆ availableUntil()

const DateTime & KPlato::Resource::availableUntil ( ) const
inline

Return the time when the resource is no longer available to this project.

Definition at line 222 of file kptresource.h.

◆ calendar()

Calendar * KPlato::Resource::calendar ( bool  local = false) const

Get the calendar for this resource.

If local=false, check if there is a default calendar.

Definition at line 324 of file kptresource.cpp.

◆ copy()

void KPlato::Resource::copy ( Resource *  resource)

Definition at line 295 of file kptresource.cpp.

◆ createSchedule() [1/2]

ResourceSchedule * KPlato::Resource::createSchedule ( Schedule *  parent)

Definition at line 469 of file kptresource.cpp.

◆ createSchedule() [2/2]

ResourceSchedule * KPlato::Resource::createSchedule ( TQString  name,
int  type,
long  id 
)

Definition at line 463 of file kptresource.cpp.

◆ currentSchedule()

Schedule * KPlato::Resource::currentSchedule ( ) const
inline

Definition at line 315 of file kptresource.h.

◆ effort()

Duration KPlato::Resource::effort ( const DateTime &  start,
const Duration &  duration,
bool  backward,
bool *  ok = 0 
) const

Definition at line 562 of file kptresource.cpp.

◆ email()

const TQString & KPlato::Resource::email ( ) const
inline

Definition at line 211 of file kptresource.h.

◆ findAppointment()

Appointment * KPlato::Resource::findAppointment ( Node *  node)

Definition at line 407 of file kptresource.cpp.

◆ findCalendar()

Calendar * KPlato::Resource::findCalendar ( const TQString &  id) const

Definition at line 676 of file kptresource.cpp.

◆ findId() [1/2]

Resource * KPlato::Resource::findId ( ) const
inline

Definition at line 302 of file kptresource.h.

◆ findId() [2/2]

Resource * KPlato::Resource::findId ( const TQString &  id) const

Definition at line 663 of file kptresource.cpp.

◆ findSchedule()

Schedule * KPlato::Resource::findSchedule ( long  id)
inline

Definition at line 318 of file kptresource.h.

◆ fixedCost()

double KPlato::Resource::fixedCost ( ) const
inline

Definition at line 257 of file kptresource.h.

◆ generateId()

void KPlato::Resource::generateId ( )

Definition at line 264 of file kptresource.cpp.

◆ getBestAvailableTime() [1/2]

DateTime KPlato::Resource::getBestAvailableTime ( const DateTime  after,
const Duration  duration 
)

Definition at line 342 of file kptresource.cpp.

◆ getBestAvailableTime() [2/2]

DateTime KPlato::Resource::getBestAvailableTime ( Duration  duration)

Definition at line 338 of file kptresource.cpp.

◆ getFirstAvailableTime()

DateTime KPlato::Resource::getFirstAvailableTime ( DateTime  after = DateTime())

Definition at line 334 of file kptresource.cpp.

◆ id()

TQString KPlato::Resource::id ( ) const
inline

Definition at line 194 of file kptresource.h.

◆ initials()

const TQString & KPlato::Resource::initials ( ) const
inline

Definition at line 208 of file kptresource.h.

◆ initiateCalculation()

void KPlato::Resource::initiateCalculation ( Schedule &  sch)

Definition at line 440 of file kptresource.cpp.

◆ insertId()

void KPlato::Resource::insertId ( const TQString &  id)

Definition at line 671 of file kptresource.cpp.

◆ isAvailable()

bool KPlato::Resource::isAvailable ( Task *  task)

Definition at line 387 of file kptresource.cpp.

◆ isOverbooked() [1/3]

bool KPlato::Resource::isOverbooked ( ) const

Definition at line 680 of file kptresource.cpp.

◆ isOverbooked() [2/3]

bool KPlato::Resource::isOverbooked ( const DateTime &  start,
const DateTime &  end 
) const

Definition at line 688 of file kptresource.cpp.

◆ isOverbooked() [3/3]

bool KPlato::Resource::isOverbooked ( const TQDate &  date) const

Definition at line 684 of file kptresource.cpp.

◆ load()

bool KPlato::Resource::load ( TQDomElement &  element)

Definition at line 346 of file kptresource.cpp.

◆ makeAppointment() [1/2]

void KPlato::Resource::makeAppointment ( Schedule *  node,
const DateTime &  from,
const DateTime &  end 
)
protected

Definition at line 475 of file kptresource.cpp.

◆ makeAppointment() [2/2]

void KPlato::Resource::makeAppointment ( Schedule *  schedule)

Definition at line 514 of file kptresource.cpp.

◆ name()

const TQString & KPlato::Resource::name ( ) const
inline

Definition at line 205 of file kptresource.h.

◆ normalRate()

double KPlato::Resource::normalRate ( ) const
inline

Definition at line 253 of file kptresource.h.

◆ overtimeRate()

double KPlato::Resource::overtimeRate ( ) const
inline

Definition at line 255 of file kptresource.h.

◆ plannedEffort()

Duration KPlato::Resource::plannedEffort ( const TQDate &  date) const

Definition at line 704 of file kptresource.cpp.

◆ printDebug()

void KPlato::Resource::printDebug ( TQString  ident)

Definition at line 1224 of file kptresource.cpp.

◆ project()

Project * KPlato::Resource::project ( ) const
inline

Definition at line 269 of file kptresource.h.

◆ registerRequest()

void KPlato::Resource::registerRequest ( const ResourceRequest *  request)
inline

Used to clean up requests when the resource is deleted.

Definition at line 282 of file kptresource.h.

◆ removeId() [1/2]

bool KPlato::Resource::removeId ( )
inline

Definition at line 304 of file kptresource.h.

◆ removeId() [2/2]

bool KPlato::Resource::removeId ( const TQString &  id)

Definition at line 667 of file kptresource.cpp.

◆ removeSchedule()

void KPlato::Resource::removeSchedule ( Schedule *  schedule)

Take, and delete.

Definition at line 444 of file kptresource.cpp.

◆ requests()

const TQPtrList< ResourceRequest > & KPlato::Resource::requests ( ) const
inline

Definition at line 286 of file kptresource.h.

◆ save()

void KPlato::Resource::save ( TQDomElement &  element) const

Definition at line 368 of file kptresource.cpp.

◆ schedules()

TQIntDict< Schedule > & KPlato::Resource::schedules ( )
inline

Definition at line 317 of file kptresource.h.

◆ setAvailableFrom()

void KPlato::Resource::setAvailableFrom ( const TQDateTime &  af)
inline

Set the time from when the resource is available to this project.

Definition at line 216 of file kptresource.h.

◆ setAvailableUntil()

void KPlato::Resource::setAvailableUntil ( const TQDateTime  au)
inline

Set the time when the resource is no longer available to this project.

Definition at line 220 of file kptresource.h.

◆ setCalendar()

void KPlato::Resource::setCalendar ( Calendar *  calendar)
inline

Definition at line 277 of file kptresource.h.

◆ setCurrentSchedule() [1/2]

void KPlato::Resource::setCurrentSchedule ( long  id)
inline

Definition at line 314 of file kptresource.h.

◆ setCurrentSchedule() [2/2]

void KPlato::Resource::setCurrentSchedule ( Schedule *  schedule)
inline

Definition at line 313 of file kptresource.h.

◆ setEmail()

void KPlato::Resource::setEmail ( TQString  email)
inline

Definition at line 210 of file kptresource.h.

◆ setFixedCost()

void KPlato::Resource::setFixedCost ( double  value)
inline

Definition at line 258 of file kptresource.h.

◆ setId()

bool KPlato::Resource::setId ( TQString  id)

Definition at line 238 of file kptresource.cpp.

◆ setInitials()

void KPlato::Resource::setInitials ( TQString  initials)
inline

Definition at line 207 of file kptresource.h.

◆ setName()

void KPlato::Resource::setName ( TQString  n)
inline

Definition at line 204 of file kptresource.h.

◆ setNormalRate()

void KPlato::Resource::setNormalRate ( double  rate)
inline

Definition at line 254 of file kptresource.h.

◆ setOvertimeRate()

void KPlato::Resource::setOvertimeRate ( double  rate)
inline

Definition at line 256 of file kptresource.h.

◆ setType() [1/2]

void KPlato::Resource::setType ( const TQString &  type)

Definition at line 279 of file kptresource.cpp.

◆ setType() [2/2]

void KPlato::Resource::setType ( Type  type)
inline

Definition at line 199 of file kptresource.h.

◆ setUnits()

void KPlato::Resource::setUnits ( int  units)
inline

Set available units in percent.

Definition at line 267 of file kptresource.h.

◆ takeSchedule()

void KPlato::Resource::takeSchedule ( const Schedule *  schedule)

Take, don't delete.

Definition at line 449 of file kptresource.cpp.

◆ type()

Type KPlato::Resource::type ( ) const
inline

Definition at line 201 of file kptresource.h.

◆ typeToString()

TQString KPlato::Resource::typeToString ( ) const

Definition at line 286 of file kptresource.cpp.

◆ units()

int KPlato::Resource::units ( ) const
inline

Return available units in percent.

Definition at line 263 of file kptresource.h.

◆ unregisterRequest()

void KPlato::Resource::unregisterRequest ( const ResourceRequest *  request)
inline

Definition at line 284 of file kptresource.h.

◆ workingHours()

TQPtrList< TQTime > KPlato::Resource::workingHours ( )
inline

Definition at line 225 of file kptresource.h.


The documentation for this class was generated from the following files: