Compare commits

...

28 Commits

Author SHA1 Message Date
Jorge Penadés 0274dfcef2 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7229-fixDownloadFile
gitea/salix-front/pipeline/pr-dev There was a failure building this commit Details
2024-11-20 13:14:56 +01:00
Jon Elias 71c26c2fa7 Merge pull request '#6999 added search when user tabs on a filter with value' (!888) from 6999-AddTabToFilter into dev
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #888
Reviewed-by: Alex Moreno <alexm@verdnatura.es>
2024-11-20 07:26:30 +00:00
Jon Elias 26ee54c488 Merge branch 'dev' into 6999-AddTabToFilter
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-20 07:25:50 +00:00
Alex Moreno eee5873283 Merge branch 'test' of https://gitea.verdnatura.es/verdnatura/salix-front into dev
gitea/salix-front/pipeline/head This commit looks good Details
2024-11-20 08:04:40 +01:00
Alex Moreno 98ac560b16 Merge pull request 'warmFix_vnSearchBar.spec' (!975) from warmFix_vnSearchBar.spec into test
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #975
Reviewed-by: Carlos Satorres <carlossa@verdnatura.es>
2024-11-20 07:03:53 +00:00
Alex Moreno c1d9650c60 Merge branch 'test' into warmFix_vnSearchBar.spec
gitea/salix-front/pipeline/pr-test This commit looks good Details
2024-11-20 07:02:22 +00:00
Alex Moreno e33bb9f8b5 Merge pull request 'fix: logout spec' (!974) from warmFix_logout.spec into test
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #974
Reviewed-by: Carlos Satorres <carlossa@verdnatura.es>
2024-11-20 07:02:17 +00:00
Alex Moreno 3ba8402dfd fix: vnSearchbar spec
gitea/salix-front/pipeline/pr-test This commit looks good Details
2024-11-20 08:01:50 +01:00
Alex Moreno 67a5800a66 fix: logout spec
gitea/salix-front/pipeline/pr-test This commit looks good Details
2024-11-20 07:57:45 +01:00
Alex Moreno 46430d1b6d Merge branch 'test' of https://gitea.verdnatura.es/verdnatura/salix-front into dev
gitea/salix-front/pipeline/head This commit looks good Details
2024-11-20 07:42:35 +01:00
Alex Moreno 44134a8fec Merge branch 'master' of https://gitea.verdnatura.es/verdnatura/salix-front into test
gitea/salix-front/pipeline/head This commit looks good Details
2024-11-20 07:42:25 +01:00
Alex Moreno fef7dd9ac1 fix(MonitorOrders): translation sendDate → landed
gitea/salix-front/pipeline/head This commit looks good Details
2024-11-20 07:41:39 +01:00
Pablo Natek cbdce8f474 Merge pull request '#8138 add-component-ticketProblems' (!962) from 8138-add-component-ticketProblems into dev
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #962
2024-11-20 05:02:50 +00:00
Pablo Natek 8b5a2cd159 Merge branch 'dev' into 8138-add-component-ticketProblems
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-20 05:02:13 +00:00
Jorge Penadés bc73996dfe Merge pull request 'fix: refs #8166 show zone error' (!972) from 8166-fixAdvanceTickets into dev
gitea/salix-front/pipeline/head This commit looks good Details
Reviewed-on: #972
Reviewed-by: Javi Gallego <jgallego@verdnatura.es>
2024-11-19 17:29:16 +00:00
Jorge Penadés 8e9e8a8c78 Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 8166-fixAdvanceTickets
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-19 15:46:05 +01:00
Jorge Penadés 73b7fa7704 feat: refs #8166 show notification
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-19 15:43:55 +01:00
Jorge Penadés e54eb50265 fix: refs #8166 show zone error
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-19 15:35:57 +01:00
Pablo Natek fb5e38dc0b Merge branch 'dev' into 8138-add-component-ticketProblems
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-19 12:54:49 +00:00
Pablo Natek 479c428edf Merge branch '8138-add-component-ticketProblems' of https://gitea.verdnatura.es/verdnatura/salix-front into 8138-add-component-ticketProblems
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-19 13:51:23 +01:00
Pablo Natek 3824f5d124 fix: refs #8138 move component from ui folder 2024-11-19 13:51:19 +01:00
Jon Elias 5acce4d61d Merge branch 'dev' into 6999-AddTabToFilter
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-19 09:21:10 +00:00
Pablo Natek 6ab31fa2d2 Merge branch 'dev' into 8138-add-component-ticketProblems
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-19 07:02:32 +00:00
Pablo Natek f999760205 fix: refs #8138 sme minor issues
gitea/salix-front/pipeline/pr-dev Build queued... Details
2024-11-19 07:59:45 +01:00
Pablo Natek e119bf5bfc feat: refs #8138 add component ticket problems 2024-11-19 07:59:14 +01:00
Jon Elias 8cfc2996d4 Merge branch 'dev' into 6999-AddTabToFilter
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-14 07:32:07 +00:00
Jon Elias 7f4a73fd56 feat: refs #6999 added tab to search in VnTable filter
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-11-14 08:30:55 +01:00
Jon Elias 493e518339 feat: refs #6999 added search when user tabs on a filter with value
gitea/salix-front/pipeline/pr-dev This commit looks good Details
2024-10-29 12:15:40 +01:00
12 changed files with 73 additions and 143 deletions

