5066-vehicleSorted #1467
|
@ -0,0 +1,3 @@
|
|||
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalId`)
|
||||
VALUES
|
||||
('Vehicle','getVehiclesSorted','WRITE','ALLOW','employee');
|
|
@ -0,0 +1,28 @@
|
|||
module.exports = Self => {
|
||||
Self.remoteMethod('getVehiclesSorted', {
|
||||
|
||||
description: 'Sort the vehicles by a warehouse',
|
||||
jgallego
commented
es mes correcte 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 => {
|
||||
jgallego
commented
@alexm açò es pot fer sense sql? @alexm açò es pot fer sense sql?
alexm
commented
Loopback no pareix que dixe fer, he provat estes dos maneres i no funcionen
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;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = Self => {
|
||||
require('../methods/vehicle/getVehiclesSorted')(Self);
|
||||
};
|
|
@ -24,10 +24,13 @@
|
|||
<vn-autocomplete
|
||||
vn-one
|
||||
ng-model="$ctrl.route.vehicleFk"
|
||||
url="Vehicles"
|
||||
data="$ctrl.vehicles"
|
||||
show-field="numberPlate"
|
||||
jgallego
commented
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>
|
||||
|
|
|
@ -7,6 +7,19 @@ class Controller extends Section {
|
|||
this.card.reload()
|
||||
);
|
||||
}
|
||||
constructor($element, $) {
|
||||
super($element, $);
|
||||
this.$http.get(`UserConfigs/getUserConfig`)
|
||||
juan
commented
En lugar de hacer la petición, utilizar el servicio 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)
|
||||
juan
commented
Para que se compruebe si Para que se compruebe si `res` y `res.data` está definido?
carlossa
commented
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
juan
commented
En que casos En que casos `res` no esta definido?
carlossa
commented
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
carlossa
commented
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
juan
commented
El El `if (res.data)` no es necesario y no funcionará correctamente si no hay resultados.
|
||||
this.vehicles = res.data;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ngModule.vnComponent('vnRouteBasicData', {
|
||||
|
|
El método es GET y está en el modelo vehicle, convendría no redundarlo en el nombre, ej. llamarlo
sorted
resuelto