fix: drivers list & remove drive asign
This commit is contained in:
@@ -386,6 +386,7 @@ const en = {
|
||||
segments: 'Transportation segment',
|
||||
destinationState: 'Destination state',
|
||||
destinationCity: 'Destination city',
|
||||
unassigned: 'Unassigned',
|
||||
|
||||
titleDel: 'Delete vehicle',
|
||||
textDel: 'Are you sure to delete this vehicle?',
|
||||
@@ -398,6 +399,7 @@ const en = {
|
||||
assignedDriver: 'Assigned driver',
|
||||
selectDriver: 'Select driver',
|
||||
msgAssigedDriver: 'Driver assigned successfully!',
|
||||
msgRomveDriver: 'Driver successfully removed from vehicle!',
|
||||
|
||||
changeStatus: 'Change vehicle status',
|
||||
statusVehicle: 'Vehicle status',
|
||||
|
||||
@@ -393,6 +393,7 @@ const es = {
|
||||
segments: 'Segmento del transporte',
|
||||
destinationState: 'Estado de destino',
|
||||
destinationCity: 'Ciudad de destino',
|
||||
unassigned: 'Sin asignar',
|
||||
|
||||
titleDel: 'Eliminar vehiculo',
|
||||
textDel: '¿Estás seguro de eliminar este vehiculo?',
|
||||
@@ -405,6 +406,7 @@ const es = {
|
||||
assignedDriver: 'Conductor asignado',
|
||||
selectDriver: 'Seleccionar conductor',
|
||||
msgAssigedDriver: 'Conductor asignado con éxito!',
|
||||
msgRomveDriver: 'Conductor removido del vehiculo con éxito!',
|
||||
|
||||
changeStatus: 'Cambiar status vehiculo',
|
||||
statusVehicle: 'Estado del vehiculo',
|
||||
|
||||
@@ -90,24 +90,24 @@ export const useCompanyStore = defineStore('company', () => {
|
||||
const updateUserCompany = async(id, formData, localData) => {
|
||||
const data = await updateUser(id, formData);
|
||||
if(data) {
|
||||
const index = users.value.findIndex((user) => user._id === id);
|
||||
const index = users.value.findIndex((user) => user._id === id); /// Actualizamos la lista de usuarios globales
|
||||
if(index !== -1) {
|
||||
users.value[index] = {
|
||||
...users.value[index],
|
||||
...data,
|
||||
...localData
|
||||
};
|
||||
}
|
||||
if(data.job_role === 'driver' && drivers.value.length > 0) { // Actualizamos en la lista drivers
|
||||
const indexd = drivers.value.findIndex((user) => user._id === id);
|
||||
if(indexd !== -1) {
|
||||
drivers.value[indexd] = {
|
||||
const index = drivers.value.findIndex((user) => user._id === id);
|
||||
if(index !== -1) {
|
||||
drivers.value[index] = {
|
||||
...drivers.value[index],
|
||||
...data,
|
||||
...localData
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
return 'success';
|
||||
} else {
|
||||
return t('errors.generic');
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
watch(selectedState, () => {
|
||||
if(selectedState.value != null){
|
||||
setFilterUnlimited()
|
||||
filterQuery.value.state = "state[$in][]="+ selectedState.value.state_name;
|
||||
filterQuery.value.state = "available_in[$regex]="+ selectedState.value.state_name;
|
||||
getVehiclesPublished(filterQuery.value);
|
||||
}
|
||||
});
|
||||
@@ -51,7 +51,7 @@
|
||||
watch(selectedCities, () => {
|
||||
if(selectedCities.value != null){
|
||||
setFilterUnlimited()
|
||||
filterQuery.value.city = "city[$regex]="+ selectedCities.value.city_name;
|
||||
filterQuery.value.city = "available_in[$regex]="+ selectedCities.value.city_name;
|
||||
getVehiclesPublished(filterQuery.value);
|
||||
}
|
||||
});
|
||||
@@ -149,6 +149,8 @@
|
||||
filterQuery.value.limit = "elements="+ 100;
|
||||
}
|
||||
|
||||
// Importante: comprueba que el nuevo vehículo esté disponible y libre de cargas activas para garantizar una logística sin contratiempos.
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -24,14 +24,15 @@
|
||||
const drivers = ref([]);
|
||||
const error = ref(null)
|
||||
const loading = ref(false);
|
||||
const currentDriver = ref(null);
|
||||
|
||||
onMounted(() => {
|
||||
drivers.value = companyStore.drivers;
|
||||
drivers.value = companyStore.drivers.filter((e) => (e.vehicle === undefined || e.vehicle === null))
|
||||
if(props?.vehicle?.driver) {
|
||||
const index = drivers.value.findIndex((d) => d._id === props.vehicle.driver?._id);
|
||||
driverSelected.value = drivers.value[index];
|
||||
} else {
|
||||
drivers.value = companyStore.drivers.filter((e) => !e.vehicle)
|
||||
const index = companyStore.drivers.findIndex((d) => d._id === props.vehicle.driver?._id);
|
||||
driverSelected.value = companyStore.drivers[index];
|
||||
currentDriver.value = driverSelected.value;
|
||||
drivers.value.push(driverSelected.value)
|
||||
}
|
||||
});
|
||||
|
||||
@@ -42,13 +43,15 @@
|
||||
}
|
||||
|
||||
let vehicle_id = props.vehicle._id;
|
||||
let driver_id = driverSelected.value._id;
|
||||
let driver_id = driverSelected.value === 'remove'
|
||||
? currentDriver.value._id
|
||||
: driverSelected.value._id;
|
||||
|
||||
let vehicleData ={
|
||||
driver : driverSelected.value
|
||||
driver : driverSelected.value === 'remove' ? null : driverSelected.value
|
||||
}
|
||||
let localData ={
|
||||
driver : driverSelected.value,
|
||||
driver : driverSelected.value === 'remove' ? null : driverSelected.value,
|
||||
categories: props.vehicle.categories
|
||||
}
|
||||
loading.value = true;
|
||||
@@ -57,7 +60,7 @@
|
||||
if( result === 'success' ) {
|
||||
//Actualizamos el vehiculo
|
||||
let userData = {
|
||||
vehicle : vehicle_id
|
||||
vehicle : driverSelected.value === 'remove' ? null : vehicle_id
|
||||
}
|
||||
|
||||
let localUser = {
|
||||
@@ -68,7 +71,7 @@
|
||||
if(result2 === 'success' ){
|
||||
document.getElementById('btnCloseeditDriverVehicle').click();
|
||||
Swal.fire({
|
||||
title: `<strong>${t('vehicles.msgAssigedDriver')}</strong>`,
|
||||
title: `<strong>${driverSelected.value === 'remove' ? t('vehicles.msgRomveDriver') : t('vehicles.msgAssigedDriver')}</strong>`,
|
||||
icon: 'success'
|
||||
});
|
||||
} else {
|
||||
@@ -117,6 +120,8 @@
|
||||
v-model="driverSelected"
|
||||
>
|
||||
<option disabled value="">-- {{ t('vehicles.selectDriver') }} --</option>
|
||||
<option v-if="driverSelected !== null"
|
||||
value="remove">{{ t('vehicles.unassigned') }}</option>
|
||||
<option v-for="driver in drivers" :value="driver">{{driver.first_name}} {{ driver.last_name }}</option>
|
||||
</select>
|
||||
<span class="error-msg mt-2" v-if="error">{{ error }}</span>
|
||||
|
||||
Reference in New Issue
Block a user