View File

@ -0,0 +1,40 @@
<script setup>
defineProps({ row: { type: Object, required: true } });
</script>
<template>
<span>
<QIcon
v-if="row.isTaxDataChecked === 0"
name="vn:no036"
color="primary"
size="xs"
>
<QTooltip>{{ $t('salesTicketsTable.noVerifiedData') }}</QTooltip>
</QIcon>
<QIcon v-if="row.hasTicketRequest" name="vn:buyrequest" color="primary" size="xs">
<QTooltip>{{ $t('salesTicketsTable.purchaseRequest') }}</QTooltip>
</QIcon>
<QIcon v-if="row.itemShortage" name="vn:unavailable" color="primary" size="xs">
<QTooltip>{{ $t('salesTicketsTable.notVisible') }}</QTooltip>
</QIcon>
<QIcon v-if="row.isFreezed" name="vn:frozen" color="primary" size="xs">
<QTooltip>{{ $t('salesTicketsTable.clientFrozen') }}</QTooltip>
</QIcon>
<QIcon
v-if="row.risk"
name="vn:risk"
:color="row.hasHighRisk ? 'negative' : 'primary'"
size="xs"
>
<QTooltip>
{{ $t('salesTicketsTable.risk') }}: {{ row.risk - row.credit }}
</QTooltip>
</QIcon>
<QIcon v-if="row.hasComponentLack" name="vn:components" color="primary" size="xs">
<QTooltip>{{ $t('salesTicketsTable.componentLack') }}</QTooltip>
</QIcon>
<QIcon v-if="row.isTooLittle" name="vn:isTooLittle" color="primary" size="xs">
<QTooltip>{{ $t('salesTicketsTable.tooLittle') }}</QTooltip>
</QIcon>
</span>
</template>

View File

