167 lines
6.7 KiB
JavaScript
167 lines
6.7 KiB
JavaScript
import { readFile } from 'fs'
|
|
import Papa from 'papaparse'
|
|
|
|
|
|
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
|
|
const a = Object.keys(state.months)
|
|
.filter(a => getters.MonthsDate.includes(a))
|
|
.reduce((acc, v) => {
|
|
acc[v] = state.months[v];
|
|
return acc;
|
|
}, {})
|
|
return a
|
|
},
|
|
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
|
|
},
|
|
},
|
|
mutations: {
|
|
cleanMonths (state) {
|
|
// erase months
|
|
state.months = []
|
|
},
|
|
importMonths(state, months) {
|
|
// overwrite months
|
|
state.months = months
|
|
},
|
|
updateMonth(state, { date, month }) {
|
|
state.months[date] = month
|
|
},
|
|
createMonth (state, { date, month }) {
|
|
state.months[date] = month
|
|
},
|
|
setRange(state, range) {
|
|
state.range = range
|
|
},
|
|
},
|
|
actions: {
|
|
cleanMonths (context) {
|
|
context.commit("cleanMonths")
|
|
},
|
|
loadMonths (context) {
|
|
// import all months from storage
|
|
readFile(context.rootGetters["config/dataFilePath"], (err, data) => {
|
|
if (err) throw err;
|
|
const months = Papa.parse(data.toString(), {header: true, dynamicTyping:true, skipEmptyLines:true})
|
|
.data
|
|
.reduce(
|
|
(acc, el) => {
|
|
acc[el.date] = el;
|
|
return acc
|
|
}, {})
|
|
context.commit("importMonths", months)
|
|
})
|
|
},
|
|
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)) {
|
|
context.commit('createMonth', { date, month })
|
|
} else {
|
|
console.log("This month already exists")
|
|
}
|
|
},
|
|
setRange(context, range) {
|
|
context.commit("setRange", range)
|
|
},
|
|
},
|
|
}
|
|
|
|
export default travail
|
|
|