Merge pull request '3456-feat(entry_basic-data): add new filter in travels' (#852) from 3456-entry_basic-data into dev
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
Reviewed-on: #852 Reviewed-by: Joan Sanchez <joan@verdnatura.es>
This commit is contained in:
commit
e46643711c
|
@ -35,6 +35,13 @@
|
||||||
{{::agencyModeName}} - {{::warehouseInName}} ({{::shipped | date: 'dd/MM/yyyy'}}) →
|
{{::agencyModeName}} - {{::warehouseInName}} ({{::shipped | date: 'dd/MM/yyyy'}}) →
|
||||||
{{::warehouseOutName}} ({{::landed | date: 'dd/MM/yyyy'}})
|
{{::warehouseOutName}} ({{::landed | date: 'dd/MM/yyyy'}})
|
||||||
</tpl-item>
|
</tpl-item>
|
||||||
|
<append>
|
||||||
|
<vn-icon-button
|
||||||
|
icon="filter_alt"
|
||||||
|
vn-click-stop="$ctrl.showFilterDialog($ctrl.entry.travelFk)"
|
||||||
|
vn-tooltip="Filter...">
|
||||||
|
</vn-icon-button>
|
||||||
|
</append>
|
||||||
</vn-autocomplete>
|
</vn-autocomplete>
|
||||||
</vn-horizontal>
|
</vn-horizontal>
|
||||||
<vn-horizontal>
|
<vn-horizontal>
|
||||||
|
@ -122,3 +129,93 @@
|
||||||
</vn-button>
|
</vn-button>
|
||||||
</vn-button-bar>
|
</vn-button-bar>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<!-- Filter travel dialog -->
|
||||||
|
<vn-dialog
|
||||||
|
vn-id="filterDialog"
|
||||||
|
message="Filter travel">
|
||||||
|
<tpl-body class="travelFilter">
|
||||||
|
<vn-horizontal>
|
||||||
|
<vn-autocomplete
|
||||||
|
label="Agency"
|
||||||
|
ng-model="$ctrl.travelFilterParams.agencyFk"
|
||||||
|
url="AgencyModes"
|
||||||
|
show-field="name"
|
||||||
|
value-field="id">
|
||||||
|
</vn-autocomplete>
|
||||||
|
<vn-autocomplete
|
||||||
|
label="Warehouse Out"
|
||||||
|
ng-model="$ctrl.travelFilterParams.warehouseOutFk"
|
||||||
|
url="Warehouses"
|
||||||
|
show-field="name"
|
||||||
|
value-field="id">
|
||||||
|
</vn-autocomplete>
|
||||||
|
<vn-autocomplete
|
||||||
|
label="Warehouse In"
|
||||||
|
ng-model="$ctrl.travelFilterParams.warehouseInFk"
|
||||||
|
url="Warehouses"
|
||||||
|
show-field="name"
|
||||||
|
value-field="id">
|
||||||
|
</vn-autocomplete>
|
||||||
|
<vn-date-picker
|
||||||
|
label="Shipped"
|
||||||
|
ng-model="$ctrl.travelFilterParams.shipped">
|
||||||
|
</vn-date-picker>
|
||||||
|
<vn-date-picker
|
||||||
|
label="Landed"
|
||||||
|
ng-model="$ctrl.travelFilterParams.landed">
|
||||||
|
</vn-date-picker>
|
||||||
|
</vn-horizontal>
|
||||||
|
<vn-horizontal class="vn-mb-md">
|
||||||
|
<vn-button vn-none
|
||||||
|
label="Search"
|
||||||
|
ng-click="$ctrl.filter()">
|
||||||
|
</vn-button>
|
||||||
|
</vn-horizontal>
|
||||||
|
<vn-crud-model
|
||||||
|
vn-id="travelsModel"
|
||||||
|
url="Travels"
|
||||||
|
filter="$ctrl.travelFilter"
|
||||||
|
data="travels"
|
||||||
|
limit="10">
|
||||||
|
</vn-crud-model>
|
||||||
|
<vn-data-viewer
|
||||||
|
model="travelsModel"
|
||||||
|
class="vn-w-lg">
|
||||||
|
<vn-table class="scrollable">
|
||||||
|
<vn-thead>
|
||||||
|
<vn-tr>
|
||||||
|
<vn-th shrink>ID</vn-th>
|
||||||
|
<vn-th expand>Agency</vn-th>
|
||||||
|
<vn-th expand>Warehouse Out</vn-th>
|
||||||
|
<vn-th expand>Warehouse In</vn-th>
|
||||||
|
<vn-th expand>Shipped</vn-th>
|
||||||
|
<vn-th expand>Landed</vn-th>
|
||||||
|
</vn-tr>
|
||||||
|
</vn-thead>
|
||||||
|
<vn-tbody>
|
||||||
|
<a ng-repeat="travel in travels"
|
||||||
|
class="clickable vn-tr search-result"
|
||||||
|
ng-click="$ctrl.selectTravel(travel.id)">
|
||||||
|
<vn-td shrink>
|
||||||
|
<span
|
||||||
|
vn-click-stop="travelDescriptor.show($event, travel.id)"
|
||||||
|
class="link">
|
||||||
|
{{::travel.id}}
|
||||||
|
</span>
|
||||||
|
</vn-td>
|
||||||
|
<vn-td expand>{{::travel.agency.name}}</vn-td>
|
||||||
|
<vn-td expand>{{::travel.warehouseOut.name}}</vn-td>
|
||||||
|
<vn-td expand>{{::travel.warehouseIn.name}}</vn-td>
|
||||||
|
<vn-td expand>{{::travel.shipped | date: 'dd/MM/yyyy'}}</vn-td>
|
||||||
|
<vn-td expand>{{::travel.landed | date: 'dd/MM/yyyy'}}</vn-td>
|
||||||
|
</a>
|
||||||
|
</vn-tbody>
|
||||||
|
</vn-table>
|
||||||
|
</vn-data-viewer>
|
||||||
|
<vn-travel-descriptor-popover
|
||||||
|
vn-id="travel-descriptor"
|
||||||
|
warehouse-fk="$ctrl.vnConfig.warehouseFk">
|
||||||
|
</vn-travel-descriptor-popover>
|
||||||
|
</tpl-body>
|
||||||
|
</vn-dialog>
|
|
@ -1,10 +1,68 @@
|
||||||
import ngModule from '../module';
|
import ngModule from '../module';
|
||||||
import Section from 'salix/components/section';
|
import Section from 'salix/components/section';
|
||||||
|
import './style.scss';
|
||||||
|
|
||||||
|
class Controller extends Section {
|
||||||
|
showFilterDialog(travel) {
|
||||||
|
this.activeTravel = travel;
|
||||||
|
this.travelFilterParams = {};
|
||||||
|
this.travelFilter = {
|
||||||
|
include: [
|
||||||
|
{
|
||||||
|
relation: 'agency',
|
||||||
|
scope: {
|
||||||
|
fields: ['name']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
relation: 'warehouseIn',
|
||||||
|
scope: {
|
||||||
|
fields: ['name']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
relation: 'warehouseOut',
|
||||||
|
scope: {
|
||||||
|
fields: ['name']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$.filterDialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
selectTravel(id) {
|
||||||
|
this.entry.travelFk = id;
|
||||||
|
this.$.filterDialog.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
filter() {
|
||||||
|
const filter = this.travelFilter;
|
||||||
|
const params = this.travelFilterParams;
|
||||||
|
const where = {};
|
||||||
|
for (let key in params) {
|
||||||
|
const value = params[key];
|
||||||
|
if (!value) continue;
|
||||||
|
|
||||||
|
switch (key) {
|
||||||
|
case 'agencyFk':
|
||||||
|
case 'warehouseInFk':
|
||||||
|
case 'warehouseOutFk':
|
||||||
|
case 'shipped':
|
||||||
|
case 'landed':
|
||||||
|
where[key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
filter.where = where;
|
||||||
|
this.$.travelsModel.applyFilter(filter);
|
||||||
|
}
|
||||||
|
}
|
||||||
ngModule.vnComponent('vnEntryBasicData', {
|
ngModule.vnComponent('vnEntryBasicData', {
|
||||||
template: require('./index.html'),
|
template: require('./index.html'),
|
||||||
controller: Section,
|
|
||||||
bindings: {
|
bindings: {
|
||||||
entry: '<'
|
entry: '<'
|
||||||
}
|
},
|
||||||
|
controller: Controller
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
.travelFilter{
|
||||||
|
width: 950px;
|
||||||
|
}
|
Loading…
Reference in New Issue