140 lines
6.0 KiB
HTML
140 lines
6.0 KiB
HTML
<vn-crud-model
|
|
vn-id="model"
|
|
url="/ticket/api/TicketRequests/filter"
|
|
limit="20"
|
|
data="requests"
|
|
auto-load="false">
|
|
</vn-crud-model>
|
|
<form name="form">
|
|
<div margin-medium>
|
|
<vn-card pad-medium-h class="vn-list">
|
|
<vn-horizontal>
|
|
<vn-searchbar
|
|
panel="vn-request-search-panel"
|
|
on-search="$ctrl.onSearch($params)"
|
|
vn-one
|
|
vn-focus>
|
|
</vn-searchbar>
|
|
</vn-horizontal>
|
|
</vn-card>
|
|
<vn-card margin-medium-v>
|
|
<vn-table model="model">
|
|
<vn-thead>
|
|
<vn-tr>
|
|
<vn-th number field="ticketFk">Ticket ID</vn-th>
|
|
<vn-th field="shipped" default-order="DESC">Shipped</vn-th>
|
|
<vn-th field="warehouse">Warehouse</vn-th>
|
|
<vn-th field="salesPersonNickname">SalesPerson</vn-th>
|
|
<vn-th field="description">Description</vn-th>
|
|
<vn-th field="quantity" number editable>Quantity</vn-th>
|
|
<vn-th field="price" number>Price</vn-th>
|
|
<vn-th field="atenderNickname">Atender</vn-th>
|
|
<vn-th field="itemFk">Item</vn-th>
|
|
<vn-th field="description">Concept</vn-th>
|
|
<vn-th number>Quantity</vn-th>
|
|
<vn-th>State</vn-th>
|
|
</vn-tr>
|
|
</vn-thead>
|
|
<vn-tbody>
|
|
<vn-tr ng-repeat="request in requests">
|
|
<vn-td number>
|
|
<span class="link"
|
|
ng-click="$ctrl.showTicketDescriptor($event, request.ticketFk)">
|
|
{{request.ticketFk}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td>
|
|
<span title="{{::request.shipped | dateTime: 'dd/MM/yyyy'}}"
|
|
class="chip {{$ctrl.compareDate(request.shipped)}}">
|
|
{{::request.shipped | dateTime: 'dd/MM/yyyy'}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td>{{::request.warehouse}}</vn-td>
|
|
<vn-td>
|
|
<span
|
|
class="link"
|
|
ng-click="$ctrl.showWorkerDescriptor($event, request.salesPersonFk)">
|
|
{{::request.salesPersonNickname}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td>
|
|
<span
|
|
class="link"
|
|
ng-click="$ctrl.showItemDescriptor($event, request.itemFk)">
|
|
{{::request.description}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td number>{{::request.quantity}}</vn-td>
|
|
<vn-td number>{{::request.price | currency: 'EUR':2}}</vn-td>
|
|
<vn-td>
|
|
<span
|
|
class="link"
|
|
ng-click="$ctrl.showWorkerDescriptor($event, request.atenderFk)">
|
|
{{::request.atenderNickname}}
|
|
</span>
|
|
</vn-td>
|
|
<vn-td-editable number>
|
|
<text>{{request.itemFk}}</text>
|
|
<field>
|
|
<vn-input-number vn-focus
|
|
model="request.itemFk"
|
|
on-change="$ctrl.confirmRequest(request)">
|
|
</vn-input-number>
|
|
</field>
|
|
</vn-td-editable>
|
|
<vn-td>{{::request.itemDescription}}</vn-td>
|
|
<vn-td-editable disabled="!request.saleFk && request.itemFk" number>
|
|
<text number>{{request.saleQuantity}}</text>
|
|
<field>
|
|
<vn-input-number vn-focus
|
|
model="request.saleQuantity"
|
|
on-change="$ctrl.changeQuantity(request)">
|
|
</vn-input-number>
|
|
</field>
|
|
</vn-td-editable>
|
|
<vn-td>{{::$ctrl.getState(request.isOk)}}</vn-td>
|
|
<vn-td>
|
|
<vn-icon-button
|
|
disabled="request.isOk === 0"
|
|
number
|
|
icon="thumb_down"
|
|
ng-click="$ctrl.showDenyReason($event, request.id)"
|
|
vn-tooltip="Discard">
|
|
</vn-icon-button>
|
|
</vn-td>
|
|
</vn-tr>
|
|
</vn-tbody>
|
|
</vn-table>
|
|
</vn-card>
|
|
<vn-pagination model="model"></vn-pagination>
|
|
</div>
|
|
</form>
|
|
<vn-worker-descriptor-popover
|
|
vn-id="workerDescriptor">
|
|
</vn-worker-descriptor-popover>
|
|
<vn-ticket-descriptor-popover
|
|
vn-id="ticketDescriptor">
|
|
</vn-ticket-descriptor-popover>
|
|
<vn-item-descriptor-popover
|
|
vn-id="itemDescriptor">
|
|
</vn-item-descriptor-popover>
|
|
<vn-dialog
|
|
vn-id="denyReason"
|
|
class="modal-form">
|
|
<tpl-body>
|
|
<vn-horizontal class="header">
|
|
<h5><span translate>Indicate the reasons to deny this request</span></h5>
|
|
</vn-horizontal>
|
|
<vn-horizontal pad-medium>
|
|
<vn-textarea
|
|
model="$ctrl.denyObservation">
|
|
</vn-textarea>
|
|
</vn-horizontal>
|
|
<vn-horizontal pad-medium>
|
|
<vn-button
|
|
label="Save"
|
|
ng-click="$ctrl.denyRequest()">
|
|
</vn-button>
|
|
</vn-horizontal>
|
|
</tpl-body>
|
|
</vn-dialog> |