#6321 - Negative ticket #158
|
@ -9,10 +9,10 @@ const props = defineProps({
|
||||||
});
|
});
|
||||||
|
|
||||||
const valueClass = computed(() =>
|
const valueClass = computed(() =>
|
||||||
props.value === 0 ? 'neutral' : props.value > 0 ? 'positive' : 'negative'
|
props.value === 0 ? 'neutral' : props.value > 0 ? 'positive' : 'negative',
|
||||||
);
|
);
|
||||||
const iconName = computed(() =>
|
const iconName = computed(() =>
|
||||||
props.value === 0 ? 'equal' : props.value > 0 ? 'arrow_upward' : 'arrow_downward'
|
props.value === 0 ? 'equal' : props.value > 0 ? 'arrow_upward' : 'arrow_downward',
|
||||||
);
|
);
|
||||||
const formattedValue = computed(() => props.value);
|
const formattedValue = computed(() => props.value);
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -190,7 +190,7 @@ const isSelectionAvailable = (itemProposal) => {
|
||||||
return byQuantity;
|
return byQuantity;
|
||||||
};
|
};
|
||||||
|
|
||||||
jsegarra marked this conversation as resolved
|
|||||||
const isDisabled = (row) => !isSelectionAvailable(row.value);
|
const isDisabled = (row) => !isSelectionAvailable(row);
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<VnTable
|
<VnTable
|
||||||
|
@ -230,13 +230,16 @@ const isDisabled = (row) => !isSelectionAvailable(row.value);
|
||||||
color="primary"
|
color="primary"
|
||||||
flat
|
flat
|
||||||
dense
|
dense
|
||||||
:disable="isDisabled(row)"
|
|
||||||
@click="change(row)"
|
|
||||||
:class="{
|
:class="{
|
||||||
'fill-icon': isSelected(row),
|
'fill-icon': isSelected(row),
|
||||||
}"
|
}"
|
||||||
|
@click="change(row)"
|
||||||
|
:disable="!isSelectionAvailable(row)"
|
||||||
>
|
>
|
||||||
<QTooltip> {{ isDisabled ? t('Disabled') : t('Enabled') }} </QTooltip>
|
<QTooltip v-if="!isSelected(row)">
|
||||||
|
{{ t('Select to replace') }}</QTooltip
|
||||||
|
>
|
||||||
|
<QTooltip v-else> {{ t('Selected to replace') }}</QTooltip>
|
||||||
</QBtn>
|
</QBtn>
|
||||||
<div
|
<div
|
||||||
class="middle compatibility"
|
class="middle compatibility"
|
||||||
|
@ -283,6 +286,7 @@ const isDisabled = (row) => !isSelectionAvailable(row.value);
|
||||||
</template>
|
</template>
|
||||||
<template #column-price2="{ row }">
|
<template #column-price2="{ row }">
|
||||||
<div class="flex column items-center content-center">
|
<div class="flex column items-center content-center">
|
||||||
|
* {{ sales[0] }} **{{ row.price2 }}*
|
||||||
<VnStockValueDisplay :value="sales[0].price - row.price2" />
|
<VnStockValueDisplay :value="sales[0].price - row.price2" />
|
||||||
<span :class="[conditionalValuePrice(row.price2)]">{{
|
<span :class="[conditionalValuePrice(row.price2)]">{{
|
||||||
toCurrency(row.price2)
|
toCurrency(row.price2)
|
||||||
|
|
|
@ -7,6 +7,7 @@ import TicketTransferForm from './TicketTransferForm.vue';
|
||||||
|
|
||||||
import { toDateFormat } from 'src/filters/date.js';
|
import { toDateFormat } from 'src/filters/date.js';
|
||||||
import VnInputDate from 'src/components/common/VnInputDate.vue';
|
import VnInputDate from 'src/components/common/VnInputDate.vue';
|
||||||
|
import transferSales from './components/transferSales';
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
mana: {
|
mana: {
|
||||||
|
@ -22,7 +23,7 @@ const $props = defineProps({
|
||||||
default: () => {},
|
default: () => {},
|
||||||
},
|
},
|
||||||
ticket: {
|
ticket: {
|
||||||
type: Object,
|
type: [Array, Object],
|
||||||
default: () => {},
|
default: () => {},
|
||||||
},
|
},
|
||||||
split: {
|
split: {
|
||||||
|
@ -92,16 +93,25 @@ const handleRowClick = (row) => {
|
||||||
transferFormRef.value.transferSales(ticketId);
|
transferFormRef.value.transferSales(ticketId);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const split = () => {
|
||||||
|
const tickets = Array.isArray($props.ticket) ? $props.ticket : [$props.ticket];
|
||||||
|
tickets.forEach(transferSales);
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<QPopupProxy ref="popupProxyRef" data-cy="ticketTransferPopup">
|
<QPopupProxy ref="popupProxyRef" data-cy="ticketTransferPopup">
|
||||||
<div class="flex row items-center q-ma-lg" v-if="$props.split">
|
<div class="flex row items-center q-ma-lg" v-if="$props.split">
|
||||||
<QBtn class="q-mr-sm" color="primary" label="Split"></QBtn>
|
<QBtn class="q-mr-sm" color="primary" label="Split" @click="split"></QBtn>
|
||||||
<VnInputDate :label="$t('New date')" v-model="splitDate"></VnInputDate>
|
<VnInputDate :label="$t('New date')" v-model="splitDate"></VnInputDate>
|
||||||
</div>
|
</div>
|
||||||
<QSeparator class="q-my-lg" color="primary" />
|
<QSeparator class="q-my-lg" color="primary" />
|
||||||
<QCard class="full-width q-px-md" style="display: flex; width: 80vw">
|
<QCard
|
||||||
|
v-if="!$props.split"
|
||||||
|
class="full-width q-px-md"
|
||||||
|
style="display: flex; width: 80vw"
|
||||||
|
>
|
||||||
|
{{ ticket }}- {{ transfer }}
|
||||||
<QTable
|
<QTable
|
||||||
:rows="transfer.sales"
|
:rows="transfer.sales"
|
||||||
:columns="transferLinesColumns"
|
:columns="transferLinesColumns"
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
export default async function ({ ticketId, sales }) {
|
||||||
|
const params = {
|
||||||
|
ticketId,
|
||||||
|
sales,
|
||||||
|
};
|
||||||
|
|
||||||
|
const { data } = await axios.post(`tickets/${ticketId}/transferSales`, params);
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
|
@ -138,16 +138,17 @@ const filterTable = { stateFk: 0, warehouseFk: useState().getUser().value.wareho
|
||||||
data-cy="transferLines"
|
data-cy="transferLines"
|
||||||
color="primary"
|
color="primary"
|
||||||
icon="vn:splitline"
|
icon="vn:splitline"
|
||||||
:disable="selectedRows.length < 1"
|
:disable="!(selectedRows.length === 1)"
|
||||||
>
|
>
|
||||||
<QTooltip>{{ t('ticketSale.transferLines') }} </QTooltip>
|
<QTooltip>{{ t('ticketSale.transferLines') }} </QTooltip>
|
||||||
<TicketTransfer
|
<TicketTransfer
|
||||||
ref="transferFormRef"
|
ref="transferFormRef"
|
||||||
split="true"
|
split="true"
|
||||||
class="full-width"
|
class="full-width"
|
||||||
|
:ticket="selectedRows"
|
||||||
:transfer="{
|
:transfer="{
|
||||||
sales: selectedRows,
|
sales: selectedRows,
|
||||||
lastActiveTickets: selectedRows.map((row) => row.ticketFk),
|
lastActiveTickets: selectedRows.map((row) => row.id),
|
||||||
}"
|
}"
|
||||||
></TicketTransfer>
|
></TicketTransfer>
|
||||||
</QBtn>
|
</QBtn>
|
||||||
|
|
|
@ -258,61 +258,57 @@ function onBuysFetched(data) {
|
||||||
|
|
||||||
<template #column-status="{ row }">
|
<template #column-status="{ row }">
|
||||||
<QTd style="width: 150px">
|
<QTd style="width: 150px">
|
||||||
<QIcon
|
<div class="icon-container">
|
||||||
v-if="row.isBasket"
|
<QIcon
|
||||||
name="vn:basket"
|
name="vn:basket"
|
||||||
color="primary"
|
color="primary"
|
||||||
class="cursor-pointer"
|
class="cursor-pointer"
|
||||||
size="xs"
|
size="xs"
|
||||||
>
|
>
|
||||||
<QTooltip>{{ t('negative.detail.isBasket') }}</QTooltip>
|
<QTooltip>{{ t('negative.detail.isBasket') }}</QTooltip>
|
||||||
</QIcon>
|
</QIcon>
|
||||||
<QIcon
|
<QIcon
|
||||||
v-if="row.hasToIgnore"
|
name="star"
|
||||||
name="star"
|
color="primary"
|
||||||
color="primary"
|
class="cursor-pointer fill-icon"
|
||||||
class="cursor-pointer fill-icon"
|
size="xs"
|
||||||
size="xs"
|
>
|
||||||
>
|
<QTooltip>{{ t('negative.detail.hasToIgnore') }}</QTooltip>
|
||||||
<QTooltip>{{ t('negative.detail.hasToIgnore') }}</QTooltip>
|
</QIcon>
|
||||||
</QIcon>
|
<QIcon
|
||||||
<QIcon
|
name="change_circle"
|
||||||
v-if="row.hasSubstitution"
|
color="primary"
|
||||||
name="change_circle"
|
class="cursor-pointer"
|
||||||
color="primary"
|
size="xs"
|
||||||
class="cursor-pointer"
|
>
|
||||||
size="xs"
|
<QTooltip>{{
|
||||||
>
|
t('negative.detail.hasSubstitution')
|
||||||
<QTooltip>{{
|
}}</QTooltip> </QIcon
|
||||||
t('negative.detail.hasSubstitution')
|
><QIcon
|
||||||
}}</QTooltip> </QIcon
|
name="vn:Person"
|
||||||
><QIcon
|
size="xs"
|
||||||
v-if="row.isRookie"
|
color="primary"
|
||||||
name="vn:Person"
|
class="cursor-pointer"
|
||||||
size="xs"
|
>
|
||||||
color="primary"
|
<QTooltip>{{ t('negative.detail.isRookie') }}</QTooltip>
|
||||||
class="cursor-pointer"
|
</QIcon>
|
||||||
>
|
<QIcon
|
||||||
<QTooltip>{{ t('negative.detail.isRookie') }}</QTooltip>
|
name="vn:buyrequest"
|
||||||
</QIcon>
|
size="xs"
|
||||||
<QIcon
|
color="primary"
|
||||||
v-if="row.peticionCompra"
|
class="cursor-pointer"
|
||||||
name="vn:buyrequest"
|
>
|
||||||
size="xs"
|
<QTooltip>{{ t('negative.detail.peticionCompra') }}</QTooltip>
|
||||||
color="primary"
|
</QIcon>
|
||||||
class="cursor-pointer"
|
<QIcon
|
||||||
>
|
name="vn:calendar"
|
||||||
<QTooltip>{{ t('negative.detail.peticionCompra') }}</QTooltip>
|
size="xs"
|
||||||
</QIcon>
|
color="primary"
|
||||||
<QIcon
|
class="cursor-pointer"
|
||||||
v-if="row.turno"
|
>
|
||||||
name="vn:calendar"
|
<QTooltip>{{ t('negative.detail.turno') }}</QTooltip>
|
||||||
size="xs"
|
</QIcon>
|
||||||
color="primary"
|
</div></QTd
|
||||||
class="cursor-pointer"
|
|
||||||
>
|
|
||||||
<QTooltip>{{ t('negative.detail.turno') }}</QTooltip>
|
|
||||||
</QIcon></QTd
|
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -351,6 +347,15 @@ function onBuysFetched(data) {
|
||||||
</VnTable>
|
</VnTable>
|
||||||
</template>
|
</template>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.icon-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 0.2fr);
|
||||||
|
row-gap: 5px; /* Ajusta el espacio entre los iconos según sea necesario */
|
||||||
|
}
|
||||||
|
.icon-container > * {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
.list-enter-active,
|
.list-enter-active,
|
||||||
.list-leave-active {
|
.list-leave-active {
|
||||||
transition: all 1s ease;
|
transition: all 1s ease;
|
||||||
|
|
Loading…
Reference in New Issue
30 ?
Lo habia reemplazado arroba y faltaba esta