diff --git a/src/components/CreateUserModal.vue b/src/components/CreateUserModal.vue index 21d6cc5..3ae28fe 100644 --- a/src/components/CreateUserModal.vue +++ b/src/components/CreateUserModal.vue @@ -20,14 +20,16 @@ }); const { t } = useI18n(); - onMounted(() => { + const authStore = useAuthStore(); + const companyStore = useCompanyStore(); + + onMounted(async() => { if(props.user) { - console.log(props.user) + userForm.job_role = props.user.job_role; userForm.name = props.user.first_name; userForm.last_name = props.user.last_name; userForm.email = props.user.email; userForm.phone = props.user.phone; - userForm.job_role = props.user.job_role; userForm.categories = props.user.categories; userForm.user_city = props.user.user_city?.map(m =>{ return { city_name: m }; @@ -39,14 +41,15 @@ return { meta_value:m }; }); userForm.user_description = props.user.user_description; + if(props.user.job_role === 'warehouse') { + await loadWarehouses(); + userForm.warehouse = warehouses.value.find(w => w._id === props.user.branch?._id); + } } else { Object.assign(userForm, initState); } }) - const authStore = useAuthStore(); - const companyStore = useCompanyStore(); - const initState = { name: '', last_name: '', @@ -59,6 +62,7 @@ user_state: [], truck_type: [], user_description: '', + warehouse: null }; const userForm = reactive({ @@ -70,10 +74,14 @@ last_name: null, email: null, phone: null, + job_role: null, + warehouse: null }) const formRef = ref(null); const loading = ref(false); + const loadingWarehouses = ref(false); + const warehouses = ref([]); const title = computed(() => { return (props.user) ? t('labels.editUser') : t('labels.createUser'); @@ -83,7 +91,7 @@ const saveUser = async() => { validations() - if(errors.value.name || errors.value.last_name || errors.value.email || errors.value.phone){ + if(errors.value.name || errors.value.last_name || errors.value.email || errors.value.phone || errors.value.job_role || errors.value.warehouse) { return; } else { let userData ={ @@ -98,13 +106,14 @@ user_city: userForm.user_city?.length <= 0 ? null : userForm.user_city?.map((e) => e.city_name), user_state: userForm.user_state?.length <= 0 ? null : userForm.user_state?.map((e) => e.state_name), truck_type: userForm.truck_type?.length <= 0 ? null : userForm.truck_type?.map((e) => e.meta_value), - user_description: userForm.user_description + user_description: userForm.user_description, + branch: userForm.warehouse?._id } - const dataUpdate = { categories: userForm.categories, - name: userForm.name + ' ' + userForm.last_name + name: userForm.name + ' ' + userForm.last_name, + branch: userForm.warehouse } let result = 'error'; @@ -141,8 +150,26 @@ last_name: userForm.last_name.length <= 1 ? t('errors.lastname') : null, email: !validateEmail(userForm.email) ? t('errors.email') : null, phone: userForm.phone.length < 10 ? t('errors.phone') : null, + job_role: userForm.job_role === '' ? t('errors.required') : null, + warehouse: (userForm.job_role == 'warehouse' && userForm.warehouse === null) + ? t('errors.required') + : null }; } + + const handleRoleChange = async () => { + if (userForm.job_role === "warehouse") { + await loadWarehouses(); + } + } + + const loadWarehouses = async () => { + loadingWarehouses.value = true; + warehouses.value = await companyStore.getLocationsLoads('loading'); + loadingWarehouses.value = false; + } + +