feat: refs #7119 add fuel and supplier-related fields
gitea/salix-front/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Jorge Penadés 2024-12-27 15:36:32 +01:00
parent 062c306cf4
commit be946a4f8b
8 changed files with 197 additions and 24 deletions

View File

@ -353,6 +353,7 @@ globals:
raid: 'Raid {daysInForward} days'
isVies: Vies
model: Model
fuel: Fuel
errors:
statusUnauthorized: Access denied
statusInternalServerError: An internal server error has ocurred

View File

@ -355,6 +355,7 @@ globals:
raid: 'Redada {daysInForward} días'
isVies: Vies
model: Modelo
fuel: Combustible
errors:
statusUnauthorized: Acceso denegado
statusInternalServerError: Ha ocurrido un error interno del servidor

View File

@ -5,10 +5,13 @@ import FetchData from 'src/components/FetchData.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
import VnRow from 'components/ui/VnRow.vue';
import VnInput from 'src/components/common/VnInput.vue';
import VnInputNumber from 'src/components/common/VnInputNumber.vue';
const warehouses = ref([]);
const companies = ref([]);
const countries = ref([]);
const fuelTypes = ref([]);
const bankPolicies = ref([]);
</script>
<template>
<FetchData
@ -29,41 +32,96 @@ const countries = ref([]);
@on-fetch="(data) => (countries = data)"
auto-load
/>
<FormModel
model="Vehicle"
:url-update="`Vehicles/${$route.params.id}`"
v-if="isLoaded"
>
<FetchData
url="FuelTypes"
:filter="{ fields: ['id', 'name'] }"
@on-fetch="(data) => (fuelTypes = data)"
auto-load
/>
<FormModel model="Vehicle" :url-update="`Vehicles/${$route.params.id}`">
<template #form="{ data }">
<VnRow>
<VnInput v-model="data.numberPlate" :label="$t('vehicle.numberPlate')" />
<VnInput v-model="data.description" :label="$t('globals.description')" />
</VnRow>
<VnRow>
<VnInput v-model="data.tradeMark" :label="$t('vehicle.tradeMark')" />
<VnInput
v-model="data.tradeMark"
:label="$t('vehicle.tradeMark')"
:required="true"
/>
<VnSelect
v-model="data.fuelTypeFk"
:label="$t('globals.fuel')"
:options="fuelTypes"
option-label="name"
option-value="id"
/>
</VnRow>
<VnRow>
<VnInput
v-model="data.model"
:label="$t('globals.model')"
:required="true"
/>
<VnInput v-model="data.ppeFk" :label="$t('vehicle.ppe')" />
</VnRow>
<VnRow>
<VnInput v-model="data.chassis" :label="$t('vehicle.chassis')" />
<VnInput v-model="data.vin" :label="$t('vehicle.vin')" />
</VnRow>
<VnRow>
<VnSelect
v-model="data.companyFk"
:label="$t('globals.company')"
:options="companies"
option-label="code"
option-value="id"
/>
</VnRow>
<VnRow>
<VnInput v-model="data.chassis" :label="$t('vehicle.chassis')" />
<VnInput v-model="data.leasing" :label="$t('vehicle.leasing')" />
</VnRow>
<VnRow>
<VnSelect
v-model="data.warehouseFk"
:label="$t('globals.warehouse')"
:options="warehouses"
option-label="name"
option-value="id"
/>
</VnRow>
<VnRow>
<VnSelect
url="Suppliers"
:filter="{ fields: ['id', 'name'] }"
v-model="data.supplierFk"
:label="$t('globals.supplier')"
/>
<VnSelect
v-model="data.countryFk"
:label="$t('globals.country')"
url="Suppliers"
:filter="{ fields: ['id', 'name'] }"
v-model="data.supplierCoolerFk"
:label="$t('vehicle.supplierCooler')"
/>
</VnRow>
<VnRow>
<VnSelect
url="BankPolicies"
:filter="{ fields: ['id', 'ref'] }"
v-model="data.bankPolicyFk"
:label="$t('vehicle.leasing')"
:options="bankPolicies"
option-label="ref"
option-value="id"
/>
<VnInput v-model="data.leasing" :label="$t('vehicle.nLeasing')" />
</VnRow>
<VnRow>
<VnSelect
v-model="data.countryCodeFk"
:label="$t('vehicle.countryCode')"
:options="countries"
option-label="code"
option-value="code"
/>
<VnInputNumber v-model="data.import" :label="$t('globals.amount')" />
</VnRow>
<VnRow>
<span>
@ -72,7 +130,14 @@ const countries = ref([]);
:label="$t('vehicle.isKmTruckRate')"
:false-value="0"
:true-value="1"
padding="0"
/>
</span>
<span>
<QCheckbox
v-model="data.isActive"
:label="$t('vehicle.isActive')"
:false-value="0"
:true-value="1"
/>
</span>
</VnRow>

View File

@ -2,11 +2,13 @@
import VnCard from 'components/common/VnCard.vue';
import VehicleSearchbar from '../VehicleSearchbar.vue';
import VehicleDescriptor from './VehicleDescriptor.vue';
import VehicleFilter from '../VehicleFilter.js';
</script>
<template>
<VnCard
data-key="Vehicle"
base-url="Vehicles"
:filter="VehicleFilter"
:descriptor="VehicleDescriptor"
search-data-key="VehicleList"
>

View File

