220 lines
7.5 KiB
HTML
220 lines
7.5 KiB
HTML
<mg-ajax path="Entries/{{patch.params.id}}" options="vnPatch"></mg-ajax>
|
|
<vn-watcher
|
|
vn-id="watcher"
|
|
data="$ctrl.entry"
|
|
form="form"
|
|
save="patch">
|
|
</vn-watcher>
|
|
<form name="form" ng-submit="watcher.submit()" class="vn-w-md">
|
|
<vn-card class="vn-pa-lg">
|
|
<vn-horizontal>
|
|
<vn-autocomplete
|
|
vn-one
|
|
ng-model="$ctrl.entry.supplierFk"
|
|
url="Suppliers"
|
|
show-field="nickname"
|
|
search-function="{or: [{id: $search}, {nickname: {like: '%'+ $search +'%'}}]}"
|
|
value-field="id"
|
|
order="nickname"
|
|
label="Supplier"
|
|
required="true">
|
|
<tpl-item>
|
|
{{::id}} - {{::nickname}}
|
|
</tpl-item>
|
|
</vn-autocomplete>
|
|
<vn-autocomplete
|
|
vn-one
|
|
ng-model="$ctrl.entry.travelFk"
|
|
url="Travels/filter"
|
|
search-function="$ctrl.searchFunction($search)"
|
|
value-field="id"
|
|
order="id"
|
|
label="Travel"
|
|
required="true">
|
|
<tpl-item>
|
|
{{::agencyModeName}} - {{::warehouseInName}} ({{::shipped | date: 'dd/MM/yyyy'}}) →
|
|
{{::warehouseOutName}} ({{::landed | date: 'dd/MM/yyyy'}})
|
|
</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-horizontal>
|
|
<vn-horizontal>
|
|
<vn-textfield
|
|
vn-one
|
|
label="Reference"
|
|
ng-model="$ctrl.entry.ref"
|
|
rule
|
|
vn-focus>
|
|
</vn-textfield>
|
|
<vn-textfield
|
|
vn-one
|
|
label="Notes"
|
|
ng-model="$ctrl.entry.notes"
|
|
rule
|
|
vn-focus>
|
|
</vn-textfield>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-textarea
|
|
vn-one
|
|
label="Observation"
|
|
ng-model="$ctrl.entry.observation"
|
|
rule>
|
|
</vn-textarea>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-autocomplete
|
|
vn-one
|
|
label="Currency"
|
|
ng-model="$ctrl.entry.currencyFk"
|
|
url="Currencies"
|
|
show-field="code"
|
|
value-field="id">
|
|
</vn-autocomplete>
|
|
<vn-input-number
|
|
vn-one
|
|
step="0.1"
|
|
label="Commission"
|
|
ng-model="$ctrl.entry.commission"
|
|
rule>
|
|
</vn-input-number>
|
|
<vn-autocomplete
|
|
url="Companies"
|
|
label="Company"
|
|
show-field="code"
|
|
value-field="id"
|
|
ng-model="$ctrl.entry.companyFk">
|
|
</vn-autocomplete>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-check
|
|
label="Ordered"
|
|
ng-model="$ctrl.entry.isOrdered">
|
|
</vn-check>
|
|
<vn-check
|
|
label="Confirmed"
|
|
ng-model="$ctrl.entry.isConfirmed">
|
|
</vn-check>
|
|
<vn-check
|
|
label="Inventory"
|
|
ng-model="$ctrl.entry.isInventory">
|
|
</vn-check>
|
|
<vn-check
|
|
label="Raid"
|
|
ng-model="$ctrl.entry.isRaid">
|
|
</vn-check>
|
|
<vn-check
|
|
label="Booked"
|
|
ng-model="$ctrl.entry.isBooked">
|
|
</vn-check>
|
|
</vn-horizontal>
|
|
</vn-card>
|
|
<vn-button-bar>
|
|
<vn-submit
|
|
disabled="!watcher.dataChanged()"
|
|
label="Save">
|
|
</vn-submit>
|
|
<vn-button
|
|
class="cancel"
|
|
label="Undo changes"
|
|
disabled="!watcher.dataChanged()"
|
|
ng-click="watcher.loadOriginalData()">
|
|
</vn-button>
|
|
</vn-button-bar>
|
|
</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> |