diff --git a/src/composables/useCalendar.js b/src/composables/useCalendar.js index dc4b939..02c9bca 100644 --- a/src/composables/useCalendar.js +++ b/src/composables/useCalendar.js @@ -7,7 +7,8 @@ export default function useCalendar() { const getCalendarDate = async(startDate, endDate, filter) => { loading.value = true; - const resp = await getCalendar(startDate, endDate, filter); + const filters = `date[lte]=${endDate}&date[gte]=${startDate}&global=${filter}` + const resp = await getCalendar(filters); if(resp === null) { loading.value = false; loads.value = []; diff --git a/src/services/company.js b/src/services/company.js index 87700ac..a0a3c4d 100644 --- a/src/services/company.js +++ b/src/services/company.js @@ -158,9 +158,9 @@ export const deleteLocation = async(id) => { } } -export const getCalendar = async(startDate, endDate, global) => { +export const getCalendar = async(filters) => { try { - const endpoint = `/v1/loads/calendar?$sort[createdAt]=-1&date[lte]=${endDate}&date[gte]=${startDate}&global=${global}&elements=1000`; + const endpoint = `/v1/loads/calendar?$sort[createdAt]=-1&elements=1000&${filters}`; const {data} = await api.get(endpoint); return { msg: "success", diff --git a/src/stores/loads.js b/src/stores/loads.js index 94799fa..5c01ee0 100644 --- a/src/stores/loads.js +++ b/src/stores/loads.js @@ -1,11 +1,13 @@ import { defineStore } from "pinia"; import { ref } from "vue"; import api from "../lib/axios"; +import { getCalendar } from "../services/company"; export const useLoadsStore = defineStore('load', () => { const currentLoad = ref(null); const loads = ref([]) + const loadsWarehouse = ref([]) const loadsDashboard = ref([]); const loadsTotal = ref(0) const loadsCurrentPage = ref(0) @@ -61,6 +63,23 @@ export const useLoadsStore = defineStore('load', () => { } } + const getLoadsWarehouse = async(filterQuery, reload = false) => { + let filterArr = Object.values(filterQuery); + let cleanfilterArr = filterArr.filter(n=>n); + var filterStr = ""; + if(cleanfilterArr.length >0){ + filterStr = cleanfilterArr.join("&"); + } + if(loadsWarehouse.value.length <= 0 || reload) { + try { + const {data} = await getCalendar(filterStr); + loadsWarehouse.value = data.data; + } catch (error) { + loadsWarehouse.value = []; + } + } + } + const getProposalsOfLoads = async(filterQuery) => { try { const endpoint = `/v1/proposals/find?load=${filterQuery}`; @@ -155,7 +174,9 @@ export const useLoadsStore = defineStore('load', () => { getCompanyLoads, getLoadsAll, getProposalCompanyAll, + getLoadsWarehouse, loadsDashboard, + loadsWarehouse, deleteLoad, getLoad, saveLoad, @@ -167,5 +188,6 @@ export const useLoadsStore = defineStore('load', () => { loadsTotal, currentLoad, proposalsOfLoads, + } }); \ No newline at end of file diff --git a/src/views/store/StoreView.vue b/src/views/store/StoreView.vue index d5ec1a8..500899e 100644 --- a/src/views/store/StoreView.vue +++ b/src/views/store/StoreView.vue @@ -14,24 +14,33 @@ import Spiner from '../../components/ui/Spiner.vue'; const { t } = useI18n() const query = ref(''); - const date = ref(''); + const date = ref(new Date()); const loadsFilters = ref([]); const filterQuery = ref([]); const loading = ref(false); onMounted(async() => { - date.value = getDateTime(new Date(), 0).substring(0, 10); + date.value = (new Date()).toISOString().substring(0, 10); + // date.value = new Date(); await getDataLoads(false); }) const getDataLoads = async (reload) => { - filterQuery.value.limit = 'elements=' + 1000; - // filterQuery.value.branch = 'branch=' + authStore.user.branch; + filterQuery.value.branch = 'shipper_warehouse=' + authStore.user.branch; // filterQuery.value.status = "status[$ne]="+"Closed"; - loading.value = true; + const dateSelected = new Date(date.value); + const startDate = dateSelected.toISOString(); + const endDateSpeac = new Date(dateSelected).setDate(dateSelected.getDate() + 1); + const endDate = (new Date(endDateSpeac)).toISOString(); + // filterQuery.value.company = 'company=' + authStore.user.company._id; + filterQuery.value.start = 'date[gte]=' + startDate.substring(0, 10).replaceAll('-', '/'); + filterQuery.value.end = 'date[lte]=' + endDate.substring(0, 10).replaceAll('-', '/'); + filterQuery.value.global = "global=" + 0; console.log(filterQuery.value); - await loadStore.getCompanyLoads(filterQuery.value, reload); - console.log(loadStore.loads); + await loadStore.getLoadsWarehouse(filterQuery.value, reload); + + // https://api.etaviaporte.com/api/v1/loads/calendar?$sort[createdAt]=-1&elements=1000&shipper_warehouse=66c13c74a7f46dc835c82116&company=66bd6a53b59eff03cc868900&date[gte]=2025/03/01&date[lte]=2025/03/02&global=0 + console.log(loadStore.loadsWarehouse); loadsFilters.value = loadStore.loads; loading.value = false; } @@ -56,10 +65,8 @@ import Spiner from '../../components/ui/Spiner.vue'; } const handleDate = async () => { + // date.value = new Date(date.value); console.log(date.value); - filterQuery.value.startDate = 'date[gte]=' + date.value.replaceAll('-', '/') + 'T00:00:00'; - filterQuery.value.endDate = 'date[lte]=' + date.value.replaceAll('-', '/') + 'T23:59:59'; - console.log(filterQuery) await getDataLoads(true); }