@ -4,6 +4,8 @@ import { useRoute } from 'vue-router';
import CardSummary from 'components/ui/CardSummary.vue';
import VnLv from 'src/components/ui/VnLv.vue';
import VnTitle from 'src/components/common/VnTitle.vue';
import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue';
import VehicleFilter from '../VehicleFilter.js';
const props = defineProps({ id: { type: [Number, String], default: 0 } });
@ -12,15 +14,17 @@ const entityId = computed(() => props.id || +route.params.id);
const links = {
'basic-data': `#/vehicle/${entityId.value}/basic-data`,
notes: `#/vehicle/${entityId.value}/notes`,
dms: `#/vehicle/${entityId.value}/dms`,
'invoice-in': `#/vehicle/${entityId.value}/invoice-in`,
};
</script>
<template>
<CardSummary data-key="Vehicle" :url="`Vehicles/filter?id=${entityId}`">
<CardSummary data-key="Vehicle" :url="`Vehicles/${entityId}`" :filter="VehicleFilter">
<template #header="{ entity }">
<div>{{ entity.id }} - {{ entity.numberPlate }}</div>
</template>
<template #body="{ entity }">
<QCard class="vn-two">
<QCard class="vn-one">
<QCardSection class="q-pa-none">
<VnTitle
:url="links['basic-data']"
@ -28,12 +32,27 @@ const links = {
/>
</QCardSection>
<VnLv :label="$t('globals.description')" :value="entity.description" />
<VnLv :label="$t('globals.company')" :value="entity.company?.code" />
<VnLv :label="$t('vehicle.tradeMark')" :value="entity.tradeMark" />
<VnLv :label="$t('vehicle.numberPlate')" :value="entity.numberPlate" />
<VnLv :label="$t('globals.warehouse')" :value="entity.warehouse?.name" />
<VnLv :label="$t('globals.model')" :value="entity.model" />
<VnLv :label="$t('globals.supplier')">
<template #value>
<span class="link">
{{ entity.supplier?.name }}
<SupplierDescriptorProxy :id="entity.supplierFk" />
</span>
</template>
</VnLv>
<VnLv :label="$t('vehicle.supplierCooler')">
<template #value>
<span class="link">
{{ entity.supplierCooler?.name }}
<SupplierDescriptorProxy :id="entity.supplierCoolerFk" />
</span>
</template>
</VnLv>
<VnLv :label="$t('vehicle.vin')" :value="entity.vin" />
</QCard>
<QCard class="vn-two">
<QCard class="vn-one">
<QCardSection class="q-pa-none">
<VnTitle
:url="links['basic-data']"
@ -41,13 +60,27 @@ const links = {
/>
</QCardSection>
<VnLv :label="$t('vehicle.chassis')" :value="entity.chassis" />
<VnLv :label="$t('vehicle.leasing')" :value="entity.leasing" />
<VnLv :label="$t('globals.fuel')" :value="entity.fuelType?.name" />
<VnLv :label="$t('vehicle.ppe')" :value="entity.ppeFk" />
<VnLv :label="$t('vehicle.nLeasing')" :value="entity.leasing" />
<VnLv :label="$t('vehicle.leasing')" :value="entity.bankPolicy?.ref" />
<VnLv :label="$t('globals.amount')" :value="entity.import" />
</QCard>
<QCard class="vn-one">
<QCardSection class="q-pa-none">
<VnTitle
:url="links['basic-data']"
:text="$t('globals.pageTitles.basicData')"
/>
</QCardSection>
<VnLv :label="$t('globals.warehouse')" :value="entity.warehouse?.name" />
<VnLv :label="$t('globals.company')" :value="entity.company?.code" />
<VnLv :label="$t('vehicle.countryCode')" :value="entity.countryCodeFk" />
<VnLv
:label="$t('vehicle.isKmTruckRate')"
:value="!!entity.isKmTruckRate"
/>
<VnLv :label="$t('globals.state')" :value="entity.event?.state?.state" />
<VnLv :label="$t('vehicle.isActive')" :value="!!entity.isActive" />
</QCard>
</template>
</CardSummary>

View File

@ -0,0 +1,61 @@
export default {
fields: [
'id',
'description',
'isActive',
'isKmTruckRate',
'warehouseFk',
'companyFk',
'numberPlate',
'chassis',
'supplierFk',
'supplierCoolerFk',
'tradeMark',
'fuelTypeFk',
'import',
'vin',
'model',
'ppeFk',
'countryCodeFk',
'leasing',
'bankPolicyFk',
],
include: [
{
relation: 'warehouse',
scope: {
fields: ['id', 'name'],
},
},
{
relation: 'company',
scope: {
fields: ['id', 'code'],
},
},
{
relation: 'supplier',
scope: {
fields: ['id', 'name'],
},
},
{
relation: 'supplierCooler',
scope: {
fields: ['id', 'name'],
},
},
{
relation: 'fuelType',
scope: {
fields: ['id', 'name'],
},
},
{
relation: 'bankPolicy',
scope: {
fields: ['id', 'ref'],
},
},
],
};

View File

@ -6,6 +6,11 @@ vehicle:
isKmTruckRate: Trailer
countryCode: Country Code
delete: Delete Vehicle
supplierCooler: Supplier Cooler
vin: VIN
ppe: Ppe
isActive: Active
nLeasing: Nº Leasing
searchbar:
label: Search Vehicle
info: Search by id or number plate

View File

@ -2,10 +2,15 @@ vehicle:
tradeMark: Marca
numberPlate: Matrícula
chassis: Número de bastidor
leasing: Número de leasing
leasing: leasing
isKmTruckRate: Trailer
countryCode: Código de país
delete: Eliminar vehículo
supplierCooler: Proveedor Frío
vin: VIN
ppe: nº Inmovilizado
isActive: Activo
nLeasing: Nº Leasing
searchbar:
label: Buscar Vehículo
info: Buscar por id o matrícula