71 lines
2.3 KiB
TypeScript
71 lines
2.3 KiB
TypeScript
import { TaskCategory, TaskCategoryID } from "./task";
|
|
import { Project } from "./project";
|
|
|
|
export interface TaskCategoriesIndex {
|
|
[id: string]: TaskCategory
|
|
}
|
|
|
|
export interface TimeUnit {
|
|
label: string
|
|
acronym: string
|
|
}
|
|
|
|
export interface Params {
|
|
taskCategories: TaskCategoriesIndex
|
|
timeUnit: TimeUnit
|
|
currency: string
|
|
roundUpEstimations: boolean
|
|
hideFinancialPreviewOnPrint: boolean
|
|
}
|
|
|
|
export const defaults = {
|
|
taskCategories: {
|
|
"RQ15CD3iX1Ey2f9kat7tfLGZmUx9GGc15nS6A7fYtZv76SnS4": {
|
|
id: "RQ15CD3iX1Ey2f9kat7tfLGZmUx9GGc15nS6A7fYtZv76SnS4",
|
|
label: "Développement",
|
|
costPerTimeUnit: 500,
|
|
},
|
|
"QRdGS5Pr5si9SSjU84WAq19cjxQ3rUL71jKh8oHSMZSY4bBH9": {
|
|
id: "QRdGS5Pr5si9SSjU84WAq19cjxQ3rUL71jKh8oHSMZSY4bBH9",
|
|
label: "Conduite de projet",
|
|
costPerTimeUnit: 500,
|
|
},
|
|
"RPcqFMLdQrgBSomv7Sao7EQSb7on6rtjfDQK5JZNhNSg9DwEo": {
|
|
id: "RPcqFMLdQrgBSomv7Sao7EQSb7on6rtjfDQK5JZNhNSg9DwEo",
|
|
label: "Recette",
|
|
costPerTimeUnit: 500,
|
|
},
|
|
},
|
|
timeUnit: {
|
|
label: "jour/homme",
|
|
acronym: "j/h",
|
|
},
|
|
roundUpEstimations: true,
|
|
currency: "€ H.T.",
|
|
costPerTimeUnit: 500,
|
|
hideFinancialPreviewOnPrint: false,
|
|
}
|
|
|
|
export function getTimeUnit(project: Project): TimeUnit {
|
|
return project.params.timeUnit ? project.params.timeUnit : defaults.timeUnit;
|
|
}
|
|
|
|
export function getRoundUpEstimations(project: Project): boolean {
|
|
return project.params.hasOwnProperty("roundUpEstimations") ? project.params.roundUpEstimations : defaults.roundUpEstimations;
|
|
}
|
|
|
|
export function getCurrency(project: Project): string {
|
|
return project.params.currency ? project.params.currency : defaults.currency;
|
|
}
|
|
|
|
export function getTaskCategories(project: Project): TaskCategoriesIndex {
|
|
return project.params.taskCategories ? project.params.taskCategories : defaults.taskCategories;
|
|
}
|
|
|
|
export function getTaskCategoryCost(taskCategory: TaskCategory): number {
|
|
return taskCategory.hasOwnProperty("costPerTimeUnit") ? taskCategory.costPerTimeUnit : defaults.costPerTimeUnit;
|
|
}
|
|
|
|
export function getHideFinancialPreviewOnPrint(project: Project): boolean {
|
|
return project.params.hasOwnProperty("hideFinancialPreviewOnPrint") ? project.params.hideFinancialPreviewOnPrint : defaults.hideFinancialPreviewOnPrint;
|
|
} |