forked from verdnatura/salix-front
Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix-front into 7986-workerMoto
This commit is contained in:
commit
1a2c5c96fa
|
@ -0,0 +1,4 @@
|
||||||
|
import { QInput } from 'quasar';
|
||||||
|
import setDefault from './setDefault';
|
||||||
|
|
||||||
|
setDefault(QInput, 'dense', true);
|
|
@ -0,0 +1,4 @@
|
||||||
|
import { QSelect } from 'quasar';
|
||||||
|
import setDefault from './setDefault';
|
||||||
|
|
||||||
|
setDefault(QSelect, 'dense', true);
|
|
@ -1 +1,3 @@
|
||||||
export * from './defaults/qTable';
|
export * from './defaults/qTable';
|
||||||
|
export * from './defaults/qInput';
|
||||||
|
export * from './defaults/qSelect';
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
<script setup>
|
||||||
|
const model = defineModel({ type: [String, Number], required: true });
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<QDate v-model="model" :today-btn="true" :options="$attrs.options" />
|
||||||
|
</template>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.q-date {
|
||||||
|
width: 245px;
|
||||||
|
min-width: unset;
|
||||||
|
|
||||||
|
:deep(.q-date__calendar) {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
:deep(.q-date__view) {
|
||||||
|
min-height: 245px;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
:deep(.q-date__calendar-days-container) {
|
||||||
|
min-height: 160px;
|
||||||
|
height: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.q-date__header) {
|
||||||
|
padding: 2px 2px 5px 12px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -130,24 +130,4 @@ const mixinRules = [
|
||||||
.q-field__append {
|
.q-field__append {
|
||||||
padding-inline: 0;
|
padding-inline: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.q-field__append.q-field__marginal.row.no-wrap.items-center.row {
|
|
||||||
height: 20px;
|
|
||||||
}
|
|
||||||
.q-field--outlined .q-field__append.q-field__marginal.row.no-wrap.items-center.row {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
.q-field__control {
|
|
||||||
height: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
.q-field--labeled {
|
|
||||||
.q-field__native,
|
|
||||||
.q-field__prefix,
|
|
||||||
.q-field__suffix,
|
|
||||||
.q-field__input {
|
|
||||||
padding-bottom: 0;
|
|
||||||
min-height: 15px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { onMounted, watch, computed, ref } from 'vue';
|
||||||
import { date } from 'quasar';
|
import { date } from 'quasar';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { useAttrs } from 'vue';
|
import { useAttrs } from 'vue';
|
||||||
|
import VnDate from './VnDate.vue';
|
||||||
|
|
||||||
const model = defineModel({ type: [String, Date] });
|
const model = defineModel({ type: [String, Date] });
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
|
@ -87,6 +88,11 @@ const styleAttrs = computed(() => {
|
||||||
}
|
}
|
||||||
: {};
|
: {};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const manageDate = (date) => {
|
||||||
|
formattedDate.value = date;
|
||||||
|
isPopupOpen.value = false;
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -129,6 +135,7 @@ const styleAttrs = computed(() => {
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<QMenu
|
<QMenu
|
||||||
|
v-if="$q.screen.gt.xs"
|
||||||
transition-show="scale"
|
transition-show="scale"
|
||||||
transition-hide="scale"
|
transition-hide="scale"
|
||||||
v-model="isPopupOpen"
|
v-model="isPopupOpen"
|
||||||
|
@ -137,19 +144,11 @@ const styleAttrs = computed(() => {
|
||||||
:no-focus="true"
|
:no-focus="true"
|
||||||
:no-parent-event="true"
|
:no-parent-event="true"
|
||||||
>
|
>
|
||||||
<QDate
|
<VnDate v-model="popupDate" @update:model-value="manageDate" />
|
||||||
v-model="popupDate"
|
|
||||||
:landscape="true"
|
|
||||||
:today-btn="true"
|
|
||||||
:options="$attrs.options"
|
|
||||||
@update:model-value="
|
|
||||||
(date) => {
|
|
||||||
formattedDate = date;
|
|
||||||
isPopupOpen = false;
|
|
||||||
}
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
</QMenu>
|
</QMenu>
|
||||||
|
<QDialog v-else v-model="isPopupOpen">
|
||||||
|
<VnDate v-model="popupDate" @update:model-value="manageDate" />
|
||||||
|
</QDialog>
|
||||||
</QInput>
|
</QInput>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -3,6 +3,8 @@ import { computed, ref, useAttrs } from 'vue';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { date } from 'quasar';
|
import { date } from 'quasar';
|
||||||
import { useValidator } from 'src/composables/useValidator';
|
import { useValidator } from 'src/composables/useValidator';
|
||||||
|
import VnTime from './VnTime.vue';
|
||||||
|
|
||||||
const { validations } = useValidator();
|
const { validations } = useValidator();
|
||||||
const $attrs = useAttrs();
|
const $attrs = useAttrs();
|
||||||
const model = defineModel({ type: String });
|
const model = defineModel({ type: String });
|
||||||
|
@ -107,6 +109,7 @@ function dateToTime(newDate) {
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<QMenu
|
<QMenu
|
||||||
|
v-if="$q.screen.gt.xs"
|
||||||
transition-show="scale"
|
transition-show="scale"
|
||||||
transition-hide="scale"
|
transition-hide="scale"
|
||||||
v-model="isPopupOpen"
|
v-model="isPopupOpen"
|
||||||
|
@ -115,8 +118,11 @@ function dateToTime(newDate) {
|
||||||
:no-focus="true"
|
:no-focus="true"
|
||||||
:no-parent-event="true"
|
:no-parent-event="true"
|
||||||
>
|
>
|
||||||
<QTime v-model="formattedTime" mask="HH:mm" landscape now-btn />
|
<VnTime v-model="formattedTime" />
|
||||||
</QMenu>
|
</QMenu>
|
||||||
|
<QDialog v-else v-model="isPopupOpen">
|
||||||
|
<VnTime v-model="formattedTime" />
|
||||||
|
</QDialog>
|
||||||
</QInput>
|
</QInput>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -283,15 +283,4 @@ const getVal = (val) => ($props.useLike ? { like: `%${val}%` } : val);
|
||||||
.q-field--outlined {
|
.q-field--outlined {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
.q-field__inner {
|
|
||||||
.q-field__control {
|
|
||||||
min-height: auto !important;
|
|
||||||
|
|
||||||
display: flex;
|
|
||||||
align-items: flex-end;
|
|
||||||
.q-field__native.row {
|
|
||||||
min-height: auto !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
<script setup>
|
||||||
|
const model = defineModel({ type: [String, Number], required: true });
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<QTime v-model="model" now-btn mask="HH:mm" />
|
||||||
|
</template>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.q-time {
|
||||||
|
width: 230px;
|
||||||
|
min-width: unset;
|
||||||
|
:deep(.q-time__header) {
|
||||||
|
min-height: unset;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -31,7 +31,7 @@ const dialog = ref(null);
|
||||||
<div class="container order-catalog-item overflow-hidden">
|
<div class="container order-catalog-item overflow-hidden">
|
||||||
<QCard class="card shadow-6">
|
<QCard class="card shadow-6">
|
||||||
<div class="img-wrapper">
|
<div class="img-wrapper">
|
||||||
<VnImg :id="item.id" class="image" />
|
<VnImg :id="item.id" class="image" zoom-resolution="1600x900" />
|
||||||
<div v-if="item.hex && isCatalog" class="item-color-container">
|
<div v-if="item.hex && isCatalog" class="item-color-container">
|
||||||
<div
|
<div
|
||||||
class="item-color"
|
class="item-color"
|
||||||
|
|
|
@ -58,7 +58,7 @@ defineExpose({
|
||||||
:class="{ zoomIn: zoom }"
|
:class="{ zoomIn: zoom }"
|
||||||
:src="getUrl()"
|
:src="getUrl()"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
@click.stop="show = $props.zoom ? true : false"
|
@click.stop="show = $props.zoom"
|
||||||
spinner-color="primary"
|
spinner-color="primary"
|
||||||
/>
|
/>
|
||||||
<QDialog v-if="$props.zoom" v-model="show">
|
<QDialog v-if="$props.zoom" v-model="show">
|
||||||
|
|
|
@ -56,7 +56,7 @@ const props = defineProps({
|
||||||
},
|
},
|
||||||
offset: {
|
offset: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0,
|
default: undefined,
|
||||||
},
|
},
|
||||||
skeleton: {
|
skeleton: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
|
|
|
@ -9,7 +9,6 @@ defineProps({ wrap: { type: Boolean, default: false } });
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.vn-row {
|
.vn-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-end;
|
|
||||||
> :deep(*) {
|
> :deep(*) {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -288,14 +288,3 @@ input::-webkit-inner-spin-button {
|
||||||
color: $info;
|
color: $info;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.q-field__inner {
|
|
||||||
.q-field__control {
|
|
||||||
min-height: auto !important;
|
|
||||||
display: flex;
|
|
||||||
align-items: flex-end;
|
|
||||||
padding-bottom: 2px;
|
|
||||||
.q-field__native.row {
|
|
||||||
min-height: auto !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -105,6 +105,7 @@ globals:
|
||||||
campaign: Campaign
|
campaign: Campaign
|
||||||
weight: Weight
|
weight: Weight
|
||||||
error: Ups! Something went wrong
|
error: Ups! Something went wrong
|
||||||
|
recalc: Recalculate
|
||||||
pageTitles:
|
pageTitles:
|
||||||
logIn: Login
|
logIn: Login
|
||||||
addressEdit: Update address
|
addressEdit: Update address
|
||||||
|
@ -275,6 +276,7 @@ globals:
|
||||||
serial: Serial
|
serial: Serial
|
||||||
medical: Mutual
|
medical: Mutual
|
||||||
RouteExtendedList: Router
|
RouteExtendedList: Router
|
||||||
|
wasteRecalc: Waste recaclulate
|
||||||
supplier: Supplier
|
supplier: Supplier
|
||||||
created: Created
|
created: Created
|
||||||
worker: Worker
|
worker: Worker
|
||||||
|
|
|
@ -107,6 +107,7 @@ globals:
|
||||||
campaign: Campaña
|
campaign: Campaña
|
||||||
weight: Peso
|
weight: Peso
|
||||||
error: ¡Ups! Algo salió mal
|
error: ¡Ups! Algo salió mal
|
||||||
|
recalc: Recalcular
|
||||||
pageTitles:
|
pageTitles:
|
||||||
logIn: Inicio de sesión
|
logIn: Inicio de sesión
|
||||||
addressEdit: Modificar consignatario
|
addressEdit: Modificar consignatario
|
||||||
|
@ -279,6 +280,7 @@ globals:
|
||||||
clientsActionsMonitor: Clientes y acciones
|
clientsActionsMonitor: Clientes y acciones
|
||||||
serial: Facturas por serie
|
serial: Facturas por serie
|
||||||
medical: Mutua
|
medical: Mutua
|
||||||
|
wasteRecalc: Recalcular mermas
|
||||||
supplier: Proveedor
|
supplier: Proveedor
|
||||||
created: Fecha creación
|
created: Fecha creación
|
||||||
worker: Trabajador
|
worker: Trabajador
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
<script setup>
|
||||||
|
import { ref, computed, watch } from 'vue';
|
||||||
|
import VnInputDate from 'components/common/VnInputDate.vue';
|
||||||
|
import useNotify from 'src/composables/useNotify.js';
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
|
const isLoading = ref(false);
|
||||||
|
const dateFrom = ref();
|
||||||
|
const dateTo = ref();
|
||||||
|
|
||||||
|
const optionsTo = computed(() => (date) => {
|
||||||
|
if (!dateFrom.value) return true;
|
||||||
|
return new Date(date) >= new Date(dateFrom.value);
|
||||||
|
});
|
||||||
|
|
||||||
|
watch(dateFrom, (newDateFrom) => {
|
||||||
|
if (dateTo.value && new Date(dateTo.value) < new Date(newDateFrom))
|
||||||
|
dateTo.value = newDateFrom;
|
||||||
|
});
|
||||||
|
|
||||||
|
const recalc = async () => {
|
||||||
|
const { notify } = useNotify();
|
||||||
|
|
||||||
|
const params = {
|
||||||
|
schema: 'bs',
|
||||||
|
params: [new Date(dateFrom.value), new Date(dateTo.value)],
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
isLoading.value = true;
|
||||||
|
await axios.post('Applications/waste_addSales/execute-proc', params);
|
||||||
|
notify('wasteRecalc.recalcOk', 'positive');
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
} finally {
|
||||||
|
isLoading.value = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="q-pa-lg row justify-center">
|
||||||
|
<QCard class="bg-light" style="width: 300px">
|
||||||
|
<QCardSection>
|
||||||
|
<VnInputDate
|
||||||
|
class="q-mb-lg"
|
||||||
|
v-model="dateFrom"
|
||||||
|
:label="$t('globals.from')"
|
||||||
|
rounded
|
||||||
|
dense
|
||||||
|
/>
|
||||||
|
<VnInputDate
|
||||||
|
class="q-mb-lg"
|
||||||
|
v-model="dateTo"
|
||||||
|
:options="optionsTo"
|
||||||
|
:label="$t('globals.to')"
|
||||||
|
:disable="!dateFrom"
|
||||||
|
rounded
|
||||||
|
dense
|
||||||
|
/>
|
||||||
|
<QBtn
|
||||||
|
color="primary"
|
||||||
|
text-color="white"
|
||||||
|
:label="$t('globals.recalc')"
|
||||||
|
:loading="isLoading"
|
||||||
|
:disable="isLoading || !(dateFrom && dateTo)"
|
||||||
|
@click="recalc()"
|
||||||
|
/>
|
||||||
|
</QCardSection>
|
||||||
|
</QCard>
|
||||||
|
</div>
|
||||||
|
</template>
|
|
@ -18,3 +18,5 @@ myEntries:
|
||||||
warehouseInFk: Warehouse in
|
warehouseInFk: Warehouse in
|
||||||
daysOnward: Days onward
|
daysOnward: Days onward
|
||||||
daysAgo: Days ago
|
daysAgo: Days ago
|
||||||
|
wasteRecalc:
|
||||||
|
recalcOk: The wastes were successfully recalculated
|
||||||
|
|
|
@ -21,3 +21,5 @@ myEntries:
|
||||||
warehouseInFk: Alm. entrada
|
warehouseInFk: Alm. entrada
|
||||||
daysOnward: Días adelante
|
daysOnward: Días adelante
|
||||||
daysAgo: Días atras
|
daysAgo: Días atras
|
||||||
|
wasteRecalc:
|
||||||
|
recalcOk: Se han recalculado las mermas correctamente
|
||||||
|
|
|
@ -274,10 +274,7 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
|
||||||
:label="t('invoiceIn.summary.company')"
|
:label="t('invoiceIn.summary.company')"
|
||||||
:value="entity.company?.code"
|
:value="entity.company?.code"
|
||||||
/>
|
/>
|
||||||
<VnLv
|
<VnLv :label="t('invoiceIn.isBooked')" :value="invoiceIn?.isBooked" />
|
||||||
:label="t('invoiceIn.summary.booked')"
|
|
||||||
:value="invoiceIn?.isBooked"
|
|
||||||
/>
|
|
||||||
</QCard>
|
</QCard>
|
||||||
<QCard class="vn-one">
|
<QCard class="vn-one">
|
||||||
<QCardSection class="q-pa-none">
|
<QCardSection class="q-pa-none">
|
||||||
|
|
|
@ -116,7 +116,7 @@ const activities = ref([]);
|
||||||
<QItem>
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection>
|
||||||
<QCheckbox
|
<QCheckbox
|
||||||
:label="t('params.isBooked')"
|
:label="t('invoiceIn.isBooked')"
|
||||||
v-model="params.isBooked"
|
v-model="params.isBooked"
|
||||||
@update:model-value="searchFn()"
|
@update:model-value="searchFn()"
|
||||||
toggle-indeterminate
|
toggle-indeterminate
|
||||||
|
@ -170,7 +170,7 @@ es:
|
||||||
awb: AWB
|
awb: AWB
|
||||||
amount: Importe
|
amount: Importe
|
||||||
issued: Emitida
|
issued: Emitida
|
||||||
isBooked: Conciliada
|
isBooked: Contabilizada
|
||||||
account: Cuenta contable
|
account: Cuenta contable
|
||||||
created: Creada
|
created: Creada
|
||||||
dued: Vencida
|
dued: Vencida
|
||||||
|
|
|
@ -65,7 +65,7 @@ const cols = computed(() => [
|
||||||
{
|
{
|
||||||
align: 'left',
|
align: 'left',
|
||||||
name: 'isBooked',
|
name: 'isBooked',
|
||||||
label: t('invoiceIn.list.isBooked'),
|
label: t('invoiceIn.isBooked'),
|
||||||
columnFilter: false,
|
columnFilter: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
invoiceIn:
|
invoiceIn:
|
||||||
serial: Serial
|
serial: Serial
|
||||||
|
isBooked: Is booked
|
||||||
list:
|
list:
|
||||||
ref: Reference
|
ref: Reference
|
||||||
supplier: Supplier
|
supplier: Supplier
|
||||||
|
@ -7,7 +8,6 @@ invoiceIn:
|
||||||
serial: Serial
|
serial: Serial
|
||||||
file: File
|
file: File
|
||||||
issued: Issued
|
issued: Issued
|
||||||
isBooked: Is booked
|
|
||||||
awb: AWB
|
awb: AWB
|
||||||
amount: Amount
|
amount: Amount
|
||||||
card:
|
card:
|
||||||
|
@ -31,7 +31,6 @@ invoiceIn:
|
||||||
sage: Sage withholding
|
sage: Sage withholding
|
||||||
vat: Undeductible VAT
|
vat: Undeductible VAT
|
||||||
company: Company
|
company: Company
|
||||||
booked: Booked
|
|
||||||
expense: Expense
|
expense: Expense
|
||||||
taxableBase: Taxable base
|
taxableBase: Taxable base
|
||||||
rate: Rate
|
rate: Rate
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
invoiceIn:
|
invoiceIn:
|
||||||
serial: Serie
|
serial: Serie
|
||||||
|
isBooked: Contabilizada
|
||||||
list:
|
list:
|
||||||
ref: Referencia
|
ref: Referencia
|
||||||
supplier: Proveedor
|
supplier: Proveedor
|
||||||
|
@ -7,7 +8,6 @@ invoiceIn:
|
||||||
shortIssued: F. emisión
|
shortIssued: F. emisión
|
||||||
file: Fichero
|
file: Fichero
|
||||||
issued: Fecha emisión
|
issued: Fecha emisión
|
||||||
isBooked: Conciliada
|
|
||||||
awb: AWB
|
awb: AWB
|
||||||
amount: Importe
|
amount: Importe
|
||||||
card:
|
card:
|
||||||
|
@ -31,7 +31,6 @@ invoiceIn:
|
||||||
sage: Retención sage
|
sage: Retención sage
|
||||||
vat: Iva no deducible
|
vat: Iva no deducible
|
||||||
company: Empresa
|
company: Empresa
|
||||||
booked: Contabilizada
|
|
||||||
expense: Gasto
|
expense: Gasto
|
||||||
taxableBase: Base imp.
|
taxableBase: Base imp.
|
||||||
rate: Tasa
|
rate: Tasa
|
||||||
|
|
|
@ -171,7 +171,6 @@ const insertTag = (rows) => {
|
||||||
<QBtn
|
<QBtn
|
||||||
@click="insertTag(rows)"
|
@click="insertTag(rows)"
|
||||||
class="cursor-pointer"
|
class="cursor-pointer"
|
||||||
:disable="!validRow"
|
|
||||||
color="primary"
|
color="primary"
|
||||||
flat
|
flat
|
||||||
icon="add"
|
icon="add"
|
||||||
|
|
|
@ -491,9 +491,8 @@ onUnmounted(() => (stateStore.rightDrawer = false));
|
||||||
<QTd>
|
<QTd>
|
||||||
<VnImg
|
<VnImg
|
||||||
size="50x50"
|
size="50x50"
|
||||||
|
zoom-resolution="1600x900"
|
||||||
:id="row.id"
|
:id="row.id"
|
||||||
height="50px"
|
|
||||||
width="50px"
|
|
||||||
class="image"
|
class="image"
|
||||||
/>
|
/>
|
||||||
</QTd>
|
</QTd>
|
||||||
|
|
|
@ -278,7 +278,11 @@ watch(
|
||||||
>
|
>
|
||||||
<template #column-image="{ row }">
|
<template #column-image="{ row }">
|
||||||
<div class="image-wrapper">
|
<div class="image-wrapper">
|
||||||
<VnImg :id="parseInt(row?.item?.image)" class="rounded" />
|
<VnImg
|
||||||
|
:id="parseInt(row?.item?.image)"
|
||||||
|
class="rounded"
|
||||||
|
zoom-resolution="1600x900"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #column-id="{ row }">
|
<template #column-id="{ row }">
|
||||||
|
|
|
@ -15,12 +15,12 @@ const route = useRoute();
|
||||||
const agenciesOptions = ref(null);
|
const agenciesOptions = ref(null);
|
||||||
const newAgencyTermForm = reactive({
|
const newAgencyTermForm = reactive({
|
||||||
agencyFk: null,
|
agencyFk: null,
|
||||||
minimumM3: null,
|
minimumM3: 0,
|
||||||
packagePrice: null,
|
packagePrice: 0,
|
||||||
kmPrice: null,
|
kmPrice: 0,
|
||||||
m3Price: null,
|
m3Price: 0,
|
||||||
routePrice: null,
|
routePrice: null,
|
||||||
minimumKm: null,
|
minimumKm: 0,
|
||||||
supplierFk: route.params.id,
|
supplierFk: route.params.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -663,6 +663,13 @@ watch(
|
||||||
</QTooltip>
|
</QTooltip>
|
||||||
</QIcon>
|
</QIcon>
|
||||||
</template>
|
</template>
|
||||||
|
<template #body-cell-picture="{ row }">
|
||||||
|
<QTd>
|
||||||
|
<div class="image-wrapper">
|
||||||
|
<VnImg :id="row.itemFk" class="rounded" zoom-resolution="1600x900" />
|
||||||
|
</div>
|
||||||
|
</QTd>
|
||||||
|
</template>
|
||||||
<template #column-image="{ row }">
|
<template #column-image="{ row }">
|
||||||
<div class="image-wrapper">
|
<div class="image-wrapper">
|
||||||
<VnImg :id="parseInt(row?.item?.id)" class="rounded" />
|
<VnImg :id="parseInt(row?.item?.id)" class="rounded" />
|
||||||
|
|
|
@ -124,6 +124,12 @@ defineExpose({ states });
|
||||||
lazy-rules
|
lazy-rules
|
||||||
is-outlined
|
is-outlined
|
||||||
/>
|
/>
|
||||||
|
<VnInput
|
||||||
|
:label="t('travel.travelList.tableVisibleColumns.daysOnward')"
|
||||||
|
v-model="params.daysOnward"
|
||||||
|
lazy-rules
|
||||||
|
is-outlined
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</VnFilterPanel>
|
</VnFilterPanel>
|
||||||
|
|
|
@ -161,15 +161,6 @@ const columns = computed(() => [
|
||||||
cardVisible: true,
|
cardVisible: true,
|
||||||
create: true,
|
create: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
align: 'left',
|
|
||||||
name: 'daysOnward',
|
|
||||||
label: t('travel.travelList.tableVisibleColumns.daysOnward'),
|
|
||||||
visible: false,
|
|
||||||
columnFilter: {
|
|
||||||
inWhere: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
align: 'right',
|
align: 'right',
|
||||||
label: '',
|
label: '',
|
||||||
|
|
|
@ -139,6 +139,7 @@ onBeforeMount(async () => {
|
||||||
<VnLinkPhone :phone-number="worker?.sip?.extension" />
|
<VnLinkPhone :phone-number="worker?.sip?.extension" />
|
||||||
</template>
|
</template>
|
||||||
</VnLv>
|
</VnLv>
|
||||||
|
<VnLv :label="t('queue')" :value="worker.sip?.queueMember?.queue" />
|
||||||
</QCard>
|
</QCard>
|
||||||
</template>
|
</template>
|
||||||
</CardSummary>
|
</CardSummary>
|
||||||
|
|
|
@ -9,3 +9,4 @@ tableColumns:
|
||||||
fi: FI
|
fi: FI
|
||||||
SSN: SSN
|
SSN: SSN
|
||||||
extension: Extension
|
extension: Extension
|
||||||
|
queue: Queue
|
||||||
|
|
|
@ -14,3 +14,4 @@ tableColumns:
|
||||||
fi: NIF
|
fi: NIF
|
||||||
SSN: NSS
|
SSN: NSS
|
||||||
extension: Extensión
|
extension: Extensión
|
||||||
|
queue: Cola
|
||||||
|
|
|
@ -12,7 +12,13 @@ export default {
|
||||||
component: RouterView,
|
component: RouterView,
|
||||||
redirect: { name: 'EntryMain' },
|
redirect: { name: 'EntryMain' },
|
||||||
menus: {
|
menus: {
|
||||||
main: ['EntryList', 'MyEntries', 'EntryLatestBuys', 'EntryStockBought'],
|
main: [
|
||||||
|
'EntryList',
|
||||||
|
'MyEntries',
|
||||||
|
'EntryLatestBuys',
|
||||||
|
'EntryStockBought',
|
||||||
|
'EntryWasteRecalc',
|
||||||
|
],
|
||||||
card: ['EntryBasicData', 'EntryBuys', 'EntryNotes', 'EntryDms', 'EntryLog'],
|
card: ['EntryBasicData', 'EntryBuys', 'EntryNotes', 'EntryDms', 'EntryLog'],
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
|
@ -67,6 +73,15 @@ export default {
|
||||||
},
|
},
|
||||||
component: () => import('src/pages/Entry/EntryStockBought.vue'),
|
component: () => import('src/pages/Entry/EntryStockBought.vue'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'waste-recalc',
|
||||||
|
name: 'EntryWasteRecalc',
|
||||||
|
meta: {
|
||||||
|
title: 'wasteRecalc',
|
||||||
|
icon: 'compost',
|
||||||
|
},
|
||||||
|
component: () => import('src/pages/Entry/EntryWasteRecalc.vue'),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,7 @@ describe('EntryMy when is supplier', () => {
|
||||||
|
|
||||||
it('should open buyLabel when is supplier', () => {
|
it('should open buyLabel when is supplier', () => {
|
||||||
cy.get(
|
cy.get(
|
||||||
'[to="/null/2"] > .q-card > .column > .q-btn > .q-btn__content > .q-icon'
|
'[to="/null/3"] > .q-card > .column > .q-btn > .q-btn__content > .q-icon'
|
||||||
).click();
|
).click();
|
||||||
cy.get('.q-card__actions > .q-btn').click();
|
cy.get('.q-card__actions > .q-btn').click();
|
||||||
cy.window().its('open').should('be.called');
|
cy.window().its('open').should('be.called');
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/// <reference types="cypress" />
|
/// <reference types="cypress" />
|
||||||
describe('Ticket descriptor', () => {
|
describe('Ticket descriptor', () => {
|
||||||
const toCloneOpt = '[role="menu"] .q-list > :nth-child(5)';
|
const listItem = '[role="menu"] .q-list .q-item';
|
||||||
const setWeightOpt = '[role="menu"] .q-list > :nth-child(6)';
|
const toCloneOpt = 'To clone ticket';
|
||||||
|
const setWeightOpt = 'Set weight';
|
||||||
const warehouseValue = ':nth-child(1) > :nth-child(6) > .value > span';
|
const warehouseValue = ':nth-child(1) > :nth-child(6) > .value > span';
|
||||||
const summaryHeader = '.summaryHeader > div';
|
const summaryHeader = '.summaryHeader > div';
|
||||||
const weight = 25;
|
const weight = 25;
|
||||||
|
@ -14,7 +15,7 @@ describe('Ticket descriptor', () => {
|
||||||
it('should clone the ticket without warehouse', () => {
|
it('should clone the ticket without warehouse', () => {
|
||||||
cy.visit('/#/ticket/1/summary');
|
cy.visit('/#/ticket/1/summary');
|
||||||
cy.openActionsDescriptor();
|
cy.openActionsDescriptor();
|
||||||
cy.get(toCloneOpt).click();
|
cy.contains(listItem, toCloneOpt).click();
|
||||||
cy.clickConfirm();
|
cy.clickConfirm();
|
||||||
cy.get(warehouseValue).contains('Warehouse One');
|
cy.get(warehouseValue).contains('Warehouse One');
|
||||||
cy.get(summaryHeader)
|
cy.get(summaryHeader)
|
||||||
|
@ -28,7 +29,7 @@ describe('Ticket descriptor', () => {
|
||||||
it('should set the weight of the ticket', () => {
|
it('should set the weight of the ticket', () => {
|
||||||
cy.visit('/#/ticket/10/summary');
|
cy.visit('/#/ticket/10/summary');
|
||||||
cy.openActionsDescriptor();
|
cy.openActionsDescriptor();
|
||||||
cy.get(setWeightOpt).click();
|
cy.contains(listItem, setWeightOpt).click();
|
||||||
cy.intercept('POST', /\/api\/Tickets\/\d+\/setWeight/).as('weight');
|
cy.intercept('POST', /\/api\/Tickets\/\d+\/setWeight/).as('weight');
|
||||||
cy.get('.q-dialog input').type(weight);
|
cy.get('.q-dialog input').type(weight);
|
||||||
cy.clickConfirm();
|
cy.clickConfirm();
|
||||||
|
|
|
@ -64,7 +64,7 @@ describe('VnLocation', () => {
|
||||||
`${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(3) > .q-icon`
|
`${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(3) > .q-icon`
|
||||||
).click();
|
).click();
|
||||||
cy.get(
|
cy.get(
|
||||||
`#q-portal--dialog--4 > .q-dialog > ${createForm.prefix} > .vn-row > .q-select > ${createForm.sufix} > :nth-child(1) input`
|
`#q-portal--dialog--5 > .q-dialog > ${createForm.prefix} > .vn-row > .q-select > ${createForm.sufix} > :nth-child(1) input`
|
||||||
).should('have.value', province);
|
).should('have.value', province);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -133,6 +133,8 @@ describe('VnLocation', () => {
|
||||||
);
|
);
|
||||||
cy.get('.q-mt-lg > .q-btn--standard').click();
|
cy.get('.q-mt-lg > .q-btn--standard').click();
|
||||||
cy.get(`${createForm.prefix}`).should('not.exist');
|
cy.get(`${createForm.prefix}`).should('not.exist');
|
||||||
|
cy.waitForElement('.q-form');
|
||||||
|
|
||||||
checkVnLocation(postCode, province);
|
checkVnLocation(postCode, province);
|
||||||
});
|
});
|
||||||
it('Create city', () => {
|
it('Create city', () => {
|
||||||
|
@ -144,10 +146,12 @@ describe('VnLocation', () => {
|
||||||
cy.get(
|
cy.get(
|
||||||
`${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(2) > .q-icon`
|
`${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(2) > .q-icon`
|
||||||
).click();
|
).click();
|
||||||
cy.selectOption('#q-portal--dialog--2 .q-select', 'one');
|
cy.selectOption('#q-portal--dialog--3 .q-select', 'one');
|
||||||
cy.get('#q-portal--dialog--2 .q-input').type(province);
|
cy.get('#q-portal--dialog--3 .q-input').type(province);
|
||||||
cy.get('#q-portal--dialog--2 .q-btn--standard').click();
|
cy.get('#q-portal--dialog--3 .q-btn--standard').click();
|
||||||
cy.get('#q-portal--dialog--1 .q-btn--standard').click();
|
cy.get('#q-portal--dialog--1 .q-btn--standard').click();
|
||||||
|
cy.waitForElement('.q-form');
|
||||||
|
|
||||||
checkVnLocation(postCode, province);
|
checkVnLocation(postCode, province);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue