feat(ItemDescriptorMenu): create and use in descriptor and summary
This commit is contained in:
parent
6f7b83d593
commit
51ed160e5e
|
@ -6,13 +6,12 @@ import { useI18n } from 'vue-i18n';
|
||||||
import CardDescriptor from 'src/components/ui/CardDescriptor.vue';
|
import CardDescriptor from 'src/components/ui/CardDescriptor.vue';
|
||||||
import VnLv from 'src/components/ui/VnLv.vue';
|
import VnLv from 'src/components/ui/VnLv.vue';
|
||||||
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
|
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
|
||||||
import RegularizeStockForm from 'components/RegularizeStockForm.vue';
|
|
||||||
import ItemDescriptorImage from 'src/pages/Item/Card/ItemDescriptorImage.vue';
|
import ItemDescriptorImage from 'src/pages/Item/Card/ItemDescriptorImage.vue';
|
||||||
import useCardDescription from 'src/composables/useCardDescription';
|
import useCardDescription from 'src/composables/useCardDescription';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { dashIfEmpty } from 'src/filters';
|
import { dashIfEmpty } from 'src/filters';
|
||||||
import { useArrayData } from 'src/composables/useArrayData';
|
import { useArrayData } from 'src/composables/useArrayData';
|
||||||
import { cloneItem } from 'src/pages/Item/composables/cloneItem';
|
import ItemDescriptorMenu from './ItemDescriptorMenu.vue';
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
id: {
|
id: {
|
||||||
|
@ -38,7 +37,6 @@ const $props = defineProps({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const { openCloneDialog } = cloneItem();
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const warehouseConfig = ref(null);
|
const warehouseConfig = ref(null);
|
||||||
|
@ -46,7 +44,6 @@ const entityId = computed(() => {
|
||||||
return $props.id || route.params.id;
|
return $props.id || route.params.id;
|
||||||
});
|
});
|
||||||
|
|
||||||
const regularizeStockFormDialog = ref(null);
|
|
||||||
const mounted = ref();
|
const mounted = ref();
|
||||||
|
|
||||||
const arrayDataStock = useArrayData('descriptorStock', {
|
const arrayDataStock = useArrayData('descriptorStock', {
|
||||||
|
@ -68,7 +65,7 @@ const setData = async (entity) => {
|
||||||
const getItemConfigs = async () => {
|
const getItemConfigs = async () => {
|
||||||
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);
|
warehouseConfig.value = data.warehouseFk;
|
||||||
};
|
};
|
||||||
const updateStock = async () => {
|
const updateStock = async () => {
|
||||||
if (!mounted.value) return;
|
if (!mounted.value) return;
|
||||||
|
@ -89,10 +86,6 @@ const updateStock = async () => {
|
||||||
if (storeData?.itemFk == entityId.value) return;
|
if (storeData?.itemFk == entityId.value) return;
|
||||||
await stock.fetch({});
|
await stock.fetch({});
|
||||||
};
|
};
|
||||||
|
|
||||||
const openRegularizeStockForm = () => {
|
|
||||||
regularizeStockFormDialog.value.show();
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -105,24 +98,12 @@ const openRegularizeStockForm = () => {
|
||||||
:url="`Items/${entityId}/getCard`"
|
:url="`Items/${entityId}/getCard`"
|
||||||
@on-fetch="setData"
|
@on-fetch="setData"
|
||||||
>
|
>
|
||||||
<template #menu="{}">
|
<template #menu>
|
||||||
<QItem v-ripple clickable @click="openRegularizeStockForm()">
|
<ItemDescriptorMenu
|
||||||
<QItemSection>
|
:entity-id="entityId"
|
||||||
{{ t('Regularize stock') }}
|
:warehouse-fk="warehouseFk"
|
||||||
<QDialog ref="regularizeStockFormDialog">
|
@regularized="updateStock"
|
||||||
<RegularizeStockForm
|
/>
|
||||||
:item-fk="entityId"
|
|
||||||
:warehouse-fk="warehouseFk"
|
|
||||||
@on-data-saved="updateStock()"
|
|
||||||
/>
|
|
||||||
</QDialog>
|
|
||||||
</QItemSection>
|
|
||||||
</QItem>
|
|
||||||
<QItem v-ripple clickable @click="openCloneDialog(entityId)">
|
|
||||||
<QItemSection>
|
|
||||||
{{ t('globals.clone') }}
|
|
||||||
</QItemSection>
|
|
||||||
</QItem>
|
|
||||||
</template>
|
</template>
|
||||||
<template #before>
|
<template #before>
|
||||||
<ItemDescriptorImage
|
<ItemDescriptorImage
|
||||||
|
|
|
@ -0,0 +1,98 @@
|
||||||
|
<script setup>
|
||||||
|
import RegularizeStockForm from 'components/RegularizeStockForm.vue';
|
||||||
|
import { cloneItem } from 'src/pages/Item/composables/cloneItem';
|
||||||
|
|
||||||
|
const { openCloneDialog } = cloneItem();
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
entityId: {
|
||||||
|
type: Number,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
warehouseFk: {
|
||||||
|
type: Number,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
defineEmits(['regularized']);
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<QItem v-ripple clickable @click="$refs.regularizeStockFormDialog.show()">
|
||||||
|
<QItemSection>
|
||||||
|
{{ $t('Regularize stock') }}
|
||||||
|
<QDialog ref="regularizeStockFormDialog">
|
||||||
|
<RegularizeStockForm
|
||||||
|
:item-fk="entityId"
|
||||||
|
:warehouse-fk="warehouseFk"
|
||||||
|
@on-data-saved="$emit('regularized')"
|
||||||
|
/>
|
||||||
|
</QDialog>
|
||||||
|
</QItemSection>
|
||||||
|
</QItem>
|
||||||
|
<QItem v-ripple clickable @click="openCloneDialog(entityId)">
|
||||||
|
<QItemSection>
|
||||||
|
{{ $t('globals.clone') }}
|
||||||
|
</QItemSection>
|
||||||
|
</QItem>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.weekdaysBtn {
|
||||||
|
margin: 1%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<i18n>
|
||||||
|
en:
|
||||||
|
addTurn: Add turn
|
||||||
|
invoiceIds: "Invoices have been generated with the following ids: {invoiceIds}"
|
||||||
|
|
||||||
|
es:
|
||||||
|
Show Delivery Note...: Ver albarán...
|
||||||
|
Send Delivery Note...: Enviar albarán...
|
||||||
|
as PDF: como PDF
|
||||||
|
as PDF without prices: como PDF sin precios
|
||||||
|
as CSV: Como CSV
|
||||||
|
Send PDF: Enviar PDF
|
||||||
|
Send PDF to tablet: Enviar PDF a tablet
|
||||||
|
Send CSV: Enviar CSV
|
||||||
|
Show Proforma: Ver proforma
|
||||||
|
Delete ticket: Eliminar ticket
|
||||||
|
Send SMS...: Enviar SMS...
|
||||||
|
Pending payment: Pago pendiente
|
||||||
|
Minimum import: Importe mínimo
|
||||||
|
Notify changes: Notificar cambios
|
||||||
|
Ticket deleted: Ticket eliminado
|
||||||
|
You can undo this action within the first hour: Puedes deshacer esta acción dentro de la primera hora
|
||||||
|
To clone ticket: Clonar ticket
|
||||||
|
Ticket cloned: Ticked clonado
|
||||||
|
It was not able to clone the ticket: No se pudo clonar el ticket
|
||||||
|
Generate PDF invoice: Generar PDF factura
|
||||||
|
Regenerate PDF invoice: Regenerar PDF factura
|
||||||
|
The invoice PDF document has been regenerated: El documento PDF de la factura ha sido regenerado
|
||||||
|
Transfer client: Transferir cliente
|
||||||
|
Client: Cliente
|
||||||
|
addTurn: Añadir a turno
|
||||||
|
What is the day of receipt of the ticket?: ¿Cuál es el día de preparación del pedido?
|
||||||
|
Current ticket deleted and added to shift: Ticket actual eliminado y añadido al turno
|
||||||
|
Refund all...: Abonar todo...
|
||||||
|
with warehouse: con almacén
|
||||||
|
without warehouse: sin almacén
|
||||||
|
Make invoice: Crear factura
|
||||||
|
Change shipped hour: Cambiar hora de envío
|
||||||
|
Shipped hour: Hora de envío
|
||||||
|
Recalculate components: Recalcular componentes
|
||||||
|
Are you sure you want to recalculate components?: ¿Seguro que quieres recalcular los componentes?
|
||||||
|
Data saved: Datos guardados
|
||||||
|
Are you sure you want to invoice this ticket?: ¿Seguro que quieres facturar este ticket?
|
||||||
|
You are going to invoice this ticket: Vas a facturar este ticket
|
||||||
|
Ticket invoiced: Ticket facturado
|
||||||
|
Set weight: Establecer peso
|
||||||
|
Weight set: Peso establecido
|
||||||
|
This ticket may be invoiced, do you want to continue?: Es posible que se facture este ticket, desea continuar?
|
||||||
|
invoiceIds: "Se han generado las facturas con los siguientes ids: {invoiceIds}"
|
||||||
|
This ticket will be removed from current route! Continue anyway?: ¡Se eliminará el ticket de la ruta actual! ¿Continuar de todas formas?
|
||||||
|
You are going to delete this ticket: Vas a eliminar este ticket
|
||||||
|
as PDF signed: como PDF firmado
|
||||||
|
Are you sure you want to replace this delivery note?: ¿Seguro que quieres reemplazar este albarán?
|
||||||
|
</i18n>
|
|
@ -8,6 +8,7 @@ import VnLv from 'src/components/ui/VnLv.vue';
|
||||||
import ItemDescriptorImage from 'src/pages/Item/Card/ItemDescriptorImage.vue';
|
import ItemDescriptorImage from 'src/pages/Item/Card/ItemDescriptorImage.vue';
|
||||||
import VnUserLink from 'src/components/ui/VnUserLink.vue';
|
import VnUserLink from 'src/components/ui/VnUserLink.vue';
|
||||||
import VnTitle from 'src/components/common/VnTitle.vue';
|
import VnTitle from 'src/components/common/VnTitle.vue';
|
||||||
|
import ItemDescriptorMenu from './ItemDescriptorMenu.vue';
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
id: {
|
id: {
|
||||||
|
@ -43,6 +44,9 @@ const getUrl = (id, param) => `#/Item/${id}/${param}`;
|
||||||
<template #header="{ entity: { item } }">
|
<template #header="{ entity: { item } }">
|
||||||
{{ item.id }} - {{ item.name }}
|
{{ item.id }} - {{ item.name }}
|
||||||
</template>
|
</template>
|
||||||
|
<template #menu>
|
||||||
|
<ItemDescriptorMenu :entity-id="entityId" :warehouse-fk="warehouseFk" />
|
||||||
|
</template>
|
||||||
<template #body="{ entity: { item, tags, visible, available, botanical } }">
|
<template #body="{ entity: { item, tags, visible, available, botanical } }">
|
||||||
<QCard class="vn-one photo">
|
<QCard class="vn-one photo">
|
||||||
<ItemDescriptorImage
|
<ItemDescriptorImage
|
||||||
|
|
Loading…
Reference in New Issue