214 lines
8.7 KiB
HTML
214 lines
8.7 KiB
HTML
<vn-crud-model
|
|
vn-id="model"
|
|
url="Routes/getTickets"
|
|
filter="{id: $ctrl.$params.id}"
|
|
order="priority ASC"
|
|
data="$ctrl.tickets"
|
|
auto-load="true">
|
|
</vn-crud-model>
|
|
<vn-data-viewer
|
|
model="model">
|
|
<form
|
|
class="vn-w-xl"
|
|
name="form">
|
|
<vn-card class="vn-pa-lg">
|
|
<vn-tool-bar>
|
|
<vn-button
|
|
icon="icon-wand"
|
|
ng-click="$ctrl.guessPriority()"
|
|
vn-tooltip="Sort routes">
|
|
</vn-button>
|
|
<vn-button
|
|
disabled="!$ctrl.isChecked"
|
|
ng-click="$ctrl.goToBuscaman()"
|
|
vn-tooltip="Open buscaman"
|
|
icon="icon-buscaman">
|
|
</vn-button>
|
|
</vn-tool-bar>
|
|
</vn-card>
|
|
<vn-card class="vn-mt-lg">
|
|
<vn-table model="model" auto-load="false" vn-droppable="$ctrl.onDrop($event)">
|
|
<vn-thead>
|
|
<vn-tr>
|
|
<vn-th shrink>
|
|
<vn-multi-check
|
|
model="model">
|
|
</vn-multi-check>
|
|
</vn-th>
|
|
<vn-th field="priority">Order</vn-th>
|
|
<vn-th field="street" expand>Street</vn-th>
|
|
<vn-th field="city">City</vn-th>
|
|
<vn-th field="postalCode" translate-attr="{title: 'Postcode'}" shrink>PC</vn-th>
|
|
<vn-th field="clientFk" expand>Client</vn-th>
|
|
<vn-th field="packages" shrink>Packages</vn-th>
|
|
<vn-th field="volume" shrink>m³</vn-th>
|
|
<vn-th field="id" number>Ticket</vn-th>
|
|
<vn-th shrink></vn-th>
|
|
<vn-th shrink></vn-th>
|
|
</vn-tr>
|
|
</vn-thead>
|
|
<vn-tbody>
|
|
<vn-tr ng-repeat="ticket in $ctrl.tickets">
|
|
<vn-td shrink>
|
|
<vn-check
|
|
ng-model="ticket.checked">
|
|
</vn-check>
|
|
</vn-td>
|
|
<vn-td>
|
|
<vn-input-number
|
|
on-change="$ctrl.setPriority(ticket.id, ticket.priority)"
|
|
ng-model="ticket.priority"
|
|
rule="Ticket"
|
|
class="dense"
|
|
display-controls=true>
|
|
</vn-input-number>
|
|
</vn-td>
|
|
<vn-td expand title="{{::ticket.street}}">{{::ticket.street}}</vn-td>
|
|
<vn-td expand>{{::ticket.city}}</vn-td>
|
|
<vn-td shrink>{{::ticket.postalCode}}</vn-td>
|
|
<vn-td expand>
|
|
<span
|
|
ng-click="clientDescriptor.show($event, ticket.clientFk)"
|
|
class="link">
|
|
{{::ticket.nickname}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td shrink>{{::ticket.packages}}</vn-td>
|
|
<vn-td shrink>{{::ticket.volume | number:2}}</vn-td>
|
|
<vn-td number>
|
|
<span
|
|
ng-click="ticketDescriptor.show($event, ticket.id)"
|
|
class="link">
|
|
{{::ticket.id}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td shrink>
|
|
<vn-icon
|
|
ng-if="::ticket.notes.length"
|
|
title="{{::ticket.notes[0].description}}"
|
|
icon="insert_drive_file"
|
|
class="bright">
|
|
</vn-icon>
|
|
</vn-td>
|
|
<vn-td>
|
|
<vn-icon-button
|
|
translate-attr="{title: 'Remove ticket'}"
|
|
icon="delete"
|
|
ng-click="$ctrl.showDeleteConfirm(ticket.id)"
|
|
tabindex="-1">
|
|
</vn-icon-button>
|
|
</vn-td>
|
|
</vn-tr>
|
|
</vn-tbody>
|
|
</vn-table>
|
|
</vn-card>
|
|
</form>
|
|
</vn-data-viewer>
|
|
<vn-ticket-descriptor-popover
|
|
vn-id="ticketDescriptor">
|
|
</vn-ticket-descriptor-popover>
|
|
<vn-client-descriptor-popover
|
|
vn-id="clientDescriptor">
|
|
</vn-client-descriptor-popover>
|
|
<vn-confirm
|
|
vn-id="confirm"
|
|
question="Delete ticket from route?"
|
|
on-accept="$ctrl.removeTicketFromRoute($index)">
|
|
</vn-confirm>
|
|
<vn-crud-model
|
|
vn-id="possibleTicketsModel"
|
|
url="Routes/{{$ctrl.$params.id}}/getSuggestedTickets"
|
|
data="$ctrl.possibleTickets">
|
|
</vn-crud-model>
|
|
<vn-dialog
|
|
vn-id="possibleTicketsDialog">
|
|
<tpl-title>
|
|
<vn-horizontal>
|
|
<span translate>Tickets to add</span>
|
|
<div class="button-right">
|
|
<vn-button label="Add" ng-click="$ctrl.setTicketsRoute()"></vn-button>
|
|
</div>
|
|
</vn-horizontal>
|
|
</tpl-title>
|
|
<tpl-body>
|
|
<vn-data-viewer model="possibleTicketsModel">
|
|
<vn-table model="possibleTicketsModel" auto-load="false">
|
|
<vn-thead>
|
|
<vn-tr>
|
|
<vn-th shrink>
|
|
<vn-multi-check
|
|
model="possibleTicketsModel">
|
|
</vn-multi-check>
|
|
</vn-th>
|
|
<vn-th number>Ticket</vn-th>
|
|
<vn-th>Client</vn-th>
|
|
<vn-th shrink>Province</vn-th>
|
|
<vn-th shrink>
|
|
<span translate>
|
|
Population
|
|
</span>
|
|
</vn-th>
|
|
<vn-th expand>PC</vn-th>
|
|
<vn-th>Address</vn-th>
|
|
<vn-th shrink>Zone</vn-th>
|
|
</vn-tr>
|
|
</vn-thead>
|
|
<vn-tbody>
|
|
<vn-tr ng-repeat="ticket in $ctrl.possibleTickets">
|
|
<vn-td shrink>
|
|
<vn-check
|
|
ng-model="ticket.checked">
|
|
</vn-check>
|
|
</vn-td>
|
|
<vn-td number>
|
|
<span class="link" ng-click="ticketDescriptor.show($event, ticket.id)">
|
|
{{::ticket.id}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td expand>
|
|
<span class="link" ng-click="clientDescriptor.show($event, ticket.clientFk)">
|
|
{{::ticket.nickname}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td shrink>{{::ticket.address.province.name}}</vn-td>
|
|
<vn-td shrink>{{::ticket.address.city}}</vn-td>
|
|
<vn-td number shrink>{{::ticket.address.postalCode}}</vn-td>
|
|
<vn-td expand title="{{::ticket.address.street}}">{{::ticket.address.street}}</vn-td>
|
|
<vn-td expand>
|
|
{{::ticket.zone.name}}
|
|
<vn-icon-button
|
|
icon="link_off"
|
|
class="pointer"
|
|
translate-attr="{title: 'Unlink zone: {{::ticket.zone.name}} from agency: {{::ticket.agencyMode.name}}'}"
|
|
ng-click="unlinkZoneConfirmation.show(ticket)">
|
|
</vn-icon-button>
|
|
</vn-td>
|
|
</vn-tr>
|
|
</vn-tbody>
|
|
</vn-table>
|
|
</vn-data-viewer>
|
|
</tpl-body>
|
|
</vn-dialog>
|
|
<vn-float-button
|
|
icon="add"
|
|
ng-click="$ctrl.openPossibleTicketsDialog()"
|
|
vn-tooltip="Add ticket"
|
|
vn-acl="delivery"
|
|
vn-acl-action="remove"
|
|
vn-bind="+"
|
|
fixed-bottom-right>
|
|
</vn-float-button>
|
|
<vn-ticket-descriptor-popover
|
|
vn-id="ticket-descriptor">
|
|
</vn-ticket-descriptor-popover>
|
|
<vn-client-descriptor-popover
|
|
vn-id="client-descriptor">
|
|
</vn-client-descriptor-popover>
|
|
|
|
<!-- Unlink zone confirmation dialog -->
|
|
<vn-confirm
|
|
vn-id="unlinkZoneConfirmation"
|
|
on-accept="$ctrl.unlinkZone($data)"
|
|
question="{{$ctrl.confirmationMessage}}"
|
|
message="Unlink selected zone?">
|
|
</vn-confirm> |