This commit is contained in:
Gerard 2019-02-11 09:02:26 +01:00
commit 5187a7e15b
102 changed files with 920 additions and 926 deletions

View File

@ -20,7 +20,7 @@ vn-autocomplete {
right: 0;
top: 1.3em;
height: 1em;
color: $secondary-font-color;
color: $color-font-secondary;
border-radius: .2em;
& > vn-icon {
@ -28,7 +28,7 @@ vn-autocomplete {
font-size: 18px;
&:hover {
color: $main-font-color;
color: $color-font;
}
}
}
@ -53,11 +53,8 @@ ul.vn-autocomplete {
padding: .8em;
margin: 0;
&.active {
background-color: $hover;
}
&.load-more {
color: $main-01;
color: $color-main;
font-family: vn-font-bold;
padding: .4em .8em;
}

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

@ -16,8 +16,8 @@ vn-calendar {
}
.weekdays {
border-bottom: 1px solid $hover;
border-top: 1px solid $hover;
border-bottom: 1px solid $color-hover-cd;
border-top: 1px solid $color-hover-cd;
font-weight: bold
}
@ -43,98 +43,98 @@ vn-calendar {
}
.day.gray {
color: $secondary-font-color
color: $color-font-secondary
}
.day.orange {
font-weight: bold;
color: $main-01;
color: $color-main;
}
.day.orange-circle {
color: $main-font-color;
color: $color-font;
& > span {
background-color: $main-01
background-color: $color-main
}
}
.day.orange-circle:hover {
& > span {
background-color: $main-01-05
background-color: $color-main-medium
}
}
.day.light-orange {
color: $main-01-05
color: $color-main-medium
}
.day.green {
font-weight: bold;
color: $main-02;
color: $color-success;
}
.day.green-circle {
color: $main-font-color;
color: $color-font;
& > span {
background-color: $main-02
background-color: $color-success
}
}
.day.green-circle:hover {
& > span {
background-color: $main-02-05
background-color: $color-success-medium
}
}
.day.light-green {
font-weight: bold;
color: $main-02-05
color: $color-success-medium
}
.day.blue {
font-weight: bold;
color: $main-03;
color: $color-notice;
}
.day.blue-circle {
color: $main-font-color;
color: $color-font;
& > span {
background-color: $main-03
background-color: $color-notice
}
}
.day.blue-circle:hover {
& > span {
background-color: $main-03-05
background-color: $color-notice-medium
}
}
.day.light-blue {
font-weight: bold;
color: $main-03-05
color: $color-notice-medium
}
.day.red {
font-weight: bold;
color: $alert-01
color: $color-alert
}
.day.red-circle {
color: $main-font-color;
color: $color-font;
& > span {
background-color: $alert-01
background-color: $color-alert
}
}
.day.red-circle:hover {
& > span {
background-color: $alert-01-05
background-color: $color-alert-medium
}
}
.day.light-red {
font-weight: bold;
color: $alert-01-05;
color: $color-alert-medium;
}
}
}

View File

@ -10,7 +10,7 @@ vn-check {
padding-left: 5px;
position: absolute;
bottom: 3px;
color: $secondary-font-color;
color: $color-font-secondary;
font-size: 20px !important
}
}

View File

