/*
 * This file is a TaskJuggler project template. It can be used as a
 * starting point for planning a rather large project. It is primary
 * designed for a product development project but can be easily
 * adapted to other types of projects. The structure of the project
 * plan was derived from the excellent book "Fundamentals of
 * Technology Project Managment" by Collen Carton with Erika
 * McCulloch.
 *
 * You can put your own templates in 
 * 
 * ${KDEHOME}/share/apps/taskjuggler/Templates/${LANG}/
 *
 * Permission to read, modify and distribute this file without any
 * restrictions is granted.
 *
 * Please see the TaskJuggler manual for a more detailed
 * description of the various syntax elements. You can find more
 * information about TaskJuggler at http://www.taskjuggler.org!
 */
project yourID "Your Project" "1.0" @@projectstart@@ - @@projectend@@ {
  # Hide the clock time. Only show the date.
  timeformat "%Y-%m-%d"
  # The currency for all money values is EUR.
  currency "EUR"

  # We want to compare the baseline scenario, to one with a slightly
  # delayed start.
  scenario plan "Plan" {
    scenario delayed "Delayed"
  }
}

# Put your macros here.
# Macro with paramater:
# macro foo [
#   task foo { }
# ]
# Macro with one paramater
# macro bar [
#   task ${1} { }

# Put your flag declarations here. You can flag task, resources and
# accounts to use them as filter criteria when generating reports.
# flags important, dontcare
flags team

# The daily default rate of all resources. This can be overriden for each
# resource. We specify this, so that we can do a good calculation of
# the costs of the project.
rate 300.0

# Put company holidays here
# vacation "Holidays" 2005-12-24 - 2006-01-02

# Put your resource definitions here:
# resource dev "Developers" {
#   resource dev1 "Paul Smith" { rate 330.0 }
#   resource dev2 "Sébastien Bono"
#   resource dev3 "Klaus Müller" { vacation 2005-02-01 - 2005-02-05 }
# }
# This resource does not do any work.
# resource confRoom "Conference Room" {
#   efficiency 0.0
# }

resource people "People" {
  
}
resource equipment "Equipment" {
  efficiency 0.0
}

# In order to do a simple profit and loss analysis of the project we
# specify accounts. One for the development costs, one for the
# documentation costs and one account to credit the customer payments
# to.
account costs "Costs" cost
account rev "Payments" revenue

# Now we specify the work packages. The whole project is described as
# a task that contains sub tasks. These sub tasks are then broken down
# into smaller tasks and so on. The innermost tasks describe the real
# work and have resources allocated to them. Many attributes of tasks
# are inherited from the enclosing task. This saves you a lot of
# writing.
task myProject "My Project" {
  start @@projectstart@@

  # All work related costs will be booked to this account unless the
  # sub tasks specifies it differently.
  account costs

  task planning "Planning Phase" {
    # The tasks in this phase are just milestones that usually precede
    # this plan. Nevertheless it's a good idea to document the time
    # line.
    task concept "Project Concept" { start @@projectstart@@ }
    task rfp "Request for Proposal" { start @@projectstart@@ }
    task greenlight "Greenlight" { start @@projectstart@@ }
    task definition "Definition" { start @@projectstart@@ }
    task approval "Approval" { start @@projectstart@@ }
    task kickoff "Kick-off" { start @@projectstart@@ }
    task plan "Plan" { start @@projectstart@@ }
    task approach "Approach" { start @@projectstart@@ }
  }
  task design "Design Phase" {
  }
  task development "Development Phase" {
  }
  task integration "Integration Phase" {
  }
  task deployment "Deployment Phase" {
  }
  task postDeployment "Post-Deployment Phase" {
  }
}

# A traditional Gantt Chart for the TaskJugglerUI
taskreport "Gantt Chart" {
  headline "Project Gantt Chart"
  columns hierarchindex, name, start, end, effort, duration, chart
  # For this report we like to have the abbreviated weekday in front
  # of the date. %a is the tag for this.
  timeformat "%a %Y-%m-%d"
  loadunit days
  hideresource 1
}

# A list of tasks showing the resources assigned to each task.
taskreport "Task Usage" {
  headline "Task Usage Report"
  columns hierarchindex, name, start, end, effort { title "Work" }, duration,
          cost, revenue
  timeformat "%Y-%m-%d"
  loadunit days
  hideresource 0
}

# A list of all tasks with the percentage complete for each task
taskreport "Tracking Gantt" {
  headline "Tracking Gantt Chart"
  columns hierarchindex, name, start, end, effort { title "Work" }, duration,
          completed, chart
  timeformat "%a %Y-%m-%d"
  loadunit days
  hideresource 1
}

# A graph showing resource allocation. It identifies whether each
# resource is under- or over-allocated for.
resourcereport "Resource Graph" {
  headline "Resource Allocation Graph"
  columns no, name, rate, utilization, freeload, chart
  loadunit days
  hidetask 1
}

# A list of all project resources, both human and material resources,
# together with the costs for each.
resourcereport "Resource Sheet" {
  headline "Resource Sheet"
  columns no, name, efficiency, id, maxeffort, rate
  loadunit days
  hidetask 1
}

# A list of resources and each task associated with each resource.
resourcereport "Resource Usage" {
  headline "Resource Usage Report"
  columns no, name, utilization, freeload, cost
  loadunit days
  hidetask 0
}

# This report looks like a regular calendar that shows the tasks by
# their dates.
htmlweeklycalendar "Calendar.html" {
}

# This report is a status report for the current week. It also
# provides an outlook for the next week.
htmlstatusreport "Status-Report.html" {
}

# A P&L report for the project.
htmlaccountreport "Accounting.html" { 
  # Besides the number of the account and the name we have a column
  # with the total values (at the end of the project) and the values
  # for each month of the project.
  columns no, name, scenario, total, monthly 
  headline "P&L for the Project" 
  caption "The table shows the profit and loss
           analysis as well as the cashflow situation of the Accounting
           Software Project."
  # Since this is a cashflow calculation we show accumulated values
  # per account.
  accumulate
  scenarios plan, delayed 
}

