203 lines
7.6 KiB
JavaScript
203 lines
7.6 KiB
JavaScript
|
|
function monthCA(month) {
|
|
if (month.ca_react) {
|
|
return month.ca_react
|
|
} else {
|
|
return month.ca_retro
|
|
}
|
|
}
|
|
|
|
const travail = {
|
|
namespaced: true,
|
|
state() {
|
|
return {
|
|
empty: {
|
|
ca_theo: null, // ca théorique basé sur les séances effectuées
|
|
nbr_seances: null, // Nombre de séances effectuées sur le mois
|
|
ca_retro: null, // ca au moment de la rétrocession
|
|
ca_react: null, // ca réactualisé
|
|
retro: 0, // montant de la rétrocession
|
|
remuneration: 0, // rémunération décidée
|
|
},
|
|
months: {
|
|
"2021-01": {
|
|
ca_theo: null, // ca théorique basé sur les séances effectuées
|
|
nbr_seances: null, // Nombre de séances effectuées sur le mois
|
|
ca_retro: 6747, // ca au moment de la rétrocession
|
|
ca_react: null, // ca réactualisé
|
|
retro: 893, // montant de la rétrocession
|
|
remuneration: 2000, // rémunération décidée
|
|
},
|
|
"2021-02": {
|
|
ca_theo: null, // ca théorique basé sur les séances effectuées
|
|
nbr_seances: null, // Nombre de séances effectuées sur le mois
|
|
ca_retro: 5183, // ca au moment de la rétrocession
|
|
ca_react: null, // ca réactualisé
|
|
retro: 665, // montant de la rétrocession
|
|
remuneration: 1500, // rémunération décidée
|
|
},
|
|
"2021-03": {
|
|
ca_theo: null, // ca théorique basé sur les séances effectuées
|
|
nbr_seances: null, // Nombre de séances effectuées sur le mois
|
|
ca_retro: 7088, // ca au moment de la rétrocession
|
|
ca_react: null, // ca réactualisé
|
|
retro: 855, // montant de la rétrocession
|
|
remuneration: 2000, // rémunération décidée
|
|
},
|
|
"2021-04": {
|
|
ca_theo: null, // ca théorique basé sur les séances effectuées
|
|
nbr_seances: null, // Nombre de séances effectuées sur le mois
|
|
ca_retro: 4194, // ca au moment de la rétrocession
|
|
ca_react: 5630, // ca réactualisé
|
|
retro: 627, // montant de la rétrocession
|
|
remuneration: 2000, // rémunération décidée
|
|
},
|
|
"2021-05": {
|
|
ca_theo: null, // ca théorique basé sur les séances effectuées
|
|
nbr_seances: null, // Nombre de séances effectuées sur le mois
|
|
ca_retro: 5564, // ca au moment de la rétrocession
|
|
ca_react: 6335, // ca réactualisé
|
|
retro: 699, // montant de la rétrocession
|
|
remuneration: 2800, // rémunération décidée
|
|
},
|
|
"2021-06": {
|
|
ca_theo: null, // ca théorique basé sur les séances effectuées
|
|
nbr_seances: null, // Nombre de séances effectuées sur le mois
|
|
ca_retro: 5442, // ca au moment de la rétrocession
|
|
ca_react: 6335, // ca réactualisé
|
|
retro: 638, // montant de la rétrocession
|
|
remuneration: 2800, // rémunération décidée
|
|
},
|
|
},
|
|
range: {
|
|
start: "2021-01",
|
|
end: "2021-08",
|
|
},
|
|
}
|
|
},
|
|
getters: {
|
|
TheEmptyMonth(state) { return { ...state.empty } },
|
|
range(state) { return state.range },
|
|
MonthsDate(state) {
|
|
// Get months inside the range
|
|
return Object.keys(state.months).filter(date => (date >= state.range.start) && (date <= state.range.end)).sort().reverse()
|
|
},
|
|
MonthsAllDate(state) {
|
|
// Get all the months
|
|
return Object.keys(state.months).sort().reverse()
|
|
},
|
|
months: (state, getters) => {
|
|
// Get in range months
|
|
return Object.keys(state.months)
|
|
.filter(a => getters.MonthsDate.includes(a))
|
|
.reduce((acc, v) => {
|
|
acc[v] = state.months[v];
|
|
return acc;
|
|
}, {})
|
|
},
|
|
monthsAll: (state) => {
|
|
// Get in range months
|
|
return state.months
|
|
},
|
|
getMonth: (state) => (date) => {
|
|
return state.months[date]
|
|
},
|
|
count: (state, getters) => {
|
|
// Amount of mounts
|
|
return Object.keys(getters.months).length
|
|
},
|
|
ca: (state, getters) => {
|
|
// Total CA (ca_react if sets, ca_retro otherwise)
|
|
return Object.values(getters.months).map(a => monthCA(a)).reduce(
|
|
(acc, v) => acc + v,
|
|
0
|
|
)
|
|
},
|
|
caMean: (state, getters) => {
|
|
// Mean of CA
|
|
return Math.floor(Object.values(state.months).map(a => monthCA(a)).reduce(
|
|
(acc, v) => acc + v,
|
|
0
|
|
) / getters.count)
|
|
},
|
|
caTheo: (state, getters) => {
|
|
// Total theorical CA
|
|
return Object.values(getters.months).map(a => a.ca_theo).reduce(
|
|
(acc, v) => acc + v,
|
|
0
|
|
)
|
|
},
|
|
remuneration: (state, getters) => {
|
|
// Total remuneration
|
|
return Object.values(getters.months).map(a => a.remuneration).reduce(
|
|
(acc, v) => acc + v,
|
|
0
|
|
)
|
|
},
|
|
remunerationMean: (state, getters) => {
|
|
// Mean of remuneration
|
|
return Math.floor(Object.values(getters.months).map(a => a.remuneration).reduce(
|
|
(acc, v) => acc + v,
|
|
0
|
|
) / getters.count)
|
|
},
|
|
retrocession: (state, getters) => {
|
|
// Total retrocession
|
|
return Object.values(getters.months)
|
|
.map(a => a.retro)
|
|
.reduce(
|
|
(acc, v) => acc + v,
|
|
0
|
|
)
|
|
},
|
|
retrocessionMean: (state, getters) => {
|
|
// Mean of retrocession
|
|
return Math.floor(
|
|
Object.values(getters.months)
|
|
.map(a => a.retro)
|
|
.reduce(
|
|
(acc, v) => acc + v,
|
|
0
|
|
) / getters.count
|
|
)
|
|
},
|
|
},
|
|
mutations: {
|
|
updateMonth(state, { date, month }) {
|
|
state.months[date] = month
|
|
},
|
|
createMonth (state, { date, month }) {
|
|
state.months[date] = month
|
|
},
|
|
setRange(state, range) {
|
|
state.range = range
|
|
},
|
|
},
|
|
actions: {
|
|
updateMonth(context, { date, month }) {
|
|
// update month's datas
|
|
if (date in context.state.months) {
|
|
context.commit('updateMonth', { date, month })
|
|
} else {
|
|
console.log("This month does not exists")
|
|
}
|
|
},
|
|
createMonth(context, { date, month }) {
|
|
// Create a new month
|
|
if (!(date in context.state.months)) {
|
|
console.log(date)
|
|
context.commit('createMonth', { date, month })
|
|
console.log(context.state.months)
|
|
} else {
|
|
console.log("This month already exists")
|
|
}
|
|
},
|
|
setRange(context, range) {
|
|
context.commit("setRange", range)
|
|
},
|
|
},
|
|
}
|
|
|
|
export default travail
|
|
|