|
@@ -57,11 +57,12 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { computed, onMounted, useTemplateRef, watch } from "vue";
|
|
|
|
|
|
|
+import { computed, useTemplateRef, watch } from "vue";
|
|
|
import { useI18n } from "vue-i18n";
|
|
import { useI18n } from "vue-i18n";
|
|
|
import { useQuasar } from "quasar";
|
|
import { useQuasar } from "quasar";
|
|
|
import { useRoute } from "vue-router";
|
|
import { useRoute } from "vue-router";
|
|
|
import { useProviderApproval } from "src/composables/useProviderApproval";
|
|
import { useProviderApproval } from "src/composables/useProviderApproval";
|
|
|
|
|
+import { useProviderBankAccount } from "src/composables/useProviderBankAccount";
|
|
|
import { userStore } from "src/stores/user";
|
|
import { userStore } from "src/stores/user";
|
|
|
import MissingBankDataDialog from "src/components/profile/MissingBankDataDialog.vue";
|
|
import MissingBankDataDialog from "src/components/profile/MissingBankDataDialog.vue";
|
|
|
import ProfileBankDataDialog from "src/components/profile/ProfileBankDataDialog.vue";
|
|
import ProfileBankDataDialog from "src/components/profile/ProfileBankDataDialog.vue";
|
|
@@ -76,10 +77,13 @@ const { t } = useI18n();
|
|
|
const $q = useQuasar();
|
|
const $q = useQuasar();
|
|
|
const user = userStore();
|
|
const user = userStore();
|
|
|
const { isPendingProvider } = useProviderApproval();
|
|
const { isPendingProvider } = useProviderApproval();
|
|
|
|
|
+const { bankAccountStatusKnown, hasPrimaryBankAccount, needsBankAccount } =
|
|
|
|
|
+ useProviderBankAccount();
|
|
|
|
|
|
|
|
let oldValue = route.path;
|
|
let oldValue = route.path;
|
|
|
|
|
|
|
|
let missingBankDataAlertShown = false;
|
|
let missingBankDataAlertShown = false;
|
|
|
|
|
+let checkingMissingBankData = false;
|
|
|
|
|
|
|
|
const navItems = computed(() => [
|
|
const navItems = computed(() => [
|
|
|
{
|
|
{
|
|
@@ -113,26 +117,37 @@ const scrollAreaHeight = computed(() => {
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
const checkMissingBankData = async () => {
|
|
const checkMissingBankData = async () => {
|
|
|
|
|
+ if (checkingMissingBankData) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if (!user.user?.provider && !user.user?.provider_id) {
|
|
if (!user.user?.provider && !user.user?.provider_id) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // Cadastro em análise não edita dados bancários.
|
|
|
|
|
- if (isPendingProvider.value) {
|
|
|
|
|
|
|
+ if (isPendingProvider.value || hasPrimaryBankAccount.value) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- try {
|
|
|
|
|
- await user.fetchUser();
|
|
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('Erro ao carregar dados do prestador:', error);
|
|
|
|
|
|
|
+ if (!bankAccountStatusKnown.value) {
|
|
|
|
|
+ checkingMissingBankData = true;
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ await user.fetchUser();
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('Erro ao carregar dados do prestador:', error);
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ checkingMissingBankData = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!needsBankAccount.value) {
|
|
|
|
|
+ return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
openMissingBankDataAlert();
|
|
openMissingBankDataAlert();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-const hasCompleteBankAccount = () => Boolean(user.user?.provider?.has_primary_bank_account);
|
|
|
|
|
-
|
|
|
|
|
const isNavItemActive = (item) => route.name === item.name;
|
|
const isNavItemActive = (item) => route.name === item.name;
|
|
|
|
|
|
|
|
const openBankDataDialog = () => {
|
|
const openBankDataDialog = () => {
|
|
@@ -142,7 +157,7 @@ const openBankDataDialog = () => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const openMissingBankDataAlert = () => {
|
|
const openMissingBankDataAlert = () => {
|
|
|
- if (missingBankDataAlertShown || hasCompleteBankAccount()) {
|
|
|
|
|
|
|
+ if (missingBankDataAlertShown || hasPrimaryBankAccount.value) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -153,6 +168,12 @@ const openMissingBankDataAlert = () => {
|
|
|
}).onOk(openBankDataDialog);
|
|
}).onOk(openBankDataDialog);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+watch(
|
|
|
|
|
+ () => `${isPendingProvider.value}:${hasPrimaryBankAccount.value}`,
|
|
|
|
|
+ () => checkMissingBankData(),
|
|
|
|
|
+ { immediate: true },
|
|
|
|
|
+);
|
|
|
|
|
+
|
|
|
watch(
|
|
watch(
|
|
|
() => route.path,
|
|
() => route.path,
|
|
|
(value) => {
|
|
(value) => {
|
|
@@ -163,10 +184,6 @@ watch(
|
|
|
oldValue = value;
|
|
oldValue = value;
|
|
|
}
|
|
}
|
|
|
);
|
|
);
|
|
|
-
|
|
|
|
|
-onMounted(() => {
|
|
|
|
|
- checkMissingBankData();
|
|
|
|
|
-});
|
|
|
|
|
</script>
|
|
</script>
|
|
|
<style scoped>
|
|
<style scoped>
|
|
|
.main-layout {
|
|
.main-layout {
|