316 lines
10 KiB
HTML
316 lines
10 KiB
HTML
<mg-ajax path="InvoiceIns/{{patch.params.id}}/updateInvoiceIn" options="vnPatch"></mg-ajax>
|
|
<vn-watcher
|
|
vn-id="watcher"
|
|
data="$ctrl.invoiceIn"
|
|
form="form"
|
|
save="patch">
|
|
</vn-watcher>
|
|
<vn-crud-model
|
|
auto-load="true"
|
|
url="Companies"
|
|
data="companies"
|
|
order="code">
|
|
</vn-crud-model>
|
|
<vn-crud-model
|
|
auto-load="true"
|
|
url="Warehouses"
|
|
data="warehouses"
|
|
order="name">
|
|
</vn-crud-model>
|
|
<vn-crud-model
|
|
auto-load="true"
|
|
url="DmsTypes"
|
|
data="dmsTypes"
|
|
order="name">
|
|
</vn-crud-model>
|
|
<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.invoiceIn.supplierFk"
|
|
url="Suppliers"
|
|
show-field="nickname"
|
|
search-function="{or: [{id: $search}, {nickname: {like: '%'+ $search +'%'}}]}"
|
|
value-field="id"
|
|
order="nickname"
|
|
label="Supplier"
|
|
required="true"
|
|
rule>
|
|
<tpl-item>
|
|
{{::id}} - {{::nickname}}
|
|
</tpl-item>
|
|
</vn-autocomplete>
|
|
<vn-textfield
|
|
label="Supplier ref"
|
|
ng-model="$ctrl.invoiceIn.supplierRef"
|
|
rule>
|
|
</vn-textfield>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-date-picker
|
|
vn-one
|
|
label="Expedition date"
|
|
ng-model="$ctrl.invoiceIn.issued"
|
|
vn-focus
|
|
rule>
|
|
</vn-date-picker>
|
|
<vn-date-picker
|
|
vn-one
|
|
label="Operation date"
|
|
ng-model="$ctrl.invoiceIn.operated"
|
|
rule>
|
|
</vn-date-picker>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-datalist vn-one
|
|
label="Undeductible VAT"
|
|
ng-model="$ctrl.invoiceIn.deductibleExpenseFk"
|
|
value-field="id"
|
|
order="name"
|
|
url="Expenses"
|
|
fields="['id','name']"
|
|
rule>
|
|
<tpl-item>
|
|
{{id}} - {{name}}
|
|
</tpl-item>
|
|
</vn-datalist>
|
|
<vn-textfield
|
|
label="Document"
|
|
ng-model="$ctrl.invoiceIn.dmsFk"
|
|
ng-change="$ctrl.checkFileExists($ctrl.invoiceIn.dmsFk)"
|
|
rule>
|
|
<prepend>
|
|
<vn-icon-button
|
|
disabled="$ctrl.editDownloadDisabled"
|
|
ng-if="$ctrl.invoiceIn.dmsFk"
|
|
title="{{'Download file' | translate}}"
|
|
icon="cloud_download"
|
|
ng-click="$ctrl.downloadFile($ctrl.invoiceIn.dmsFk)">
|
|
</vn-icon-button>
|
|
</prepend>
|
|
<append>
|
|
<vn-icon-button
|
|
disabled="$ctrl.editDownloadDisabled"
|
|
ng-if="$ctrl.invoiceIn.dmsFk"
|
|
ng-click="$ctrl.openEditDialog($ctrl.invoiceIn.dmsFk)"
|
|
icon="edit"
|
|
title="{{'Edit document' | translate}}">
|
|
</vn-icon-button>
|
|
<vn-icon-button
|
|
ng-if="!$ctrl.invoiceIn.dmsFk"
|
|
ng-click="$ctrl.openCreateDialog()"
|
|
icon="add_circle"
|
|
title="{{'Create document' | translate}}">
|
|
</vn-icon-button>
|
|
</append>
|
|
</vn-textfield>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-date-picker
|
|
vn-one
|
|
label="Entry date"
|
|
ng-model="$ctrl.invoiceIn.bookEntried"
|
|
rule>
|
|
</vn-date-picker>
|
|
<vn-date-picker
|
|
vn-one
|
|
label="Accounted date"
|
|
ng-model="$ctrl.invoiceIn.booked"
|
|
rule>
|
|
</vn-date-picker>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-autocomplete
|
|
vn-one
|
|
label="Currency"
|
|
ng-model="$ctrl.invoiceIn.currencyFk"
|
|
url="Currencies"
|
|
show-field="code"
|
|
value-field="id"
|
|
rule>
|
|
</vn-autocomplete>
|
|
<vn-autocomplete
|
|
url="Companies"
|
|
label="Company"
|
|
show-field="code"
|
|
value-field="id"
|
|
ng-model="$ctrl.invoiceIn.companyFk"
|
|
rule>
|
|
</vn-autocomplete>
|
|
</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>
|
|
<!-- Create edit dms dialog -->
|
|
<vn-dialog
|
|
vn-id="dmsEditDialog"
|
|
message="Edit document"
|
|
on-accept="$ctrl.onEdit()">
|
|
<tpl-body>
|
|
<vn-horizontal>
|
|
<vn-textfield
|
|
vn-one
|
|
vn-focus
|
|
label="Reference"
|
|
ng-model="$ctrl.dms.reference"
|
|
rule>
|
|
</vn-textfield>
|
|
<vn-autocomplete vn-one required="true"
|
|
label="Company"
|
|
ng-model="$ctrl.dms.companyId"
|
|
url="Companies"
|
|
show-field="code"
|
|
value-field="id">
|
|
</vn-autocomplete>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-autocomplete vn-one required="true"
|
|
label="Warehouse"
|
|
ng-model="$ctrl.dms.warehouseId"
|
|
url="Warehouses"
|
|
show-field="name"
|
|
value-field="id">
|
|
</vn-autocomplete>
|
|
<vn-autocomplete vn-one required="true"
|
|
label="Type"
|
|
ng-model="$ctrl.dms.dmsTypeId"
|
|
url="DmsTypes"
|
|
show-field="name"
|
|
value-field="id">
|
|
</vn-autocomplete>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-textarea
|
|
vn-one
|
|
required="true"
|
|
label="Description"
|
|
ng-model="$ctrl.dms.description"
|
|
rule>
|
|
</vn-textarea>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-input-file
|
|
vn-one
|
|
label="File"
|
|
ng-model="$ctrl.dms.files"
|
|
on-change="$ctrl.onFileChange($files)"
|
|
accept="{{$ctrl.allowedContentTypes}}"
|
|
required="false"
|
|
multiple="true">
|
|
<append>
|
|
<vn-icon vn-none
|
|
color-marginal
|
|
title="{{$ctrl.contentTypesInfo}}"
|
|
icon="info">
|
|
</vn-icon>
|
|
</append>
|
|
</vn-input-file>
|
|
</vn-horizontal>
|
|
<vn-vertical>
|
|
<vn-check disabled="true"
|
|
label="Generate identifier for original file"
|
|
ng-model="$ctrl.dms.hasFile">
|
|
</vn-check>
|
|
</vn-vertical>
|
|
</tpl-body>
|
|
<tpl-buttons>
|
|
<input type="button" response="cancel" translate-attr="{value: 'Cancel'}"/>
|
|
<button response="accept" translate>Save</button>
|
|
</tpl-buttons>
|
|
</vn-dialog>
|
|
<!-- Create new dms dialog -->
|
|
<vn-dialog
|
|
vn-id="dmsCreateDialog"
|
|
message="Create document"
|
|
on-accept="$ctrl.onCreate()">
|
|
<tpl-body>
|
|
<vn-horizontal>
|
|
<vn-textfield
|
|
vn-one
|
|
vn-focus
|
|
label="Reference"
|
|
ng-model="$ctrl.dms.reference"
|
|
rule>
|
|
</vn-textfield>
|
|
<vn-autocomplete
|
|
vn-one
|
|
label="Company"
|
|
ng-model="$ctrl.dms.companyId"
|
|
data="companies"
|
|
show-field="code"
|
|
value-field="id"
|
|
required="true">
|
|
</vn-autocomplete>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-autocomplete
|
|
vn-one
|
|
label="Warehouse"
|
|
ng-model="$ctrl.dms.warehouseId"
|
|
data="warehouses"
|
|
show-field="name"
|
|
value-field="id"
|
|
required="true">
|
|
</vn-autocomplete>
|
|
<vn-autocomplete
|
|
vn-one
|
|
label="Type"
|
|
ng-model="$ctrl.dms.dmsTypeId"
|
|
data="dmsTypes"
|
|
show-field="name"
|
|
value-field="id"
|
|
required="true">
|
|
</vn-autocomplete>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-textarea
|
|
vn-one
|
|
label="Description"
|
|
ng-model="$ctrl.dms.description"
|
|
required="true"
|
|
rule>
|
|
</vn-textarea>
|
|
</vn-horizontal>
|
|
<vn-horizontal>
|
|
<vn-input-file
|
|
vn-one
|
|
label="File"
|
|
ng-model="$ctrl.dms.files"
|
|
on-change="$ctrl.onFileChange($files)"
|
|
accept="{{$ctrl.allowedContentTypes}}"
|
|
required="true"
|
|
multiple="true">
|
|
<append>
|
|
<vn-icon vn-none
|
|
color-marginal
|
|
title="{{$ctrl.contentTypesInfo}}"
|
|
icon="info">
|
|
</vn-icon>
|
|
</append>
|
|
</vn-input-file>
|
|
</vn-horizontal>
|
|
<vn-vertical>
|
|
<vn-check
|
|
label="Generate identifier for original file"
|
|
ng-model="$ctrl.dms.hasFile">
|
|
</vn-check>
|
|
</vn-vertical>
|
|
</tpl-body>
|
|
<tpl-buttons>
|
|
<input type="button" response="cancel" translate-attr="{value: 'Cancel'}"/>
|
|
<button response="accept" translate>Create</button>
|
|
</tpl-buttons>
|
|
</vn-dialog>
|