@@ -58,7 +58,7 @@ onMounted(async () => {
dash
/>
diff --git a/src/pages/Entry/Card/EntryBasicData.vue b/src/pages/Entry/Card/EntryBasicData.vue
index 147287837..68d666fc0 100644
--- a/src/pages/Entry/Card/EntryBasicData.vue
+++ b/src/pages/Entry/Card/EntryBasicData.vue
@@ -3,7 +3,6 @@ import { ref } from 'vue';
import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
import { useRole } from 'src/composables/useRole';
-
import FetchData from 'components/FetchData.vue';
import FormModel from 'components/FormModel.vue';
import VnRow from 'components/ui/VnRow.vue';
@@ -11,7 +10,7 @@ import VnInput from 'src/components/common/VnInput.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
import VnSelectDialog from 'src/components/common/VnSelectDialog.vue';
import FilterTravelForm from 'src/components/FilterTravelForm.vue';
-
+import VnInputNumber from 'src/components/common/VnInputNumber.vue';
import { toDate } from 'src/filters';
const route = useRoute();
@@ -26,6 +25,7 @@ const onFilterTravelSelected = (formData, id) => {
formData.travelFk = id;
};
+
{
- {{ scope.opt?.agencyModeName }} -
- {{ scope.opt?.warehouseInName }} ({{
- toDate(scope.opt?.shipped)
- }}) → {{ scope.opt?.warehouseOutName }} ({{
- toDate(scope.opt?.landed)
- }})
+
+ {{ scope.opt?.agencyModeName }} -
+ {{ scope.opt?.warehouseInName }}
+ ({{ toDate(scope.opt?.shipped) }}) →
+ {{ scope.opt?.warehouseOutName }}
+ ({{ toDate(scope.opt?.landed) }})
+
@@ -126,6 +125,13 @@ const onFilterTravelSelected = (formData, id) => {
/>
+
{
option-value="id"
option-label="code"
/>
-
+
+
+
diff --git a/src/pages/Entry/Card/EntryCard.vue b/src/pages/Entry/Card/EntryCard.vue
index 3f2596338..e00623a21 100644
--- a/src/pages/Entry/Card/EntryCard.vue
+++ b/src/pages/Entry/Card/EntryCard.vue
@@ -1,21 +1,13 @@
-
diff --git a/src/pages/Entry/Card/EntryDescriptor.vue b/src/pages/Entry/Card/EntryDescriptor.vue
index 188e66358..9a154c357 100644
--- a/src/pages/Entry/Card/EntryDescriptor.vue
+++ b/src/pages/Entry/Card/EntryDescriptor.vue
@@ -7,9 +7,9 @@ import CardDescriptor from 'components/ui/CardDescriptor.vue';
import VnLv from 'src/components/ui/VnLv.vue';
import { toDate } from 'src/filters';
-import { usePrintService } from 'composables/usePrintService';
import { getUrl } from 'src/composables/getUrl';
import filter from './EntryFilter.js';
+import EntryDescriptorMenu from './EntryDescriptorMenu.vue';
const $props = defineProps({
id: {
@@ -21,7 +21,6 @@ const $props = defineProps({
const route = useRoute();
const { t } = useI18n();
-const { openReport } = usePrintService();
const entryDescriptorRef = ref(null);
const url = ref();
@@ -52,10 +51,6 @@ const getEntryRedirectionFilter = (entry) => {
to,
});
};
-
-const showEntryReport = () => {
- openReport(`Entries/${route.params.id}/entry-order-pdf`);
-};
@@ -68,9 +63,7 @@ const showEntryReport = () => {
data-key="Entry"
>
-
- {{ t('Show entry report') }}
-
+
@@ -155,7 +148,6 @@ es:
All travels with current agency: Todos los envíos con la agencia actual
All entries with current supplier: Todas las entradas con el proveedor actual
Show entry report: Ver informe del pedido
- Go to module index: Ir al índice del modulo
Inventory entry: Es inventario
Virtual entry: Es una redada
diff --git a/src/pages/Entry/Card/EntryDescriptorMenu.vue b/src/pages/Entry/Card/EntryDescriptorMenu.vue
new file mode 100644
index 000000000..a357b46fe
--- /dev/null
+++ b/src/pages/Entry/Card/EntryDescriptorMenu.vue
@@ -0,0 +1,22 @@
+
+
+
+
+ {{ $t('entryList.list.showEntryReport') }}
+
+
diff --git a/src/pages/Entry/Card/EntrySummary.vue b/src/pages/Entry/Card/EntrySummary.vue
index 4fb81d18f..8c46fb6e6 100644
--- a/src/pages/Entry/Card/EntrySummary.vue
+++ b/src/pages/Entry/Card/EntrySummary.vue
@@ -7,11 +7,14 @@ import CardSummary from 'components/ui/CardSummary.vue';
import VnLv from 'src/components/ui/VnLv.vue';
import TravelDescriptorProxy from 'src/pages/Travel/Card/TravelDescriptorProxy.vue';
-import { toDate, toCurrency } from 'src/filters';
+import { toDate, toCurrency, toCelsius } from 'src/filters';
import { getUrl } from 'src/composables/getUrl';
import axios from 'axios';
import FetchedTags from 'src/components/ui/FetchedTags.vue';
import VnToSummary from 'src/components/ui/VnToSummary.vue';
+import EntryDescriptorMenu from './EntryDescriptorMenu.vue';
+import VnRow from 'src/components/ui/VnRow.vue';
+import VnTitle from 'src/components/common/VnTitle.vue';
const route = useRoute();
const { t } = useI18n();
@@ -147,9 +150,8 @@ async function setEntryData(data) {
}
const fetchEntryBuys = async () => {
- const { data } = await axios.get(`Entries/${entry.value.id}/getBuys`);
- if (data) entryBuys.value = data;
-
+ const { data } = await axios.get(`Entries/${entry.value.id}/getBuys`);
+ if (data) entryBuys.value = data;
};
@@ -171,15 +173,15 @@ const fetchEntryBuys = async () => {
{{ entry.id }} - {{ entry.supplier.nickname }}
+
+
+
-
+
{
:label="t('entry.summary.invoiceNumber')"
:value="entry.invoiceNumber"
/>
+
+
-
+
@@ -212,61 +219,45 @@ const fetchEntryBuys = async () => {
:label="t('entry.summary.travelAgency')"
:value="entry.travel.agency?.name"
/>
-
+
-
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-import { computed } from 'vue';
+import { computed, ref } from 'vue';
import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
import { QBtn } from 'quasar';
import VnPaginate from 'src/components/ui/VnPaginate.vue';
import { usePrintService } from 'composables/usePrintService';
-const { openReport } = usePrintService();
+const { openReport } = usePrintService();
+const buyRows = ref([]);
const route = useRoute();
const { t } = useI18n();
const $props = defineProps({
id: {
- type: String,
+ type: Number,
required: false,
default: null,
},
});
const entityId = computed(() => $props.id || route.params.id);
-
const entriesTableColumns = computed(() => [
{
align: 'left',
@@ -63,34 +63,39 @@ const entriesTableColumns = computed(() => [
field: 'grouping',
},
]);
-
+function downloadCSV(rows) {
+ const headers = ['id', 'itemFk', 'name', 'stickers', 'packing', 'comment'];
+
+ const csvRows = rows.map((row) => {
+ const buy = row;
+ const item = buy.item || {};
+
+ return [
+ buy.id,
+ buy.itemFk,
+ item.name || '',
+ buy.stickers,
+ buy.packing,
+ item.comment || '',
+ ].join(',');
+ });
+
+ const csvContent = [headers.join(','), ...csvRows].join('\n');
+
+ const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.setAttribute('download', `${entityId.value}data.csv`);
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+}
+
-
-
- {{ title }}
-
-
-
-
-
-
[
>
[
:grid="$q.screen.lt.md"
:no-data-label="t('globals.noResults')"
>
+
+
+
+
+
+
@@ -118,7 +144,6 @@ const entriesTableColumns = computed(() => [
import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
-import { onMounted } from 'vue';
-import { useStateStore } from 'stores/useStateStore';
import VnFilterPanel from 'src/components/ui/VnFilterPanel.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
@@ -20,11 +18,6 @@ const props = defineProps({
const currenciesOptions = ref([]);
const companiesOptions = ref([]);
-
-const stateStore = useStateStore();
-onMounted(async () => {
- stateStore.rightDrawer = true;
-});
@@ -47,7 +40,7 @@ onMounted(async () => {
- {{ t(`params.${tag.label}`) }}:
+ {{ t(`entryFilter.params.${tag.label}`) }}:
{{ formatFn(tag.value) }}
@@ -56,7 +49,7 @@ onMounted(async () => {
@@ -65,7 +58,7 @@ onMounted(async () => {
@@ -74,7 +67,7 @@ onMounted(async () => {
@@ -83,7 +76,7 @@ onMounted(async () => {
@@ -91,7 +84,7 @@ onMounted(async () => {
{
{
{
- {{
- scope.opt?.name + ': ' + scope.opt?.nickname
- }}
+
+ {{ scope.opt?.name}}
+
+
+ {{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
+
@@ -151,7 +148,7 @@ onMounted(async () => {
{
{
{
@@ -197,7 +194,7 @@ onMounted(async () => {
@@ -205,35 +202,4 @@ onMounted(async () => {
-
-
-
-en:
- params:
-
- invoiceNumber: Invoice number
- travelFk: Travel
- companyFk: Company
- currencyFk: Currency
- supplierFk: Supplier
- from: From
- to: To
- created: Created
- isBooked: Booked
- isConfirmed: Confirmed
- isOrdered: Ordered
-es:
- params:
-
- invoiceNumber: Núm. factura
- travelFk: Envío
- companyFk: Empresa
- currencyFk: Moneda
- supplierFk: Proveedor
- from: Desde
- to: Hasta
- created: Fecha creación
- isBooked: Asentado
- isConfirmed: Confirmado
- isOrdered: Pedida
-
+
\ No newline at end of file
diff --git a/src/pages/Entry/EntryLatestBuys.vue b/src/pages/Entry/EntryLatestBuys.vue
index 450efe624..73fdcbbbf 100644
--- a/src/pages/Entry/EntryLatestBuys.vue
+++ b/src/pages/Entry/EntryLatestBuys.vue
@@ -102,7 +102,7 @@ const columns = [
},
{
align: 'left',
- label: t('globals.weightByPiece'),
+ label: t('entry.latestBuys.tableVisibleColumns.weightByPiece'),
name: 'weightByPiece',
columnFilter: {
component: 'number',
@@ -157,7 +157,7 @@ const columns = [
},
{
align: 'left',
- label: t('entry.buys.packageValue'),
+ label: t('entry.latestBuys.tableVisibleColumns.packageValue'),
name: 'packageValue',
columnFilter: {
component: 'number',
@@ -262,8 +262,3 @@ onUnmounted(() => (stateStore.rightDrawer = false));
:right-search="false"
/>
-
-
-es:
- Edit buy(s): Editar compra(s)
-
diff --git a/src/pages/Entry/EntryLatestBuysFilter.vue b/src/pages/Entry/EntryLatestBuysFilter.vue
index 83124c1bf..59dddce26 100644
--- a/src/pages/Entry/EntryLatestBuysFilter.vue
+++ b/src/pages/Entry/EntryLatestBuysFilter.vue
@@ -58,7 +58,7 @@ const tagValues = ref([]);
-
-
+
+
- {{ opt.name }}
+
+ {{ scope.opt?.name}}
+
- {{ opt.nickname }}
+ {{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
@@ -85,7 +87,7 @@ const tagValues = ref([]);
-import { onMounted, ref, computed } from 'vue';
+import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import EntryFilter from './EntryFilter.vue';
-import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
-import { useStateStore } from 'stores/useStateStore';
import VnTable from 'components/VnTable/VnTable.vue';
-import RightMenu from 'src/components/common/RightMenu.vue';
-import { toDate } from 'src/filters';
+import { toCelsius, toDate } from 'src/filters';
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
import EntrySummary from './Card/EntrySummary.vue';
import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue';
import TravelDescriptorProxy from 'src/pages/Travel/Card/TravelDescriptorProxy.vue';
+import VnSection from 'src/components/common/VnSection.vue';
-const stateStore = useStateStore();
const { t } = useI18n();
const tableRef = ref();
+const dataKey = 'EntryList';
const { viewSummary } = useSummaryDialog();
const entryFilter = {
@@ -49,8 +47,10 @@ const columns = computed(() => [
align: 'left',
label: t('globals.id'),
name: 'id',
- isTitle: true,
- cardVisible: true,
+ isId: true,
+ chip: {
+ condition: () => true,
+ },
},
{
align: 'left',
@@ -157,6 +157,20 @@ const columns = computed(() => [
name: 'invoiceAmount',
cardVisible: true,
},
+ {
+ align: 'left',
+ name: 'initialTemperature',
+ label: t('entry.basicData.initialTemperature'),
+ field: 'initialTemperature',
+ format: (row) => toCelsius(row.initialTemperature),
+ },
+ {
+ align: 'left',
+ name: 'finalTemperature',
+ label: t('entry.basicData.finalTemperature'),
+ field: 'finalTemperature',
+ format: (row) => toCelsius(row.finalTemperature),
+ },
{
label: t('entry.list.tableVisibleColumns.isExcludedFromAvailable'),
name: 'isExcludedFromAvailable',
@@ -177,79 +191,74 @@ const columns = computed(() => [
],
},
]);
-onMounted(async () => {
- stateStore.rightDrawer = true;
-});
+
-
-
-
+ :array-data-props="{
+ url: 'Entries/filter',
+ order: 'id DESC',
+ userFilter: entryFilter,
+ }"
+ >
+
-
-
-
-
-
- {{
- t('entry.list.tableVisibleColumns.isExcludedFromAvailable')
- }}
-
-
-
- {{
- t('globals.raid', { daysInForward: row.daysInForward })
- }}
-
-
+
+
+
+
+
+ {{
+ t(
+ 'entry.list.tableVisibleColumns.isExcludedFromAvailable'
+ )
+ }}
+
+
+
+ {{
+ t('globals.raid', {
+ daysInForward: row.daysInForward,
+ })
+ }}
+
+
+
+
+
+ {{ row.supplierName }}
+
+
+
+
+
+ {{ row.travelRef }}
+
+
+
+
-
-
- {{ row.supplierName }}
-
-
-
-
-
- {{ row.travelRef }}
-
-
-
-
+
-
-
-es:
- Inventory entry: Es inventario
- Virtual entry: Es una redada
- Search entries: Buscar entradas
- You can search by entry reference: Puedes buscar por referencia de la entrada
- Create entry: Crear entrada
-
diff --git a/src/pages/Entry/EntryStockBought.vue b/src/pages/Entry/EntryStockBought.vue
index 3f0cd2d99..fa0bdc12e 100644
--- a/src/pages/Entry/EntryStockBought.vue
+++ b/src/pages/Entry/EntryStockBought.vue
@@ -1,5 +1,5 @@
+
+
+
+
+
+ {{ t('invoicein.descriptorMenu.toBook') }}
+
+
+
+
+
+ {{ t('invoicein.descriptorMenu.toUnbook') }}
+
+
+
+ {{ t('invoicein.descriptorMenu.deleteInvoice') }}
+
+
+ {{ t('invoicein.descriptorMenu.cloneInvoice') }}
+
+
+ {{
+ t('invoicein.descriptorMenu.showAgriculturalPdf')
+ }}
+
+
+ {{ t('invoicein.descriptorMenu.sendAgriculturalPdf') }}...
+
+
+ {{ t('invoicein.descriptorMenu.createCorrective') }}...
+
+
+ {{ t('components.smartCard.downloadFile') }}
+
+
+
+
+en:
+ isNotLinked: The entry {bookEntry} has been deleted with {accountingEntries} entries
+ isLinked: The entry has been linked to Sage. Please contact administration for further information
+ assertAction: Are you sure you want to {action} this invoice?
+es:
+ isNotLinked: Se ha eliminado el asiento nº {bookEntry} con {accountingEntries} apuntes
+ isLinked: El asiento fue enlazado a Sage, por favor contacta con administración
+ assertAction: Estas seguro de querer {action} esta factura?
+
diff --git a/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue b/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue
index 1c4091169..e529ea6cd 100644
--- a/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue
+++ b/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue
@@ -161,7 +161,7 @@ const columns = computed(() => [
row.expenseFk,
sortable: true,
align: 'left',
},
{
name: 'landed',
- label: 'InvoiceIn.summary.taxableBase',
+ label: 'invoicein.summary.taxableBase',
field: (row) => row.taxableBase,
format: (value) => toCurrency(value),
sortable: true,
@@ -41,7 +42,7 @@ const vatColumns = ref([
},
{
name: 'vat',
- label: 'InvoiceIn.summary.sageVat',
+ label: 'invoicein.summary.sageVat',
field: (row) => {
if (row.taxTypeSage) return `#${row.taxTypeSage.id} : ${row.taxTypeSage.vat}`;
},
@@ -51,7 +52,7 @@ const vatColumns = ref([
},
{
name: 'transaction',
- label: 'InvoiceIn.summary.sageTransaction',
+ label: 'invoicein.summary.sageTransaction',
field: (row) => {
if (row.transactionTypeSage)
return `#${row.transactionTypeSage.id} : ${row.transactionTypeSage?.transaction}`;
@@ -62,7 +63,7 @@ const vatColumns = ref([
},
{
name: 'rate',
- label: 'InvoiceIn.summary.rate',
+ label: 'invoicein.summary.rate',
field: (row) => taxRate(row.taxableBase, row.taxTypeSage?.rate),
format: (value) => toCurrency(value),
sortable: true,
@@ -70,7 +71,7 @@ const vatColumns = ref([
},
{
name: 'currency',
- label: 'InvoiceIn.summary.currency',
+ label: 'invoicein.summary.currency',
field: (row) => row.foreignValue,
format: (val) => val && toCurrency(val, currency.value),
sortable: true,
@@ -81,21 +82,21 @@ const vatColumns = ref([
const dueDayColumns = ref([
{
name: 'date',
- label: 'InvoiceIn.summary.dueDay',
+ label: 'invoicein.summary.dueDay',
field: (row) => toDate(row.dueDated),
sortable: true,
align: 'left',
},
{
name: 'bank',
- label: 'InvoiceIn.summary.bank',
+ label: 'invoicein.summary.bank',
field: (row) => row.bank.bank,
sortable: true,
align: 'left',
},
{
name: 'amount',
- label: 'InvoiceIn.list.amount',
+ label: 'invoicein.list.amount',
field: (row) => row.amount,
format: (value) => toCurrency(value),
sortable: true,
@@ -103,7 +104,7 @@ const dueDayColumns = ref([
},
{
name: 'landed',
- label: 'InvoiceIn.summary.foreignValue',
+ label: 'invoicein.summary.foreignValue',
field: (row) => row.foreignValue,
format: (val) => val && toCurrency(val, currency.value),
sortable: true,
@@ -114,7 +115,7 @@ const dueDayColumns = ref([
const intrastatColumns = ref([
{
name: 'code',
- label: 'InvoiceIn.summary.code',
+ label: 'invoicein.summary.code',
field: (row) => {
return `${row.intrastat.id}: ${row.intrastat?.description}`;
},
@@ -123,21 +124,21 @@ const intrastatColumns = ref([
},
{
name: 'amount',
- label: 'InvoiceIn.list.amount',
+ label: 'invoicein.list.amount',
field: (row) => toCurrency(row.amount),
sortable: true,
align: 'left',
},
{
name: 'net',
- label: 'InvoiceIn.summary.net',
+ label: 'invoicein.summary.net',
field: (row) => row.net,
sortable: true,
align: 'left',
},
{
name: 'stems',
- label: 'InvoiceIn.summary.stems',
+ label: 'invoicein.summary.stems',
field: (row) => row.stems,
format: (value) => value,
sortable: true,
@@ -145,7 +146,7 @@ const intrastatColumns = ref([
},
{
name: 'landed',
- label: 'InvoiceIn.summary.country',
+ label: 'invoicein.summary.country',
field: (row) => row.country?.code,
format: (value) => value,
sortable: true,
@@ -200,6 +201,9 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
+
+
+
@@ -210,7 +214,7 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
/>
@@ -221,14 +225,14 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
-
+
`#/invoice-in/${entityId.value}/${param}`;
@@ -268,18 +272,18 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
/>
-
+
@@ -290,11 +294,11 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
-
+
`#/invoice-in/${entityId.value}/${param}`;
:color="amountsNotMatch ? 'negative' : 'transparent'"
:title="
amountsNotMatch
- ? t('InvoiceIn.summary.noMatch')
- : t('InvoiceIn.summary.dueTotal')
+ ? t('invoicein.summary.noMatch')
+ : t('invoicein.summary.dueTotal')
"
>
{{ toCurrency(entity.totals.totalDueDay) }}
@@ -314,7 +318,7 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
-
+
`#/invoice-in/${entityId.value}/${param}`;
-
+
@@ -400,7 +404,7 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
id == useAccountShortToStandard(param)
);
- if (lookup) row[col.model] = lookup;
+ expenseRef.value.vnSelectDialogRef.vnSelectRef.toggleOption(lookup);
}
@@ -167,6 +168,7 @@ function autocompleteExpense(evt, row, col) {
{
@@ -97,10 +97,10 @@ const redirectToInvoiceInBasicData = (__, { id }) => {
map-options
hide-selected
:required="true"
- :rules="validate('InvoiceIn.companyFk')"
+ :rules="validate('invoicein.companyFk')"
/>
diff --git a/src/pages/InvoiceIn/InvoiceInFilter.vue b/src/pages/InvoiceIn/InvoiceInFilter.vue
index 653692026..31a611936 100644
--- a/src/pages/InvoiceIn/InvoiceInFilter.vue
+++ b/src/pages/InvoiceIn/InvoiceInFilter.vue
@@ -68,13 +68,26 @@ function handleDaysAgo(params, daysAgo) {
+ >
+
+
+
+
+ {{ scope.opt?.name}}
+
+
+ {{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
+
+
+
+
+
@@ -151,7 +164,7 @@ function handleDaysAgo(params, daysAgo) {
-import { ref, computed, onMounted, onUnmounted } from 'vue';
+import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
-import { useStateStore } from 'stores/useStateStore';
import { useState } from 'src/composables/useState';
import { downloadFile } from 'src/composables/downloadFile';
import { toDate, toCurrency } from 'src/filters/index';
@@ -17,32 +16,32 @@ import VnInput from 'src/components/common/VnInput.vue';
import VnInputDate from 'src/components/common/VnInputDate.vue';
import FetchData from 'src/components/FetchData.vue';
-const stateStore = useStateStore();
const user = useState().getUser();
const { viewSummary } = useSummaryDialog();
const { t } = useI18n();
-onMounted(async () => (stateStore.rightDrawer = true));
-onUnmounted(() => (stateStore.rightDrawer = false));
-
const tableRef = ref();
const companies = ref([]);
const cols = computed(() => [
{
align: 'left',
name: 'isBooked',
- label: t('InvoiceIn.isBooked'),
+ label: t('invoicein.isBooked'),
columnFilter: false,
},
{
align: 'left',
name: 'id',
label: 'Id',
+ isId: true,
+ chip: {
+ condition: () => true,
+ },
},
{
align: 'left',
name: 'supplierFk',
- label: t('InvoiceIn.list.supplier'),
+ label: t('invoicein.list.supplier'),
columnFilter: {
component: 'select',
attrs: {
@@ -51,20 +50,21 @@ const cols = computed(() => [
},
},
columnClass: 'expand',
+ cardVisible: true,
},
{
align: 'left',
name: 'supplierRef',
- label: t('InvoiceIn.list.supplierRef'),
+ label: t('invoicein.list.supplierRef'),
},
{
align: 'left',
name: 'serial',
- label: t('InvoiceIn.serial'),
+ label: t('invoicein.serial'),
},
{
align: 'left',
- label: t('InvoiceIn.list.issued'),
+ label: t('invoicein.list.issued'),
name: 'issued',
component: null,
columnFilter: {
@@ -74,24 +74,26 @@ const cols = computed(() => [
},
{
align: 'left',
- label: t('InvoiceIn.list.dueDated'),
+ label: t('invoicein.list.dueDated'),
name: 'dueDated',
component: null,
columnFilter: {
component: 'date',
},
format: (row, dashIfEmpty) => dashIfEmpty(toDate(row.dueDated)),
+ cardVisible: true,
},
{
align: 'left',
name: 'awbCode',
- label: t('InvoiceIn.list.awb'),
+ label: t('invoicein.list.awb'),
},
{
align: 'left',
name: 'amount',
- label: t('InvoiceIn.list.amount'),
+ label: t('invoicein.list.amount'),
format: ({ amount }) => toCurrency(amount),
+ cardVisible: true,
},
{
name: 'companyFk',
@@ -163,24 +165,24 @@ const cols = computed(() => [
{{ scope.opt?.nickname }}
- #{{ scope.opt?.id }}
+ #{{ scope.opt?.id }}, {{ scope.opt?.name }}
[
option-label="code"
:required="true"
/>
-
+
diff --git a/src/pages/InvoiceIn/locale/en.yml b/src/pages/InvoiceIn/locale/en.yml
index ef7e31ac3..94db50066 100644
--- a/src/pages/InvoiceIn/locale/en.yml
+++ b/src/pages/InvoiceIn/locale/en.yml
@@ -1,4 +1,4 @@
-InvoiceIn:
+invoicein:
serial: Serial
isBooked: Is booked
list:
@@ -12,6 +12,26 @@ InvoiceIn:
amount: Amount
descriptor:
ticketList: Ticket list
+ descriptorMenu:
+ book: Book
+ unbook: Unbook
+ delete: Delete
+ clone: Clone
+ toBook: To book
+ toUnbook: To unbook
+ deleteInvoice: Delete invoice
+ invoiceDeleted: invoice deleted
+ cloneInvoice: Clone invoice
+ invoiceCloned: Invoice cloned
+ showAgriculturalPdf: Show agricultural receipt as PDF
+ sendAgriculturalPdf: Send agricultural receipt as PDF
+ checkSendInvoice: Are you sure you want to send it?
+ sendPdfInvoice: Send PDF invoice
+ createCorrective: Create rectificative invoice
+ correctiveInvoice: Rectificative invoice
+ originalInvoice: Original invoice
+ entry: Entry
+ emailEmpty: The email can't be empty
card:
client: Client
company: Company
@@ -44,7 +64,8 @@ InvoiceIn:
country: Country
params:
search: Id or supplier name
- account: Ledger account
- correctingFk: Rectificative
correctedFk: Corrected
isBooked: Is booked
+ account: Ledger account
+ correctingFk: Rectificative
+
\ No newline at end of file
diff --git a/src/pages/InvoiceIn/locale/es.yml b/src/pages/InvoiceIn/locale/es.yml
index ed5943489..bcb9c0551 100644
--- a/src/pages/InvoiceIn/locale/es.yml
+++ b/src/pages/InvoiceIn/locale/es.yml
@@ -1,4 +1,4 @@
-InvoiceIn:
+invoicein:
serial: Serie
isBooked: Contabilizada
list:
@@ -12,6 +12,26 @@ InvoiceIn:
amount: Importe
descriptor:
ticketList: Listado de tickets
+ descriptorMenu:
+ book: Asentar
+ unbook: Desasentar
+ delete: Eliminar
+ clone: Clonar
+ toBook: Contabilizar
+ toUnbook: Descontabilizar
+ deleteInvoice: Eliminar factura
+ invoiceDeleted: Factura eliminada
+ cloneInvoice: Clonar factura
+ invoiceCloned: Factura clonada
+ showAgriculturalPdf: Ver recibo agrícola como PDF
+ sendAgriculturalPdf: Enviar recibo agrícola como PDF
+ checkSendInvoice: ¿Estás seguro que quieres enviarlo?
+ sendPdfInvoice: Enviar factura a PDF
+ createCorrective: Crear factura rectificativa
+ correctiveInvoice: Factura rectificativa
+ originalInvoice: Factura origen
+ entry: Entrada
+ emailEmpty: El email no puede estar vacío
card:
client: Cliente
company: Empresa
@@ -42,6 +62,7 @@ InvoiceIn:
country: País
params:
search: Id o nombre proveedor
+ correctedFk: Rectificada
account: Cuenta contable
correctingFk: Rectificativa
- correctedFk: Rectificada
+
diff --git a/src/pages/InvoiceOut/Card/InvoiceOutSummary.vue b/src/pages/InvoiceOut/Card/InvoiceOutSummary.vue
index 81b3e7c41..3ceb447dd 100644
--- a/src/pages/InvoiceOut/Card/InvoiceOutSummary.vue
+++ b/src/pages/InvoiceOut/Card/InvoiceOutSummary.vue
@@ -10,6 +10,7 @@ import { getUrl } from 'src/composables/getUrl';
import TicketDescriptorProxy from 'src/pages/Ticket/Card/TicketDescriptorProxy.vue';
import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorProxy.vue';
import VnTitle from 'src/components/common/VnTitle.vue';
+import InvoiceOutDescriptorMenu from './InvoiceOutDescriptorMenu.vue';
onMounted(async () => {
fetch();
@@ -113,6 +114,9 @@ const ticketsColumns = ref([
{{ invoiceOut.ref }} - {{ invoiceOut.client?.socialName }}
+
+
+
diff --git a/src/pages/InvoiceOut/InvoiceOutFilter.vue b/src/pages/InvoiceOut/InvoiceOutFilter.vue
index dc1d833a2..cdc9f037a 100644
--- a/src/pages/InvoiceOut/InvoiceOutFilter.vue
+++ b/src/pages/InvoiceOut/InvoiceOutFilter.vue
@@ -47,6 +47,7 @@ const states = ref();
:label="t('Amount')"
v-model="params.amount"
is-outlined
+ data-cy="InvoiceOutFilterAmountBtn"
/>
diff --git a/src/pages/InvoiceOut/InvoiceOutGlobalForm.vue b/src/pages/InvoiceOut/InvoiceOutGlobalForm.vue
index e6c689523..392256473 100644
--- a/src/pages/InvoiceOut/InvoiceOutGlobalForm.vue
+++ b/src/pages/InvoiceOut/InvoiceOutGlobalForm.vue
@@ -101,6 +101,7 @@ onMounted(async () => {
dense
outlined
rounded
+ data-cy="InvoiceOutGlobalClientSelect"
>
@@ -125,6 +126,7 @@ onMounted(async () => {
dense
outlined
rounded
+ data-cy="InvoiceOutGlobalSerialSelect"
/>
{
v-model="formData.maxShipped"
:label="t('maxShipped')"
is-outlined
+ data-cy="InvoiceOutGlobalMaxShippedDate"
/>
{
dense
outlined
rounded
+ data-cy="InvoiceOutGlobalCompanySelect"
/>
{
dense
outlined
rounded
+ data-cy="InvoiceOutGlobalPrinterSelect"
/>