diff --git a/src/components/VnTable/VnColumn.vue b/src/components/VnTable/VnColumn.vue
index 9e9bfad69..fa686bc55 100644
--- a/src/components/VnTable/VnColumn.vue
+++ b/src/components/VnTable/VnColumn.vue
@@ -12,6 +12,7 @@ import VnInputDate from 'components/common/VnInputDate.vue';
import VnInputTime from 'components/common/VnInputTime.vue';
import VnComponent from 'components/common/VnComponent.vue';
import VnUserLink from 'components/ui/VnUserLink.vue';
+import VnCurrency from '../ui/VnCurrency.vue';
const model = defineModel(undefined, { required: true });
const $props = defineProps({
@@ -131,6 +132,9 @@ const defaultComponents = {
userLink: {
component: markRaw(VnUserLink),
},
+ currency: {
+ component: markRaw(VnCurrency),
+ },
};
const value = computed(() => {
diff --git a/src/components/common/VnCardBeta.vue b/src/components/common/VnCardBeta.vue
index 349956be9..a1f07ff17 100644
--- a/src/components/common/VnCardBeta.vue
+++ b/src/components/common/VnCardBeta.vue
@@ -12,6 +12,7 @@ const props = defineProps({
baseUrl: { type: String, default: undefined },
customUrl: { type: String, default: undefined },
filter: { type: Object, default: () => {} },
+ userFilter: { type: Object, default: () => {} },
descriptor: { type: Object, required: true },
filterPanel: { type: Object, default: undefined },
searchDataKey: { type: String, default: undefined },
@@ -32,6 +33,7 @@ const url = computed(() => {
const arrayData = useArrayData(props.dataKey, {
url: url.value,
filter: props.filter,
+ userFilter: props.userFilter,
});
onBeforeMount(async () => {
diff --git a/src/components/common/VnSelectCompany.vue b/src/components/common/VnSelectCompany.vue
new file mode 100644
index 000000000..15dea27cf
--- /dev/null
+++ b/src/components/common/VnSelectCompany.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
diff --git a/src/components/common/VnSelectCurrency.vue b/src/components/common/VnSelectCurrency.vue
new file mode 100644
index 000000000..ae3066bcb
--- /dev/null
+++ b/src/components/common/VnSelectCurrency.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
diff --git a/src/components/ui/CatalogItem.vue b/src/components/ui/CatalogItem.vue
index 9670d9b68..9f37b4755 100644
--- a/src/components/ui/CatalogItem.vue
+++ b/src/components/ui/CatalogItem.vue
@@ -6,8 +6,7 @@ import VnLv from 'components/ui/VnLv.vue';
import VnImg from 'src/components/ui/VnImg.vue';
import OrderCatalogItemDialog from 'pages/Order/Card/OrderCatalogItemDialog.vue';
import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
-
-import { toCurrency } from 'filters/index';
+import VnCurrency from './VnCurrency.vue';
const DEFAULT_PRICE_KG = 0;
@@ -61,7 +60,7 @@ const card = toRef(props, 'item');
{{ card.available }} {{ t('to') }}
- {{ toCurrency(card.price) }}
+
@@ -81,7 +80,12 @@ const card = toRef(props, 'item');
{{ t('price-kg') }}
- {{ toCurrency(card.priceKg) || DEFAULT_PRICE_KG }}
+
diff --git a/src/components/ui/VnCurrency.vue b/src/components/ui/VnCurrency.vue
new file mode 100644
index 000000000..b2ad67736
--- /dev/null
+++ b/src/components/ui/VnCurrency.vue
@@ -0,0 +1,52 @@
+
+
+
+
+ {{ toCurrency(localValue) }} /
+ {{ toCurrencyLabel }}
+
+
diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml
index e1ec62175..bd7039a65 100644
--- a/src/i18n/locale/en.yml
+++ b/src/i18n/locale/en.yml
@@ -130,6 +130,7 @@ globals:
medium: Medium
big: Big
email: Email
+ currency: Currency
pageTitles:
logIn: Login
addressEdit: Update address
diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml
index 4b4f6f552..4db785a43 100644
--- a/src/i18n/locale/es.yml
+++ b/src/i18n/locale/es.yml
@@ -132,6 +132,7 @@ globals:
medium: Mediano/a
big: Grande
email: Correo
+ currency: Moneda
pageTitles:
logIn: Inicio de sesiĆ³n
addressEdit: Modificar consignatario
diff --git a/src/pages/Order/Card/OrderBasicData.vue b/src/pages/Order/Card/OrderBasicData.vue
index 8594a05f4..5fb5a4e15 100644
--- a/src/pages/Order/Card/OrderBasicData.vue
+++ b/src/pages/Order/Card/OrderBasicData.vue
@@ -10,6 +10,8 @@ import VnSelect from 'components/common/VnSelect.vue';
import VnInput from 'components/common/VnInput.vue';
import VnInputDate from 'components/common/VnInputDate.vue';
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
+import VnSelectCompany from 'src/components/common/VnSelectCompany.vue';
+import VnSelectCurrency from 'src/components/common/VnSelectCurrency.vue';
const { t } = useI18n();
const route = useRoute();
@@ -176,6 +178,10 @@ const onClientChange = async (clientId) => {
"
/>
+
+
+
+
diff --git a/src/pages/Order/Card/OrderCatalogItemDialog.vue b/src/pages/Order/Card/OrderCatalogItemDialog.vue
index 163b036eb..b9741161f 100644
--- a/src/pages/Order/Card/OrderCatalogItemDialog.vue
+++ b/src/pages/Order/Card/OrderCatalogItemDialog.vue
@@ -7,6 +7,7 @@ import { useRoute } from 'vue-router';
import useNotify from 'composables/useNotify';
import VnInputNumber from 'src/components/common/VnInputNumber.vue';
import { useState } from 'src/composables/useState';
+import VnCurrency from 'src/components/ui/VnCurrency.vue';
const { t } = useI18n();
const { notify } = useNotify();
@@ -73,10 +74,10 @@ const canAddToOrder = () => {
-
+ |
{{ price.warehouse }}
|
-
+ |
{
>
{{ price.grouping }}
- x {{ toCurrency(price.price) }}
+ x
+
|
-
+ |
|
@@ -117,12 +124,6 @@ const canAddToOrder = () => {
-
-
es:
noAmount: La cantidad no puede ser 0
diff --git a/src/pages/Order/Card/OrderDescriptor.vue b/src/pages/Order/Card/OrderDescriptor.vue
index 0d5f0146f..212b5ae55 100644
--- a/src/pages/Order/Card/OrderDescriptor.vue
+++ b/src/pages/Order/Card/OrderDescriptor.vue
@@ -10,6 +10,7 @@ import CardDescriptor from 'components/ui/CardDescriptor.vue';
import VnLv from 'src/components/ui/VnLv.vue';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
+import VnCurrency from 'src/components/ui/VnCurrency.vue';
const DEFAULT_ITEMS = 0;
@@ -69,19 +70,19 @@ const getConfirmationValue = (isConfirmed) => {
return t(isConfirmed ? 'globals.confirmed' : 'order.summary.notConfirmed');
};
-const orderTotal = computed(() => state.get('orderTotal') ?? 0);
-const total = ref(0);
+function setTotal(response) {
+ total.value = response;
+ state.set('orderTotal', response);
+}
+const orderTotal = computed(() => state.get('orderTotal'));
+const total = ref();
{
- total = response;
- }
- "
+ @on-fetch="(response) => setTotal(response)"
/>
-
+
+
+
+
+
diff --git a/src/pages/Order/Card/OrderLines.vue b/src/pages/Order/Card/OrderLines.vue
index 6093addb5..7a4c6da11 100644
--- a/src/pages/Order/Card/OrderLines.vue
+++ b/src/pages/Order/Card/OrderLines.vue
@@ -16,6 +16,7 @@ import VnImg from 'src/components/ui/VnImg.vue';
import VnLv from 'src/components/ui/VnLv.vue';
import FetchedTags from 'src/components/ui/FetchedTags.vue';
import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
+import VnCurrency from 'src/components/ui/VnCurrency.vue';
const router = useRouter();
const stateStore = useStateStore();
@@ -28,7 +29,9 @@ const tableLinesRef = ref();
const order = ref();
const orderSummary = ref({
total: null,
+ foreignTotal: null,
vat: null,
+ foreignVat: null,
});
const getTotalRef = ref();
const getVATRef = ref();
@@ -91,16 +94,14 @@ const columns = computed(() => [
},
},
columnFilter: false,
+ cardVisible: true,
},
{
align: 'left',
name: 'id',
label: t('lines.item'),
- chip: {
- condition: () => true,
- },
- isId: true,
format: (row) => row?.item?.id,
+ cardVisible: true,
},
{
align: 'left',
@@ -156,12 +157,12 @@ const columns = computed(() => [
name: 'price',
label: t('lines.price'),
cardVisible: true,
- format: (row) => toCurrency(row.price),
},
{
align: 'left',
name: 'amount',
label: t('lines.amount'),
+ cardVisible: true,
},
{
align: 'right',
@@ -241,14 +242,14 @@ watch(
ref="getTotalRef"
:key="componentKey"
:url="`Orders/${route.params.id}/getTotal`"
- @on-fetch="(data) => (orderSummary.total = data)"
+ @on-fetch="(data) => (orderSummary = { ...orderSummary, ...data })"
auto-load
/>
(orderSummary.vat = data)"
+ @on-fetch="(data) => (orderSummary = { ...orderSummary, ...data })"
auto-load
/>
@@ -262,9 +263,38 @@ watch(
-
-
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -300,10 +330,19 @@ watch(
{{ row?.item?.subName.toUpperCase() }}
-
+
-
- {{ toCurrency(row.quantity * row.price) }}
+
+
+
+
+
{
option-value="agencyModeFk"
option-label="agencyMode"
/>
+
+