diff --git a/.eslintrc.js b/.eslintrc.js index c8bdecb1a..1d09a896f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -58,7 +58,7 @@ module.exports = { rules: { 'prefer-promise-reject-errors': 'off', 'no-unused-vars': 'warn', - + "vue/no-multiple-template-root": "off" , // allow debugger during development only 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', }, diff --git a/Jenkinsfile b/Jenkinsfile index 437332c4e..9dd72ccc3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -96,4 +96,4 @@ pipeline { } } } -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index 6a60c95c6..ce9c4d7c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@quasar/extras": "^1.16.4", "axios": "^1.4.0", "chromium": "^3.0.3", + "croppie": "^2.6.5", "pinia": "^2.1.3", "quasar": "^2.12.0", "validator": "^13.9.0", @@ -3169,6 +3170,11 @@ "node": ">= 10" } }, + "node_modules/croppie": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/croppie/-/croppie-2.6.5.tgz", + "integrity": "sha512-IlChnVUGG5T3w2gRZIaQgBtlvyuYnlUWs2YZIXXR3H9KrlO1PtBT3j+ykxvy9eZIWhk+V5SpBmhCQz5UXKrEKQ==" + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", diff --git a/package.json b/package.json index 1d729b82f..27ba190a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-front", - "version": "24.02.01", + "version": "24.8.0", "description": "Salix frontend", "productName": "Salix", "author": "Verdnatura", @@ -19,6 +19,7 @@ "@quasar/extras": "^1.16.4", "axios": "^1.4.0", "chromium": "^3.0.3", + "croppie": "^2.6.5", "pinia": "^2.1.3", "quasar": "^2.12.0", "validator": "^13.9.0", diff --git a/src/components/CreateBankEntityForm.vue b/src/components/CreateBankEntityForm.vue index f4f5fef7d..106dbec3a 100644 --- a/src/components/CreateBankEntityForm.vue +++ b/src/components/CreateBankEntityForm.vue @@ -1,12 +1,20 @@ diff --git a/src/components/CreateNewPostcodeForm.vue b/src/components/CreateNewPostcodeForm.vue index 3504445f8..47836c05b 100644 --- a/src/components/CreateNewPostcodeForm.vue +++ b/src/components/CreateNewPostcodeForm.vue @@ -8,7 +8,7 @@ import VnSelectFilter from 'src/components/common/VnSelectFilter.vue'; import VnInput from 'src/components/common/VnInput.vue'; import CreateNewCityForm from './CreateNewCityForm.vue'; import CreateNewProvinceForm from './CreateNewProvinceForm.vue'; -import VnSelectCreate from 'components/common/VnSelectCreate.vue'; +import VnSelectDialog from 'components/common/VnSelectDialog.vue'; import FormModelPopup from './FormModelPopup.vue'; const emit = defineEmits(['onDataSaved']); @@ -28,16 +28,24 @@ const countriesOptions = ref([]); const provincesOptions = ref([]); const townsLocationOptions = ref([]); -const onDataSaved = () => { - emit('onDataSaved'); +const onDataSaved = (dataSaved) => { + emit('onDataSaved', dataSaved); }; -const onCityCreated = async () => { +const onCityCreated = async ({ name, provinceFk }, formData) => { await townsFetchDataRef.value.fetch(); + formData.townFk = townsLocationOptions.value.find((town) => town.name === name).id; + formData.provinceFk = provinceFk; + formData.countryFk = provincesOptions.value.find( + (province) => province.id === provinceFk + ).countryFk; }; -const onProvinceCreated = async () => { +const onProvinceCreated = async ({ name }, formData) => { await provincesFetchDataRef.value.fetch(); + formData.provinceFk = provincesOptions.value.find( + (province) => province.name === name + ).id; }; @@ -77,7 +85,7 @@ const onProvinceCreated = async () => { />
- { :roles-allowed-to-create="['deliveryAssistant']" > - +
- { > - +
{ es: New postcode: Nuevo código postal Please, ensure you put the correct data!: ¡Por favor, asegúrese de poner los datos correctos! - City: Ciudad + City: Población Province: Provincia Country: País Postcode: Código postal diff --git a/src/components/CreateNewProvinceForm.vue b/src/components/CreateNewProvinceForm.vue index 0f88952ea..b972db2c9 100644 --- a/src/components/CreateNewProvinceForm.vue +++ b/src/components/CreateNewProvinceForm.vue @@ -19,8 +19,8 @@ const provinceFormData = reactive({ const autonomiesOptions = ref([]); -const onDataSaved = () => { - emit('onDataSaved'); +const onDataSaved = (dataSaved) => { + emit('onDataSaved', dataSaved); }; diff --git a/src/components/CrudModel.vue b/src/components/CrudModel.vue index 75353a35a..17fc8fc4a 100644 --- a/src/components/CrudModel.vue +++ b/src/components/CrudModel.vue @@ -225,15 +225,19 @@ function getDifferences(obj1, obj2) { delete obj2.$index; for (let key in obj1) { - if (obj2[key] && obj1[key] !== obj2[key]) { + if (obj2[key] && JSON.stringify(obj1[key]) !== JSON.stringify(obj2[key])) { diff[key] = obj2[key]; } } for (let key in obj2) { - if (obj1[key] === undefined || obj1[key] !== obj2[key]) { + if ( + obj1[key] === undefined || + JSON.stringify(obj1[key]) !== JSON.stringify(obj2[key]) + ) { diff[key] = obj2[key]; } } + return diff; } diff --git a/src/components/EditPictureForm.vue b/src/components/EditPictureForm.vue new file mode 100644 index 000000000..44d44587f --- /dev/null +++ b/src/components/EditPictureForm.vue @@ -0,0 +1,363 @@ + + + + + + + +es: + Edit photo: Editar foto + Select from computer: Seleccionar desde ordenador + Import from external URL: Importar desde URL externa + Vertical: Vertical + Normal: Normal + Panoramic: Panorámica + Orientation: Orientación + File: Fichero + This photo provider doesn't allow remote downloads: Este proveedor de fotos no permite descargas remotas + Rotate left: Girar a la izquierda + Rotate right: Girar a la derecha + Select an image: Selecciona una imagen + diff --git a/src/components/EditTableCellValueForm.vue b/src/components/EditTableCellValueForm.vue new file mode 100644 index 000000000..6d3b7b08b --- /dev/null +++ b/src/components/EditTableCellValueForm.vue @@ -0,0 +1,141 @@ + + + + + + + + en: + editBuyTitle: Edit {buysAmount} buy(s) + es: + editBuyTitle: Editar {buysAmount} compra(s) + Field to edit: Campo a editar + Value: Valor + diff --git a/src/components/FetchData.vue b/src/components/FetchData.vue index 137f751db..4f5d7a57d 100644 --- a/src/components/FetchData.vue +++ b/src/components/FetchData.vue @@ -45,7 +45,7 @@ onMounted(async () => { async function fetch(fetchFilter = {}) { try { const filter = Object.assign(fetchFilter, $props.filter); // eslint-disable-line vue/no-dupe-keys - if ($props.where) filter.where = $props.where; + if ($props.where && !fetchFilter.where) filter.where = $props.where; if ($props.sortBy) filter.order = $props.sortBy; if ($props.limit) filter.limit = $props.limit; @@ -54,6 +54,7 @@ async function fetch(fetchFilter = {}) { }); emit('onFetch', data); + return data; } catch (e) { // } diff --git a/src/components/FilterItemForm.vue b/src/components/FilterItemForm.vue new file mode 100644 index 000000000..4c329a8e8 --- /dev/null +++ b/src/components/FilterItemForm.vue @@ -0,0 +1,242 @@ + + + + + +es: + Filter item: Filtrar artículo + Enter a new search: Introduce una nueva búsqueda + + + diff --git a/src/components/FilterTravelForm.vue b/src/components/FilterTravelForm.vue new file mode 100644 index 000000000..499d5bc4e --- /dev/null +++ b/src/components/FilterTravelForm.vue @@ -0,0 +1,240 @@ + + + + + +es: + Filter travels: Filtro envíos + Enter a new search: Introduce una nueva búsqueda + + + diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index a5560dfc0..9fd16088c 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -1,6 +1,6 @@ - - en: params: diff --git a/src/pages/Customer/CustomerList.vue b/src/pages/Customer/CustomerList.vue index 540afcc4c..a78720d03 100644 --- a/src/pages/Customer/CustomerList.vue +++ b/src/pages/Customer/CustomerList.vue @@ -65,7 +65,7 @@ const redirectToCreateView = () => { -
+
{ - - es: Search customer: Buscar cliente diff --git a/src/pages/Customer/Defaulter/CustomerDefaulter.vue b/src/pages/Customer/Defaulter/CustomerDefaulter.vue index d54d5df35..1dfd331e2 100644 --- a/src/pages/Customer/Defaulter/CustomerDefaulter.vue +++ b/src/pages/Customer/Defaulter/CustomerDefaulter.vue @@ -2,7 +2,7 @@ import { ref, computed, onBeforeMount } from 'vue'; import { useI18n } from 'vue-i18n'; -import { QBtn, QCheckbox } from 'quasar'; +import { QBtn, QCheckbox, useQuasar } from 'quasar'; import { toCurrency, toDate } from 'filters/index'; import { useArrayData } from 'composables/useArrayData'; @@ -12,34 +12,20 @@ import CustomerNotificationsFilter from './CustomerDefaulterFilter.vue'; import CustomerBalanceDueTotal from './CustomerBalanceDueTotal.vue'; import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorProxy.vue'; import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue'; +import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue'; +import CustomerDefaulterAddObservation from './CustomerDefaulterAddObservation.vue'; const { t } = useI18n(); const stateStore = useStateStore(); +const quasar = useQuasar(); const arrayData = ref(null); const balanceDueTotal = ref(0); - -onBeforeMount(async () => { - arrayData.value = useArrayData('CustomerDefaulter', { - url: 'Defaulters/filter', - limit: 0, - }); - await arrayData.value.fetch({ append: false }); - balanceDueTotal.value = arrayData.value.store.data.reduce( - (accumulator, currentValue) => { - return accumulator + (currentValue['amount'] || 0); - }, - 0 - ); - console.log(balanceDueTotal.value); - stateStore.rightDrawer = true; -}); - -const rows = computed(() => arrayData.value.store.data); - +const customerId = ref(0); const selected = ref([]); const workerId = ref(0); -const customerId = ref(0); + +const rows = computed(() => arrayData.value.store.data); const tableColumnComponents = { client: { @@ -49,11 +35,10 @@ const tableColumnComponents = { }, isWorker: { component: QCheckbox, - props: ({ value }) => ({ + props: ({ row }) => ({ disable: true, - 'model-value': Boolean(value), + 'model-value': Boolean(row.selected), }), - event: () => {}, }, salesperson: { component: QBtn, @@ -171,6 +156,25 @@ const columns = computed(() => [ }, ]); +onBeforeMount(() => { + getArrayData(); +}); + +const getArrayData = async () => { + arrayData.value = useArrayData('CustomerDefaulter', { + url: 'Defaulters/filter', + limit: 0, + }); + await arrayData.value.fetch({ append: false }); + balanceDueTotal.value = arrayData.value.store.data.reduce( + (accumulator, currentValue) => { + return accumulator + (currentValue['amount'] || 0); + }, + 0 + ); + stateStore.rightDrawer = true; +}; + const selectCustomerId = (id) => { workerId.value = 0; customerId.value = id; @@ -180,6 +184,20 @@ const selectWorkerId = (id) => { customerId.value = 0; workerId.value = id; }; + +const viewAddObservation = (rowsSelected) => { + quasar.dialog({ + component: CustomerDefaulterAddObservation, + componentProps: { + clients: rowsSelected, + promise: refreshData, + }, + }); +}; + +const refreshData = () => { + getArrayData(); +}; - - en: params: diff --git a/src/pages/Customer/ExtendedList/CustomerExtendedList.vue b/src/pages/Customer/ExtendedList/CustomerExtendedList.vue index caee06d60..69effe88e 100644 --- a/src/pages/Customer/ExtendedList/CustomerExtendedList.vue +++ b/src/pages/Customer/ExtendedList/CustomerExtendedList.vue @@ -9,6 +9,7 @@ import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorP import CustomerExtendedListActions from './CustomerExtendedListActions.vue'; import CustomerExtendedListFilter from './CustomerExtendedListFilter.vue'; import TableVisibleColumns from 'src/components/common/TableVisibleColumns.vue'; +import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue'; import { useArrayData } from 'composables/useArrayData'; import { useStateStore } from 'stores/useStateStore'; @@ -485,7 +486,6 @@ const selectCustomerId = (id) => { }; const selectSalesPersonId = (id) => { - console.log('selectedSalesPersonId:: ', selectedSalesPersonId.value); selectedSalesPersonId.value = id; }; @@ -500,9 +500,8 @@ const selectSalesPersonId = (id) => { /> - - -
+ + + {
- - es: Social name: Razón social diff --git a/src/pages/Customer/Notifications/CustomerNotificationsFilter.vue b/src/pages/Customer/Notifications/CustomerNotificationsFilter.vue index 650158278..957abb7a3 100644 --- a/src/pages/Customer/Notifications/CustomerNotificationsFilter.vue +++ b/src/pages/Customer/Notifications/CustomerNotificationsFilter.vue @@ -36,91 +36,80 @@ const clients = ref(); - - en: params: diff --git a/src/pages/Customer/Payments/CustomerPayments.vue b/src/pages/Customer/Payments/CustomerPayments.vue index de774e63e..eedaaf137 100644 --- a/src/pages/Customer/Payments/CustomerPayments.vue +++ b/src/pages/Customer/Payments/CustomerPayments.vue @@ -122,7 +122,7 @@ function stateColor(row) { -
+
.customer-payments { - .card-list { - width: 100%; - max-width: 60em; - - .q-table--dense .q-table th:first-child { - padding-left: 0; - } - td { - max-width: 130px; - overflow: hidden; - text-overflow: ellipsis; - } + .q-table--dense .q-table th:first-child { + padding-left: 0; + } + td { + max-width: 130px; + overflow: hidden; + text-overflow: ellipsis; } } diff --git a/src/pages/Customer/Payments/CustomerPaymentsFilter.vue b/src/pages/Customer/Payments/CustomerPaymentsFilter.vue index a19b35a20..74ea2c203 100644 --- a/src/pages/Customer/Payments/CustomerPaymentsFilter.vue +++ b/src/pages/Customer/Payments/CustomerPaymentsFilter.vue @@ -27,71 +27,60 @@ function isValidNumber(value) {
diff --git a/src/pages/Customer/components/CustomerConsigneeCreate.vue b/src/pages/Customer/components/CustomerConsigneeCreate.vue new file mode 100644 index 000000000..7bc6c2e88 --- /dev/null +++ b/src/pages/Customer/components/CustomerConsigneeCreate.vue @@ -0,0 +1,265 @@ + + + + + + + +es: + Default: Predeterminado + Consignee: Consignatario + Street address: Dirección postal + Postcode: Código postal + City: Población + Province: Provincia + Agency: Agencia + Phone: Teléfono + Mobile: Movíl + Incoterms: Incoterms + Customs agent: Agente de aduanas + diff --git a/src/pages/Customer/components/CustomerConsigneeEdit.vue b/src/pages/Customer/components/CustomerConsigneeEdit.vue new file mode 100644 index 000000000..98996e479 --- /dev/null +++ b/src/pages/Customer/components/CustomerConsigneeEdit.vue @@ -0,0 +1,371 @@ + + + + + + + +es: + Enabled: Activo + Is equalizated: Recargo de equivalencia + Is Loginflora allowed: Compra directa en Holanda + Consignee: Consignatario + Street address: Dirección postal + Postcode: Código postal + City: Población + Province: Provincia + Agency: Agencia + Phone: Teléfono + Mobile: Movíl + Incoterms: Incoterms + Customs agent: Agente de aduanas + Notes: Notas + Observation type: Tipo de observación + Description: Descripción + Add note: Añadir nota + Remove note: Eliminar nota + diff --git a/src/pages/Customer/components/CustomerCreditCreate.vue b/src/pages/Customer/components/CustomerCreditCreate.vue new file mode 100644 index 000000000..053f0d18a --- /dev/null +++ b/src/pages/Customer/components/CustomerCreditCreate.vue @@ -0,0 +1,51 @@ + + + + + +es: + Credit: Crédito + diff --git a/src/pages/Customer/components/CustomerNewCustomsAgent.vue b/src/pages/Customer/components/CustomerNewCustomsAgent.vue new file mode 100644 index 000000000..b8b83e763 --- /dev/null +++ b/src/pages/Customer/components/CustomerNewCustomsAgent.vue @@ -0,0 +1,65 @@ + + + + + +es: + New customs agent: Nuevo agente de aduanas + NIF: NIF + Fiscal name: Nombre fiscal + Street: Dirección fiscal + Phone: Teléfono + diff --git a/src/pages/Customer/components/CustomerNoteCreate.vue b/src/pages/Customer/components/CustomerNoteCreate.vue new file mode 100644 index 000000000..cea90f975 --- /dev/null +++ b/src/pages/Customer/components/CustomerNoteCreate.vue @@ -0,0 +1,51 @@ + + + + + +es: + Note: Nota + diff --git a/src/pages/Department/Card/DepartmentDescriptor.vue b/src/pages/Department/Card/DepartmentDescriptor.vue index 1f7e6dcbb..7049d4145 100644 --- a/src/pages/Department/Card/DepartmentDescriptor.vue +++ b/src/pages/Department/Card/DepartmentDescriptor.vue @@ -44,7 +44,6 @@ const setData = (entity) => { }; const removeDepartment = () => { - console.log('entityId: ', entityId.value); quasar .dialog({ title: 'Are you sure you want to delete it?', @@ -90,17 +89,15 @@ const removeDepartment = () => { diff --git a/src/pages/InvoiceOut/InvoiceOutList.vue b/src/pages/InvoiceOut/InvoiceOutList.vue index 292fa2e0a..8d3583da3 100644 --- a/src/pages/InvoiceOut/InvoiceOutList.vue +++ b/src/pages/InvoiceOut/InvoiceOutList.vue @@ -11,6 +11,7 @@ import VnSearchbar from 'src/components/ui/VnSearchbar.vue'; import InvoiceOutFilter from './InvoiceOutFilter.vue'; import VnLv from 'src/components/ui/VnLv.vue'; import CardList from 'src/components/ui/CardList.vue'; +import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue'; const { t } = useI18n(); const selectedCards = ref(new Map()); @@ -129,8 +130,8 @@ const downloadCsv = () => { url="InvoiceOuts/filter" > - - en: searchInvoice: Search issued invoice diff --git a/src/pages/InvoiceOut/InvoiceOutNegativeBasesFilter.vue b/src/pages/InvoiceOut/InvoiceOutNegativeBasesFilter.vue index 028246aeb..3adfa1d13 100644 --- a/src/pages/InvoiceOut/InvoiceOutNegativeBasesFilter.vue +++ b/src/pages/InvoiceOut/InvoiceOutNegativeBasesFilter.vue @@ -27,87 +27,83 @@ const props = defineProps({
- - en: params: diff --git a/src/pages/Item/Card/ItemCard.vue b/src/pages/Item/Card/ItemCard.vue new file mode 100644 index 000000000..57c3a434d --- /dev/null +++ b/src/pages/Item/Card/ItemCard.vue @@ -0,0 +1,25 @@ + + diff --git a/src/pages/Item/Card/ItemDescriptor.vue b/src/pages/Item/Card/ItemDescriptor.vue new file mode 100644 index 000000000..362fcfc67 --- /dev/null +++ b/src/pages/Item/Card/ItemDescriptor.vue @@ -0,0 +1,316 @@ + + + + + +es: + Regularize stock: Regularizar stock + Clone: Clonar + All it's properties will be copied: Todas sus propiedades serán copiadas + Do you want to clone this item?: ¿Desea clonar este artículo? + + + diff --git a/src/pages/Item/Card/ItemDescriptorProxy.vue b/src/pages/Item/Card/ItemDescriptorProxy.vue new file mode 100644 index 000000000..58471dc83 --- /dev/null +++ b/src/pages/Item/Card/ItemDescriptorProxy.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/pages/Item/Card/ItemDiary.vue b/src/pages/Item/Card/ItemDiary.vue new file mode 100644 index 000000000..21249349f --- /dev/null +++ b/src/pages/Item/Card/ItemDiary.vue @@ -0,0 +1 @@ + diff --git a/src/pages/Item/Card/ItemSummary.vue b/src/pages/Item/Card/ItemSummary.vue new file mode 100644 index 000000000..567fbf32b --- /dev/null +++ b/src/pages/Item/Card/ItemSummary.vue @@ -0,0 +1 @@ + diff --git a/src/pages/Item/Card/ItemSummaryDialog.vue b/src/pages/Item/Card/ItemSummaryDialog.vue new file mode 100644 index 000000000..4af617fd9 --- /dev/null +++ b/src/pages/Item/Card/ItemSummaryDialog.vue @@ -0,0 +1,5 @@ + diff --git a/src/pages/Item/Card/ItemTags.vue b/src/pages/Item/Card/ItemTags.vue new file mode 100644 index 000000000..95f4380e4 --- /dev/null +++ b/src/pages/Item/Card/ItemTags.vue @@ -0,0 +1 @@ + diff --git a/src/pages/Item/ItemList.vue b/src/pages/Item/ItemList.vue new file mode 100644 index 000000000..49a5dbb64 --- /dev/null +++ b/src/pages/Item/ItemList.vue @@ -0,0 +1 @@ + diff --git a/src/pages/Item/ItemMain.vue b/src/pages/Item/ItemMain.vue new file mode 100644 index 000000000..c1f2a31db --- /dev/null +++ b/src/pages/Item/ItemMain.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/pages/Order/Card/OrderCatalogFilter.vue b/src/pages/Order/Card/OrderCatalogFilter.vue index c325a9b05..760c48726 100644 --- a/src/pages/Order/Card/OrderCatalogFilter.vue +++ b/src/pages/Order/Card/OrderCatalogFilter.vue @@ -219,183 +219,181 @@ const getCategoryClass = (category, params) => { diff --git a/src/pages/Order/Card/OrderCatalogItem.vue b/src/pages/Order/Card/OrderCatalogItem.vue index bc448eb8c..ee73bcffb 100644 --- a/src/pages/Order/Card/OrderCatalogItem.vue +++ b/src/pages/Order/Card/OrderCatalogItem.vue @@ -1,10 +1,13 @@ @@ -70,7 +70,7 @@ function extractTags(items) { -
+
diff --git a/src/pages/Order/OrderVolume.vue b/src/pages/Order/OrderVolume.vue index 4f4c269f6..5bb106edc 100644 --- a/src/pages/Order/OrderVolume.vue +++ b/src/pages/Order/OrderVolume.vue @@ -35,7 +35,7 @@ const loadVolumes = async (rows) => { auto-load /> -
+
{ } + +es: + Search route: Buscar rutas + You can search by route reference: Puedes buscar por referencia de la ruta + diff --git a/src/pages/Route/Card/RouteSummary.vue b/src/pages/Route/Card/RouteSummary.vue new file mode 100644 index 000000000..a10ca088e --- /dev/null +++ b/src/pages/Route/Card/RouteSummary.vue @@ -0,0 +1,314 @@ + + + + +en: + route: + summary: + date: Date + agency: Agency + vehicle: Vehicle + driver: Driver + cost: Cost + started: Started time + finished: Finished time + kmStart: Km start + kmEnd: Km end + volume: Volume + packages: Packages + description: Description + tickets: Tickets + order: Order + street: Street + city: City + pc: PC + client: Client + warehouse: Warehouse + m3: m³ + packaging: Packaging + ticket: Ticket +es: + route: + summary: + date: Fecha + agency: Agencia + vehicle: Vehículo + driver: Conductor + cost: Costo + started: Hora inicio + finished: Hora fin + kmStart: Km inicio + kmEnd: Km fin + volume: Volumen + packages: Bultos + description: Descripción + tickets: Tickets + order: Orden + street: Dirección fiscal + city: Población + pc: CP + client: Cliente + warehouse: Almacén + packaging: Encajado + diff --git a/src/pages/Route/Card/RouteSummaryDialog.vue b/src/pages/Route/Card/RouteSummaryDialog.vue new file mode 100644 index 000000000..4a943a93a --- /dev/null +++ b/src/pages/Route/Card/RouteSummaryDialog.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/pages/Route/Cmr/CmrFilter.vue b/src/pages/Route/Cmr/CmrFilter.vue index a5bf5513b..553f19431 100644 --- a/src/pages/Route/Cmr/CmrFilter.vue +++ b/src/pages/Route/Cmr/CmrFilter.vue @@ -28,103 +28,101 @@ const countries = ref();
diff --git a/src/pages/Route/RouteList.vue b/src/pages/Route/RouteList.vue new file mode 100644 index 000000000..1d47fb8d7 --- /dev/null +++ b/src/pages/Route/RouteList.vue @@ -0,0 +1,530 @@ + + + + + + +en: + newRoute: New Route +es: + ID: ID + Worker: Trabajador + Agency: Agencia + Vehicle: Vehículo + Date: Fecha + Description: Descripción + Hour started: Hora inicio + Hour finished: Hora fin + newRoute: Nueva Ruta + Clone Selected Routes: Clonar rutas seleccionadas + Select the starting date: Seleccione la fecha de inicio + Stating date: Fecha de inicio + Cancel: Cancelar + Clone: Clonar + Mark as served: Marcar como servidas + Add ticket: Añadir tickets + Preview: Vista previa + diff --git a/src/pages/Shelving/Card/ShelvingFilter.vue b/src/pages/Shelving/Card/ShelvingFilter.vue index 423402f89..6767f6d97 100644 --- a/src/pages/Shelving/Card/ShelvingFilter.vue +++ b/src/pages/Shelving/Card/ShelvingFilter.vue @@ -41,7 +41,11 @@ function setParkings(data) { @on-fetch="setWorkers" auto-load /> - + diff --git a/src/pages/Shelving/ShelvingList.vue b/src/pages/Shelving/ShelvingList.vue index 71b3a6ccf..c884dc5f4 100644 --- a/src/pages/Shelving/ShelvingList.vue +++ b/src/pages/Shelving/ShelvingList.vue @@ -74,7 +74,7 @@ function exprBuilder(param, value) { -
+
- - diff --git a/src/pages/Supplier/Card/SupplierAccounts.vue b/src/pages/Supplier/Card/SupplierAccounts.vue index 2b7059ea3..302e03217 100644 --- a/src/pages/Supplier/Card/SupplierAccounts.vue +++ b/src/pages/Supplier/Card/SupplierAccounts.vue @@ -1 +1,193 @@ - + + + + + es: + Do you want to change the pay method to wire transfer?: ¿Quieres modificar la forma de pago a transferencia? + Add account: Añadir cuenta + Remove account: Remover cuenta + Name of the bank account holder if different from the provider: Nombre del titular de la cuenta bancaria en caso de ser diferente del proveedor + diff --git a/src/pages/Supplier/Card/SupplierAddresses.vue b/src/pages/Supplier/Card/SupplierAddresses.vue index dd82abe78..c6b08075f 100644 --- a/src/pages/Supplier/Card/SupplierAddresses.vue +++ b/src/pages/Supplier/Card/SupplierAddresses.vue @@ -1 +1,90 @@ - + + + diff --git a/src/pages/Supplier/Card/SupplierAddressesCreate.vue b/src/pages/Supplier/Card/SupplierAddressesCreate.vue new file mode 100644 index 000000000..21c0cd61a --- /dev/null +++ b/src/pages/Supplier/Card/SupplierAddressesCreate.vue @@ -0,0 +1,179 @@ + + + diff --git a/src/pages/Supplier/Card/SupplierAgencyTerm.vue b/src/pages/Supplier/Card/SupplierAgencyTerm.vue index 2a0c341cf..769ff4dad 100644 --- a/src/pages/Supplier/Card/SupplierAgencyTerm.vue +++ b/src/pages/Supplier/Card/SupplierAgencyTerm.vue @@ -1 +1,139 @@ - + + + + + es: + Remove row: Eliminar fila + diff --git a/src/pages/Supplier/Card/SupplierAgencyTermCreate.vue b/src/pages/Supplier/Card/SupplierAgencyTermCreate.vue new file mode 100644 index 000000000..17786c1ea --- /dev/null +++ b/src/pages/Supplier/Card/SupplierAgencyTermCreate.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/pages/Supplier/Card/SupplierBasicData.vue b/src/pages/Supplier/Card/SupplierBasicData.vue index 582da48f3..bc50deb9b 100644 --- a/src/pages/Supplier/Card/SupplierBasicData.vue +++ b/src/pages/Supplier/Card/SupplierBasicData.vue @@ -1 +1,108 @@ - + + + + +es: + Responsible for approving invoices: Responsable de aprobar las facturas + diff --git a/src/pages/Supplier/Card/SupplierBillingData.vue b/src/pages/Supplier/Card/SupplierBillingData.vue index 849737fa7..bf5ccb115 100644 --- a/src/pages/Supplier/Card/SupplierBillingData.vue +++ b/src/pages/Supplier/Card/SupplierBillingData.vue @@ -1 +1,73 @@ - + + diff --git a/src/pages/Supplier/Card/SupplierCard.vue b/src/pages/Supplier/Card/SupplierCard.vue index 5b44159df..ddac988e7 100644 --- a/src/pages/Supplier/Card/SupplierCard.vue +++ b/src/pages/Supplier/Card/SupplierCard.vue @@ -14,6 +14,7 @@ const { t } = useI18n(); @@ -29,7 +30,6 @@ const { t } = useI18n(); -
@@ -63,3 +63,8 @@ const { t } = useI18n(); } } + + + es: + Search suppliers: Buscar proveedores + diff --git a/src/pages/Supplier/Card/SupplierConsumption.vue b/src/pages/Supplier/Card/SupplierConsumption.vue index df1dead17..59dd2281c 100644 --- a/src/pages/Supplier/Card/SupplierConsumption.vue +++ b/src/pages/Supplier/Card/SupplierConsumption.vue @@ -1 +1,208 @@ - + + + + + + + +es: + Total entry: Total entrada + Open as PDF: Abrir como PDF + Send to email: Enviar por email + This supplier does not have a contact with an email address: Este proveedor no tiene un email de contacto + diff --git a/src/pages/Supplier/Card/SupplierConsumptionFilter.vue b/src/pages/Supplier/Card/SupplierConsumptionFilter.vue new file mode 100644 index 000000000..339a9d0d9 --- /dev/null +++ b/src/pages/Supplier/Card/SupplierConsumptionFilter.vue @@ -0,0 +1,181 @@ + + + + + +en: + params: + search: General search + itemId: Item id + buyerId: Buyer + typeId: Type + categoryId: Category + from: From + to: To +es: + params: + search: Búsqueda general + itemId: Id Artículo + buyerId: Comprador + typeId: Tipo + categoryId: Reino + from: Desde + to: Hasta + diff --git a/src/pages/Supplier/Card/SupplierContacts.vue b/src/pages/Supplier/Card/SupplierContacts.vue index ca58d4ab7..d69b74a4c 100644 --- a/src/pages/Supplier/Card/SupplierContacts.vue +++ b/src/pages/Supplier/Card/SupplierContacts.vue @@ -1 +1,118 @@ - + + + + + + + + es: + Add contact: Añadir contacto + Remove contact: Remover contacto + diff --git a/src/pages/Supplier/Card/SupplierDescriptor.vue b/src/pages/Supplier/Card/SupplierDescriptor.vue index 43857fd1e..83bad87d2 100644 --- a/src/pages/Supplier/Card/SupplierDescriptor.vue +++ b/src/pages/Supplier/Card/SupplierDescriptor.vue @@ -1,10 +1,14 @@ - + +es: + All entries with current supplier: Todas las entradas con proveedor actual + Go to client: Ir a cliente + Create invoiceIn: Crear factura recibida + Go to module index: Ir al índice del módulo + Inactive supplier: Proveedor inactivo + Unverified supplier: Proveedor no verificado diff --git a/src/pages/Supplier/Card/SupplierFiscalData.vue b/src/pages/Supplier/Card/SupplierFiscalData.vue index dd018ac60..b26582065 100644 --- a/src/pages/Supplier/Card/SupplierFiscalData.vue +++ b/src/pages/Supplier/Card/SupplierFiscalData.vue @@ -1 +1,189 @@ - + + + + +es: + When activating it, do not enter the country code in the ID field.: Al activarlo, no informar el código del país en el campo nif + diff --git a/src/pages/Supplier/Card/SupplierLog.vue b/src/pages/Supplier/Card/SupplierLog.vue index 2733e958d..86ee15fce 100644 --- a/src/pages/Supplier/Card/SupplierLog.vue +++ b/src/pages/Supplier/Card/SupplierLog.vue @@ -1 +1,6 @@ - + + diff --git a/src/pages/Supplier/Card/SupplierSummary.vue b/src/pages/Supplier/Card/SupplierSummary.vue index 29b0c18c4..d734e21a5 100644 --- a/src/pages/Supplier/Card/SupplierSummary.vue +++ b/src/pages/Supplier/Card/SupplierSummary.vue @@ -182,4 +182,3 @@ const isAdministrative = computed(() => { - diff --git a/src/pages/Supplier/SupplierCreate.vue b/src/pages/Supplier/SupplierCreate.vue index ebe0518f2..d80bd2df8 100644 --- a/src/pages/Supplier/SupplierCreate.vue +++ b/src/pages/Supplier/SupplierCreate.vue @@ -1,6 +1,8 @@ diff --git a/src/pages/Ticket/TicketList.vue b/src/pages/Ticket/TicketList.vue index 9186eb6ad..6f57ad0b9 100644 --- a/src/pages/Ticket/TicketList.vue +++ b/src/pages/Ticket/TicketList.vue @@ -74,7 +74,7 @@ function viewSummary(id) { -
+
- - es: Search ticket: Buscar ticket diff --git a/src/pages/Travel/Card/TravelSummary.vue b/src/pages/Travel/Card/TravelSummary.vue index 3bc5f0584..4f0e8860a 100644 --- a/src/pages/Travel/Card/TravelSummary.vue +++ b/src/pages/Travel/Card/TravelSummary.vue @@ -6,7 +6,6 @@ import { useI18n } from 'vue-i18n'; import { QCheckbox, QIcon } from 'quasar'; import CardSummary from 'components/ui/CardSummary.vue'; import VnLv from 'src/components/ui/VnLv.vue'; -import VnRow from 'components/ui/VnRow.vue'; import travelService from 'src/services/travel.service'; import { toDate, toCurrency } from 'src/filters'; @@ -218,75 +217,47 @@ const openEntryDescriptor = () => {}; - -
- -
- -
-
+ + + @@ -350,10 +359,9 @@ onMounted(async () => { :props="props" class="secondary-row" > - {{ entry.id }} - - + + {{ entry.id }} + {{ @@ -415,4 +423,5 @@ es: physicKg: KG físico shipped: F. envío landed: F. llegada + Open as PDF: Abrir como PDF
diff --git a/src/pages/Travel/ExtraCommunityFilter.vue b/src/pages/Travel/ExtraCommunityFilter.vue index 260b0fb42..cac8e093d 100644 --- a/src/pages/Travel/ExtraCommunityFilter.vue +++ b/src/pages/Travel/ExtraCommunityFilter.vue @@ -66,158 +66,149 @@ const decrement = (paramsObj, key) => {
- en: addEntry: Add entry diff --git a/src/pages/Wagon/Type/WagonTypeList.vue b/src/pages/Wagon/Type/WagonTypeList.vue index 8e4ace744..a7c713039 100644 --- a/src/pages/Wagon/Type/WagonTypeList.vue +++ b/src/pages/Wagon/Type/WagonTypeList.vue @@ -42,7 +42,7 @@ async function remove(row) { - - diff --git a/src/pages/Wagon/WagonList.vue b/src/pages/Wagon/WagonList.vue index 77d9da0bf..18417f433 100644 --- a/src/pages/Wagon/WagonList.vue +++ b/src/pages/Wagon/WagonList.vue @@ -48,7 +48,7 @@ async function remove(row) { - - diff --git a/src/pages/Worker/Card/WorkerDescriptor.vue b/src/pages/Worker/Card/WorkerDescriptor.vue index f089c0022..bec56bee7 100644 --- a/src/pages/Worker/Card/WorkerDescriptor.vue +++ b/src/pages/Worker/Card/WorkerDescriptor.vue @@ -101,7 +101,7 @@ const setData = (entity) => { diff --git a/src/pages/Worker/WorkerFilter.vue b/src/pages/Worker/WorkerFilter.vue index 680a17937..0853791ef 100644 --- a/src/pages/Worker/WorkerFilter.vue +++ b/src/pages/Worker/WorkerFilter.vue @@ -27,74 +27,72 @@ const departments = ref();
diff --git a/src/pages/Worker/WorkerList.vue b/src/pages/Worker/WorkerList.vue index e7e86d16e..0e9868a04 100644 --- a/src/pages/Worker/WorkerList.vue +++ b/src/pages/Worker/WorkerList.vue @@ -64,7 +64,7 @@ const redirectToCreateView = () => { -
+
{ - - es: Search worker: Buscar trabajador diff --git a/src/router/modules/Supplier.js b/src/router/modules/Supplier.js index 6ce1a7688..d341ddc25 100644 --- a/src/router/modules/Supplier.js +++ b/src/router/modules/Supplier.js @@ -134,6 +134,12 @@ export default { component: () => import('src/pages/Supplier/Card/SupplierAddresses.vue'), }, + { + path: 'address/create', + name: 'SupplierAddressesCreate', + component: () => + import('src/pages/Supplier/Card/SupplierAddressesCreate.vue'), + }, { path: 'consumption', name: 'SupplierConsumption', @@ -154,6 +160,12 @@ export default { component: () => import('src/pages/Supplier/Card/SupplierAgencyTerm.vue'), }, + { + path: 'agency-term/create', + name: 'SupplierAgencyTermCreate', + component: () => + import('src/pages/Supplier/Card/SupplierAgencyTermCreate.vue'), + }, ], }, ], diff --git a/src/router/modules/customer.js b/src/router/modules/customer.js index 3c8445f42..fa57682af 100644 --- a/src/router/modules/customer.js +++ b/src/router/modules/customer.js @@ -152,32 +152,105 @@ export default { }, { path: 'consignees', - name: 'CustomerConsignees', - meta: { - title: 'consignees', - icon: 'vn:delivery', - }, - component: () => - import('src/pages/Customer/Card/CustomerConsignees.vue'), + name: 'ConsigneesCard', + redirect: { name: 'CustomerConsignees' }, + children: [ + { + path: '', + name: 'CustomerConsignees', + meta: { + icon: 'vn:delivery', + title: 'consignees', + }, + component: () => + import('src/pages/Customer/Card/CustomerConsignees.vue'), + }, + { + path: 'create', + name: 'CustomerConsigneeCreate', + meta: { + title: 'consignee-create', + }, + component: () => + import( + 'src/pages/Customer/components/CustomerConsigneeCreate.vue' + ), + }, + { + path: ':consigneeId', + name: 'CustomerConsigneeEditCard', + redirect: { name: 'CustomerConsigneeEdit' }, + children: [ + { + path: 'edit', + name: 'CustomerConsigneeEdit', + meta: { + title: 'consignee-edit', + }, + component: () => + import( + 'src/pages/Customer/components/CustomerConsigneeEdit.vue' + ), + }, + ], + }, + ], }, { path: 'notes', - name: 'CustomerNotes', - meta: { - title: 'notes', - icon: 'vn:notes', - }, - component: () => import('src/pages/Customer/Card/CustomerNotes.vue'), + name: 'NotesCard', + redirect: { name: 'CustomerNotes' }, + children: [ + { + path: '', + name: 'CustomerNotes', + meta: { + title: 'notes', + icon: 'vn:notes', + }, + component: () => + import('src/pages/Customer/Card/CustomerNotes.vue'), + }, + { + path: 'create', + name: 'CustomerNoteCreate', + meta: { + title: 'note-create', + }, + component: () => + import( + 'src/pages/Customer/components/CustomerNoteCreate.vue' + ), + }, + ], }, { path: 'credits', - name: 'CustomerCredits', - meta: { - title: 'credits', - icon: 'vn:credit', - }, - component: () => - import('src/pages/Customer/Card/CustomerCredits.vue'), + name: 'CreditsCard', + redirect: { name: 'CustomerCredits' }, + children: [ + { + path: '', + name: 'CustomerCredits', + meta: { + title: 'credits', + icon: 'vn:credit', + }, + component: () => + import('src/pages/Customer/Card/CustomerCredits.vue'), + }, + { + path: 'create', + name: 'CustomerCreditCreate', + meta: { + title: 'credit-create', + }, + component: () => + import( + 'src/pages/Customer/components/CustomerCreditCreate.vue' + ), + }, + ], }, { path: 'greuges', diff --git a/src/router/modules/entry.js b/src/router/modules/entry.js index 6a1cd6173..b3ab05a08 100644 --- a/src/router/modules/entry.js +++ b/src/router/modules/entry.js @@ -10,8 +10,8 @@ export default { component: RouterView, redirect: { name: 'EntryMain' }, menus: { - main: ['EntryList'], - card: [], + main: ['EntryList', 'EntryLatestBuys'], + card: ['EntryBasicData', 'EntryBuys', 'EntryNotes', 'EntryLog'], }, children: [ { @@ -37,25 +37,74 @@ export default { }, component: () => import('src/pages/Entry/EntryCreate.vue'), }, + { + path: 'latest-buys', + name: 'EntryLatestBuys', + meta: { + title: 'latestBuys', + icon: 'contact_support', + }, + component: () => import('src/pages/Entry/EntryLatestBuys.vue'), + }, + ], + }, + { + name: 'EntryCard', + path: ':id', + component: () => import('src/pages/Entry/Card/EntryCard.vue'), + redirect: { name: 'EntrySummary' }, + children: [ + { + name: 'EntrySummary', + path: 'summary', + meta: { + title: 'summary', + icon: 'launch', + }, + component: () => import('src/pages/Entry/Card/EntrySummary.vue'), + }, + { + path: 'basic-data', + name: 'EntryBasicData', + meta: { + title: 'basicData', + icon: 'vn:settings', + }, + component: () => import('src/pages/Entry/Card/EntryBasicData.vue'), + }, + { + path: 'buys', + name: 'EntryBuys', + meta: { + title: 'buys', + icon: 'vn:lines', + }, + component: () => import('src/pages/Entry/Card/EntryBuys.vue'), + }, + { + path: 'buys/import', + name: 'EntryBuysImport', + component: () => import('src/pages/Entry/Card/EntryBuysImport.vue'), + }, + { + path: 'notes', + name: 'EntryNotes', + meta: { + title: 'notes', + icon: 'vn:notes', + }, + component: () => import('src/pages/Entry/Card/EntryNotes.vue'), + }, + { + path: 'log', + name: 'EntryLog', + meta: { + title: 'log', + icon: 'vn:History', + }, + component: () => import('src/pages/Entry/Card/EntryLog.vue'), + }, ], }, - // { - // name: 'EntryCard', - // path: ':id', - // component: () => import('src/pages/Entry/Card/EntryCard.vue'), - // redirect: { name: 'EntrySummary' }, - // children: [ - // { - // name: 'EntrySummary', - // path: 'summary', - // meta: { - // title: 'summary', - // icon: 'launch', - // }, - // component: () => - // import('src/pages/Entry/Card/EntrySummary.vue'), - // }, - // ], - // }, ], }; diff --git a/src/router/modules/index.js b/src/router/modules/index.js index cc5034959..84a26798d 100644 --- a/src/router/modules/index.js +++ b/src/router/modules/index.js @@ -1,3 +1,4 @@ +import Item from './item'; import Customer from './customer'; import Ticket from './ticket'; import Claim from './claim'; @@ -14,6 +15,7 @@ import Department from './department'; import Entry from './entry'; export default [ + Item, Customer, Ticket, Claim, diff --git a/src/router/modules/item.js b/src/router/modules/item.js new file mode 100644 index 000000000..d3462e15c --- /dev/null +++ b/src/router/modules/item.js @@ -0,0 +1,70 @@ +import { RouterView } from 'vue-router'; + +export default { + path: '/item', + name: 'Item', + meta: { + title: 'items', + icon: 'vn:item', + }, + component: RouterView, + redirect: { name: 'ItemMain' }, + menus: { + main: [], + card: [], + }, + children: [ + { + path: '', + name: 'ItemMain', + component: () => import('src/pages/Item/ItemMain.vue'), + redirect: { name: 'Itemlist' }, + children: [ + { + path: 'list', + name: 'ItemList', + meta: { + title: 'list', + icon: 'view_list', + }, + component: () => import('src/pages/Item/ItemList.vue'), + }, + ], + }, + { + name: 'ItemCard', + path: ':id', + component: () => import('src/pages/Item/Card/ItemCard.vue'), + redirect: { name: 'ItemSummary' }, + children: [ + { + name: 'ItemSummary', + path: 'summary', + meta: { + title: 'summary', + icon: 'launch', + }, + component: () => import('src/pages/Item/Card/ItemSummary.vue'), + }, + { + path: 'diary', + name: 'ItemDiary', + meta: { + title: 'diary', + icon: 'vn:transaction', + }, + component: () => import('src/pages/Item/Card/ItemDiary.vue'), + }, + { + path: 'tags', + name: 'ItemTags', + meta: { + title: 'Tags', + icon: 'vn:tags', + }, + component: () => import('src/pages/Item/Card/ItemTags.vue'), + }, + ], + }, + ], +}; diff --git a/src/router/modules/route.js b/src/router/modules/route.js index acda898de..614345913 100644 --- a/src/router/modules/route.js +++ b/src/router/modules/route.js @@ -10,15 +10,15 @@ export default { component: RouterView, redirect: { name: 'RouteMain' }, menus: { - main: ['CmrList'], - card: [], + main: ['RouteList', 'CmrList'], + card: ['RouteBasicData'], }, children: [ { path: '/route', name: 'RouteMain', component: () => import('src/pages/Route/RouteMain.vue'), - redirect: { name: 'CmrList' }, + redirect: { name: 'RouteList' }, children: [ { path: 'cmr', @@ -29,6 +29,49 @@ export default { }, component: () => import('src/pages/Route/Cmr/CmrList.vue'), }, + { + path: 'list', + name: 'RouteList', + meta: { + title: 'RouteList', + icon: 'view_list', + }, + component: () => import('src/pages/Route/RouteList.vue'), + }, + { + path: 'create', + name: 'RouteCreate', + meta: { + title: 'create', + }, + component: () => import('src/pages/Route/Card/RouteForm.vue'), + }, + ], + }, + { + name: 'RouteCard', + path: ':id', + component: () => import('src/pages/Route/Card/RouteCard.vue'), + redirect: { name: 'RouteSummary' }, + children: [ + { + name: 'RouteBasicData', + path: 'basic-data', + meta: { + title: 'basicData', + icon: 'vn:settings', + }, + component: () => import('pages/Route/Card/RouteForm.vue'), + }, + { + name: 'RouteSummary', + path: 'summary', + meta: { + title: 'summary', + icon: 'open_in_new', + }, + component: () => import('pages/Route/Card/RouteSummary.vue'), + }, ], }, ], diff --git a/src/router/routes.js b/src/router/routes.js index 6a2fa6a97..d1027955f 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -1,3 +1,4 @@ +import item from './modules/item'; import customer from './modules/customer'; import ticket from './modules/ticket'; import claim from './modules/claim'; @@ -51,6 +52,7 @@ const routes = [ component: () => import('../pages/Dashboard/DashboardMain.vue'), }, // Module routes + item, customer, ticket, claim, diff --git a/src/stores/useNavigationStore.js b/src/stores/useNavigationStore.js index 2eda6f686..568063d1d 100644 --- a/src/stores/useNavigationStore.js +++ b/src/stores/useNavigationStore.js @@ -7,19 +7,19 @@ import routes from 'src/router/modules'; export const useNavigationStore = defineStore('navigationStore', () => { const modules = [ - 'customer', - 'claim', - 'ticket', - 'invoiceOut', - 'invoiceIn', - 'worker', 'shelving', 'order', - 'wagon', - 'route', - 'supplier', - 'travel', + 'customer', 'entry', + 'travel', + 'invoiceOut', + 'invoiceIn', + 'supplier', + 'claim', + 'route', + 'ticket', + 'worker', + 'wagon', ]; const pinnedModules = ref([]); const role = useRole(); diff --git a/test/cypress/integration/VnLocation.spec.js b/test/cypress/integration/VnLocation.spec.js new file mode 100644 index 000000000..02b924e4d --- /dev/null +++ b/test/cypress/integration/VnLocation.spec.js @@ -0,0 +1,48 @@ +const locationOptions ='[role="listbox"] > div.q-virtual-scroll__content > .q-item' +describe('VnLocation', () => { + describe('Create',()=>{ + const inputLocation = ':nth-child(3) > :nth-child(1) > .q-field > .q-field__inner > .q-field__control'; + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('/#/worker/create'); + cy.waitForElement('.q-card'); + }); + + it('Show all options', function() { + cy.get(inputLocation).click(); + cy.get(locationOptions).should('have.length',5); + }); + + it('input filter location as "al"', function() { + cy.get(inputLocation).click(); + cy.get(inputLocation).clear(); + cy.get(inputLocation).type('al'); + cy.get(locationOptions).should('have.length',3); + }); + it('input filter location as "ecuador"', function() { + cy.get(inputLocation).click(); + cy.get(inputLocation).clear(); + cy.get(inputLocation).type('ecuador'); + cy.get(locationOptions).should('have.length',1); + cy.get(`${locationOptions}:nth-child(1)`).click(); + cy.get(':nth-child(3) > :nth-child(1) > .q-field > .q-field__inner > .q-field__control > :nth-child(2) > .q-icon').click(); + + }); + }); + describe('Fiscal-data',()=>{ + const inputLocation = ':nth-child(6) > :nth-child(1) > .q-field > .q-field__inner > .q-field__control'; + + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('/#/supplier/567/fiscal-data', {timeout: 2000}); + cy.waitForElement('.q-card'); + }); + + it('Show all options', function() { + cy.get(inputLocation).click(); + cy.get(locationOptions).should('have.length', 1); + }); + }); +}) diff --git a/test/cypress/integration/claim/claimAction.spec.js b/test/cypress/integration/claim/claimAction.spec.js index f181722fa..685e120ce 100644 --- a/test/cypress/integration/claim/claimAction.spec.js +++ b/test/cypress/integration/claim/claimAction.spec.js @@ -31,7 +31,6 @@ describe('ClaimAction', () => { it('should regularize', () => { cy.get('[title="Regularize"]').click(); - cy.clickConfirm(); }); it('should remove the line', () => { diff --git a/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js b/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js index 0013df343..7617a69d1 100644 --- a/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js +++ b/test/cypress/integration/invoiceIn/invoiceInBasicData.spec.js @@ -16,11 +16,12 @@ describe('InvoiceInBasicData', () => { cy.get(selects).eq(0).type('Bros'); cy.get(selects).eq(0).type('{enter}'); + cy.get('[title="Reset"]').click(); cy.get(appendBtns).eq(0).click(); cy.get('input').eq(2).type(4739); cy.saveCard(); - cy.get(`${selects} input`).eq(0).invoke('val').should('eq', 'Bros nick'); + cy.get(`${selects} input`).eq(0).invoke('val').should('eq', 'Plants nick'); cy.get('input').eq(2).invoke('val').should('eq', '4739'); });