Table style

This commit is contained in:
Juan Ferrer 2019-02-10 22:52:35 +01:00
parent 1ee60ea629
commit c0dd1624f6
39 changed files with 606 additions and 594 deletions

View File

@ -1,9 +1,11 @@
<div>
<vn-horizontal class="header">
<vn-auto>
<vn-icon icon="keyboard_arrow_left" class="pointer"
<vn-icon
icon="keyboard_arrow_left"
class="pointer"
ng-click="$ctrl.movePrevious($ctrl.skip)"
ng-show="$ctrl.displayControls"
ng-show="$ctrl.displayControls"/>
</vn-icon>
</vn-auto>
<vn-one>
@ -13,7 +15,9 @@
</strong>
</vn-one>
<vn-auto>
<vn-icon icon="keyboard_arrow_right" class="pointer"
<vn-icon
icon="keyboard_arrow_right"
class="pointer"
ng-click="$ctrl.moveNext($ctrl.skip)"
ng-show="$ctrl.displayControls"
</vn-icon>

View File

@ -1 +1,8 @@
<div></div>
<div>
<vn-empty-rows ng-if="$ctrl.model && !$ctrl.model.data" translate>
Enter a new search
</vn-empty-rows>
<vn-empty-rows ng-if="$ctrl.model.data.length === 0" translate>
No results
</vn-empty-rows>
</div>

View File

