5066-vehicleSorted #1467

Merged
carlossa merged 23 commits from 5066-vehicleSorted into dev 2023-07-18 15:21:57 +00:00
5 changed files with 51 additions and 1 deletions
Showing only changes of commit b45b0ff826 - Show all commits

View File

@ -0,0 +1,3 @@
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalId`)
VALUES
('Vehicle','getVehiclesSorted','WRITE','ALLOW','employee');

View File

@ -0,0 +1,28 @@
module.exports = Self => {
Self.remoteMethod('getVehiclesSorted', {
Outdated
Review

El método es GET y está en el modelo vehicle, convendría no redundarlo en el nombre, ej. llamarlo sorted

El método es GET y está en el modelo vehicle, convendría no redundarlo en el nombre, ej. llamarlo `sorted`

resuelto

resuelto
description: 'Sort the vehicles by a warehouse',

es mes correcte
description: 'Sort the vehicles by warehouse',

es mes correcte description: 'Sort the vehicles by warehouse',
accessType: 'WRITE',
accepts: [{
arg: 'warehouseFk',
type: 'number'
}],
returns: {
type: ['object'],
root: true
},
http: {
path: `/getVehiclesSorted`,
verb: `POST`
}
});
Self.getVehiclesSorted = async warehouseFk => {

@alexm açò es pot fer sense sql?

@alexm açò es pot fer sense sql?
Outdated
Review

Loopback no pareix que dixe fer, he provat estes dos maneres i no funcionen

const vehicles = await models.Vehicle.find({
            include: [
                {
                    relation: 'warehouse',
                }
            ],
            order: [
                {warehouseFk: 1},
                'numberPlate ASC'
            ]
        });
const vehicles = await models.Vehicle.find({
            include: [
                {
                    relation: 'warehouse',
                }
            ],
            order: [
                'warehouseFk = 1 DESC',
                'numberPlate ASC'
            ]
        });

Tampoc he vist res en la documentacio

Loopback no pareix que dixe fer, he provat estes dos maneres i no funcionen ``` const vehicles = await models.Vehicle.find({ include: [ { relation: 'warehouse', } ], order: [ {warehouseFk: 1}, 'numberPlate ASC' ] }); ``` ``` const vehicles = await models.Vehicle.find({ include: [ { relation: 'warehouse', } ], order: [ 'warehouseFk = 1 DESC', 'numberPlate ASC' ] }); ``` Tampoc he vist res en la documentacio
const vehicles = await Self.rawSql(`
SELECT v.id, v.numberPlate, w.name
FROM vehicle v
JOIN warehouse w ON w.id = v.warehouseFk
ORDER BY v.warehouseFk = ? DESC, v.numberPlate ASC`, [warehouseFk]);
return vehicles;
};
};

View File

@ -0,0 +1,3 @@
module.exports = Self => {
require('../methods/vehicle/getVehiclesSorted')(Self);
};

View File

@ -24,10 +24,13 @@
<vn-autocomplete
vn-one
ng-model="$ctrl.route.vehicleFk"
url="Vehicles"
data="$ctrl.vehicles"
show-field="numberPlate"

desde back no has de pasar el concat, al autocomplete busca exemples en el que el autocomplete es genera ell el concat

desde back no has de pasar el concat, al autocomplete busca exemples en el que el autocomplete es genera ell el concat
value-field="id"
label="Vehicle">
<tpl-item>
{{numberPlate}} - {{name}}
</tpl-item>
</vn-autocomplete>
</vn-horizontal>
<vn-horizontal>

View File

@ -7,6 +7,19 @@ class Controller extends Section {
this.card.reload()
);
}
constructor($element, $) {
super($element, $);
this.$http.get(`UserConfigs/getUserConfig`)
Outdated
Review

En lugar de hacer la petición, utilizar el servicio vnConfig.

En lugar de hacer la petición, utilizar el servicio `vnConfig`.
.then(res => {
if (res && res.data) {
this.$http.post(`Vehicles/getVehiclesSorted`, {warehouseFk: res.data.warehouseFk})
.then(res => {
if (res && res.data)
Outdated
Review

Para que se compruebe si res y res.data está definido?

Para que se compruebe si `res` y `res.data` está definido?

Se utiliza para comprobar que res.data lleva la información, ya que si no da error al buscarlo

Se utiliza para comprobar que res.data lleva la información, ya que si no da error al buscarlo
Outdated
Review

En que casos res no esta definido?

En que casos `res` no esta definido?

Lo estaba haciendo como una comprobación de que también tenia res, pero he pensado que directamente comprobando res.data ya serviria ya que es el que lleva la información

Lo estaba haciendo como una comprobación de que también tenia res, pero he pensado que directamente comprobando res.data ya serviria ya que es el que lleva la información

Porque si no habia res, res.data me daria error porque intenta hacer .data de undefined, pero como res esta definido, no hace falta la comprobación de si existe res

Porque si no habia res, res.data me daria error porque intenta hacer .data de undefined, pero como res esta definido, no hace falta la comprobación de si existe res
Outdated
Review

El if (res.data) no es necesario y no funcionará correctamente si no hay resultados.

El `if (res.data)` no es necesario y no funcionará correctamente si no hay resultados.
this.vehicles = res.data;
});
}
});
}
}
ngModule.vnComponent('vnRouteBasicData', {