@ -143,6 +143,10 @@ function alignRow() {
const showFilter = computed(
() => $props.column?.columnFilter !== false && $props.column.name != 'tableActions'
);
const onTabPressed = async () => {
if (model.value) enterEvent['keyup.enter']();
};
</script>
<template>
<div
@ -157,6 +161,7 @@ const showFilter = computed(
v-model="model"
:components="components"
component-prop="columnFilter"
@keydown.tab="onTabPressed"
/>
</div>
</template>

View File

@ -320,7 +320,7 @@ const sumRisk = ({ clientRisks }) => {
:value="entity.recommendedCredit"
/>
</QCard>
<QCard class="vn-one">
<QCard class="vn-max">
<VnTitle :text="t('Latest tickets')" />
<CustomerSummaryTable />
</QCard>

View File

@ -12,6 +12,7 @@ import VnImg from 'src/components/ui/VnImg.vue';
const stateStore = useStateStore();
const { t } = useI18n();
const tableRef = ref();
const columns = [
{
align: 'center',
@ -234,7 +235,6 @@ const columns = [
format: (row, dashIfEmpty) => dashIfEmpty(toDate(row.landing)),
},
];
const tableRef = ref();
onMounted(async () => {
stateStore.rightDrawer = true;

View File

@ -27,7 +27,7 @@ function exprBuilder(param, value) {
const columns = computed(() => [
{
label: t('salesOrdersTable.dateSend'),
label: t('globals.landed'),
name: 'dateSend',
field: 'dateSend',
align: 'left',

View File

@ -15,6 +15,7 @@ import { toCurrency, dateRange, dashIfEmpty } from 'src/filters';
import RightMenu from 'src/components/common/RightMenu.vue';
import MonitorTicketSearchbar from './MonitorTicketSearchbar.vue';
import MonitorTicketFilter from './MonitorTicketFilter.vue';
import TicketProblems from 'src/components/TicketProblems.vue';
const DEFAULT_AUTO_REFRESH = 2 * 60 * 1000; // 2min in ms
const { t } = useI18n();
@ -23,13 +24,18 @@ const tableRef = ref(null);
const provinceOpts = ref([]);
const stateOpts = ref([]);
const zoneOpts = ref([]);
const visibleColumns = ref([]);
const { viewSummary } = useSummaryDialog();
const from = Date.vnNew();
from.setHours(0, 0, 0, 0);
const to = new Date(from.getTime());
to.setDate(to.getDate() + 1);
to.setHours(23, 59, 59, 999);
const stateColors = {
notice: 'info',
success: 'positive',
warning: 'warning',
alert: 'negative',
};
function exprBuilder(param, value) {
switch (param) {
@ -224,7 +230,7 @@ const columns = computed(() => [
{
title: t('salesTicketsTable.goToLines'),
icon: 'vn:lines',
color: 'priamry',
color: 'primary',
action: (row) => openTab(row.id),
isPrimary: true,
attrs: {
@ -235,7 +241,7 @@ const columns = computed(() => [
{
title: t('salesTicketsTable.preview'),
icon: 'preview',
color: 'priamry',
color: 'primary',
action: (row) => viewSummary(row.id, TicketSummary),
isPrimary: true,
attrs: {
@ -253,10 +259,10 @@ const getBadgeAttrs = (date) => {
let timeTicket = new Date(date);
timeTicket.setHours(0, 0, 0, 0);
let comparation = today - timeTicket;
let timeDiff = today - timeTicket;
if (comparation == 0) return { color: 'warning', 'text-color': 'black' };
if (comparation < 0) return { color: 'success', 'text-color': 'black' };
if (timeDiff == 0) return { color: 'warning', 'text-color': 'black' };
if (timeDiff < 0) return { color: 'success', 'text-color': 'black' };
return { color: 'transparent', 'text-color': 'white' };
};
@ -271,13 +277,6 @@ const autoRefreshHandler = (value) => {
}
};
const stateColors = {
notice: 'info',
success: 'positive',
warning: 'warning',
alert: 'negative',
};
const totalPriceColor = (ticket) => {
const total = parseInt(ticket.totalWithVat);
if (total > 0 && total < 50) return 'warning';
@ -285,10 +284,10 @@ const totalPriceColor = (ticket) => {
const formatShippedDate = (date) => {
if (!date) return '-';
const split1 = date.split('T');
const [year, month, day] = split1[0].split('-');
const _date = new Date(year, month - 1, day);
return toDateFormat(_date);
const dateSplit = date.split('T');
const [year, month, day] = dateSplit[0].split('-');
const newDate = new Date(year, month - 1, day);
return toDateFormat(newDate);
};
const openTab = (id) =>
@ -336,7 +335,6 @@ const openTab = (id) =>
:expr-builder="exprBuilder"
:offset="50"
:columns="columns"
:visible-columns="visibleColumns"
:right-search="false"
default-mode="table"
auto-load
@ -366,61 +364,7 @@ const openTab = (id) =>
</QCheckbox>
</template>
<template #column-totalProblems="{ row }">
<span>
<QIcon
v-if="row.isTaxDataChecked === 0"
name="vn:no036"
color="primary"
size="xs"
>
<QTooltip>{{ $t('salesTicketsTable.noVerifiedData') }}</QTooltip>
</QIcon>
<QIcon
v-if="row.hasTicketRequest"
name="vn:buyrequest"
color="primary"
size="xs"
>
<QTooltip>{{ $t('salesTicketsTable.purchaseRequest') }}</QTooltip>
</QIcon>
<QIcon
v-if="row.itemShortage"
name="vn:unavailable"
color="primary"
size="xs"
>
<QTooltip>{{ $t('salesTicketsTable.notVisible') }}</QTooltip>
</QIcon>
<QIcon v-if="row.isFreezed" name="vn:frozen" color="primary" size="xs">
<QTooltip>{{ $t('salesTicketsTable.clientFrozen') }}</QTooltip>
</QIcon>
<QIcon
v-if="row.risk"
name="vn:risk"
:color="row.hasHighRisk ? 'negative' : 'primary'"
size="xs"
>
<QTooltip
>{{ $t('salesTicketsTable.risk') }}: {{ row.risk }}</QTooltip
>
</QIcon>
<QIcon
v-if="row.hasComponentLack"
name="vn:components"
color="primary"
size="xs"
>
<QTooltip>{{ $t('salesTicketsTable.componentLack') }}</QTooltip>
</QIcon>
<QIcon
v-if="row.isTooLittle"
name="vn:isTooLittle"
color="primary"
size="xs"
>
<QTooltip>{{ $t('salesTicketsTable.tooLittle') }}</QTooltip>
</QIcon>
</span>
<TicketProblems :row="row" />
</template>
<template #column-id="{ row }">
<span class="link" @click.stop.prevent>
@ -475,7 +419,7 @@ const openTab = (id) =>
</QIcon>
</template>
<template #column-zoneFk="{ row }">
<div @click.stop.prevent :title="row.zoneName">
<div v-if="row.zoneFk" @click.stop.prevent :title="row.zoneName">
<span class="link">{{ row.zoneName }}</span>
<ZoneDescriptorProxy :id="row.zoneFk" />
</div>

View File

@ -11,7 +11,6 @@ salesClientsTable:
client: Client
salesOrdersTable:
delete: Delete
dateSend: Send date
dateMake: Make date
deleteConfirmMessage: All the selected elements will be deleted. Are you sure you want to continue?
agency: Agency

View File

@ -11,7 +11,6 @@ salesClientsTable:
client: Cliente
salesOrdersTable:
delete: Eliminar
dateSend: Fecha de envío
dateMake: Fecha de realización
deleteConfirmMessage: Todos los elementos seleccionados serán eliminados. ¿Seguro que quieres continuar?
agency: Agencia

View File

@ -215,7 +215,7 @@ const requestComponentUpdate = async (ticket, isWithoutNegatives) => {
if (!newLanded) {
notify(t('advanceTickets.noDeliveryZone'), 'negative');
return;
throw new Error(t('advanceTickets.noDeliveryZone'));
}
ticket.landed = newLanded.landed;
@ -299,10 +299,10 @@ const splitTickets = async () => {
const { query, params } = await requestComponentUpdate(ticket, true);
await axios.post(query, params);
progressAdd(ticket.futureId);
} catch (error) {
} catch (e) {
splitErrors.value.push({
id: ticket.futureId,
reason: error.response?.data?.error?.message,
reason: e.message || e.response?.data?.error?.message,
});
progressAdd(ticket.futureId);
}

View File

@ -22,6 +22,7 @@ import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorP
import ZoneDescriptorProxy from 'src/pages/Zone/Card/ZoneDescriptorProxy.vue';
import { toTimeFormat } from 'src/filters/date';
import InvoiceOutDescriptorProxy from 'src/pages/InvoiceOut/Card/InvoiceOutDescriptorProxy.vue';
import TicketProblems from 'src/components/TicketProblems.vue';
const route = useRoute();
const router = useRouter();
@ -490,66 +491,7 @@ function setReference(data) {
}"
>
<template #column-statusIcons="{ row }">
<div class="q-gutter-x-xs">
<QIcon
v-if="row.isTaxDataChecked === 0"
color="primary"
name="vn:no036"
size="xs"
>
<QTooltip>
{{ t('No verified data') }}
</QTooltip>
</QIcon>
<QIcon
v-if="row.hasTicketRequest"
color="primary"
name="vn:buyrequest"
size="xs"
>
<QTooltip>
{{ t('Purchase request') }}
</QTooltip>
</QIcon>
<QIcon
v-if="row.itemShortage"
color="primary"
name="vn:unavailable"
size="xs"
>
<QTooltip>
{{ t('Not visible') }}
</QTooltip>
</QIcon>
<QIcon v-if="row.isFreezed" color="primary" name="vn:frozen" size="xs">
<QTooltip>
{{ t('Client frozen') }}
</QTooltip>
</QIcon>
<QIcon v-if="row.risk" color="primary" name="vn:risk" size="xs">
<QTooltip> {{ t('Risk') }}: {{ row.risk }} </QTooltip>
</QIcon>
<QIcon
v-if="row.hasComponentLack"
color="primary"
name="vn:components"
size="xs"
>
<QTooltip>
{{ t('Component lack') }}
</QTooltip>
</QIcon>
<QIcon
v-if="row.hasRounding"
color="primary"
name="sync_problem"
size="xs"
>
<QTooltip>
{{ t('Rounding') }}
</QTooltip>
</QIcon>
</div>
<TicketProblems :row="row" />
</template>
<template #column-salesPersonFk="{ row }">
<span class="link" @click.stop>

View File

@ -28,7 +28,7 @@ describe('Logout', () => {
});
it('when token not exists', () => {
cy.get('.q-list > [href="#/item"]').click();
cy.get('.q-list').first().should('be.visible').click();
cy.checkNotification('Authorization Required');
});
});

View File

@ -5,6 +5,7 @@ describe('VnSearchBar', () => {
const idGap = '.q-item > .q-item__label';
const vnTableRow = '.q-virtual-scroll__content';
beforeEach(() => {
cy.viewport(1280, 720);
cy.login('developer');
cy.visit('#/customer/list');
});