|
@ -246,6 +246,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateStateParams() {
|
function updateStateParams() {
|
||||||
|
if (!route) return;
|
||||||
const newUrl = { path: route.path, query: { ...(route.query ?? {}) } };
|
const newUrl = { path: route.path, query: { ...(route.query ?? {}) } };
|
||||||
newUrl.query[store.searchUrl] = JSON.stringify(store.currentFilter);
|
newUrl.query[store.searchUrl] = JSON.stringify(store.currentFilter);
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ import useCardDescription from 'src/composables/useCardDescription';
|
||||||
import { getUrl } from 'src/composables/getUrl';
|
import { getUrl } from 'src/composables/getUrl';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { dashIfEmpty } from 'src/filters';
|
import { dashIfEmpty } from 'src/filters';
|
||||||
|
import { useArrayData } from 'src/composables/useArrayData';
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
id: {
|
id: {
|
||||||
|
@ -49,58 +50,49 @@ const entityId = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const regularizeStockFormDialog = ref(null);
|
const regularizeStockFormDialog = ref(null);
|
||||||
const available = ref(null);
|
|
||||||
const visible = ref(null);
|
|
||||||
const salixUrl = ref();
|
const salixUrl = ref();
|
||||||
|
const mounted = ref();
|
||||||
|
|
||||||
|
const arrayDataStock = useArrayData('descriptorStock', {
|
||||||
|
url: `Items/${entityId.value}/getVisibleAvailable`,
|
||||||
|
});
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
salixUrl.value = await getUrl('');
|
salixUrl.value = await getUrl('getVisibleAvailable');
|
||||||
carlossa marked this conversation as resolved
Outdated
|
|||||||
await getItemConfigs();
|
await getItemConfigs();
|
||||||
await updateStock();
|
mounted.value = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
const data = ref(useCardDescription());
|
const data = ref(useCardDescription());
|
||||||
const setData = async (entity) => {
|
const setData = async (entity) => {
|
||||||
try {
|
if (!entity) return;
|
||||||
if (!entity) return;
|
data.value = useCardDescription(entity.name, entity.id);
|
||||||
data.value = useCardDescription(entity.name, entity.id);
|
await updateStock();
|
||||||
await updateStock();
|
|
||||||
} catch (err) {
|
|
||||||
console.error('Error item');
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getItemConfigs = async () => {
|
const getItemConfigs = async () => {
|
||||||
try {
|
const { data } = await axios.get('ItemConfigs/findOne');
|
||||||
const { data } = await axios.get('ItemConfigs/findOne');
|
if (!data) return;
|
||||||
if (!data) return;
|
return (warehouseConfig.value = data.warehouseFk);
|
||||||
return (warehouseConfig.value = data.warehouseFk);
|
|
||||||
} catch (err) {
|
|
||||||
console.error('Error item');
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
const updateStock = async () => {
|
const updateStock = async () => {
|
||||||
try {
|
if (!mounted.value) return;
|
||||||
available.value = null;
|
await getItemConfigs();
|
||||||
visible.value = null;
|
|
||||||
|
|
||||||
const params = {
|
const params = {
|
||||||
carlossa marked this conversation as resolved
jsegarra
commented
Deberia aparecer el almacen seleccionado al abrir el modal segun el valor del usaurio Deberia aparecer el almacen seleccionado al abrir el modal segun el valor del usaurio
|
|||||||
warehouseFk: $props.warehouseFk,
|
warehouseFk: $props.warehouseFk ?? warehouseConfig.value,
|
||||||
dated: $props.dated,
|
dated: $props.dated,
|
||||||
};
|
};
|
||||||
|
|
||||||
await getItemConfigs();
|
if (!params.warehouseFk) return;
|
||||||
if (!params.warehouseFk) {
|
|
||||||
params.warehouseFk = warehouseConfig.value;
|
const stock = useArrayData('descriptorStock', {
|
||||||
}
|
url: `Items/${entityId.value}/getVisibleAvailable`,
|
||||||
const { data } = await axios.get(`Items/${entityId.value}/getVisibleAvailable`, {
|
userParams: params,
|
||||||
params,
|
});
|
||||||
});
|
const storeData = stock.store.data;
|
||||||
available.value = data.available;
|
if (storeData?.itemFk == entityId.value) return;
|
||||||
visible.value = data.visible;
|
await stock.fetch({});
|
||||||
} catch (err) {
|
|
||||||
console.error('Error updating stock');
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const openRegularizeStockForm = () => {
|
const openRegularizeStockForm = () => {
|
||||||
|
@ -163,8 +155,8 @@ const openCloneDialog = async () => {
|
||||||
<template #before>
|
<template #before>
|
||||||
<ItemDescriptorImage
|
<ItemDescriptorImage
|
||||||
:entity-id="entityId"
|
:entity-id="entityId"
|
||||||
:visible="visible"
|
:visible="arrayDataStock.store.data?.visible"
|
||||||
:available="available"
|
:available="arrayDataStock.store.data?.available"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template #body="{ entity }">
|
<template #body="{ entity }">
|
||||||
jsegarra marked this conversation as resolved
Outdated
jsegarra
commented
Traducir el icono de información Traducir el icono de información
|
|||||||
|
|
|
@ -32,6 +32,10 @@ const editPhotoFormDialog = ref(null);
|
||||||
const showEditPhotoForm = ref(false);
|
const showEditPhotoForm = ref(false);
|
||||||
const warehouseName = ref(null);
|
const warehouseName = ref(null);
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
getItemConfigs();
|
||||||
|
});
|
||||||
|
|
||||||
const toggleEditPictureForm = () => {
|
const toggleEditPictureForm = () => {
|
||||||
showEditPhotoForm.value = !showEditPhotoForm.value;
|
showEditPhotoForm.value = !showEditPhotoForm.value;
|
||||||
};
|
};
|
||||||
|
@ -56,10 +60,6 @@ const getWarehouseName = async (warehouseFk) => {
|
||||||
warehouseName.value = data.name;
|
warehouseName.value = data.name;
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
getItemConfigs();
|
|
||||||
});
|
|
||||||
|
|
||||||
const handlePhotoUpdated = (evt = false) => {
|
const handlePhotoUpdated = (evt = false) => {
|
||||||
image.value.reload(evt);
|
image.value.reload(evt);
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,6 +17,7 @@ import { toDateFormat } from 'src/filters/date.js';
|
||||||
import { dashIfEmpty } from 'src/filters';
|
import { dashIfEmpty } from 'src/filters';
|
||||||
import { date } from 'quasar';
|
import { date } from 'quasar';
|
||||||
import { useState } from 'src/composables/useState';
|
import { useState } from 'src/composables/useState';
|
||||||
|
import { useArrayData } from 'src/composables/useArrayData';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -37,6 +38,33 @@ const warehouseFk = ref(null);
|
||||||
const _showWhatsBeforeInventory = ref(false);
|
const _showWhatsBeforeInventory = ref(false);
|
||||||
const inventoriedDate = ref(null);
|
const inventoriedDate = ref(null);
|
||||||
|
|
||||||
|
const originTypeMap = {
|
||||||
|
entry: {
|
||||||
|
descriptor: EntryDescriptorProxy,
|
||||||
|
icon: 'vn:entry',
|
||||||
|
color: 'green',
|
||||||
|
},
|
||||||
|
ticket: {
|
||||||
|
descriptor: TicketDescriptorProxy,
|
||||||
|
icon: 'vn:ticket',
|
||||||
|
color: 'red',
|
||||||
|
},
|
||||||
|
order: {
|
||||||
|
descriptor: OrderDescriptorProxy,
|
||||||
|
icon: 'vn:basket',
|
||||||
|
color: 'yellow',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const entityTypeMap = {
|
||||||
|
client: {
|
||||||
|
descriptor: CustomerDescriptorProxy,
|
||||||
|
},
|
||||||
|
supplier: {
|
||||||
|
descriptor: SupplierDescriptorProxy,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
const columns = computed(() => [
|
const columns = computed(() => [
|
||||||
{
|
{
|
||||||
name: 'claim',
|
name: 'claim',
|
||||||
|
@ -105,6 +133,28 @@ const showWhatsBeforeInventory = computed({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
today.value.setHours(0, 0, 0, 0);
|
||||||
|
if (route.query.warehouseFk) warehouseFk.value = route.query.warehouseFk;
|
||||||
|
else if (user.value) warehouseFk.value = user.value.warehouseFk;
|
||||||
|
itemsBalanceFilter.where.warehouseFk = warehouseFk.value;
|
||||||
|
const { data } = await axios.get('Configs/findOne');
|
||||||
|
inventoriedDate.value = data.inventoried;
|
||||||
|
await fetchItemBalances();
|
||||||
|
await scrollToToday();
|
||||||
|
await updateWarehouse(warehouseFk.value);
|
||||||
|
});
|
||||||
|
|
||||||
|
onUnmounted(() => (stateStore.rightDrawer = false));
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => router.currentRoute.value.params.id,
|
||||||
|
(newId) => {
|
||||||
|
itemsBalanceFilter.where.itemFk = newId;
|
||||||
|
itemBalancesRef.value.fetch();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
const fetchItemBalances = async () => await itemBalancesRef.value.fetch();
|
const fetchItemBalances = async () => await itemBalancesRef.value.fetch();
|
||||||
|
|
||||||
const getBadgeAttrs = (_date) => {
|
const getBadgeAttrs = (_date) => {
|
||||||
|
@ -131,53 +181,15 @@ const formatDateForAttribute = (dateValue) => {
|
||||||
return dateValue;
|
return dateValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
const originTypeMap = {
|
async function updateWarehouse(warehouseFk) {
|
||||||
entry: {
|
const stock = useArrayData('descriptorStock', {
|
||||||
descriptor: EntryDescriptorProxy,
|
userParams: {
|
||||||
icon: 'vn:entry',
|
warehouseFk,
|
||||||
color: 'green',
|
},
|
||||||
},
|
});
|
||||||
ticket: {
|
await stock.fetch({});
|
||||||
descriptor: TicketDescriptorProxy,
|
stock.store.data.itemFk = route.params.id
|
||||||
icon: 'vn:ticket',
|
}
|
||||||
color: 'red',
|
|
||||||
},
|
|
||||||
order: {
|
|
||||||
descriptor: OrderDescriptorProxy,
|
|
||||||
icon: 'vn:basket',
|
|
||||||
color: 'yellow',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const entityTypeMap = {
|
|
||||||
client: {
|
|
||||||
descriptor: CustomerDescriptorProxy,
|
|
||||||
},
|
|
||||||
supplier: {
|
|
||||||
descriptor: SupplierDescriptorProxy,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
today.value.setHours(0, 0, 0, 0);
|
|
||||||
if (route.query.warehouseFk) warehouseFk.value = route.query.warehouseFk;
|
|
||||||
else if (user.value) warehouseFk.value = user.value.warehouseFk;
|
|
||||||
itemsBalanceFilter.where.warehouseFk = warehouseFk.value;
|
|
||||||
const { data } = await axios.get('Configs/findOne');
|
|
||||||
inventoriedDate.value = data.inventoried;
|
|
||||||
await fetchItemBalances();
|
|
||||||
await scrollToToday();
|
|
||||||
});
|
|
||||||
|
|
||||||
onUnmounted(() => (stateStore.rightDrawer = false));
|
|
||||||
|
|
||||||
watch(
|
|
||||||
() => router.currentRoute.value.params.id,
|
|
||||||
(newId) => {
|
|
||||||
itemsBalanceFilter.where.itemFk = newId;
|
|
||||||
itemBalancesRef.value.fetch();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -203,7 +215,9 @@ watch(
|
||||||
option-value="id"
|
option-value="id"
|
||||||
dense
|
dense
|
||||||
v-model="itemsBalanceFilter.where.warehouseFk"
|
v-model="itemsBalanceFilter.where.warehouseFk"
|
||||||
@update:model-value="fetchItemBalances"
|
@update:model-value="
|
||||||
|
(value) => fetchItemBalances() && updateWarehouse(value)
|
||||||
|
"
|
||||||
class="q-mr-lg"
|
class="q-mr-lg"
|
||||||
/>
|
/>
|
||||||
<QCheckbox
|
<QCheckbox
|
||||||
|
|
Loading…
Reference in New Issue
?