319 lines
14 KiB
HTML
319 lines
14 KiB
HTML
<vn-crud-model
|
|
vn-id="model"
|
|
url="Clients/extendedListFilter"
|
|
limit="20">
|
|
</vn-crud-model>
|
|
<vn-portal slot="topbar">
|
|
<vn-searchbar
|
|
vn-focus
|
|
panel="vn-client-search-panel"
|
|
placeholder="Search client"
|
|
info="Search client by id or name"
|
|
auto-state="false"
|
|
model="model">
|
|
</vn-searchbar>
|
|
</vn-portal>
|
|
<vn-card>
|
|
<smart-table
|
|
model="model"
|
|
view-config-id="clientsDetail"
|
|
options="$ctrl.smartTableOptions"
|
|
expr-builder="$ctrl.exprBuilder(param, value)">
|
|
<slot-table>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th field="id">
|
|
<span translate>Identifier</span>
|
|
</th>
|
|
<th field="name">
|
|
<span translate>Name</span>
|
|
</th>
|
|
<th field="socialName">
|
|
<span translate>Social name</span>
|
|
</th>
|
|
<th field="fi">
|
|
<span translate>Tax number</span>
|
|
</th>
|
|
<th field="salesPersonFk">
|
|
<span translate>Salesperson</span>
|
|
</th>
|
|
<th field="credit">
|
|
<span translate>Credit</span>
|
|
</th>
|
|
<th field="creditInsurance">
|
|
<span translate>Credit insurance</span>
|
|
</th>
|
|
<th field="phone">
|
|
<span translate>Phone</span>
|
|
</th>
|
|
<th field="mobile">
|
|
<span translate>Mobile</span>
|
|
</th>
|
|
<th field="street">
|
|
<span translate>Street</span>
|
|
</th>
|
|
<th field="countryFk">
|
|
<span translate>Country</span>
|
|
</th>
|
|
<th field="provinceFk">
|
|
<span translate>Province</span>
|
|
</th>
|
|
<th field="city">
|
|
<span translate>City</span>
|
|
</th>
|
|
<th field="postcode">
|
|
<span translate>Postcode</span>
|
|
</th>
|
|
<th field="email">
|
|
<span translate>Email</span>
|
|
</th>
|
|
<th field="created">
|
|
<span translate>Created</span>
|
|
</th>
|
|
<th field="businessTypeFk">
|
|
<span translate>Business type</span>
|
|
</th>
|
|
<th field="payMethodFk">
|
|
<span translate>Billing data</span>
|
|
</th>
|
|
<th field="sageTaxTypeFk">
|
|
<span translate>Sage tax type</span>
|
|
</th>
|
|
<th field="sageTransactionTypeFk">
|
|
<span translate>Sage tr. type</span>
|
|
</th>
|
|
<th field="isActive" centered>
|
|
<span translate>Active</span>
|
|
</th>
|
|
<th field="isVies" centered>
|
|
<span translate>Vies</span>
|
|
</th>
|
|
<th field="isTaxDataChecked" centered>
|
|
<span translate>Verified data</span>
|
|
</th>
|
|
<th field="isEqualizated" centered>
|
|
<span translate>Is equalizated</span>
|
|
</th>
|
|
<th field="isFreezed" centered>
|
|
<span translate>Freezed</span>
|
|
</th>
|
|
<th field="hasToInvoice" centered>
|
|
<span translate>Invoice</span>
|
|
</th>
|
|
<th field="hasToInvoiceByAddress" centered>
|
|
<span translate>Invoice by address</span>
|
|
</th>
|
|
<th field="isToBeMailed" centered>
|
|
<span translate>Mailing</span>
|
|
</th>
|
|
<th field="hasLcr" centered>
|
|
<span translate>Received LCR</span>
|
|
</th>
|
|
<th field="hasCoreVnl" centered>
|
|
<span translate>Received core VNL</span>
|
|
</th>
|
|
<th field="hasSepaVnl" centered>
|
|
<span translate>Received B2B VNL</span>
|
|
</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="client in model.data"
|
|
vn-anchor="::{
|
|
state: 'client.card.summary',
|
|
params: {id: client.id}
|
|
}">
|
|
<td>
|
|
<vn-icon-button ng-show="::client.isActive == false"
|
|
vn-tooltip="Client inactive"
|
|
icon="icon-disabled">
|
|
</vn-icon-button>
|
|
<vn-icon-button ng-show="::client.isActive && client.isFreezed == true"
|
|
vn-tooltip="Client frozen"
|
|
icon="icon-frozen">
|
|
</vn-icon-button>
|
|
</td>
|
|
<td>
|
|
<span
|
|
vn-click-stop="clientDescriptor.show($event, client.id)"
|
|
class="link">
|
|
{{::client.id}}
|
|
</span>
|
|
</td>
|
|
<td>{{::client.name}}</td>
|
|
<td>{{::client.socialName}}</td>
|
|
<td>{{::client.fi}}</td>
|
|
<td>
|
|
<span
|
|
vn-click-stop="workerDescriptor.show($event, client.salesPersonFk)"
|
|
ng-class="{'link': client.salesPersonFk}">
|
|
{{::client.salesPerson | dashIfEmpty}}
|
|
</span>
|
|
</td>
|
|
<td>{{::client.credit}}</td>
|
|
<td>{{::client.creditInsurance | dashIfEmpty}}</td>
|
|
<td>{{::client.phone | dashIfEmpty}}</td>
|
|
<td>{{::client.mobile | dashIfEmpty}}</td>
|
|
<td>{{::client.street | dashIfEmpty}}</td>
|
|
<td>{{::client.country | dashIfEmpty}}</td>
|
|
<td>{{::client.province | dashIfEmpty}}</td>
|
|
<td>{{::client.city | dashIfEmpty}}</td>
|
|
<td>{{::client.postcode | dashIfEmpty}}</td>
|
|
<td>{{::client.email | dashIfEmpty}}</td>
|
|
<td>{{::client.created | date:'dd/MM/yyyy'}}</td>
|
|
<td>{{::client.businessType | dashIfEmpty}}</td>
|
|
<td>{{::client.payMethod | dashIfEmpty}}</td>
|
|
<td>{{::client.sageTaxType | dashIfEmpty}}</td>
|
|
<td>{{::client.sageTransactionType | dashIfEmpty}}</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.isActive,
|
|
'alert': !client.isActive,
|
|
}">
|
|
{{ ::client.isActive ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.isVies,
|
|
'alert': !client.isVies,
|
|
}">
|
|
{{ ::client.isVies ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.isTaxDataChecked,
|
|
'alert': !client.isTaxDataChecked,
|
|
}">
|
|
{{ ::client.isTaxDataChecked ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.isEqualizated,
|
|
'alert': !client.isEqualizated,
|
|
}">
|
|
{{ ::client.isEqualizated ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.isFreezed,
|
|
'alert': !client.isFreezed,
|
|
}">
|
|
{{ ::client.isFreezed ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.hasToInvoice,
|
|
'alert': !client.hasToInvoice,
|
|
}">
|
|
{{ ::client.hasToInvoice ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.hasToInvoiceByAddress,
|
|
'alert': !client.hasToInvoiceByAddress,
|
|
}">
|
|
{{ ::client.hasToInvoiceByAddress ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.isToBeMailed,
|
|
'alert': !client.isToBeMailed,
|
|
}">
|
|
{{ ::client.isToBeMailed ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.hasLcr,
|
|
'alert': !client.hasLcr,
|
|
}">
|
|
{{ ::client.hasLcr ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.hasCoreVnl,
|
|
'alert': !client.hasCoreVnl,
|
|
}">
|
|
{{ ::client.hasCoreVnl ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td centered>
|
|
<vn-chip ng-class="::{
|
|
'success': client.hasSepaVnl,
|
|
'alert': !client.hasSepaVnl,
|
|
}">
|
|
{{ ::client.hasSepaVnl ? 'Yes' : 'No' | translate}}
|
|
</vn-chip>
|
|
</td>
|
|
<td shrink>
|
|
<vn-horizontal class="buttons">
|
|
<vn-icon-button vn-anchor="{state: 'ticket.index', params: {q: {clientFk: client.id} } }"
|
|
vn-tooltip="Client tickets"
|
|
icon="icon-ticket">
|
|
</vn-icon-button>
|
|
<vn-icon-button
|
|
vn-click-stop="$ctrl.preview(client)"
|
|
vn-tooltip="Preview"
|
|
icon="preview">
|
|
</vn-icon-button>
|
|
</vn-horizontal>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</slot-table>
|
|
</smart-table>
|
|
</vn-card>
|
|
<a ui-sref="client.create" vn-tooltip="New client" vn-bind="+" fixed-bottom-right>
|
|
<vn-float-button icon="add"></vn-float-button>
|
|
</a>
|
|
<vn-client-descriptor-popover
|
|
vn-id="client-descriptor">
|
|
</vn-client-descriptor-popover>
|
|
<vn-worker-descriptor-popover
|
|
vn-id="worker-descriptor">
|
|
</vn-worker-descriptor-popover>
|
|
|
|
<vn-popup vn-id="preview">
|
|
<vn-client-summary
|
|
client="$ctrl.clientSelected">
|
|
</vn-client-summary>
|
|
</vn-popup>
|
|
<vn-contextmenu
|
|
vn-id="contextmenu"
|
|
targets="['smart-table']"
|
|
model="model"
|
|
expr-builder="$ctrl.exprBuilder(param, value)">
|
|
<slot-menu>
|
|
<vn-item translate
|
|
ng-if="contextmenu.isFilterAllowed()"
|
|
ng-click="contextmenu.filterBySelection()">
|
|
Filter by selection
|
|
</vn-item>
|
|
<vn-item translate
|
|
ng-if="contextmenu.isFilterAllowed()"
|
|
ng-click="contextmenu.excludeSelection()">
|
|
Exclude selection
|
|
</vn-item>
|
|
<vn-item translate
|
|
ng-if="contextmenu.isFilterAllowed()"
|
|
ng-click="contextmenu.removeFilter()">
|
|
Remove filter
|
|
</vn-item>
|
|
<vn-item translate
|
|
ng-click="contextmenu.removeAllFilters()">
|
|
Remove all filters
|
|
</vn-item>
|
|
</slot-menu>
|
|
</vn-contextmenu> |