Compare commits

..

2 Commits

Author SHA1 Message Date
gitea-actions
029bc03a5a chore: bump version to v0.1.22
All checks were successful
Auto Tag Develop / tag (push) Successful in 4s
Build Release Artefact / build (push) Successful in 1m12s
2026-03-11 09:05:51 +00:00
82e575fff0 fix : plus de date de fin obligatoire sur les contrats interim
All checks were successful
Auto Tag Develop / tag (push) Successful in 5s
2026-03-11 10:05:41 +01:00
6 changed files with 23 additions and 13 deletions

View File

@@ -1,2 +1,2 @@
parameters:
app.version: '0.1.21'
app.version: '0.1.22'

View File

@@ -162,9 +162,9 @@
<input id="create-contract-start-date" v-model="createContractForm.startDate" type="date" :class="createContractStartDateFieldClass" />
</div>
<div v-if="requiresCreateContractEndDate">
<div v-if="showsCreateContractEndDate">
<label class="text-md font-semibold text-neutral-700" for="create-contract-end-date">
Fin contrat <span class="text-red-600">*</span>
Fin contrat <span v-if="requiresCreateContractEndDate" class="text-red-600">*</span>
</label>
<input id="create-contract-end-date" v-model="createContractForm.endDate" type="date" :class="createContractEndDateFieldClass" />
</div>
@@ -235,6 +235,7 @@ defineProps<{
createContractNatureFieldClass: string
createContractFieldClass: string
createContractStartDateFieldClass: string
showsCreateContractEndDate: boolean
requiresCreateContractEndDate: boolean
createContractEndDateFieldClass: string
isCreateContractFormValid: boolean

View File

@@ -11,7 +11,7 @@ import { getEmployeeRttSummary, createRttPayment } from '~/services/employee-rtt
import { getEmployee, updateEmployee } from '~/services/employees'
import { listPublicHolidays } from '~/services/public-holidays'
import { formatNullableYmdToFr, getTodayYmd, shiftYmd } from '~/utils/date'
import { contractNatureLabel, isContractNature, requiresContractEndDate } from '~/utils/contract'
import { contractNatureLabel, isContractNature, requiresContractEndDate, showsContractEndDate } from '~/utils/contract'
export const useEmployeeDetailPage = () => {
const route = useRoute()
@@ -99,6 +99,7 @@ export const useEmployeeDetailPage = () => {
const isContractEndDateValid = computed(() => contractForm.endDate !== '')
const showContractEndDateError = computed(() => validationTouched.endDate && !isContractEndDateValid.value)
const showsCreateContractEndDate = computed(() => showsContractEndDate(createContractForm.contractNature))
const requiresCreateContractEndDate = computed(() => requiresContractEndDate(createContractForm.contractNature))
const isCreateContractValid = computed(() => createContractForm.contractId !== '')
const isCreateContractNatureValid = computed(() => isContractNature(createContractForm.contractNature))
@@ -314,8 +315,8 @@ export const useEmployeeDetailPage = () => {
await loadEmployee()
}
watch(requiresCreateContractEndDate, (required) => {
if (!required) {
watch(showsCreateContractEndDate, (shows) => {
if (!shows) {
createContractForm.endDate = ''
}
})
@@ -353,6 +354,7 @@ export const useEmployeeDetailPage = () => {
createContractNatureFieldClass,
createContractFieldClass,
createContractStartDateFieldClass,
showsCreateContractEndDate,
requiresCreateContractEndDate,
createContractEndDateFieldClass,
isCreateContractFormValid,

View File

@@ -78,6 +78,7 @@
:create-contract-nature-field-class="createContractNatureFieldClass"
:create-contract-field-class="createContractFieldClass"
:create-contract-start-date-field-class="createContractStartDateFieldClass"
:shows-create-contract-end-date="showsCreateContractEndDate"
:requires-create-contract-end-date="requiresCreateContractEndDate"
:create-contract-end-date-field-class="createContractEndDateFieldClass"
:is-create-contract-form-valid="isCreateContractFormValid"
@@ -131,6 +132,7 @@ const {
createContractNatureFieldClass,
createContractFieldClass,
createContractStartDateFieldClass,
showsCreateContractEndDate,
requiresCreateContractEndDate,
createContractEndDateFieldClass,
isCreateContractFormValid,

View File

@@ -154,7 +154,7 @@
La date de début est obligatoire.
</p>
</div>
<div v-if="requiresContractEndDateComputed">
<div v-if="showsContractEndDateComputed">
<label class="text-md font-semibold text-neutral-700" for="contract-end-date">
Fin contrat
<span v-if="requiresContractEndDateComputed" class="text-red-600">*</span>
@@ -166,7 +166,7 @@
:class="contractEndDateFieldClass"
/>
<p v-if="showContractEndDateError" class="mt-1 text-sm text-red-600">
La date de fin est obligatoire pour un CDD ou un intérim.
La date de fin est obligatoire pour un CDD.
</p>
</div>
</template>
@@ -199,7 +199,7 @@ import {listContracts} from '~/services/contracts'
import {createEmployee, deleteEmployee, listEmployees, updateEmployee} from '~/services/employees'
import {listSites} from '~/services/sites'
import SiteFilterSelector from '~/components/SiteFilterSelector.vue'
import {contractNatureLabel, isContractNature, requiresContractEndDate} from '~/utils/contract'
import {contractNatureLabel, isContractNature, requiresContractEndDate, showsContractEndDate} from '~/utils/contract'
useHead({
title: 'Employés'
@@ -264,6 +264,7 @@ const isSiteValid = computed(() => form.siteId !== '')
const isContractValid = computed(() => form.contractId !== '')
const isContractNatureValid = computed(() => isContractNature(form.contractNature))
const isContractStartDateValid = computed(() => form.contractStartDate !== '')
const showsContractEndDateComputed = computed(() => showsContractEndDate(form.contractNature))
const requiresContractEndDateComputed = computed(() => requiresContractEndDate(form.contractNature))
const isContractEndDateValid = computed(() => {
if (!requiresContractEndDateComputed.value) return true
@@ -429,7 +430,7 @@ const handleSubmit = async () => {
contractId: Number(form.contractId),
contractNature: form.contractNature,
contractStartDate: form.contractStartDate,
contractEndDate: requiresContractEndDateComputed.value ? form.contractEndDate : null
contractEndDate: form.contractEndDate || null
})
}
@@ -460,8 +461,8 @@ watch(isDrawerOpen, (isOpen) => {
}
})
watch(requiresContractEndDateComputed, (required) => {
if (!required) {
watch(showsContractEndDateComputed, (shows) => {
if (!shows) {
form.contractEndDate = ''
}
})

View File

@@ -8,10 +8,14 @@ export const contractNatureLabel = (value?: ContractNature) => {
return 'CDI'
}
export const requiresContractEndDate = (nature: ContractNature) => {
export const showsContractEndDate = (nature: ContractNature) => {
return nature === 'CDD' || nature === 'INTERIM'
}
export const requiresContractEndDate = (nature: ContractNature) => {
return nature === 'CDD'
}
export const isContractNature = (value: string): value is ContractNature => {
return (CONTRACT_NATURES as readonly string[]).includes(value)
}