@ -4,12 +4,12 @@ vn-chip {
margin: 0 0.5em 0.5em 0;
.mdl-chip {
background-color: rgba($main-01, 0.9);
background-color: rgba($color-main, 0.9);
color: #FFF
}
.mdl-chip:active {
background-color: $main-01
background-color: $color-main
}
& > vn-one > span > span {

View File

@ -22,5 +22,5 @@ vn-date-picker {
.flatpickr-months .flatpickr-month,
.flatpickr-weekdays,
span.flatpickr-weekday {
background-color: $main-01;
background-color: $color-main;
}

View File

@ -21,7 +21,7 @@
}
& > div {
position: relative;
box-shadow: 0 0 .4em rgba(0, 0, 0, .4);
box-shadow: 0 0 .4em $color-shadow;
background-color: white;
border-radius: .2em;
overflow: auto;
@ -62,7 +62,7 @@
background-color: transparent;
border: none;
border-radius: .1em;
color: $main-01;
color: $color-main;
font-family: vn-font-bold;
padding: .7em;
margin: -0.7em;

View File

@ -24,7 +24,7 @@ vn-drop-down {
& .selected label {
font-size: inherit;
bottom: 2px;
color: $secondary-font-color;
color: $color-font-secondary;
}
}
& > vn-icon[icon=clear] {
@ -40,7 +40,7 @@ vn-drop-down {
font-size: 18px;
&:hover {
color: $main-font-color;
color: $color-font;
}
}
&:hover > vn-icon[icon=clear] {
@ -67,12 +67,11 @@ vn-drop-down {
margin-right: .6em;
}
&.active {
background-color: #3D3A3B;
color: white;
@extend %active;
}
}
.status {
color: $main-01;
color: $color-main;
font-weight: bold;
}
}

View File

@ -20,7 +20,7 @@ vn-fetched-tags {
}
& > vn-auto > .inline-tag {
display: inline-block;
color: $secondary-font-color;
color: $color-font-secondary;
margin-right: .4em;
text-align: center;
font-size: .8em;
@ -28,10 +28,10 @@ vn-fetched-tags {
padding: .1em;
border-radius: .1em;
width: 4em;
border: 1px solid $secondary-font-color;
border: 1px solid $color-font-secondary;
&.empty {
border: 1px solid $main-bg;
border: 1px solid $color-bg;
}
}
}

View File

@ -2,16 +2,17 @@
vn-icon-button {
outline: 0;
color: $color-main;
button {
background: transparent !important;
background-color: transparent !important;
display: inline-block;
color: $main-01;
border: 0
}
color: inherit;
border: 0;
button.mdl-button--colored {
color: orange
&.mdl-button--colored {
color: inherit;
}
}
}

View File

@ -9,7 +9,7 @@ vn-input-number {
vn-icon[icon=add],
vn-icon[icon=remove]{
&:not(:hover){
color: $secondary-font-color;
color: $color-font-secondary;
}
i {
-moz-user-select: none;

View File

@ -1,12 +1,12 @@
@import "variables";
vn-input-range {
label {
color: $main-01;
color: $color-main;
font-size: 12px;
padding: 0 25px;
}
label.min-label, label.max-label {
color: $main-font-color;
color: $color-font;
}
label.max-label {
float: right;

View File

@ -2,19 +2,18 @@
vn-label-value > section {
& > vn-label {
color: $secondary-font-color;
color: $color-font-secondary;
&::after {
content: ':';
}
}
& > span {
color: $main-font-color;
color: $color-font;
}
& > vn-icon {
vertical-align: middle;
color: $secondary-font-color;
color: $color-font-secondary;
font-size: 1.2em
}
}

View File

@ -8,10 +8,10 @@ vn-log {
display: none;
}
.label {
color: $secondary-font-color;
color: $color-font-secondary;
}
.value {
color: $main-font-color;
color: $color-font;
}
.after, .before {

View File

@ -5,7 +5,7 @@ vn-paging {
text-align: center;
ul {
box-shadow: 0 0 .4em rgba(1,1,1,.4);
box-shadow: 0 0 .4em $color-shadow;
background-color: #fff;
display: inline-block;
margin: 20px 0;
@ -20,7 +20,7 @@ vn-paging {
margin-left: 0;
}
&.active > a {
background: $main-header;
background: $color-active;
color: #fff;
}
& > a,

View File

@ -1,3 +1,5 @@
@import "variables";
.vn-popover {
display: none;
z-index: 20;
@ -6,7 +8,7 @@
left: 0;
right: 0;
bottom: 0;
color: initial;
color: $color-font;
opacity: 0;
transform: translateY(-.6em);
@ -20,22 +22,22 @@
}
& > .popover {
position: absolute;
box-shadow: 0 .1em .4em rgba(1, 1, 1, .4);
box-shadow: 0 .1em .4em $color-shadow;
z-index: 0;
& > .arrow {
width: 1em;
height: 1em;
margin: -.5em;
background-color: white;
box-shadow: 0 .1em .4em rgba(1, 1, 1, .4);
background-color: $color-bg-panel;
box-shadow: 0 .1em .4em $color-shadow;
position: absolute;
transform: rotate(45deg);
z-index: -1;
}
& > .content {
border-radius: .1em;
background-color: white;
background-color: $color-bg-panel;
height: inherit;
overflow: auto;
}

View File

@ -11,8 +11,8 @@ vn-snackbar #shapes {
}
vn-snackbar .shape {
background-color: rgba(1, 1, 1, 0.8);
box-shadow: 0 0 .4em rgba(1,1,1,.4);
background-color: rgba(0, 0, 0, 0.8);
box-shadow: 0 0 .4em $color-shadow;
transition: transform 300ms ease-in-out;
transform: translateY(20em);
box-sizing: border-box;
@ -52,7 +52,7 @@ vn-snackbar .shape {
margin-left: .5em;
font-weight: bold;
cursor: pointer;
color: $main-01;
color: $color-main;
float: right;
border: none;
padding: .5em;

View File

@ -5,7 +5,7 @@ vn-step-control {
justify-content: center;
.step-control {
border-top: 2px solid $main-01;
border-top: 2px solid $color-main;
margin-bottom: 15px;
& > .steps {
@ -21,7 +21,7 @@ vn-step-control {
}
& > .steps > .step .circle {
border: 2px solid $main-01;
border: 2px solid $color-main;
background-color: white;
align-content: center;
margin-top: -9.5px;
@ -34,7 +34,7 @@ vn-step-control {
}
& > .steps > .step .circle.active {
background-color: $main-01;
background-color: $color-main;
}
& > .buttons {

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
}
vn-th[field] > * {
padding-right: 20px
}
vn-th[field] > :after {
font-family: 'Material Icons';
content: 'arrow_drop_down';
position: absolute;
padding-left: 2px;
color: $lines;
opacity: 0
}
vn-th[field] > :hover:after {
opacity: 1
}
vn-th[field].active > :after {
color: $main-font-color;
opacity: 1
}
vn-th[field].desc > :after {
content: 'arrow_drop_down';
}
vn-th[field].asc > :after {
content: 'arrow_drop_up';
overflow: visible;
cursor: pointer;
&.active > :after {
color: $color-font;
opacity: 1;
}
&.desc > :after {
content: 'arrow_drop_down';
}
&.asc > :after {
content: 'arrow_drop_up';
}
& > :after {
font-family: 'Material Icons';
content: 'arrow_drop_down';
position: absolute;
color: $color-spacer;
opacity: 0;
}
&:hover > :after {
opacity: 1;
}
}
}
vn-tbody {
display: table-row-group
& > vn-tbody {
display: table-row-group;
}
vn-tfoot {
& > 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,38 +75,87 @@ 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 $lines;
}
vn-tbody > vn-tr, vn-tbody > a.vn-tr{
border-bottom: 1px solid $lines;
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;
}
&.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);
}
&.notice,
& > .notice,
& > vn-td > .notice {
color: white;
background-color: $color-notice;
}
&.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 {
padding: 0px !important;

View File

@ -9,13 +9,13 @@ vn-textarea {
position: absolute;
bottom: 0;
pointer-events: none;
color: $secondary-font-color;
color: $color-font-secondary;
transition-duration: .2s;
transition-timing-function: cubic-bezier(.4,0,.2,1);
}
& textarea.ng-not-empty+label.placeholder{
top: 5px;
color: $main-01;
color: $color-main;
padding: 0;
font-size: 12px;
visibility: visible!important;

View File

@ -1,4 +1,5 @@
@import "variables";
vn-textfield {
margin: 20px 0!important;
display: inline-block;
@ -20,7 +21,7 @@ vn-textfield {
.leftIcons, .rightIcons, .suffix {
display: flex;
color: $secondary-font-color;
color: $color-font-secondary;
.material-icons {
font-size: 20px !important
@ -62,13 +63,13 @@ vn-textfield {
left: 0;
padding: 4px 0!important;
pointer-events: none;
color: $secondary-font-color;
color: $color-font-secondary;
transition-duration: .2s;
transition-timing-function: cubic-bezier(.4,0,.2,1);
}
&.not-empty label{
bottom: 24px;
color: $main-01;
color: $color-main;
padding: 0;
font-size: 12px;
}
@ -104,10 +105,10 @@ vn-textfield {
content: ' ';
pointer-events: none;
width: 100%;
background-color: rgba(0,0,0,.12);
background-color: $color-input-underline;
}
.selected.underline {
background-color: rgb(255,152,0);
background-color: $color-main;
height: 2px;
left: 50%;
width: 0px !important;
@ -121,7 +122,7 @@ vn-textfield {
}
label {
bottom: 24px;
color: $main-01;
color: $color-main;
font-size: 12px;
}
.selected.underline{

View File

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

View File

@ -4,9 +4,10 @@ export default class Th {
constructor($element) {
this._order = 'ASC';
this.column = $element[0];
$element.on('click', () => this.onToggleOrder());
}
/**
/**
* Changes the order if the cell has a field and defaultOrder property
*/
$onInit() {
@ -31,46 +32,46 @@ export default class Th {
return this.column.getAttribute('field');
}
/**
/**
* Toggle order ASC/DESC
*/
toggleOrder() {
if (this.order === 'ASC') {
if (this.order === 'ASC')
this.order = 'DESC';
} else {
else
this.order = 'ASC';
}
}
/**
/**
* Applies a new filter order to the model and
* updates the cell arrow
*/
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();
this.table.applyOrder(this.field, this.order);
}
/**
/**
* Set cell class to asc/desc
*/
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

@ -1,9 +1,11 @@
@import "variables";
.vn-tooltip {
display: none;
position: fixed;
z-index: 150;
background-color: #333;
color: white;
background-color: $color-bg-dark;
color: $color-active-font;
border-radius: .2em;
&.show {

View File

@ -23,25 +23,25 @@ vn-treeview {
}
li > vn-horizontal:hover {
background-color: $hover
background-color: $color-hover-cd
}
li.selected > vn-horizontal > .description .text,
li.included > vn-horizontal > .description .text {
font-weight: bold;
color: $main-01;
color: $color-main;
}
li.included {
& > vn-horizontal > .description > vn-horizontal > vn-check {
.mdl-checkbox .mdl-checkbox__box-outline, {
border: 2px solid $main-01-05;
border: 2px solid $color-main-medium;
}
fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline, .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
border: 2px solid rgba(0,0,0,.26);
}
.mdl-checkbox .mdl-checkbox__tick-outline {
background: $main-01-05;
background: $color-main-medium;
}
}
}

View File

@ -10,7 +10,7 @@ body {
}
.mdl-button {
font-weight: bolder;
color: $main-01;
color: $color-main;
}
.mdl-button--colored {
color: white !important;
@ -18,31 +18,31 @@ body {
.mdl-textfield--floating-label.is-focused .mdl-textfield__label,
.mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
color: $main-01 !important;
color: $color-main !important;
}
.mdl-checkbox.is-checked .mdl-checkbox__box-outline, {
border: 2px solid $main-01;
border: 2px solid $color-main;
}
fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline, .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
border: 2px solid rgba(0,0,0,.26);
}
.mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
background: $main-01;
background: $color-main;
}
.mdl-textfield__label::after{
background-color: $main-01 !important;
background-color: $color-main !important;
}
.mdl-button--colored,
.mdl-button--colored:focus,
.mdl-button--colored:active {
background-color: $main-01 !important;
background-color: $color-main !important;
}
.mdl-button--colored:hover,
.mdl-button--raised:hover {
background-color: $main-01 !important;
background-color: $color-main !important;
}
.mdl-button--fab{
color: white !important;
background-color: $main-01 !important;
background-color: $color-main !important;
}

View File

@ -1,7 +1,7 @@
@import "variables";
body {
background-color: $bg-content;
background-color: $color-bg;
overflow: auto;
}
vn-app {
@ -13,7 +13,7 @@ vn-app {
left: 0;
width: 100%;
z-index: 10;
box-shadow: 0 .1em .2em rgba(1, 1, 1, .2);
box-shadow: 0 .1em .2em $color-shadow;
height: $topbar-height;
padding: .4em;
@ -31,7 +31,7 @@ vn-app {
cursor: pointer;
&:hover {
color: $main-01;
color: $color-main;
}
}
& > .main-title {

View File

@ -23,7 +23,7 @@ vn-home {
@extend %clickable-light;
overflow:hidden;
border-radius: 6px;
background-color: $main-01;
background-color: $color-main;
color: white;
display: flex;
flex-direction: column;

View File

@ -19,6 +19,7 @@ vn-left-menu {
@extend %clickable;
padding: .5em 1em;
display: block;
color: inherit;
& > vn-icon:nth-child(1) {
vertical-align: middle;
@ -32,8 +33,7 @@ vn-left-menu {
}
& > li > a.active {
background-color: $main-header;
color: white;
@extend %active;
}
& > li > a.expanded {

View File

@ -6,10 +6,10 @@ vn-login {
width: 100%;
margin: 0;
padding: 0;
color: $main-font-color;
color: $color-font;
font-size: 1.1em;
font-weight: normal;
background-color: #3c393b;
background-color: $color-bg-dark;
display: flex;
justify-content: center;
align-items: center;
@ -21,8 +21,8 @@ vn-login {
max-width: 19em;
min-width: 15em;
padding: 3em;
background-color: white;
box-shadow: 0 0 1em 0 rgba(1,1,1,.6);
background-color: $color-bg-panel;
box-shadow: 0 0 1em 0 rgba(0, 0, 0, .6);
border-radius: .5em;
& > img {
@ -63,12 +63,11 @@ vn-login {
}
@media screen and (max-width: 600px) {
background-color: white;
background-color: $color-bg-panel;
& > .box {
padding: 1em;
box-shadow: none;
background-color: white;
}
}
}

View File

@ -15,7 +15,7 @@ vn-main-menu {
padding-left: .6em;
&:hover {
color: $main-01;
color: $color-main;
}
}
& > #user {
@ -35,7 +35,7 @@ vn-main-menu {
& > li {
@extend %clickable-light;
background-color: $main-01;
background-color: $color-main;
margin-bottom: .6em;
padding: .8em;
border-radius: .1em;

View File

@ -7,8 +7,8 @@ vn-side-menu > .menu {
bottom: 0;
width: $menu-width;
min-width: $menu-width;
background-color: white;
box-shadow: 0 .1em .2em rgba(1, 1, 1, .2);
background-color: $color-bg-panel;
box-shadow: 0 .1em .2em $color-shadow;
overflow: auto;
top: $topbar-height;

View File

@ -4,7 +4,7 @@ vn-topbar {
display: flex;
color: white;
box-sizing: border-box;
background-color: $bg-dark-bar;
background-color: $color-header;
align-items: center;
& > header {

View File

@ -2,7 +2,7 @@
vn-user-configuration-popover {
vn-popover {
color: $main-font-color;
color: $color-font;
vn-vertical {
min-width: 250px;
}

View File

@ -1,29 +1,11 @@
@import "./variables";
html [bg-main], .bg-main {
background-color: $main-bg;
.bg-panel {
background-color: $color-bg-panel;
}
html [bg-minor], .bg-minor {
background-color: $bg-minor;
.item-hightlight {
background-color: $color-hightlight;
}
html [bg-content], .bg-content {
background-color: $bg-content;
}
html [bg-panel], .bg-panel {
background-color: $bg-panel;
}
html [bg-dark-bar], .bg-dark-bar {
background-color: $bg-dark-bar;
}
html [bg-dark-menu], .bg-dark-menu {
background-color: darken($bg-dark-menu, 35%);
}
/* Color para items seleccionados */
.bg-dark-item {
background-color: $bg-dark-bar;
color: $color-white;
}
/* Color para items inactivos */
.bg-opacity-item {
opacity: 0.6;
.item-disabled {
opacity: $color-disabled;
}

View File

@ -1,4 +1,3 @@
@import "./colors";
@import "./variables";
html [border-none], .border-none {

View File

@ -1,32 +0,0 @@
$main-font-color:#222222;
$secondary-font-color: #9b9b9b;
$main-header: #3d3d3d;
$hover: rgba(0, 0, 0, 0.1);
$hover-opacity: .7;
$main-bg: #e5e5e5;
$main-01: #f7931e;
$main-01-05: rgba($main-01, 0.5);
$main-01-03: rgba($main-01, 0.3);
$main-02: #a3d131;
$main-02-05: rgba($main-02, 0.5);
$main-02-03: rgba($main-02, 0.3);
$main-03: #32b1ce;
$main-03-05: rgba($main-03, 0.5);
$main-03-03: rgba($main-03, 0.3);
$lines: #9b9b9b;
$alert-01: #f42121;
$alert-01-03: rgba($alert-01, 0.5);
$alert-01-05: rgba($alert-01, 0.5);
$color-green: #a3d131;
$color-orange: #f7931e;
$color-white: white;
$color-dark: $main-header; //headerbar
$color-dark-grey: #424242;
$color-light-grey: $main-bg;
$color-medium-grey: $secondary-font-color;
$color-grey: #c4c4c4; //deprecated
$color-medium-green: rgba($color-green, 0.5);
$color-medium-orange: rgba($color-orange, 0.5);
$color-light-green: rgba($color-green, 0.3);
$color-light-orange: rgba($color-orange, 0.3);

View File

@ -1,14 +1,13 @@
@import "./effects";
@import "./colors";
@import "./variables";
.vn-descriptor {
box-shadow: 0 .1em .2em rgba(1, 1, 1, .2);
box-shadow: 0 .1em .2em $color-shadow;
& > .header {
display: flex;
background: $main-01;
background: $color-main;
color: white;
justify-content: space-between;
align-items: stretch;
@ -21,6 +20,7 @@
align-items: center;
justify-content: center;
padding: .5em;
color: inherit;
& > vn-icon {
font-size: 1.8em;
@ -47,12 +47,11 @@
& > vn-icon {
padding: $pad-small;
color: #666;
opacity: .4;
color: $color-secondary;
font-size: 1.5em;
&.bright {
color: $main-01;
color: $color-main;
opacity: 1;
}
}

View File

@ -2,16 +2,6 @@
display: block;
}
.well {
min-height: 20px;
padding: 19px;
margin-bottom: 20px;
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 4px;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
}
.form-group {
margin-bottom: 15px;
}

View File

@ -1,12 +1,12 @@
@import "./colors";
@import "./variables";
%clickable {
cursor: pointer;
transition: background-color 250ms ease-out;
&:hover {
background-color: $hover;
background-color: $color-hover-cd;
}
}
@ -15,6 +15,11 @@
transition: opacity 250ms ease-out;
&:hover {
opacity: $hover-opacity;
opacity: $color-hover-dc;
}
}
%active {
background-color: $color-active;
color: $color-active-font;
}

View File

@ -1,24 +1,16 @@
@import "./colors";
@import "./variables";
@import "./font-family";
body {
color: $main-font-color;
color: $color-font;
font-family: vn-font;
}
html [uppercase], .uppercase {
text-transform: uppercase;
}
html [orange], .orange {color: $main-01}
html [green], .green {color: $main-02}
html [blue], .blue {color: $main-03}
html [red], html [alert], .red, .alert {color: $alert-01}
html [white], .white {color: $color-white}
html [dark], .dark {color: $color-dark}
html [dark-grey], .dark-grey {color: $color-dark-grey}
html [light-grey], .light-grey {color: $color-light-grey}
html [medium-grey], .medium-grey {color: $hover}
html [medium-green], .medium-green {color: $color-medium-green}
html [medium-orange], .medium-orange {color: $color-medium-orange}
html [light-green], .light-green {color: $color-light-green}
html [light-orange], .light-orange {color: $color-light-orange}
html [color-main], .color-main {
color: $color-main;
}
html [color-secondary], .color-secondary {
color: $color-secondary;
}

View File

@ -4,11 +4,10 @@ import './layout.scss';
import './display.scss';
import './margin.scss';
import './padding.scss';
import './background.scss';
import './border.scss';
import './background.scss';
import './font-style.scss';
import './misc.scss';
import './colors.scss';
import './effects.scss';
import './order-product.scss';
import './summary.scss';

View File

@ -1,5 +1,4 @@
@import "./variables";
@import "./colors";
@import "./effects";
a:focus,
@ -19,11 +18,16 @@ input[type=reset]::-moz-focus-inner {
-ms-user-select: none;
user-select: none;
}
a , .link{
color: $color-main;
text-decoration: none;
}
.link {
text-decoration: underline;
cursor: pointer;
&:hover{
color: $main-01!important;
&:hover {
text-decoration: underline;
}
}
@ -73,14 +77,14 @@ html [vn-center], .vn-center{
.list-element{
padding: 8px 0 0 0;
border-bottom: 1px solid $lines;
border-bottom: 1px solid $color-spacer;
i {
color: $main-01;
color: $color-main;
}
}
.tooltip {
.list-header{
border-bottom: 3px solid $color-medium-grey;
border-bottom: 3px solid $color-spacer;
font-family: vn-font-bold;
text-align: center
}
@ -90,23 +94,23 @@ html [vn-center], .vn-center{
}
.list-footer{
font-family: vn-font-bold;
border-top: 3px solid $lines;
border-top: 3px solid $color-spacer;
}
.list-element.warning{
background-color: $color-medium-orange;
background-color: $color-main-medium;
}
.list-element.success{
background-color: $color-medium-green;
background-color: $color-success-medium;
}
.list-element.success:hover{
background-color: $color-light-green;
background-color: $color-success-light;
}
.list-element.warning:hover{
background-color: $color-light-orange;
background-color: $color-main-light;
}
.flatpickr-month, .flatpickr-weekdays, span.flatpickr-weekday {
background-color: $main-01;
background-color: $color-main;
}
html [pointer], .pointer{
@ -117,14 +121,6 @@ html [noDrop], .noDrop{
cursor: no-drop;
}
a {
color: inherit;
&:link {
text-decoration: none;
}
}
html [compact], .compact{
max-width: 950px;
margin-left: auto;
@ -159,7 +155,7 @@ a.vn-list-item {
.vn-list-item {
padding: $pad-medium;
border-bottom: $border-thin solid $border-color;
border-bottom: $border-thin solid $color-spacer-light;
display: block;
text-decoration: none;
@ -174,7 +170,7 @@ a.vn-list-item {
vn-icon {
opacity: .4;
color: $main-01;
color: $color-main;
margin-left: .5em;
transition: opacity 250ms ease-out;
font-size: 2em;
@ -198,7 +194,7 @@ fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
}
fieldset[disabled] .mdl-textfield .mdl-textfield__label,
.mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
color: $main-01 !important;
color: $color-main !important;
}
/** END - FORM ELEMENTS DISABLED **/
@ -210,17 +206,11 @@ fieldset[disabled] .mdl-textfield .mdl-textfield__label,
}
.counter {
background-color: $main-header;
display: inline-block;
color: $color-white;
text-align: center;
border-radius: 3px;
min-width: 1.5em;
padding: 5px
}
@extend %active;
.counter.small {
font-size: 0.7em
&.small {
font-size: 0.7em
}
}
.vn-grid {
@ -242,10 +232,10 @@ fieldset[disabled] .mdl-textfield .mdl-textfield__label,
}
}
& > thead, & > tbody {
border-bottom: 3px solid $lines;
border-bottom: 3px solid $color-spacer;
}
& > tbody > tr {
border-bottom: 1px solid $lines;
border-bottom: 1px solid $color-spacer;
transition: background-color 200ms ease-in-out;
&.clickable {

View File

@ -1,10 +1,9 @@
@import 'colors';
@import "./padding";
@import './variables';
vn-dialog.modal-form {
vn-horizontal.header{
@extend .pad-small;
background-color: $main-01;
padding: $pad-small;
background-color: $color-main;
h5{
color: white;
margin: 0 auto;

View File

@ -1,4 +1,4 @@
@import "./colors";
@import "./variables";
@media screen and (max-width: 1920px){
.catalog-list .product {
@ -34,7 +34,7 @@
padding: 4px;
& > vn-one {
border: 1px solid rgba($lines, 0.5);
border: 1px solid rgba($color-spacer, 0.5);
display: block
}
@ -66,7 +66,7 @@
}
& > span {
color: $secondary-font-color;
color: $color-font-secondary;
text-transform: uppercase;
margin-bottom: 0.5em;
font-weight: bold;
@ -85,7 +85,7 @@
font-size: 0.8em;
& > vn-one span:first-child {
color: $secondary-font-color
color: $color-font-secondary
}
& > vn-one span:first-child, & > vn-one span:last-child {
@ -93,7 +93,7 @@
}
vn-icon[icon="add_circle"] {
color: $main-01
color: $color-main
}
}
}

View File

@ -1,4 +1,3 @@
@import "./colors";
@import "./variables";
.summary {
@ -9,8 +8,8 @@
& > h5 {
padding: $pad-small;
border: none;
background: $main-01;
color: $color-white;
background: $color-main;
color: white;
margin: 0;
text-align: center;
line-height: 1.3em;
@ -30,8 +29,8 @@
padding: 7px;
padding-bottom: 4px; /* Bottom line-height fix */
font-family: unset;
background-color: $main-01-03;
border-bottom: .1em solid $main-01;
background-color: $color-main-light;
border-bottom: .1em solid $color-main;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;

View File

@ -1,4 +1,4 @@
@import "./colors";
@import "./variables";
h1 {
font-size: 32pt;
@ -24,5 +24,5 @@ h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: .2em;
font-family: vn-font-bold;
color: $main-font-color
color: $color-font
}

View File

@ -1,18 +1,8 @@
@import "./colors";
$menu-width: 16em;
$topbar-height: 4em;
$mobile-width: 800px;
// Background color
$bg-main: $color-green;
$bg-minor: $color-orange;
$bg-content: $color-light-grey;
$bg-panel: $color-white;
$bg-dark-bar: $main-header;
$bg-dark-menu: $color-dark-grey;
// Padding
$pad-none: 0;
@ -30,5 +20,72 @@ $margin-large: 32px;
// Border
$border-color: #AAA;
$border-thin: 1px;
$border-thick: 2px;
$border-thin: .1em;
$border-thick: .15em;
// Light theme
$color-header: #3d3d3d;
$color-bg: #e5e5e5;
$color-bg-dark: #3d3d3d;
$color-font:#222222;
$color-font-secondary: #9b9b9b;
$color-active: #3d3d3d;
$color-active-font: white;
$color-bg-panel: white;
$color-main: #f7931e;
$color-secondary: #ccc;
$color-success: #a3d131;
$color-notice: #32b1ce;
$color-alert: #f42121;
$color-spacer: rgba(0, 0, 0, .3);
$color-spacer-light: rgba(0, 0, 0, .12);
$color-input-underline: rgba(0, 0, 0, .12);
$color-shadow: rgba(0, 0, 0, .2);
$color-hightlight: rgba(0, 0, 0, .15);
$color-hover-cd: rgba(0, 0, 0, .1);
$color-hover-dc: .7;
$color-disabled: .6;
$color-main-medium: lighten($color-main, 20%);
$color-main-light: lighten($color-main, 35%);
$color-success-medium: lighten($color-success, 20%);
$color-success-light: lighten($color-success, 35%);
$color-notice-medium: lighten($color-notice, 20%);
$color-notice-light: lighten($color-notice, 35%);
$color-alert-medium: lighten($color-alert, 20%);
$color-alert-light: lighten($color-alert, 35%);
// Dark theme
/*
$color-header: #3d3d3d;
$color-bg: #222;
$color-bg-dark: #222;
$color-font: white;
$color-font-secondary: #777;
$color-active: #666;
$color-active-font: white;
$color-bg-panel: #3c3b3b;
$color-main: #f7931e;
$color-secondary: #ccc;
$color-success: #a3d131;
$color-notice: #32b1ce;
$color-alert: #f42121;
$color-spacer: rgba(255, 255, 255, .3);
$color-spacer-light: rgba(255, 255, 255, .12);
$color-input-underline: rgba(255, 255, 255, .12);
$color-shadow: rgba(0, 0, 0, .2);
$color-hightlight: rgba(255, 255, 255, .15);
$color-hover-cd: rgba(255, 255, 255, .1);
$color-hover-dc: .7;
$color-disabled: .6;
$color-main-medium: darken($color-main, 20%);
$color-main-light: darken($color-main, 35%);
$color-success-medium: darken($color-success, 20%);
$color-success-light: darken($color-success, 35%);
$color-notice-medium: darken($color-notice, 20%);
$color-notice-light: darken($color-notice, 35%);
$color-alert-medium: darken($color-alert, 20%);
$color-alert-light: darken($color-alert, 35%);
/**/

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,21 +74,17 @@
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
medium-grey
margin-medium-v
vn-tooltip="Remove line"
icon="delete"
ng-click="$ctrl.deleteClaimedSale(saleClaimed.id)"
@ -95,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>
@ -116,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"
@ -173,9 +165,9 @@
</vn-thead>
<vn-tbody>
<vn-tr
class="clickable"
ng-repeat="ticket in lastTickets"
ng-click="$ctrl.importTicketLines(ticket.id)">
class="clickable"
ng-repeat="ticket in lastTickets"
ng-click="$ctrl.importTicketLines(ticket.id)">
<vn-td number>{{::ticket.id}}</vn-td>
<vn-td>{{::ticket.shipped | date: 'dd/MM/yyyy'}}</vn-td>
<vn-td>{{::ticket.agencyMode.name}}</vn-td>
@ -185,6 +177,7 @@
</vn-table>
</div>
</vn-popover>
<vn-item-descriptor-popover vn-id="descriptor"
quicklinks="$ctrl.quicklinks">
<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,16 +52,14 @@
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
medium-grey
margin-medium-v
vn-tooltip="Remove sale"
icon="delete"
ng-click="$ctrl.deleteClaimedSale($index)"
@ -69,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

@ -90,7 +90,6 @@
vn-acl="salesAssistant">
</vn-autocomplete>
<vn-icon-button
medium-grey
margin-medium-v
vn-tooltip="Remove sale"
icon="delete"

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: $main-01-05;
}
.Gestionado {
background-color: $main-03-05;
}
.Anulado, .Cuestionado {
background-color: white;
}
.Resuelto {
background-color: $main-02-05;
}
}

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

@ -82,8 +82,6 @@
</vn-textfield>
<vn-none>
<vn-icon-button
medium-grey
margin-medium-v
vn-tooltip="Remove note"
icon="delete"
ng-click="$ctrl.removeObservation($index)"
@ -93,7 +91,6 @@
</vn-horizontal>
</div>
<vn-icon-button
pointer
vn-bind="+"
vn-tooltip="Add note"
icon="add_circle"

View File

@ -8,23 +8,30 @@
</vn-crud-model>
<div compact>
<vn-card pad-large>
<vn-horizontal ng-repeat="address in addresses" class="pad-medium-top" style="align-items: center;">
<vn-one border-radius class="pad-small border-solid"
ng-class="{'bg-main': address.isDefaultAddress,'bg-opacity-item': !address.isActive && !address.isDefaultAddress}">
<vn-horizontal
ng-repeat="address in addresses"
class="pad-medium-top"
style="align-items: center;">
<vn-one
border-radius
class="pad-small border-solid"
ng-class="{'item-hightlight': address.isDefaultAddress, 'item-disabled': !address.isActive && !address.isDefaultAddress}">
<vn-horizontal style="align-items: center;">
<vn-none pad-medium-h>
<vn-icon-button icon="star"
<vn-icon-button
icon="star"
ng-if="address.isDefaultAddress">
</vn-icon-button>
<vn-icon-button icon="star_border"
<vn-icon-button
ng-if="!address.isActive"
icon="star_border"
vn-tooltip="Active first to set as default">
</vn-icon-button>
<vn-icon-button orange
<vn-icon-button
ng-if="address.isActive && !address.isDefaultAddress"
icon="star_border"
vn-tooltip="Set as default"
ng-click="$ctrl.setDefault(address)"
ng-if="address.isActive && !address.isDefaultAddress">
ng-click="$ctrl.setDefault(address)">
</vn-icon-button>
</vn-none>
<vn-one border-solid-right>

View File

@ -28,8 +28,7 @@
</vn-textfield>
<vn-none>
<vn-icon
pointer
medium-grey
pointer
margin-medium-v
vn-tooltip="Remove contact"
icon="delete"

View File

@ -1,11 +1,18 @@
<div compact>
<vn-card pad-large>
<vn-horizontal ng-repeat="classification in $ctrl.classifications track by classification.id" class="pad-medium-top" style="align-items: center;">
<vn-one border-radius class="pad-small border-solid" ng-class="{'bg-main': !classification.finished,'bg-opacity-item': classification.finished}">
<vn-horizontal
ng-repeat="classification in $ctrl.classifications track by classification.id"
class="pad-medium-top"
style="align-items: center;">
<vn-one
border-radius
class="pad-small border-solid"
ng-class="{'item-hightlight': !classification.finished,'item-disabled': classification.finished}">
<vn-horizontal style="align-items: center;">
<vn-none pad-medium-h orange>
<vn-icon-button icon="lock" orange
ng-if="!classification.finished"
<vn-none pad-medium-h>
<vn-icon-button
ng-if="!classification.finished"
icon="lock"
vn-tooltip="Close contract"
ng-click="$ctrl.closeContract(classification)">
</vn-icon-button>

View File

@ -2,6 +2,6 @@
vn-client-summary {
.alert span {
color: $alert-01 !important
color: $color-alert !important
}
}

View File

@ -2,9 +2,9 @@
vn-client-web-payment {
vn-icon[icon=clear] {
color: $alert-01;
color: $color-alert;
}
vn-icon[icon=check] {
color: $main-02;
color: $color-success;
}
}

View File

@ -23,8 +23,6 @@
</vn-textfield>
<vn-none>
<vn-icon
medium-grey
margin-medium-v
vn-acl="buyer,replenisher"
pointer
vn-tooltip="Remove barcode"

View File

@ -2,77 +2,83 @@
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>
<vn-vertical>
<vn-horizontal>
<vn-autocomplete
vn-focus
url="/item/api/Warehouses"
show-field="name"
value-field="id"
initial-data="$ctrl.warehouseFk"
field="$ctrl.warehouseFk"
label="Select warehouse">
</vn-autocomplete>
</vn-horizontal>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th>Date</vn-th>
<vn-th number order="DESC">Id</vn-th>
<vn-th>State</vn-th>
<vn-th>Reference</vn-th>
<vn-th>Client</vn-th>
<vn-th number>In</vn-th>
<vn-th number>Out</vn-th>
<vn-th number>Balance</vn-th>
</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">
{{::sale.date | date:'dd/MM/yyyy' }}
</vn-td>
<vn-td number>
<span ng-class="::{'link pointer': sale.isTicket}"
ng-click="$ctrl.showDescriptor($event, sale)"
class="id">
{{::sale.origin | dashIfEmpty}}
</span>
</vn-td>
<vn-td>{{::sale.stateName | dashIfEmpty}}</vn-td>
<vn-td>{{::sale.reference | dashIfEmpty}}</vn-td>
<vn-td class="truncate">
<span
ng-class="::{'link pointer': sale.isTicket}"
ng-click="$ctrl.showClientDescriptor($event, sale)">
{{::sale.name | dashIfEmpty}}
</span>
</vn-td>
<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">
{{::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-vertical>
<vn-horizontal>
<vn-autocomplete
vn-focus
url="/item/api/Warehouses"
show-field="name"
value-field="id"
initial-data="$ctrl.warehouseFk"
field="$ctrl.warehouseFk"
label="Select warehouse">
</vn-autocomplete>
</vn-horizontal>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th>Date</vn-th>
<vn-th number order="DESC">Id</vn-th>
<vn-th>State</vn-th>
<vn-th>Reference</vn-th>
<vn-th>Client</vn-th>
<vn-th number>In</vn-th>
<vn-th number>Out</vn-th>
<vn-th number>Balance</vn-th>
</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>
<span class="chip date">
{{::sale.date | date:'dd/MM/yyyy' }}
</span>
</vn-td>
<vn-td number>
<span
ng-class="::{link: sale.isTicket}"
ng-click="$ctrl.showDescriptor($event, sale)"
class="id">
{{::sale.origin | dashIfEmpty}}
</span>
</vn-td>
<vn-td>{{::sale.stateName | dashIfEmpty}}</vn-td>
<vn-td>{{::sale.reference | dashIfEmpty}}</vn-td>
<vn-td class="truncate">
<span
ng-class="::{link: sale.isTicket}"
ng-click="$ctrl.showClientDescriptor($event, sale)">
{{::sale.name | dashIfEmpty}}
</span>
</vn-td>
<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="chip balanceSpan">
{{::sale.balance | dashIfEmpty}}
</span>
</vn-td>
</vn-tr>
</vn-tbody>
</vn-table>
</vn-vertical>
</vn-card>
</vn-vertical>
<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: $alert-01;
font-weight: bold;
color: $color-alert;
}
.isIn .in {
color: $main-02;
color: $color-success;
font-weight: bold;
}
.isToday .date{
background-color: rgba(247, 147, 30, 0.5);
font-weight: bold;
.isToday .date {
color: white;
background-color: $color-main;
}
.truncate {
max-width: 250px;

View File

@ -4,7 +4,7 @@ vn-item-product {
display: block;
.id {
background-color: $main-01;
background-color: $color-main;
color: white;
margin-bottom: 0em;
}

View File

@ -2,70 +2,72 @@
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>
<vn-vertical>
<vn-horizontal>
<vn-date-picker
vn-one
label="Since"
model="$ctrl.date"
ini-options="{dateFormat: 'd-m-Y'}">
</vn-date-picker>
<!--datepicker-->
</vn-horizontal>
<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 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>
<vn-th number class="expendable">Label</vn-th>
<vn-th number>Packing</vn-th>
<vn-th number>Grouping</vn-th>
<vn-th number class="expendable">Stems</vn-th>
<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-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="entry in entries">
<vn-td number>
<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 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>
</vn-td>
<vn-td number>
<span 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-tr>
</vn-tbody>
<vn-empty-rows ng-if="model.data.length === 0" translate>
No results
</vn-empty-rows>
</vn-table>
<vn-horizontal>
<vn-date-picker
vn-one
label="Since"
model="$ctrl.date"
ini-options="{dateFormat: 'd-m-Y'}">
</vn-date-picker>
<!--datepicker-->
</vn-horizontal>
<vn-table model="model">
<vn-thead>
<vn-tr>
<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>
<vn-th number class="expendable">Label</vn-th>
<vn-th number>Packing</vn-th>
<vn-th number>Grouping</vn-th>
<vn-th number class="expendable">Stems</vn-th>
<vn-th number>Quantity</vn-th>
<vn-th number class="expendable">Cost</vn-th>
<vn-th number>Cube</vn-th>
<vn-th class="expendable">Provider</vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="entry in entries">
<vn-td center>
<vn-check
field="entry.isIgnored"
disabled="true">
</vn-check>
</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>
<span class="chip" ng-class="{counter: entry.groupingMode == 2}">
{{entry.packing | dashIfEmpty}}
</span>
</vn-td>
<vn-td number>
<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 class="expendable">{{entry.supplier | dashIfEmpty}}</vn-td>
</vn-tr>
</vn-tbody>
</vn-table>
</vn-vertical>
<vn-pagination model="model"></vn-pagination>
</vn-card>

View File

@ -1,7 +1,7 @@
@import "variables";
vn-item-last-entries {
.round {
background-color: $lines;
background-color: $color-spacer;
border-radius: 25px;
float: right;
width: 25px;

View File

@ -31,8 +31,6 @@
</vn-textfield>
<vn-none>
<vn-icon
medium-grey
margin-medium-v
vn-acl="buyer,replenisher"
pointer
vn-tooltip="Remove niche"

View File

@ -63,9 +63,8 @@
show-field="name"
value-field="name">
</vn-autocomplete>
<vn-icon-button vn-none
medium-grey
margin-medium-v
<vn-icon-button
vn-none
vn-tooltip="Remove tag"
icon="delete"
ng-click="filter.tags.splice($index, 1)"

View File

@ -1,4 +1,4 @@
@import "./colors";
@import "./variables";
vn-item-summary {
p {
@ -8,7 +8,7 @@ vn-item-summary {
.item-state {
padding: .4em;
background-color: $main-01;
background-color: $color-main;
color: white;
p {

View File

@ -65,8 +65,6 @@
</vn-textfield>
<vn-none>
<vn-icon-button
medium-grey
margin-medium-v
vn-tooltip="Remove tag"
icon="delete"
ng-click="model.remove($index)"

View File

@ -2,7 +2,7 @@
vn-dialog.modal-form {
vn-horizontal.header{
background-color: $main-01;
background-color: $color-main;
h5{
color: white;
margin: 0 auto;

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

@ -1,8 +1,8 @@
@import "variables";
vn-order-catalog .catalog-header {
border-color: $lines;
border-bottom: 1px solid rgba($lines, 0.5);
border-color: $color-spacer;
border-bottom: 1px solid rgba($color-spacer, 0.5);
vn-one:first-child {
padding-top: 2em;
@ -11,6 +11,6 @@ vn-order-catalog .catalog-header {
padding-top: 0.5em;
}
span {
color: $secondary-font-color
color: $color-font-secondary
}
}

View File

@ -5,8 +5,8 @@ vn-catalog-filter > div {
& > .input {
padding-left: $pad-medium;
padding-right: $pad-medium;
border-color: $lines;
border-bottom: 1px solid rgba($lines, 0.5);
border-color: $color-spacer;
border-bottom: 1px solid rgba($color-spacer, 0.5);
}
.item-category {
padding: $pad-small;
@ -22,12 +22,12 @@ vn-catalog-filter > div {
& > vn-icon {
padding: $pad-small;
background-color: $secondary-font-color;
background-color: $color-font-secondary;
border-radius: 50%;
cursor: pointer;
&.active {
background-color: $main-01;
background-color: $color-main;
color: #FFF
}
& > i:before {

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

@ -7,21 +7,21 @@
<vn-vertical>
<vn-horizontal>
<div class="totalBox">
<vn-label translate>Subtotal</vn-label>
<span>{{$ctrl.subtotal | currency: 'EUR':2}}</span>
<vn-label translate>Subtotal</vn-label>
<span>{{$ctrl.subtotal | currency: 'EUR':2}}</span>
<p>
<vn-label translate>VAT</vn-label>
<span>{{$ctrl.VAT | currency: 'EUR':2}}</span>
</p>
<vn-label><strong>Total</strong></vn-label>
<strong>{{$ctrl.order.total | currency: 'EUR':2}}</strong>
<vn-label><strong>Total</strong></vn-label>
<strong>{{$ctrl.order.total | currency: 'EUR':2}}</strong>
</div>
</vn-horizontal>
<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,28 +32,27 @@
</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
medium-grey
vn-tooltip="Remove item"
icon="delete"
ng-click="$ctrl.showDeleteRow($index)"
@ -62,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>
@ -75,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

@ -4,10 +4,10 @@
<a translate-attr="{title: 'Return to module index'}" ui-sref="item.index">
<vn-icon icon="chevron_left"></vn-icon>
</a>
<vn-icon icon="inbox"></vn-icon>
<a translate-attr="{title: 'Preview'}" ui-sref="item.card.summary({id: $ctrl.item.id})">
<vn-icon icon="desktop_windows"></vn-icon>
</a>
<vspan></span>
</div>
<div pad-medium>
<vn-horizontal>
@ -37,9 +37,15 @@
<form name="form">
<vn-horizontal
ng-repeat="price in $ctrl.prices">
<vn-one class="ellipsize text" title="{{::price.warehouse}}">{{::price.warehouse}}</vn-one>
<vn-one
class="ellipsize text"
title="{{::price.warehouse}}">
{{::price.warehouse}}
</vn-one>
<vn-one class="number text">
<span orange ng-click="$ctrl.addQuantity(price)" class="link unselectable">{{::price.grouping}}</span><span> x {{::price.price | currency: 'EUR': 2}}</span>
<span ng-click="$ctrl.addQuantity(price)"
class="link unselectable">{{::price.grouping}}</span>
<span> x {{::price.price | currency: 'EUR': 2}}</span>
</vn-one>
<vn-one>
<vn-input-number

View File

@ -14,7 +14,7 @@ vn-order-prices-popover {
vn-vertical.data{
padding-right: 16px;
border-right: 1px solid $main-01;
border-right: 1px solid $color-main;
}
vn-vertical.prices{

View File

@ -39,44 +39,41 @@
<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"
orange
color-main
icon="warning"
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

@ -8,78 +8,76 @@
</vn-crud-model>
<vn-vertical>
<vn-card pad-large>
<vn-vertical>
<table class="vn-grid">
<thead>
<tr>
<th number translate>Item</th>
<th translate>Description</th>
<th number translate>Quantity</th>
<th translate>Serie</th>
<th translate>Components</th>
<th number translate>Import</th>
<th number translate>Total import</th>
</tr>
</thead>
<tfoot>
<tr>
<td number colspan="7">
<span translate>Base</span> {{$ctrl.base() | currency: 'EUR':3}}
</td>
</tr>
<tr>
<td number colspan="7">
<span translate>Margin</span> {{$ctrl.profitMargin() | currency: 'EUR':3}}
</td>
</tr>
<tr>
<td number colspan="7">
<span translate>Total</span> {{$ctrl.total() | currency: 'EUR':3}}
</td>
</tr>
</tfoot>
<tbody ng-repeat="sale in components track by sale.id">
<tr>
<td rowspan="{{
::sale.components.length + 1
}}" number>
<span pointer
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
class="link">
{{("000000"+sale.itemFk).slice(-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>
</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>
</tr>
<tr ng-if="model.data.length === 0" class="list list-element">
<td colspan="7" style="text-align: center" translate>No results</td>
</tr>
</tbody>
</table>
</vn-vertical>
<!-- <vn-paging vn-one margin-large-top index="index" total="index.model.count"></vn-paging> -->
<vn-vertical>
<table class="vn-grid">
<thead>
<tr>
<th number translate>Item</th>
<th translate>Description</th>
<th number translate>Quantity</th>
<th translate>Serie</th>
<th translate>Components</th>
<th number translate>Import</th>
<th number translate>Total import</th>
</tr>
</thead>
<tfoot>
<tr>
<td number colspan="7">
<span translate>Base</span> {{$ctrl.base() | currency: 'EUR':3}}
</td>
</tr>
<tr>
<td number colspan="7">
<span translate>Margin</span> {{$ctrl.profitMargin() | currency: 'EUR':3}}
</td>
</tr>
<tr>
<td number colspan="7">
<span translate>Total</span> {{$ctrl.total() | currency: 'EUR':3}}
</td>
</tr>
</tfoot>
<tbody ng-repeat="sale in components track by sale.id">
<tr>
<td rowspan="{{::sale.components.length + 1}}" number>
<span
ng-click="$ctrl.showDescriptor($event, sale.itemFk)"
class="link">
{{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>
</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>
</tr>
<tr ng-if="model.data.length === 0" class="list list-element">
<td colspan="7" style="text-align: center" translate>No results</td>
</tr>
</tbody>
</table>
</vn-vertical>
</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

@ -2,8 +2,8 @@
tpl-item{
&.notActive {
background-color: $main-bg;
color: $secondary-font-color;
background-color: $color-bg;
color: $color-font-secondary;
width: 100%;
}

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
panel="vn-ticket-search-panel"
on-search="$ctrl.onSearch($params)"
vn-focus>
</vn-searchbar>
</vn-three>
<vn-searchbar
style="width: 100%"
panel="vn-ticket-search-panel"
on-search="$ctrl.onSearch($params)"
vn-focus>
</vn-searchbar>
<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"
ui-sref="ticket.card.summary({id: {{::ticket.id}}})">
<vn-td>
<vn-icon ng-show="ticket.problem" class="bright"
<a ng-repeat="ticket in tickets"
class="clickable vn-tr searchResult"
ui-sref="ticket.card.summary({id: {{::ticket.id}}})">
<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)}}">
{{::ticket.shipped | dateTime: 'dd/MM/yyyy'}}
<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

@ -4,37 +4,41 @@ vn-ticket-index{
vn-icon-menu{
padding-top: 30px;
padding-left: 10px;
color: $main-01;
color: $color-main;
li {
color: initial;
}
}
.alert1 {
background-color: $main-01-03;
&:hover {
background-color: $main-01-05;
}
color: white;
background-color: $color-main-light;
}
vn-tr:hover .alert1 {
background-color: $color-main-medium;
}
.alertOk {
background-color: $main-02-03;
&:hover {
background-color: $main-02-05;
}
color: white;
background-color: $color-success-light;
}
vn-tr:hover .alertOk {
background-color: $color-success-medium;
}
.alertFree {
background-color: $main-03-03;
&:hover {
background-color: $main-03-05;
}
color: white;
background-color: $color-notice-light;
}
vn-tr:hover .alertFree {
background-color: $color-notice-medium;
}
.alert0 {
background-color: $alert-01-03;
&:hover {
background-color: $alert-01-05;
}
color: white;
background-color: $color-alert-light;
}
vn-tr:hover .alert0 {
background-color: $color-alert-medium;
}
}

View File

@ -37,7 +37,6 @@
<vn-auto pad-medium-top>
<vn-icon
pointer
medium-grey
vn-tooltip="Remove note"
icon="delete"
ng-click="model.remove($index)">
@ -47,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

@ -40,8 +40,7 @@
</vn-textfield>
<vn-auto pad-medium-top>
<vn-icon
pointer
medium-grey
pointer
vn-tooltip="Remove package"
icon="delete"
ng-click="model.remove($index)">
@ -51,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']"
@ -14,65 +15,66 @@
</vn-watcher>
<form name="form" ng-submit="$ctrl.onSubmit()">
<vn-card pad-large>
<vn-horizontal>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th number>Id</vn-th>
<vn-th>Description</vn-th>
<vn-th number>Created</vn-th>
<vn-th>Requester</vn-th>
<vn-th>Atender</vn-th>
<vn-th number>Quantity</vn-th>
<vn-th number>Price</vn-th>
<vn-th number>Sale id</vn-th>
<vn-th number>Ok</vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="request in purchaseRequests">
<vn-td number>{{::request.id}}</vn-td>
<vn-td>{{::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>
<vn-td number>{{::request.quantity}}</vn-td>
<vn-td number>{{::request.price | currency: 'EUR': 2}}</vn-td>
<vn-td number>
<span
ng-show="::request.saleFk"
ng-click="$ctrl.showDescriptor($event, request.sale)"
pointer class="link">
{{("000000"+request.saleFk).slice(-6)}}
</span>
</vn-td>
<vn-td number>
<vn-check vn-one
field="::request.isOk"
disabled="true">
</vn-check>
</vn-td>
<vn-td number>
<vn-icon-button
disabled="::request.saleFk"
icon="delete"
ng-click="$ctrl.removeLine($index)"
vn-tooltip="Remove request"
tabindex="-1">
</vn-icon-button>
</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-horizontal>
<vn-table model="model">
<vn-thead>
<vn-tr>
<vn-th number>Id</vn-th>
<vn-th>Description</vn-th>
<vn-th number>Created</vn-th>
<vn-th>Requester</vn-th>
<vn-th>Atender</vn-th>
<vn-th number>Quantity</vn-th>
<vn-th number>Price</vn-th>
<vn-th number>Sale id</vn-th>
<vn-th number>Ok</vn-th>
</vn-tr>
</vn-thead>
<vn-tbody>
<vn-tr ng-repeat="request in purchaseRequests">
<vn-td number>{{::request.id}}</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>
<vn-td number>{{::request.quantity}}</vn-td>
<vn-td number>{{::request.price | currency: 'EUR': 2}}</vn-td>
<vn-td number>
<span
ng-show="::request.saleFk"
ng-click="$ctrl.showDescriptor($event, request.sale)"
class="link">
{{request.saleFk | zeroFill:6}}
</span>
</vn-td>
<vn-td number>
<vn-check vn-one
field="::request.isOk"
disabled="true">
</vn-check>
</vn-td>
<vn-td number>
<vn-icon-button
disabled="::request.saleFk"
icon="delete"
ng-click="$ctrl.removeLine($index)"
vn-tooltip="Remove request"
tabindex="-1">
</vn-icon-button>
</vn-td>
</vn-tr>
</vn-tbody>
</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

@ -80,14 +80,13 @@
<a ui-sref="claim.card.basicData({id: sale.claim.claimFk})">
<vn-icon
ng-show="sale.claim.claimFk"
orange
icon="icon-claims"
vn-tooltip="{{::$ctrl.$translate.instant('Claim')}}: {{::sale.claim.claimFk}}">
</vn-icon>
</a>
<vn-icon
ng-show="sale.visible || sale.available"
orange
color-main
icon="warning"
vn-tooltip="Visible: {{::sale.visible || 0}} <br> {{::$ctrl.$translate.instant('Available')}}: {{::sale.available || 0}}">
</vn-icon>
@ -104,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
@ -121,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>
@ -132,7 +132,6 @@
ng-if="$ctrl.isEditable"
class="link"
ng-click="$ctrl.showEditPopover($event, sale)"
pointer
vn-tooltip="Edit discount">
{{sale.discount}} %
</vn-td>
@ -242,19 +241,17 @@
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>
<vn-icon
medium-grey
color-secondary
vn-tooltip="You have to allow pop-ups in your web browser to use this functionality"
icon="info">
</vn-icon>

View File

@ -11,7 +11,7 @@ vn-ticket-sale {
}
vn-horizontal.header{
background-color: $main-01;
background-color: $color-main;
h5{
color: white;
margin: 0 auto;
@ -21,7 +21,7 @@ vn-ticket-sale {
p.simulatorTitle{
margin-bottom: 0px;
font-size: 12px;
color: $main-01;
color: $color-main;
}
vn-label-value{

View File

@ -42,8 +42,7 @@
</vn-autocomplete>
<vn-auto pad-medium-top>
<vn-icon
pointer
medium-grey
pointer
vn-tooltip="Remove service"
icon="delete"
ng-click="model.remove($index)">
@ -52,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

@ -69,15 +69,13 @@
<vn-td>
<a ui-sref="claim.card.basicData({id: sale.claimBeginning.claimFk})">
<vn-icon
ng-show="sale.claimBeginning.claimFk"
orange
icon="icon-claims"
vn-tooltip="{{::$ctrl.$translate.instant('Claim')}}: {{::sale.claimBeginning.claimFk}}">
</vn-icon>
</a>
<vn-icon
ng-show="sale.visible || sale.available"
orange
color-main
icon="warning"
vn-tooltip="Visible: {{::sale.visible || 0}} <br> {{::$ctrl.translate.instant('Available')}} {{::sale.available || 0}}">
</vn-icon>
@ -86,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>
@ -119,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">
@ -139,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">
@ -167,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>
@ -177,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>
@ -189,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>

Some files were not shown because too many files have changed in this diff Show More