salix/modules/client/front/summary/index.html

385 lines
16 KiB
HTML
Raw Normal View History

2021-06-16 07:43:07 +00:00
<vn-crud-model
vn-id="ticketsModel"
auto-load="true"
url="Tickets"
link="{clientFk: $ctrl.$params.id}"
filter="::$ctrl.ticketFilter"
2021-06-16 07:43:07 +00:00
limit="5"
data="tickets"
order="shipped DESC">
2021-06-16 07:43:07 +00:00
</vn-crud-model>
2019-01-20 15:47:04 +00:00
<vn-card class="summary">
2020-11-23 12:41:51 +00:00
<h5>
<a ng-if="::$ctrl.summary.id"
vn-tooltip="Go to the client"
ui-sref="client.card.summary({id: {{::$ctrl.summary.id}}})"
name="goToSummary">
<vn-icon-button icon="launch"></vn-icon-button>
</a>
<span>
{{$ctrl.summary.name}} - {{$ctrl.summary.id}} - {{$ctrl.summary.salesPersonUser.name}}
</span>
</h5>
2019-01-20 15:47:04 +00:00
<vn-horizontal>
<vn-one>
<h4 ng-show="$ctrl.isEmployee">
<a
2021-01-12 09:11:37 +00:00
ui-sref="client.card.basicData({id:$ctrl.client.id})"
target="_self">
<span translate vn-tooltip="Go to">Basic data</span>
2021-01-08 14:43:33 +00:00
</a>
2021-01-08 07:43:28 +00:00
</h4>
<h4
2021-01-12 09:11:37 +00:00
translate
ng-show="!$ctrl.isEmployee">
Basic data
</h4>
2019-01-20 15:47:04 +00:00
<vn-label-value label="Id"
value="{{$ctrl.summary.id}}">
</vn-label-value>
<vn-label-value label="Comercial Name"
value="{{$ctrl.summary.name}}">
</vn-label-value>
<vn-label-value label="Contact"
value="{{$ctrl.summary.contact}}">
</vn-label-value>
2020-01-17 06:24:57 +00:00
<vn-label-value label="Phone"
value="{{$ctrl.summary.phone}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
2020-01-17 06:24:57 +00:00
<vn-label-value label="Mobile"
value="{{$ctrl.summary.mobile}}">
2020-01-29 12:41:55 +00:00
</vn-label-value>
<vn-label-value label="Email" no-ellipsize
2021-01-25 09:59:24 +00:00
value="{{$ctrl.listEmails($ctrl.summary.email)}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
2020-09-03 13:11:16 +00:00
<vn-label-value label="Sales person">
<span
ng-click="workerDescriptor.show($event, $ctrl.summary.salesPersonFk)"
class="link">
{{$ctrl.summary.salesPersonUser.name}}
2020-09-03 13:11:16 +00:00
</span>
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Channel"
value="{{$ctrl.summary.contactChannel.name}}">
</vn-label-value>
</vn-one>
<vn-one>
<h4 ng-show="$ctrl.isEmployee">
<a
2021-01-12 09:11:37 +00:00
ui-sref="client.card.fiscalData({id:$ctrl.client.id})"
target="_self">
<span translate vn-tooltip="Go to">Fiscal address</span>
2021-01-08 14:43:33 +00:00
</a>
2021-01-08 07:43:28 +00:00
</h4>
<h4
2021-01-12 09:11:37 +00:00
translate
ng-show="!$ctrl.isEmployee">
Fiscal address
</h4>
2019-01-20 15:47:04 +00:00
<vn-label-value label="Social name"
value="{{$ctrl.summary.socialName}}">
</vn-label-value>
<vn-label-value label="NIF / CIF"
value="{{$ctrl.summary.fi}}">
</vn-label-value>
<vn-label-value label="City"
value="{{$ctrl.summary.city}}">
</vn-label-value>
<vn-label-value label="Postcode"
value="{{$ctrl.summary.postcode}}">
</vn-label-value>
<vn-label-value label="Province"
value="{{$ctrl.summary.province.name}}">
</vn-label-value>
<vn-label-value label="Country"
value="{{$ctrl.summary.country.country}}">
</vn-label-value>
<vn-label-value label="Street" no-ellipsize
value="{{$ctrl.summary.street}}">
</vn-label-value>
2019-01-20 15:47:04 +00:00
</vn-one>
<vn-one>
<h4 ng-show="$ctrl.isEmployee">
<a
2021-01-12 09:11:37 +00:00
ui-sref="client.card.fiscalData({id:$ctrl.client.id})"
target="_self">
<span translate vn-tooltip="Go to">Fiscal data</span>
2021-01-08 14:43:33 +00:00
</a>
2021-01-08 07:43:28 +00:00
</h4>
<h4
2021-01-12 09:11:37 +00:00
translate
ng-show="!$ctrl.isEmployee">
Fiscal data
</h4>
2019-01-20 15:47:04 +00:00
<vn-vertical>
<vn-check
label="Is equalizated"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.isEqualizated"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
<vn-check
label="Active"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.isActive"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
<vn-check
label="Invoice by address"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.hasToInvoiceByAddress"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
<vn-check
label="Verified data"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.isTaxDataChecked"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
<vn-check
label="Has to invoice"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.hasToInvoice"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
<vn-check
2020-06-03 11:42:36 +00:00
label="Notify by email"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.isToBeMailed"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
<vn-check
label="Vies"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.isVies"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
</vn-vertical>
</vn-one>
<vn-one>
<h4 ng-show="$ctrl.isEmployee">
<a
2021-01-12 09:11:37 +00:00
ui-sref="client.card.billingData({id:$ctrl.client.id})"
target="_self">
<span translate vn-tooltip="Go to">Billing data</span>
2021-01-08 14:43:33 +00:00
</a>
2021-01-08 07:43:28 +00:00
</h4>
<h4
2021-01-12 09:11:37 +00:00
translate
ng-show="!$ctrl.isEmployee">
Billing data
</h4>
2019-01-20 15:47:04 +00:00
<vn-label-value label="Pay method"
value="{{$ctrl.summary.payMethod.name}}">
</vn-label-value>
<vn-label-value label="IBAN"
value="{{$ctrl.summary.iban}}">
</vn-label-value>
<vn-label-value label="Due day"
value="{{$ctrl.summary.dueDay}}">
</vn-label-value>
<vn-vertical>
<vn-check
label="Received LCR"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.hasLcr"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
<vn-check
label="Received core VNL"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.hasCoreVnl"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
<vn-check
label="Received B2B VNL"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.hasSepaVnl"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
</vn-vertical>
</vn-one>
<vn-one>
<h4 ng-show="$ctrl.isEmployee">
<a
2021-01-12 09:11:37 +00:00
ui-sref="client.card.address.index({id:$ctrl.client.id})"
target="_self">
<span translate vn-tooltip="Go to">Address</span>
2021-01-08 14:43:33 +00:00
</a>
2021-01-08 07:43:28 +00:00
</h4>
<h4
2021-01-12 09:11:37 +00:00
translate
ng-show="!$ctrl.isEmployee">
Address
</h4>
2019-01-20 15:47:04 +00:00
<vn-label-value label="Name"
value="{{$ctrl.summary.defaultAddress.nickname}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="City"
value="{{$ctrl.summary.defaultAddress.city}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Street" no-ellipsize
value="{{$ctrl.summary.defaultAddress.street}}">
</vn-label-value>
2019-01-20 15:47:04 +00:00
</vn-one>
<vn-one>
<h4 ng-show="$ctrl.isEmployee">
<a
2021-01-12 09:11:37 +00:00
ui-sref="client.card.webAccess({id:$ctrl.client.id})"
target="_self">
<span translate vn-tooltip="Go to">Web access</span>
2021-01-08 14:43:33 +00:00
</a>
2021-01-08 07:43:28 +00:00
</h4>
2021-01-12 09:11:37 +00:00
<h4
translate
ng-show="!$ctrl.isEmployee">Web access
</h4>
2019-01-20 15:47:04 +00:00
<vn-label-value label="User"
value="{{$ctrl.summary.account.name}}">
</vn-label-value>
<vn-vertical>
<vn-check
label="Enable web access"
2019-10-09 22:47:29 +00:00
ng-model="$ctrl.summary.account.active"
2019-01-20 15:47:04 +00:00
disabled="true">
</vn-check>
</vn-vertical>
</vn-one>
<vn-one>
<h4 translate>Business data</h4>
<vn-label-value label="Total greuge"
value="{{$ctrl.summary.totalGreuge | currency: 'EUR':2}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Mana"
value="{{$ctrl.summary.mana.mana | currency: 'EUR':2}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Rate"
2021-05-13 07:17:49 +00:00
value="{{$ctrl.claimRate($ctrl.summary.claimsRatio.priceIncreasing / 100) | percentage}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Average invoiced"
value="{{$ctrl.summary.averageInvoiced.invoiced | currency: 'EUR':2}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Claims"
value="{{$ctrl.claimingRate($ctrl.summary.claimsRatio.claimingRate) | percentage}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
</vn-one>
<vn-one>
<h4 translate>Financial information</h4>
<vn-label-value label="Risk"
value="{{$ctrl.summary.debt.debt | currency: 'EUR':2}}"
ng-class="{alert: $ctrl.summary.debt.debt > $ctrl.summary.credit}"
info="Invoices minus payments plus orders not yet invoiced">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Credit"
value="{{$ctrl.summary.credit | currency: 'EUR':2 }} "
ng-class="{alert: $ctrl.summary.credit > $ctrl.summary.creditInsurance ||
($ctrl.summary.credit && $ctrl.summary.creditInsurance == null)}"
info="Verdnatura's maximum risk">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Secured credit"
value="{{$ctrl.summary.creditInsurance | currency: 'EUR':2}} ({{$ctrl.summary.classifications[0].insurances[0].grade}})"
info="Solunion's maximum risk">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Balance"
value="{{$ctrl.summary.sumRisk | currency: 'EUR':2}}"
info="Invoices minus payments">
2019-01-20 15:47:04 +00:00
</vn-label-value>
<vn-label-value label="Balance due"
value="{{($ctrl.summary.defaulters[0].amount >= 0 ? $ctrl.summary.defaulters[0].amount : '-') | currency: 'EUR':2}}"
ng-class="{alert: $ctrl.summary.defaulters[0].amount}"
info="Deviated invoices minus payments">
2019-01-20 15:47:04 +00:00
</vn-label-value>
2021-06-16 07:43:07 +00:00
<vn-label-value label="Recovery since"
ng-if="$ctrl.summary.recovery.started"
value="{{$ctrl.summary.recovery.started | date:'dd/MM/yyyy'}}">
2019-01-20 15:47:04 +00:00
</vn-label-value>
2021-06-16 07:43:07 +00:00
</vn-one>
</vn-horizontal>
<vn-horizontal>
<vn-one>
2021-06-16 07:47:54 +00:00
<h4 translate>Latest tickets</h4>
2021-06-16 07:43:07 +00:00
<vn-table model="ticketsModel" class="scrollable sm">
<vn-thead>
<vn-tr>
<vn-th field="id" number>Id</vn-th>
<vn-th field="nickname" expand>Client</vn-th>
<vn-th field="packages" shrink>Packages</vn-th>
2021-06-16 07:43:07 +00:00
<vn-th field="shipped" shrink-date>Date</vn-th>
2021-06-18 14:34:34 +00:00
<vn-th>State</vn-th>
2021-06-16 07:43:07 +00:00
<vn-th shrink>Total</vn-th>
<vn-th></vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<a ng-repeat="ticket in ticketsModel.data"
class="clickable vn-tr search-result"
ui-sref="ticket.card.summary({id: {{::ticket.id}}})">
<vn-td number>{{::ticket.id}}</vn-td>
<vn-td expand>
<span
title="{{::ticket.nickname}}"
vn-click-stop="clientDescriptor.show($event, ticket.clientFk)"
class="link">
{{::ticket.nickname}}
</span>
</vn-td>
<vn-td shrink>
{{::ticket.packages}}
2021-06-16 07:43:07 +00:00
</vn-td>
<vn-td shrink-date>
<span class="chip {{::$ctrl.chipColor(ticket.shipped)}}">
{{::ticket.shipped | date: 'dd/MM/yyyy'}}
</span>
</vn-td>
<vn-td>
<span
ng-show="::ticket.refFk"
title="{{::ticket.refFk}}"
vn-click-stop="invoiceOutDescriptor.show($event, ticket.invoiceOutId)"
class="link">
{{::ticket.refFk}}
</span>
<span
ng-show="::!ticket.refFk"
class="chip {{::$ctrl.stateColor(ticket)}}">
{{::ticket.ticketState.state.name}}
2021-06-16 07:43:07 +00:00
</span>
</vn-td>
<vn-td shrink>
<span class="chip {{$ctrl.totalPriceColor(ticket)}}">
{{::(ticket.totalWithVat ? ticket.totalWithVat : 0) | currency: 'EUR': 2}}
</span>
</vn-td>
<vn-td actions>
<vn-icon-button
vn-anchor="::{
state: 'ticket.card.sale',
params: {id: ticket.id},
target: '_blank'
}"
vn-tooltip="Go to lines"
icon="icon-lines">
</vn-icon-button>
<vn-icon-button
vn-click-stop="$ctrl.preview(ticket)"
vn-tooltip="Preview"
icon="preview">
</vn-icon-button>
</vn-td>
</a>
</vn-tbody>
</vn-table>
<vn-pagination
model="ticketsModel"
class="vn-pt-xs"
scroll-selector="vn-table[model='ticketsModel']"
scroll-offset="100">
</vn-pagination>
2019-01-20 15:47:04 +00:00
</vn-one>
</vn-horizontal>
2020-09-03 13:11:16 +00:00
</vn-card>
2021-06-16 07:43:07 +00:00
<vn-client-descriptor-popover
vn-id="clientDescriptor">
</vn-client-descriptor-popover>
2020-09-03 13:11:16 +00:00
<vn-worker-descriptor-popover
vn-id="workerDescriptor">
2021-06-16 07:43:07 +00:00
</vn-worker-descriptor-popover>
<vn-invoice-out-descriptor-popover
vn-id="invoiceOutDescriptor">
</vn-invoice-out-descriptor-popover>
<vn-popup vn-id="summary">
<vn-ticket-summary
ticket="$ctrl.selectedTicket"
model="model">
</vn-ticket-summary>
</vn-popup>