@ -1,4 +1,5 @@
@import "effects";
@import "variables";
vn-table {
display: block;
@ -10,55 +11,49 @@ vn-table {
display: table;
border-collapse: collapse;
vn-thead {
& > vn-thead {
display: table-header-group;
border-bottom: .15em solid $color-spacer;
vn-th[field] {
position: relative;
cursor: pointer
overflow: visible;
cursor: pointer;
&.active > :after {
color: $color-font;
opacity: 1;
}
vn-th[field] > * {
padding-right: 20px
&.desc > :after {
content: 'arrow_drop_down';
}
vn-th[field] > :after {
&.asc > :after {
content: 'arrow_drop_up';
}
& > :after {
font-family: 'Material Icons';
content: 'arrow_drop_down';
position: absolute;
padding-left: 2px;
color: $color-spacer;
opacity: 0
opacity: 0;
}
vn-th[field] > :hover:after {
opacity: 1
}
vn-th[field].active > :after {
color: $color-font;
opacity: 1
}
vn-th[field].desc > :after {
content: 'arrow_drop_down';
}
vn-th[field].asc > :after {
content: 'arrow_drop_up';
&:hover > :after {
opacity: 1;
}
}
vn-tbody {
display: table-row-group
}
vn-tfoot {
& > vn-tbody {
display: table-row-group;
}
& > vn-tfoot {
border-top: .15em solid $color-spacer;
display: table-footer-group
}
vn-tr, a.vn-tr {
display: table-row
}
vn-empty-rows {
display: table-caption;
caption-side: bottom;
text-align: center;
padding: 10px
}
vn-thead, vn-tbody, vn-tfoot {
vn-tr, a.vn-tr {
& > * {
display: table-row;
vn-th {
@ -68,7 +63,11 @@ vn-table {
vertical-align: middle;
display: table-cell;
text-align: left;
padding: 10px;
padding: .6em .5em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 6em;
&[number] {
text-align: right;
@ -76,40 +75,86 @@ vn-table {
&[center] {
text-align: center;
}
&[shrink] {
width: 1px;
text-align: center;
}
&[expand] {
max-width: 40em;
min-width: 0;
}
vn-icon.bright, i.bright {
color: #f7931e;
}
}
vn-th {
font-weight: bold;
padding-top: 1em;
padding-bottom: .8em;
}
& > :last-child {
padding-right: 1em;
}
& > :first-child {
padding-left: 1em;
}
}
a.vn-tr {
color: inherit;
}
}
vn-thead, vn-tbody, vn-empty-rows {
border-bottom: 3px solid $color-spacer;
}
vn-tbody > vn-tr, vn-tbody > a.vn-tr{
border-bottom: 1px solid $color-spacer;
transition: background-color 200ms ease-in-out;
vn-tbody > * {
border-bottom: .1em solid $color-spacer-light;
&,
& > vn-td,
& > vn-td > .chip {
transition: background-color 200ms ease-in-out;
}
&:last-child {
border-bottom: none;
}
&.clickable {
@extend %clickable;
}
&.success, & > vn-td.success, & > vn-td-editable.success {
background-color: rgba(163, 209, 49, 0.3);
&:hover {
background-color: rgba(163, 209, 49, 0.5);
& > vn-td > .chip {
padding: .3em;
border-radius: .3em;
}
&.notice,
& > .notice,
& > vn-td > .notice {
color: white;
background-color: $color-notice;
}
&.warning, & > vn-td.warning, & > vn-td-editable.warning {
background-color: rgba(247, 147, 30, 0.3);
&:hover {
background-color: rgba(247, 147, 30, 0.5);
&.success,
& > .success,
& > vn-td > .success {
color: white;
background-color: $color-success;
}
&.warning,
& > .warning,
& > vn-td > .warning {
color: white;
background-color: $color-main;
}
&.alert,
& > .alert,
& > vn-td > .alert {
color: white;
background-color: $color-alert;
}
}
}
vn-empty-rows {
display: table-caption;
caption-side: bottom;
text-align: center;
padding: 1.5em;
width: 100%;
box-sizing: border-box;
color: $color-font-secondary;
}
vn-autocomplete {
div.mdl-textfield {

View File

@ -1,3 +1,3 @@
<div translate ng-click="$ctrl.onToggleOrder()">
<div translate">
<ng-transclude></ng-transclude>
</div>

View File

@ -4,6 +4,7 @@ export default class Th {
constructor($element) {
this._order = 'ASC';
this.column = $element[0];
$element.on('click', () => this.onToggleOrder());
}
/**
@ -35,11 +36,11 @@ export default class Th {
* Toggle order ASC/DESC
*/
toggleOrder() {
if (this.order === 'ASC') {
if (this.order === 'ASC')
this.order = 'DESC';
} else {
else
this.order = 'ASC';
}
}
/**
@ -49,11 +50,11 @@ export default class Th {
onToggleOrder() {
if (!this.field) return;
if (this.table.field == this.field) {
if (this.table.field == this.field)
this.toggleOrder();
} else {
else
this.table.setOrder(this.field, this.order);
}
this.updateArrow();
@ -66,11 +67,11 @@ export default class Th {
updateArrow() {
this.column.classList.remove('asc', 'desc');
if (this.order === 'DESC') {
if (this.order === 'DESC')
this.column.classList.add('desc');
} else {
else
this.column.classList.add('asc');
}
}
}

View File

@ -18,15 +18,16 @@ input[type=reset]::-moz-focus-inner {
-ms-user-select: none;
user-select: none;
}
a {
a , .link{
color: $color-main;
text-decoration: none;
}
.link {
text-decoration: underline;
cursor: pointer;
&:hover {
color: $color-main!important;
text-decoration: underline;
}
}
@ -206,16 +207,11 @@ fieldset[disabled] .mdl-textfield .mdl-textfield__label,
.counter {
@extend %active;
display: inline-block;
text-align: center;
border-radius: 3px;
min-width: 1.5em;
padding: 5px
}
.counter.small {
&.small {
font-size: 0.7em
}
}
.vn-grid {
border-collapse: collapse;

View File

@ -39,6 +39,7 @@ $color-success: #a3d131;
$color-notice: #32b1ce;
$color-alert: #f42121;
$color-spacer: #9b9b9b;
$color-spacer-light: #ddd;
$color-input-underline: rgba(0, 0, 0, .12);
$color-shadow: rgba(0, 0, 0, .2);
$color-hightlight: rgba(0, 0, 0, .15);
@ -71,6 +72,7 @@ $color-success: #a3d131;
$color-notice: #32b1ce;
$color-alert: #f42121;
$color-spacer: #9b9b9b;
$color-spacer-light: #ddd;
$color-input-underline: rgba(255, 255, 255, .12);
$color-shadow: rgba(0, 0, 0, .2);
$color-hightlight: rgba(255, 255, 255, .15);

View File

@ -17,7 +17,7 @@
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v pad-medium>
<vn-card margin-medium-v>
<vn-table model="model">
<vn-thead>
<vn-tr>
@ -47,9 +47,6 @@
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="!model.data || model.data.length === 0" translate>
Enter a new search
</vn-empty-rows>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>
@ -61,7 +58,6 @@
<vn-zone-summary zone="$ctrl.zoneSelected"></vn-zone-summary>
</tpl-body>
</vn-dialog>
<a ui-sref="zone.create" vn-tooltip="New zone" vn-bind="+" fixed-bottom-right>
<vn-float-button icon="add"></vn-float-button>
</a>

View File

@ -43,21 +43,23 @@
<vn-tr>
<vn-th number>Id</vn-th>
<vn-th>Destination</vn-th>
<vn-th number>Landed</vn-th>
<vn-th>Landed</vn-th>
<vn-th number>Quantity</vn-th>
<vn-th number>Description</vn-th>
<vn-th>Description</vn-th>
<vn-th number>Price</vn-th>
<vn-th number>Disc.</vn-th>
<vn-th number>Total</vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="saleClaimed in $ctrl.salesClaimed" vn-repeat-last on-last="$ctrl.focusLastInput()">
<vn-tr
ng-repeat="saleClaimed in $ctrl.salesClaimed"
vn-repeat-last on-last="$ctrl.focusLastInput()">
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, saleClaimed.sale.itemFk)"
pointer class="link">
{{("000000"+saleClaimed.sale.itemFk).slice(-6)}}
class="link">
{{saleClaimed.sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td>
@ -72,18 +74,16 @@
on-change="$ctrl.setClaimDestination(saleClaimed.id, value)">
</vn-autocomplete>
</vn-td>
<vn-td number>{{saleClaimed.sale.ticket.landed | dateTime: 'dd/MM/yyyy'}}</vn-td>
<vn-td>{{saleClaimed.sale.ticket.landed | dateTime: 'dd/MM/yyyy'}}</vn-td>
<vn-td number>{{saleClaimed.sale.quantity}}</vn-td>
<vn-td number>{{saleClaimed.sale.concept}}</vn-td>
<vn-td expand>{{saleClaimed.sale.concept}}</vn-td>
<vn-td number>{{saleClaimed.sale.price | currency: 'EUR':2}}</vn-td>
<vn-td number>{{saleClaimed.sale.discount}} %</vn-td>
<vn-td number>
{{(saleClaimed.sale.quantity * saleClaimed.sale.price) -
((saleClaimed.sale.discount *
(saleClaimed.sale.quantity * saleClaimed.sale.price))/100) | currency: 'EUR':2
}}
{{saleClaimed.sale.quantity * saleClaimed.sale.price *
((100 - saleClaimed.sale.discount) / 100) | currency: 'EUR':2}}
</vn-td>
<vn-td number>
<vn-td shrink>
<vn-icon-button
vn-tooltip="Remove line"
icon="delete"
@ -93,9 +93,6 @@
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-vertical>
</vn-card>
@ -114,43 +111,40 @@
-->
<!-- Add Lines Dialog -->
<vn-dialog
vn-id="addSales">
<vn-dialog vn-id="addSales">
<tpl-body>
<h3 translate>Claimable sales from ticket</h3><h3> {{$ctrl.claim.ticketFk}}</h3>
<vn-table>
<vn-thead>
<vn-tr>
<vn-th number>Id</vn-th>
<vn-th number>Landed</vn-th>
<vn-th>Landed</vn-th>
<vn-th number>Quantity</vn-th>
<vn-th number>Description</vn-th>
<vn-th>Description</vn-th>
<vn-th number>Price</vn-th>
<vn-th number>Disc.</vn-th>
<vn-th number>Total</vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="sale in $ctrl.salesToClaim" class="clickable" ng-click="$ctrl.addClaimedSale(sale.saleFk)">
<vn-tr
ng-repeat="sale in $ctrl.salesToClaim"
class="clickable"
ng-click="$ctrl.addClaimedSale(sale.saleFk)">
<vn-td number>{{sale.saleFk}}</vn-td>
<vn-td number>{{sale.landed | dateTime: 'dd/MM/yyyy'}}</vn-td>
<vn-td>{{sale.landed | dateTime: 'dd/MM/yyyy'}}</vn-td>
<vn-td number>{{sale.quantity}}</vn-td>
<vn-td number>{{sale.concept}}</vn-td>
<vn-td expand>{{sale.concept}}</vn-td>
<vn-td number>{{sale.price | currency: 'EUR':2}}</vn-td>
<vn-td number>{{sale.discount}} %</vn-td>
<vn-td number>
{{(sale.quantity * sale.price) - ((sale.discount * (sale.quantity * sale.price))/100) | currency: 'EUR':2}}
{{sale.quantity * sale.price * ((100 - sale.discount) * / 100) | currency: 'EUR':2}}
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</tpl-body>
</vn-dialog>
<vn-crud-model
vn-id="lastTicketsModel"
url="/claim/api/Tickets"
@ -183,6 +177,7 @@
</vn-table>
</div>
</vn-popover>
<vn-item-descriptor-popover vn-id="descriptor"
<vn-item-descriptor-popover
vn-id="descriptor"
quicklinks="$ctrl.quicklinks">
</vn-item-descriptor-popover>

View File

@ -23,13 +23,14 @@
<vn-thead>
<vn-tr>
<vn-th number>Id</vn-th>
<vn-th>Landed</vn-th>
<vn-th center>Landed</vn-th>
<vn-th number>Quantity</vn-th>
<vn-th number>Claimed</vn-th>
<vn-th>Claimed</vn-th>
<vn-th>Description</vn-th>
<vn-th number>Price</vn-th>
<vn-th number>Disc.</vn-th>
<vn-th number>Total</vn-th>
<vn-th></vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
@ -37,13 +38,13 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, saleClaimed.sale.itemFk)"
pointer class="link">
class="link">
{{::saleClaimed.sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td>{{::saleClaimed.sale.ticket.landed | dateTime:'dd/MM/yyyy'}}</vn-td>
<vn-td center>{{::saleClaimed.sale.ticket.landed | dateTime:'dd/MM/yyyy'}}</vn-td>
<vn-td number>{{::saleClaimed.sale.quantity}}</vn-td>
<vn-td number>
<vn-td>
<vn-textfield
vn-focus
model="saleClaimed.quantity"
@ -51,13 +52,13 @@
type="text">
</vn-textfield>
</vn-td>
<vn-td>{{::saleClaimed.sale.concept}}</vn-td>
<vn-td expand>{{::saleClaimed.sale.concept}}</vn-td>
<vn-td number>{{::saleClaimed.sale.price | currency: 'EUR':2}}</vn-td>
<vn-td number>{{::saleClaimed.sale.discount}} %</vn-td>
<vn-td number>
{{::$ctrl.getSaleTotal(saleClaimed.sale) | currency: 'EUR':2}}
</vn-td>
<vn-td number>
<vn-td shrink>
<vn-icon-button
vn-tooltip="Remove sale"
icon="delete"
@ -67,9 +68,6 @@
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="$ctrl.salesClaimed.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-vertical>
</vn-card>

View File

@ -18,13 +18,13 @@
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v pad-medium compact>
<vn-card margin-medium-v compact>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th field="id" number>Id</vn-th>
<vn-th field="clientFk">Client</vn-th>
<vn-th field="created">Created</vn-th>
<vn-th field="created" center>Created</vn-th>
<vn-th field="workerFk">Worker</vn-th>
<vn-th field="claimStateFk">State</vn-th>
<vn-th></vn-th>
@ -36,15 +36,19 @@
class="{{::$ctrl.compareDate(ticket.shipped)}} clickable vn-tr searchResult"
ui-sref="claim.card.summary({id: claim.id})">
<vn-td number>{{::claim.id}}</vn-td>
<vn-td>
<vn-td expand>
<span class="link" ng-click="$ctrl.showDescriptor($event, claim.client.id)">
{{::claim.client.name}}
</span>
</vn-td>
<vn-td>{{::claim.created | date:'dd/MM/yyyy'}}</vn-td>
<vn-td>{{::claim.worker.user.nickname}}</vn-td>
<vn-td class="{{::claim.claimState.description}}">{{::claim.claimState.description}}</vn-td>
<vn-td center>{{::claim.created | date:'dd/MM/yyyy'}}</vn-td>
<vn-td expand>{{::claim.worker.user.nickname}}</vn-td>
<vn-td>
<span class="chip {{::$ctrl.stateColor(claim)}}">
{{::claim.claimState.description}}
</span>
</vn-td>
<vn-td shrink>
<vn-icon-button
ng-click="$ctrl.preview($event, claim)"
vn-tooltip="Preview"

View File

@ -1,5 +1,4 @@
import ngModule from '../module';
import './style.scss';
export default class Controller {
constructor($scope) {
@ -55,6 +54,17 @@ export default class Controller {
}
}
stateColor(claim) {
switch (claim.claimState.description) {
case 'Pendiente':
return 'warning';
case 'Gestionado':
return 'notice';
case 'Resuelto':
return 'success';
}
}
showDescriptor(event, clientFk) {
this.$.descriptor.clientFk = clientFk;
this.$.descriptor.parent = event.target;

View File

@ -1,16 +0,0 @@
@import "variables";
vn-claim-index {
.Pendiente {
background-color: $color-main-medium;
}
.Gestionado {
background-color: $color-notice-medium;
}
.Anulado, .Cuestionado {
background-color: white;
}
.Resuelto {
background-color: $color-success-medium;
}
}

View File

@ -55,27 +55,22 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, saleClaimed.sale.itemFk)"
pointer class="link">
{{("000000"+saleClaimed.sale.itemFk).slice(-6)}}
class="link">
{{saleClaimed.sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td>{{saleClaimed.sale.ticket.landed | dateTime: 'dd/MM/yyyy'}}</vn-td>
<vn-td number>{{saleClaimed.sale.quantity}}</vn-td>
<vn-td number>{{saleClaimed.quantity}}</vn-td>
<vn-td>{{saleClaimed.sale.concept}}</vn-td>
<vn-td expand>{{saleClaimed.sale.concept}}</vn-td>
<vn-td number>{{saleClaimed.sale.price | currency: 'EUR':2}}</vn-td>
<vn-td number>{{saleClaimed.sale.discount}} %</vn-td>
<vn-td number>
{{(saleClaimed.sale.quantity * saleClaimed.sale.price) -
((saleClaimed.sale.discount *
(saleClaimed.sale.quantity * saleClaimed.sale.price))/100) | currency: 'EUR':2
}}
{{saleClaimed.sale.quantity * saleClaimed.sale.price *
((100 - saleClaimed.sale.discount) / 100) | currency: 'EUR':2}}
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-auto>
<vn-auto>
@ -99,9 +94,6 @@
<vn-td>{{development.claimRedelivery.description}}</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-auto>
<vn-auto>
@ -110,10 +102,10 @@
<vn-thead>
<vn-tr>
<vn-th number>Id</vn-th>
<vn-th number>Destination</vn-th>
<vn-th>Destination</vn-th>
<vn-th number>Landed</vn-th>
<vn-th number>Quantity</vn-th>
<vn-th number>Description</vn-th>
<vn-th>Description</vn-th>
<vn-th number>Price</vn-th>
<vn-th number>Disc.</vn-th>
<vn-th number>Total</vn-th>
@ -124,28 +116,23 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, action.sale.itemFk)"
pointer class="link">
{{("000000"+action.sale.itemFk).slice(-6)}}
class="link">
{{action.sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td number>{{action.sale.id}}</vn-td>
<vn-td number>{{action.claimBeggining.description}}</vn-td>
<vn-td expand>{{action.claimBeggining.description}}</vn-td>
<vn-td number>{{action.sale.ticket.landed | dateTime: 'dd/MM/yyyy'}}</vn-td>
<vn-td number>{{action.sale.quantity}}</vn-td>
<vn-td number>{{action.sale.concept}}</vn-td>
<vn-td expand>{{action.sale.concept}}</vn-td>
<vn-td number>{{action.sale.price}}</vn-td>
<vn-td number>{{action.sale.discount}} %</vn-td>
<vn-td number>
{{(action.sale.quantity * action.sale.price) -
((action.sale.discount *
(action.sale.quantity * action.sale.price))/100) | currency: 'EUR':2
}}
{{action.sale.quantity * action.sale.price *
((100 - action.sale.discount) / 100) | currency: 'EUR':2}}
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-auto>
</vn-horizontal>

View File

@ -91,7 +91,6 @@
</vn-horizontal>
</div>
<vn-icon-button
pointer
vn-bind="+"
vn-tooltip="Add note"
icon="add_circle"

View File

@ -2,7 +2,8 @@
vn-id="model"
url="item/api/Items/getDiary"
filter="$ctrl.filter"
data="sales" auto-load="false">
data="sales"
auto-load="false">
</vn-crud-model>
<vn-vertical>
<vn-card pad-large compact>
@ -32,13 +33,22 @@
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-class="::{'isToday': $ctrl.isToday(sale.date), 'isIn': sale.in, 'balanceNegative': sale.balance < 0}"
ng-repeat="sale in sales" vn-repeat-last on-last="$ctrl.scrollToLine()">
<vn-td class="date">
<vn-tr
ng-class="::{
'isToday': $ctrl.isToday(sale.date),
'isIn': sale.in,
'balanceNegative': sale.balance < 0}"
ng-repeat="sale in sales"
vn-repeat-last
on-last="$ctrl.scrollToLine()">
<vn-td>
<span class="chip date">
{{::sale.date | date:'dd/MM/yyyy' }}
</span>
</vn-td>
<vn-td number>
<span ng-class="::{'link pointer': sale.isTicket}"
<span
ng-class="::{link: sale.isTicket}"
ng-click="$ctrl.showDescriptor($event, sale)"
class="id">
{{::sale.origin | dashIfEmpty}}
@ -48,7 +58,7 @@
<vn-td>{{::sale.reference | dashIfEmpty}}</vn-td>
<vn-td class="truncate">
<span
ng-class="::{'link pointer': sale.isTicket}"
ng-class="::{link: sale.isTicket}"
ng-click="$ctrl.showClientDescriptor($event, sale)">
{{::sale.name | dashIfEmpty}}
</span>
@ -56,15 +66,12 @@
<vn-td number class="in">{{::sale.in | dashIfEmpty}}</vn-td>
<vn-td number>{{::sale.out | dashIfEmpty}}</vn-td>
<vn-td number class="balance">
<span class="balanceSpan">
<span class="chip balanceSpan">
{{::sale.balance | dashIfEmpty}}
</span>
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-vertical>
</vn-card>
@ -72,7 +79,6 @@
<vn-ticket-descriptor-popover
vn-id="descriptor">
</vn-ticket-descriptor-popover>
<vn-client-descriptor-popover
vn-id="clientDescriptor">
</vn-client-descriptor-popover>

View File

@ -4,23 +4,22 @@ vn-item-diary {
& > vn-vertical {
display: block;
}
& vn-horizontal {
vn-horizontal {
justify-content: center;
}
& vn-autocomplete > div{
vn-autocomplete > div {
width: 400px;
}
.balanceNegative .balance {
color: $color-alert;
font-weight: bold;
}
.isIn .in {
color: $color-success;
font-weight: bold;
}
.isToday .date {
background-color: rgba(247, 147, 30, 0.5);
font-weight: bold;
color: white;
background-color: $color-main;
}
.truncate {
max-width: 250px;

View File

@ -2,7 +2,8 @@
vn-id="model"
url="/item/api/Items/getLastEntries"
filter="::$ctrl.filter"
data="entries" auto-load="false">
data="entries"
auto-load="false">
</vn-crud-model>
<vn-vertical>
<vn-card pad-large>
@ -19,9 +20,9 @@
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th number vn-tooltip="Ignored">Ig</vn-th>
<vn-th number>Warehouse</vn-th>
<vn-th number>Landed</vn-th>
<vn-th vn-tooltip="Ignored" center>Ig</vn-th>
<vn-th>Warehouse</vn-th>
<vn-th>Landed</vn-th>
<vn-th number>Entry</vn-th>
<vn-th number vn-tooltip="Price Per Unit">P.P.U</vn-th>
<vn-th number vn-tooltip="Price Per Package">P.P.P</vn-th>
@ -32,39 +33,40 @@
<vn-th number>Quantity</vn-th>
<vn-th number class="expendable">Cost</vn-th>
<vn-th number>Cube</vn-th>
<vn-th number class="expendable">Provider</vn-th>
<vn-th class="expendable">Provider</vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="entry in entries">
<vn-td number>
<vn-td center>
<vn-check
field="entry.isIgnored"
disabled="true">
</vn-check>
</vn-td>
<vn-td number>{{entry.warehouse| dashIfEmpty}}</vn-td>
<vn-td number>{{entry.landed | date:'dd/MM/yyyy HH:mm'}}</vn-td>
<vn-td>{{entry.warehouse| dashIfEmpty}}</vn-td>
<vn-td>{{entry.landed | date:'dd/MM/yyyy HH:mm'}}</vn-td>
<vn-td number>{{entry.entryFk | dashIfEmpty}}</vn-td>
<vn-td number>{{entry.price2 | dashIfEmpty}}</vn-td>
<vn-td number>{{entry.price3 | dashIfEmpty}}</vn-td>
<vn-td number class="expendable">{{entry.stickers | dashIfEmpty}}</vn-td>
<vn-td number>
<div ng-class="{'counter': entry.groupingMode == 2}">{{entry.packing | dashIfEmpty}}</div>
<span class="chip" ng-class="{counter: entry.groupingMode == 2}">
{{entry.packing | dashIfEmpty}}
</span>
</vn-td>
<vn-td number>
<span ng-class="{'counter': entry.groupingMode == 1}">{{entry.grouping | dashIfEmpty}}</span>
<span class="chip" ng-class="{counter: entry.groupingMode == 1}">
{{entry.grouping | dashIfEmpty}}
</span>
</vn-td>
<vn-td number class="expendable">{{entry.stems | dashIfEmpty}}</vn-td>
<vn-td number>{{entry.quantity}}</vn-td>
<vn-td number class="expendable">{{entry.buyingValue | dashIfEmpty}}</vn-td>
<vn-td number>{{entry.packageFk | dashIfEmpty}}</vn-td>
<vn-td number class="expendable">{{entry.supplier | dashIfEmpty}}</vn-td>
<vn-td class="expendable">{{entry.supplier | dashIfEmpty}}</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-vertical>
<vn-pagination model="model"></vn-pagination>

View File

@ -43,7 +43,7 @@
<img
ng-src="//verdnatura.es/vn-image-data/catalog/200x200/{{::item.image}}"
zoom-image="//verdnatura.es/vn-image-data/catalog/1600x900/{{::item.image}}"
on-error-src pointer/>
on-error-src/>
</vn-one>
<vn-one pad-small class="description ellipsize">
<vn-vertical>

View File

@ -17,41 +17,41 @@
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v pad-medium>
<vn-card margin-medium-v>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th field="id" default-order="DESC">Id</vn-th>
<vn-th field="id" default-order="DESC" number>Id</vn-th>
<vn-th field="clientFk">Client</vn-th>
<vn-th field="clientFk">Sales person</vn-th>
<vn-th field="isConfirmed">Confirmed</vn-th>
<vn-th field="isConfirmed" center>Confirmed</vn-th>
<vn-th field="sourceApp">Created from</vn-th>
<vn-th field="created">Created</vn-th>
<vn-th field="created">Landed</vn-th>
<vn-th field="created" center>Created</vn-th>
<vn-th field="created" center>Landed</vn-th>
<vn-th field="companyFk">Company</vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="order in orders" class="clickable searchResult"
ui-sref="order.card.summary({id: {{::order.id}}})">
<vn-td>{{::order.id}}</vn-td>
<vn-td>
<vn-td number>{{::order.id}}</vn-td>
<vn-td expand>
<span class="link" ng-click="$ctrl.showDescriptor($event, order.clientFk)">
{{::order.client.name}}
</span>
</vn-td>
<vn-td>{{::order.client.salesPerson.user.nickname}}</vn-td>
<vn-td>
<vn-td center>
<vn-check
field="order.isConfirmed"
disabled="true">
</vn-check>
</vn-td>
<vn-td>{{::order.sourceApp}}</vn-td>
<vn-td>{{::order.created | date:'dd/MM/yyyy HH:mm'}}</vn-td>
<vn-td>{{::order.landed | date:'dd/MM/yyyy'}}</vn-td>
<vn-td center>{{::order.created | date:'dd/MM/yyyy HH:mm'}}</vn-td>
<vn-td center>{{::order.landed | date:'dd/MM/yyyy'}}</vn-td>
<vn-td>{{::order.company.code}}</vn-td>
<vn-td>
<vn-td shrink>
<vn-icon-button
ng-click="$ctrl.preview($event, order)"
vn-tooltip="Preview"

View File

@ -20,8 +20,8 @@
<vn-table>
<vn-thead>
<vn-tr>
<vn-th style="text-align: center">Item</vn-th>
<vn-th style="text-align: center">ID</vn-th>
<vn-th></vn-th>
<vn-th number>Id</vn-th>
<vn-th>Description</vn-th>
<vn-th>Warehouse</vn-th>
<vn-th>Shipped</vn-th>
@ -32,26 +32,26 @@
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="row in $ctrl.rows">
<vn-td style="text-align: center">
<vn-td shrink>
<img
ng-src="//verdnatura.es/vn-image-data/catalog/50x50/{{::row.item.image}}"
zoom-image="//verdnatura.es/vn-image-data/catalog/1600x900/{{::row.item.image}}"
on-error-src/>
</vn-td>
<vn-td>
<vn-td number>
<span ng-click="$ctrl.showDescriptor($event, row.itemFk)"
pointer number class="link">
{{("000000"+row.itemFk).slice(-6)}}
class="link">
{{row.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td><vn-fetched-tags max-length="6" item="row.item"/></vn-td>
<vn-td expand><vn-fetched-tags max-length="6" item="row.item"/></vn-td>
<vn-td>{{row.warehouse.name}}</vn-td>
<vn-td>{{row.shipped | date: 'dd/MM/yyyy'}}</vn-td>
<vn-td number>{{row.quantity}}</vn-td>
<vn-td number>
{{row.price | currency: 'EUR':2}}
</vn-td>
<vn-td ng-if="!$ctrl.order.isConfirmed">
<vn-td shrink ng-if="!$ctrl.order.isConfirmed">
<vn-icon-button
vn-tooltip="Remove item"
icon="delete"
@ -61,9 +61,6 @@
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="$ctrl.rows.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-vertical>
</vn-card>
@ -74,11 +71,9 @@
</vn-button>
</vn-button-bar>
</vn-vertical>
<vn-item-descriptor-popover
vn-id="descriptor">
</vn-item-descriptor-popover>
<vn-confirm
vn-id="delete-row"
on-response="$ctrl.deleteRow(response)"

View File

@ -39,20 +39,20 @@
<p><vn-label><strong>Total</strong></vn-label> <strong>{{$ctrl.summary.total | currency: 'EUR':2}}</strong></p>
</vn-one>
<vn-auto>
<table class="vn-grid">
<thead>
<tr>
<th></th>
<th number translate>Item</th>
<th translate>Description</th>
<th number translate>Quantity</th>
<th number translate>Price</th>
<th number translate>Amount</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in $ctrl.summary.rows track by row.id">
<td>
<vn-table class="vn-grid">
<vn-thead>
<vn-tr>
<vn-th></vn-th>
<vn-th number>Item</vn-th>
<vn-th>Description</vn-th>
<vn-th number>Quantity</vn-th>
<vn-th number>Price</vn-th>
<vn-th number>Amount</vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="row in $ctrl.summary.rows track by row.id">
<vn-td>
<vn-icon
ng-show="row.visible || row.available"
color-main
@ -60,23 +60,20 @@
vn-tooltip="Visible: {{::row.visible || 0}} <br> {{::$ctrl.translate.instant('Available')}} {{::row.available || 0}}">
</vn-icon>
<vn-icon ng-show="row.reserved" icon="icon-reserva"></vn-icon>
</td>
<td number>
</vn-td>
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, row.itemFk)"
class="link" pointer>
{{("000000"+row.itemFk).slice(-6)}}
class="link">
{{row.itemFk | zeroFill:6}}
</span>
</td>
<td><vn-fetched-tags max-length="6" item="row.item"/></td>
<td number>{{::row.quantity}}</td>
<td number>{{::row.price | currency: 'EUR':2}}</td>
<td number>{{::row.quantity * row.price | currency: 'EUR':2}}</td>
</tr>
<tr ng-if="!$ctrl.summary.rows" class="list list-element">
<td colspan="8" style="text-align: center" translate>No results</td>
</tr>
</tbody>
</vn-td>
<vn-td expand><vn-fetched-tags max-length="6" item="row.item"/></vn-td>
<vn-td number>{{::row.quantity}}</vn-td>
<vn-td number>{{::row.price | currency: 'EUR':2}}</vn-td>
<vn-td number>{{::row.quantity * row.price | currency: 'EUR':2}}</vn-td>
</vn-tr>
</vn-tbody>
</table>
</vn-auto>
</vn-horizontal>

View File

@ -34,7 +34,7 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, row.itemFk)"
pointer class="link">
class="link">
{{::row.itemFk}}
</span>
</vn-td>

View File

@ -40,36 +40,34 @@
</tfoot>
<tbody ng-repeat="sale in components track by sale.id">
<tr>
<td rowspan="{{
::sale.components.length + 1
}}" number>
<span pointer
<td rowspan="{{::sale.components.length + 1}}" number>
<span
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
class="link">
{{("000000"+sale.itemFk).slice(-6)}}
{{sale.itemFk | zeroFill:6}}
</span>
</td>
<td rowspan="{{
::sale.components.length + 1
}}"><vn-fetched-tags max-length="6" item="sale.item"/></td>
<td rowspan="{{
::sale.components.length + 1
}}" number>{{::sale.quantity}}</td>
<td rowspan="{{::sale.components.length + 1}}">
<vn-fetched-tags max-length="6" item="sale.item"/>
</td>
<td rowspan="{{::sale.components.length + 1}}" number>
{{::sale.quantity}}
</td>
</tr>
<tr
ng-repeat="component in sale.components track by component.componentFk">
<td ng-class="::{
first: $index == 0,last: $index == sale.components.length - 1
}">{{::component.componentRate.componentType.type}}</td>
<td ng-class="::{
first: $index == 0,last: $index == sale.components.length - 1
}">{{::component.componentRate.name}}</td>
<td ng-class="::{
first: $index == 0,last: $index == sale.components.length - 1
}" number>{{::component.value | currency: 'EUR':3}}</td>
<td ng-class="::{
first: $index == 0,last: $index == sale.components.length - 1
}" number>{{::sale.quantity * component.value | currency: 'EUR':3}}</td>
<td ng-class="::{first: $index == 0,last: $index == sale.components.length - 1}">
{{::component.componentRate.componentType.type}}
</td>
<td ng-class="::{first: $index == 0,last: $index == sale.components.length - 1}">
{{::component.componentRate.name}}
</td>
<td ng-class="::{first: $index == 0,last: $index == sale.components.length - 1}" number>
{{::component.value | currency: 'EUR':3}}
</td>
<td ng-class="::{first: $index == 0,last: $index == sale.components.length - 1}" number>
{{::sale.quantity * component.value | currency: 'EUR':3}}
</td>
</tr>
<tr ng-if="model.data.length === 0" class="list list-element">
<td colspan="7" style="text-align: center" translate>No results</td>
@ -77,9 +75,9 @@
</tbody>
</table>
</vn-vertical>
<!-- <vn-paging vn-one margin-large-top index="index" total="index.model.count"></vn-paging> -->
</vn-card>
</vn-vertical>
<vn-item-descriptor-popover vn-id="descriptor"
<vn-item-descriptor-popover
vn-id="descriptor"
quicklinks="$ctrl.quicklinks">
</vn-item-descriptor-popover>

View File

@ -1,4 +1,5 @@
<vn-crud-model auto-load="false"
<vn-crud-model
auto-load="false"
vn-id="model"
url="/ticket/api/Expeditions/filter"
link="{ticketFk: $ctrl.$stateParams.id}"
@ -31,7 +32,7 @@
</vn-td>
<vn-td number>
<span
ng-class="{'link pointer':expedition.itemFk}"
ng-class="{link: expedition.itemFk}"
ng-click="$ctrl.showDescriptor($event, expedition.itemFk)">
{{expedition.itemFk | zeroFill:6}}
</span>
@ -44,9 +45,6 @@
<vn-td>{{::expedition.created | date:'dd/MM/yyyy HH:mm'}}</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-vertical>
<vn-pagination model="model"></vn-pagination>

View File

@ -10,13 +10,12 @@
<div class="vn-list">
<vn-card pad-medium-h>
<vn-horizontal>
<vn-three>
<vn-searchbar
style="width: 100%"
panel="vn-ticket-search-panel"
on-search="$ctrl.onSearch($params)"
vn-focus>
</vn-searchbar>
</vn-three>
<vn-icon-menu
vn-id="more-button"
icon="more_vert"
@ -29,7 +28,7 @@
</vn-horizontal>
</vn-card>
</div>
<vn-card margin-medium-v pad-medium>
<vn-card margin-medium-v>
<vn-table model="model" auto-load="false">
<vn-thead>
<vn-tr>
@ -48,21 +47,26 @@
</vn-tr>
</vn-thead>
<vn-tbody>
<a ng-repeat="ticket in tickets" class="clickable vn-tr searchResult"
<a ng-repeat="ticket in tickets"
class="clickable vn-tr searchResult"
ui-sref="ticket.card.summary({id: {{::ticket.id}}})">
<vn-td>
<vn-icon ng-show="ticket.problem" class="bright"
<vn-td shrink>
<vn-icon
ng-show="ticket.problem"
class="bright"
vn-tooltip="{{ticket.problem}}"
icon="warning">
</vn-icon>
</vn-td>
<vn-td number>{{::ticket.id}}</vn-td>
<vn-td>{{::ticket.userNickname | dashIfEmpty}}</vn-td>
<vn-td class="{{$ctrl.compareDate(ticket.shipped)}}">
<vn-td>
<span class="chip {{$ctrl.compareDate(ticket.shipped)}}">
{{::ticket.shipped | dateTime: 'dd/MM/yyyy'}}
</span>
</vn-td>
<vn-td>{{::ticket.shipped | dateTime: 'HH:mm'}}</vn-td>
<vn-td>
<vn-td expand>
<span
class="link"
ng-click="$ctrl.showDescriptor($event, ticket.clientFk)">
@ -70,11 +74,15 @@
</span>
</vn-td>
<vn-td>{{::ticket.province}}</vn-td>
<vn-td class="{{$ctrl.stateColor(ticket)}}">{{::ticket.state}}</vn-td>
<vn-td>
<span class="chip {{$ctrl.stateColor(ticket)}}">
{{::ticket.state}}
</span>
</vn-td>
<vn-td>{{::ticket.agencyMode}}</vn-td>
<vn-td>{{::ticket.warehouse}}</vn-td>
<vn-td number>{{::ticket.total | currency: 'EUR': 2}}</vn-td>
<vn-td number>
<vn-td shrink>
<vn-icon-button
ng-click="$ctrl.goToLines($event, ticket.id)"
vn-tooltip="Go to lines"
@ -88,12 +96,6 @@
</vn-td>
</a>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
<vn-empty-rows ng-if="model.data === null" translate>
Enter a new search
</vn-empty-rows>
</vn-table>
</vn-card>
<vn-pagination model="model"></vn-pagination>

View File

@ -79,13 +79,13 @@ export default class Controller {
stateColor(ticket) {
if (ticket.alertLevelCode === 'OK')
return 'alertOk';
return 'success';
else if (ticket.alertLevelCode === 'FREE')
return 'alertFree';
return 'notice';
else if (ticket.alertLevel === 1)
return 'alert1';
return 'warning';
else if (ticket.alertLevel === 0)
return 'alert0';
return 'alert';
}
showDescriptor(event, clientFk) {

View File

@ -11,30 +11,34 @@ vn-ticket-index{
}
.alert1 {
color: white;
background-color: $color-main-light;
&:hover {
background-color: $color-main-medium;
}
vn-tr:hover .alert1 {
background-color: $color-main-medium;
}
.alertOk {
color: white;
background-color: $color-success-light;
&:hover {
background-color: $color-success-medium;
}
vn-tr:hover .alertOk {
background-color: $color-success-medium;
}
.alertFree {
color: white;
background-color: $color-notice-light;
&:hover {
background-color: $color-notice-medium;
}
vn-tr:hover .alertFree {
background-color: $color-notice-medium;
}
.alert0 {
color: white;
background-color: $color-alert-light;
&:hover {
}
vn-tr:hover .alert0 {
background-color: $color-alert-medium;
}
}
}

View File

@ -46,7 +46,7 @@
</vn-one>
<vn-one>
<vn-icon-button
pointer vn-tooltip="Add note"
vn-tooltip="Add note"
icon="add_circle"
vn-bind="+"
ng-if="observationTypes.length > observations.length"

View File

@ -50,7 +50,6 @@
</vn-one>
<vn-one>
<vn-icon-button
pointer
vn-tooltip="Add package"
vn-bind="+"
icon="add_circle"

View File

@ -18,7 +18,7 @@
<img
ng-src="//verdnatura.es/vn-image-data/catalog/200x200/{{::sale.item.image}}"
zoom-image="//verdnatura.es/vn-image-data/catalog/1600x900/{{::sale.item.image}}"
on-error-src pointer/>
on-error-src/>
</vn-one>
<vn-one pad-small class="description ellipsize">
<vn-vertical>

View File

@ -1,4 +1,5 @@
<vn-crud-model auto-load="false"
<vn-crud-model
auto-load="false"
vn-id="model"
url="/ticket/api/TicketRequests"
fields="['id', 'description', 'created', 'requesterFk', 'atenderFk', 'quantity', 'price', 'saleFk', 'isOk']"
@ -32,7 +33,7 @@
<vn-tbody>
<vn-tr ng-repeat="request in purchaseRequests">
<vn-td number>{{::request.id}}</vn-td>
<vn-td>{{::request.description}}</vn-td>
<vn-td expand>{{::request.description}}</vn-td>
<vn-td number>{{::request.created | dateTime: 'dd/MM/yyyy'}}</vn-td>
<vn-td>{{::request.requester.user.nickname}}</vn-td>
<vn-td>{{::request.atender.user.nickname}}</vn-td>
@ -42,8 +43,8 @@
<span
ng-show="::request.saleFk"
ng-click="$ctrl.showDescriptor($event, request.sale)"
pointer class="link">
{{("000000"+request.saleFk).slice(-6)}}
class="link">
{{request.saleFk | zeroFill:6}}
</span>
</vn-td>
<vn-td number>
@ -63,16 +64,17 @@
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-horizontal>
</vn-card>
<vn-item-descriptor-popover vn-id="descriptor"
</form>
<vn-item-descriptor-popover
vn-id="descriptor"
quicklinks="$ctrl.quicklinks">
</vn-item-descriptor-popover>
</form>
<a ui-sref="ticket.card.request.create" vn-tooltip="New request" vn-bind="+" fixed-bottom-right>
<a ui-sref="ticket.card.request.create"
vn-tooltip="New request"
vn-bind="+"
fixed-bottom-right>
<vn-float-button icon="add"></vn-float-button>
</a>

View File

@ -29,8 +29,8 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
class="link" pointer>
{{("000000"+sale.itemFk).slice(-6)}}
class="link">
{{sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td><vn-fetched-tags max-length="6" item="sale.item"/></vn-td>

View File

@ -33,8 +33,8 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
class="link" pointer>
{{("000000"+sale.itemFk).slice(-6)}}
class="link">
{{sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td><vn-fetched-tags max-length="6" item="sale.item"/></vn-td>

View File

@ -103,11 +103,13 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
pointer class="link">
class="link">
{{::sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td><vn-fetched-tags max-length="6" item="sale.tags" title="sale.concept"/></vn-td>
<vn-td expand>
<vn-fetched-tags max-length="6" item="sale.tags" title="sale.concept"/>
</vn-td>
<vn-td ng-if="!$ctrl.isEditable" number>{{sale.quantity}}</vn-td>
<vn-td ng-if="$ctrl.isEditable" number>
<vn-textfield
@ -120,7 +122,6 @@
ng-if="$ctrl.isEditable"
class="link"
ng-click="$ctrl.showEditPricePopover($event, sale)"
pointer
vn-tooltip="Edit price">
{{sale.price | currency: 'EUR':2}}
</vn-td>
@ -131,7 +132,6 @@
ng-if="$ctrl.isEditable"
class="link"
ng-click="$ctrl.showEditPopover($event, sale)"
pointer
vn-tooltip="Edit discount">
{{sale.discount}} %
</vn-td>
@ -241,14 +241,12 @@
type="number">
</vn-textfield>
<vn-icon-button
pointer
icon="arrow_forward_ios"
ng-click="$ctrl.moveLines($ctrl.moveToTicketFk)">
</vn-icon-button>
</vn-horizontal>
<vn-horizontal>
<vn-button
pointer
label="New ticket"
ng-click="$ctrl.linesToNewTicket()">
</vn-button>

View File

@ -51,8 +51,7 @@
</vn-horizontal>
</vn-one>
<vn-one>
<vn-icon-button
pointer
<vn-icon-butto
vn-tooltip="Add service"
vn-bind="+"
icon="add_circle"

View File

@ -84,19 +84,16 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
class="link" pointer>
class="link">
{{sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td><vn-fetched-tags max-length="6" item="sale.item" title="sale.concept"/></vn-td>
<vn-td expand><vn-fetched-tags max-length="6" item="sale.item" title="sale.concept"/></vn-td>
<vn-td number>{{::sale.quantity}}</vn-td>
<vn-td number>{{::sale.price | currency: 'EUR':2}}</vn-td>
<vn-td number>{{::sale.discount}} %</vn-td>
<vn-td number>{{::sale.quantity * sale.price | currency: 'EUR':2}}</vn-td>
</vn-tr>
<vn-tr ng-if="!$ctrl.summary.sales" class="list list-element">
<vn-td colspan="8" style="text-align: center" translate>No results</vn-td>
</vn-tr>
</vn-tbody>
</vn-table>
</vn-auto>
@ -117,9 +114,6 @@
<vn-td number>{{package.quantity}}</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-one>
<vn-one ng-if="$ctrl.summary.services.length != 0">
@ -137,15 +131,12 @@
<vn-tbody>
<vn-tr ng-repeat="service in $ctrl.summary.services">
<vn-td number>{{::service.id}}</vn-td>
<vn-td>{{::service.description}}</vn-td>
<vn-td expand>{{::service.description}}</vn-td>
<vn-td number>{{::service.quantity}}</vn-td>
<vn-td number>{{::service.price}}</vn-td>
<vn-td>{{::service.taxClass.description}}</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="$ctrl.summary.services.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-one>
<vn-auto ng-if="$ctrl.summary.requests.length != 0">
@ -165,7 +156,7 @@
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="request in $ctrl.summary.requests">
<vn-td>{{::request.description}}</vn-td>
<vn-td expand>{{::request.description}}</vn-td>
<vn-td number>{{::request.created | dateTime: 'dd/MM/yyyy'}}</vn-td>
<vn-td>{{::request.requester.user.name}}</vn-td>
<vn-td>{{::request.atender.user.name}}</vn-td>
@ -175,8 +166,8 @@
<span
ng-show="::request.saleFk"
ng-click="$ctrl.showDescriptor($event, request.saleFk)"
pointer class="link">
{{("000000"+request.saleFk).slice(-6)}}
class="link">
{{request.saleFk | zeroFill:6}}
</span>
</vn-td>
<vn-td number>
@ -187,12 +178,9 @@
</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="$ctrl.summary.requests.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-auto>
</vn-horizontal>
</vn-card>
<vn-item-descriptor-popover
vn-id="descriptor"

View File

@ -34,18 +34,15 @@
<vn-td number>
<span
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
class="link" pointer>
{{("000000"+sale.itemFk).slice(-6)}}
class="link">
{{sale.itemFk | zeroFill:6}}
</span>
</vn-td>
<vn-td><vn-fetched-tags max-length="6" item="sale.item"/></vn-td>
<vn-td expand><vn-fetched-tags max-length="6" item="sale.item"/></vn-td>
<vn-td number>{{::sale.quantity}}</vn-td>
<vn-td number>{{::sale.volume.m3 | number:3}}</vn-td>
</vn-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
</vn-vertical>
<vn-pagination model="model"></vn-pagination>

View File

@ -17,7 +17,7 @@
</vn-searchbar>
</vn-card>
</div>
<vn-card margin-medium-v pad-medium>
<vn-card margin-medium-v>
<vn-table model="model" auto-load="false">
<vn-thead>
<vn-tr>
@ -25,25 +25,25 @@
<vn-th field="ref">Reference</vn-th>
<vn-th field="agencyFk">Agency</vn-th>
<vn-th field="warehouseOutFk">Warehouse Out</vn-th>
<vn-th field="shipped">Shipped</vn-th>
<vn-th field="isDelivered">Delivered</vn-th>
<vn-th field="shipped" center>Shipped</vn-th>
<vn-th field="isDelivered" center>Delivered</vn-th>
<vn-th field="warehouseInFk">Warehouse In</vn-th>
<vn-th field="landed">Landed</vn-th>
<vn-th field="isReceived">Received</vn-th>
<vn-th field="landed" center>Landed</vn-th>
<vn-th field="isReceived" center>Received</vn-th>
<vn-th></vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="travel in travels" class="clickable searchResult">
<vn-td number>{{::travel.id}}</vn-td>
<vn-td>{{::travel.ref}}</vn-td>
<vn-td>{{::travel.agency.name}}</vn-td>
<vn-td>{{::travel.warehouseOut.name}}</vn-td>
<vn-td>{{::travel.shipped | date:'dd/MM/yyyy'}}</vn-td>
<vn-td expand>{{::travel.ref}}</vn-td>
<vn-td expand>{{::travel.agency.name}}</vn-td>
<vn-td center>{{::travel.warehouseOut.name}}</vn-td>
<vn-td center>{{::travel.shipped | date:'dd/MM/yyyy'}}</vn-td>
<vn-td><vn-check field="travel.isDelivered" disabled="true"></vn-check></vn-td>
<vn-td>{{::travel.warehouseIn.name}}</vn-td>
<vn-td>{{::travel.landed | date:'dd/MM/yyyy'}}</vn-td>
<vn-td><vn-check field="travel.isReceived" disabled="true"></vn-check></vn-td>
<vn-td center>{{::travel.landed | date:'dd/MM/yyyy'}}</vn-td>
<vn-td center><vn-check field="travel.isReceived" disabled="true"></vn-check></vn-td>
<vn-td></vn-td>
</vn-tr>
</vn-tbody>