This commit is contained in:
Carlos Jimenez Ruiz 2019-02-06 14:19:31 +01:00
commit cdee2d21e2
108 changed files with 755 additions and 1745 deletions

View File

@ -13,8 +13,19 @@ module.exports = function(Self) {
});
Self.getUserConfig = async ctx => {
return await Self.app.models.UserConfig.findOne({
let userConfig = await Self.app.models.UserConfig.findOne({
where: {userFk: ctx.req.accessToken.userId}
});
if (!userConfig) {
let newConfig = {
warehouseFk: 1,
companyFk: 442,
userFk: ctx.req.accessToken.userId
};
userConfig = await Self.app.models.UserConfig.create(newConfig);
}
return userConfig;
};
};

View File

@ -356,7 +356,7 @@ export default {
secondSaleDiscount: `vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(8)`,
secondSaleImport: `vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(9)`,
secondSaleText: `vn-table div > vn-tbody > vn-tr:nth-child(2)`,
totalImport: 'vn-ticket-sale > vn-vertical > vn-card > div > vn-vertical > div > p:nth-child(3) > strong',
totalImport: 'vn-ticket-sale > vn-vertical > vn-card > div > vn-vertical > vn-horizontal > vn-one > p:nth-child(3) > strong',
selectAllSalesCheckbox: `vn-ticket-sale vn-thead vn-check label`,
secondSaleCheckbox: `vn-ticket-sale vn-tr:nth-child(2) vn-check[field="sale.checked"] label`,
thirdSaleCheckbox: `vn-ticket-sale vn-tr:nth-child(3) vn-check[field="sale.checked"] label`,

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-calendar {
display: block;

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-check {
position: relative;

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-chip {
margin: 0 0.5em 0.5em 0;

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-date-picker {
.mdl-chip__action {

View File

@ -1,5 +1,5 @@
@import "effects";
@import "colors";
@import "variables";
vn-drop-down {
.dropdown {

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-fetched-tags {
&.noTitle vn-one {

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-icon-button {
outline: 0;

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
@import '../textfield/style.scss';
vn-input-number {

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-input-range {
label {
color: $main-01;

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
@import '../textfield/style.scss';
vn-input-time {

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-label-value > section {
& > vn-label {

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-log {
vn-td {

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-paging {
display: block;

View File

@ -1,4 +1,4 @@
@import "padding";
@import "variables";
vn-searchbar {
padding-top: 6px;
@ -13,6 +13,6 @@ vn-searchbar {
max-height: 48em;
& > form {
@extend .pad-large;
padding: $pad-large;
}
}

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-snackbar #shapes {
max-height: 20.625em;

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-step-control {
display: flex;

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-textarea {
& > .mdl-textfield {

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-textfield {
margin: 20px 0!important;
display: inline-block;

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-treeview {
ul {

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
/**
* Rewrited CSS rules from Material Design Lite.

View File

@ -1,9 +1,7 @@
@import "background";
@import "margin";
@import "variables";
body {
@extend .bg-content;
background-color: $bg-content;
overflow: auto;
}
vn-app {
@ -56,7 +54,7 @@ vn-app {
padding-top: $topbar-height;
}
.content-block {
@extend .margin-medium;
margin: $margin-medium;
form vn-horizontal {
& > * {

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-login {
position: absolute;

View File

@ -1,4 +1,4 @@
@import "background";
@import "variables";
vn-topbar {
display: flex;

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-user-configuration-popover {
vn-popover {

View File

@ -1,11 +1,4 @@
@import "colors";
$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;
@import "./variables";
html [bg-main], .bg-main {
background-color: $main-bg;

View File

@ -1,8 +1,5 @@
@import "colors";
$border-color: #AAA;
$border-thin: 1px;
$border-thick: 2px;
@import "./colors";
@import "./variables";
html [border-none], .border-none {
border: 0;

View File

@ -1,7 +1,7 @@
@import "./effects";
@import "./colors";
@import "./padding";
@import "./variables";
.vn-descriptor {
box-shadow: 0 .1em .2em rgba(1, 1, 1, .2);
@ -28,13 +28,13 @@
}
}
& > .body {
@extend .pad-small;
padding: $pad-small;
& > * {
@extend .pad-small;
padding: $pad-small;
}
& > .attributes > h5 {
@extend .pad-small-bottom;
padding-bottom: $pad-small;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
@ -46,7 +46,7 @@
padding: 0;
& > vn-icon {
@extend .pad-small;
padding: $pad-small;
color: #666;
opacity: .4;
font-size: 1.5em;
@ -64,7 +64,7 @@
padding: 0;
& > a {
@extend .pad-small;
padding: $pad-small;
& > vn-icon {
font-size: 1.8em;

View File

@ -1,5 +1,5 @@
@import "colors";
@import "font-family";
@import "./colors";
@import "./font-family";
body {
color: $main-font-color;
@ -9,16 +9,16 @@ 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 [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 [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}

View File

@ -1,8 +1,4 @@
$margin-none: 0;
$margin-small: 8px;
$margin-medium: 16px;
$margin-large: 32px;
@import "variables";
/* None */
@ -16,101 +12,101 @@ html [margin-small], .margin-small {
margin: $margin-small;
}
html [margin-small-top], .margin-small-top {
margin-top: $margin-small;
margin-top: $margin-small;
}
html [margin-small-left], .margin-small-left {
margin-left: $margin-small;
margin-left: $margin-small;
}
html [margin-small-right], .margin-small-right {
margin-right: $margin-small;
margin-right: $margin-small;
}
html [margin-small-bottom], .margin-small-bottom {
margin-bottom: $margin-small;
margin-bottom: $margin-small;
}
html [margin-small-v], .margin-small-v {
margin-top: $margin-small;
margin-bottom: $margin-small;
margin-top: $margin-small;
margin-bottom: $margin-small;
}
html [margin-small-h], .margin-small-h {
margin-left: $margin-small;
margin-right: $margin-small;
margin-left: $margin-small;
margin-right: $margin-small;
}
/* Medium */
html [margin-medium], .margin-medium {
margin: $margin-medium;
margin: $margin-medium;
}
html [margin-medium-top], .margin-medium-top {
margin-top: $margin-medium;
margin-top: $margin-medium;
}
html [margin-medium-left], .margin-medium-left {
margin-left: $margin-medium;
margin-left: $margin-medium;
}
html [margin-medium-right], .margin-medium-right {
margin-right: $margin-medium;
margin-right: $margin-medium;
}
html [margin-medium-bottom], .margin-medium-bottom {
margin-bottom: $margin-medium;
margin-bottom: $margin-medium;
}
html [margin-medium-v], .margin-medium-v {
margin-top: $margin-medium;
margin-bottom: $margin-medium;
margin-top: $margin-medium;
margin-bottom: $margin-medium;
}
html [margin-medium-h], .margin-medium-h {
margin-left: $margin-medium;
margin-right: $margin-medium;
margin-left: $margin-medium;
margin-right: $margin-medium;
}
/* Large */
html [margin-large], .margin-large {
margin: $margin-large;
margin: $margin-large;
}
html [margin-large-top], .margin-large-top {
margin-top: $margin-large;
margin-top: $margin-large;
}
html [margin-large-left], .margin-large-left {
margin-left: $margin-large;
margin-left: $margin-large;
}
html [margin-large-right], .margin-large-right {
margin-right: $margin-large;
margin-right: $margin-large;
}
html [margin-large-bottom], .margin-large-bottom {
margin-bottom: $margin-large;
margin-bottom: $margin-large;
}
html [margin-large-v], .margin-large-v {
margin-top: $margin-large;
margin-bottom: $margin-large;
margin-top: $margin-large;
margin-bottom: $margin-large;
}
html [margin-large-h], .margin-large-h {
margin-left: $margin-large;
margin-right: $margin-large;
margin-left: $margin-large;
margin-right: $margin-large;
}
/* Minus Small */
html [margin--small], .margin--small {
margin: -$margin-small;
margin: -$margin-small;
}
html [margin--small-top], .margin--small-top {
margin-top: -$margin-small;
margin-top: -$margin-small;
}
html [margin--small-left], .margin--small-left {
margin-left: -$margin-small;
margin-left: -$margin-small;
}
html [margin--small-right], .margin--small-right {
margin-right: -$margin-small;
margin-right: -$margin-small;
}
html [margin--small-bottom], .margin--small-bottom {
margin-bottom: -$margin-small;
margin-bottom: -$margin-small;
}
html [margin--small-v], .margin--small-v {
margin-top: -$margin-small;
margin-bottom: -$margin-small;
margin-top: -$margin-small;
margin-bottom: -$margin-small;
}
html [margin--small-h], .margin--small-h {
margin-left: -$margin-small;
margin-right: -$margin-small;
margin-left: -$margin-small;
margin-right: -$margin-small;
}

View File

@ -1,7 +1,5 @@
@import "./padding";
@import "./margin";
@import "./variables";
@import "./colors";
@import "./border";
@import "./effects";
a:focus,
@ -160,8 +158,8 @@ a.vn-list-item {
}
.vn-list-item {
@extend .pad-medium;
@extend .border-solid-bottom;
padding: $pad-medium;
border-bottom: $border-thin solid $border-color;
display: block;
text-decoration: none;

View File

@ -1,7 +1,5 @@
@import "./colors";
@media screen and (max-width: 1920px){
.catalog-list .product {
width: 25%;

View File

@ -1,8 +1,4 @@
$pad-none: 0;
$pad-small: 8px;
$pad-medium: 16px;
$pad-large: 32px;
@import "./variables";
/* None */

View File

@ -1,6 +1,5 @@
@import "./colors";
@import "./margin";
@import "./padding";
@import "./variables";
.summary {
margin: 0 auto;
@ -8,7 +7,7 @@
& > div {
& > h5 {
@extend .pad-small;
padding: $pad-small;
border: none;
background: $main-01;
color: $color-white;
@ -21,10 +20,10 @@
}
& > vn-horizontal {
flex-wrap: wrap;
@extend .pad-medium;
padding: $pad-medium;
h4 {
@extend .margin-medium-bottom;
margin-bottom: $margin-medium;
text-transform: uppercase;
font-size: 15pt;
line-height: 1;
@ -38,7 +37,7 @@
text-overflow: ellipsis;
}
& > * {
@extend .margin-small;
margin: $margin-small;
min-width: 14em;
overflow: hidden;
padding: 0;
@ -80,27 +79,3 @@
font-size: .9em
}
}
.state {
padding: 5px;
background-color: $main-01;
color: white;
p {
font-size: 13px;
line-height: 15px;
text-align: center;
margin: .1em 0;
&:nth-child(1) {
text-transform: uppercase;
}
}
vn-one {
padding: 0;
&:nth-child(1) {
border-right: .1em solid white;
}
}
}

View File

@ -1,4 +1,4 @@
@import "colors";
@import "./colors";
h1 {
font-size: 32pt;

View File

@ -1,4 +1,34 @@
@import "./colors";
$menu-width: 16em;
$topbar-height: 4em;
$mobile-width: 800px;
$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;
$pad-small: 8px;
$pad-medium: 16px;
$pad-large: 32px;
// Margin
$margin-none: 0;
$margin-small: 8px;
$margin-medium: 16px;
$margin-large: 32px;
// Border
$border-color: #AAA;
$border-thin: 1px;
$border-thick: 2px;

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-claim-index {
.Pendiente {

View File

@ -5,7 +5,32 @@ vn-client-sample-create {
}
tpl-body {
min-width: 800px
min-width: 800px;
.container, .container h1 {
font-family: "Roboto","Helvetica","Arial",sans-serif;
font-size: 1em !important;
h1 {
font-weight: bold;
margin: auto
}
p {
margin: 1em 0
}
footer p {
font-size: 10px !important;
line-height: 10px
}
}
.title h1 {
font-size: 2em !important;
margin: 0
}
}
}
}

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-client-summary {
.alert span {

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-client-web-payment {
vn-icon[icon=clear] {

View File

@ -31,7 +31,7 @@
</vn-float-button>
</a>
</div>
<vn-horizontal class="state">
<vn-horizontal class="item-state">
<vn-one>
<p translate>Visible</p>
<p>{{$ctrl.item.visible}}</p>
@ -46,7 +46,7 @@
<div class="attributes">
<h5>{{$ctrl.item.id}}</h5>
<vn-label-value label="Name"
value="{{::$ctrl.item.name}}">
value="{{$ctrl.item.name}}">
</vn-label-value>
<vn-label-value label="Buyer"
value="{{$ctrl.item.itemType.worker.user.nickname}}">

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-item-diary {
& > vn-vertical {

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-item-product {
display: block;

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-item-last-entries {
.round {
background-color: $lines;

View File

@ -7,7 +7,7 @@
ng-src="//verdnatura.es/vn-image-data/catalog/200x200/{{$ctrl.item.image}}"
zoom-image="//verdnatura.es/vn-image-data/catalog/1600x900/{{$ctrl.item.image}}" on-error-src/>
</vn-one>
<vn-horizontal class="state">
<vn-horizontal class="item-state">
<vn-one>
<p translate>Visible</p>
<p>{{$ctrl.summary.visible}}</p>
@ -36,7 +36,7 @@
value="{{$ctrl.summary.item.origin.name}}">
</vn-label-value>
<vn-label-value label="stems"
value="{{$ctrl.summary.item.origin.stems}}">
value="{{$ctrl.summary.item.stems}}">
</vn-label-value>
<vn-label-value label="Buyer"
value="{{$ctrl.summary.item.itemType.worker.user.nickname}}">

View File

@ -1,5 +1,35 @@
@import "./colors";
vn-item-summary {
p {
margin: 0;
}
}
.item-state {
padding: .4em;
background-color: $main-01;
color: white;
p {
font-size: .8em;
text-align: center;
margin: 0;
&:first-child {
text-transform: uppercase;
line-height: 1;
}
&:last-child {
font-size: 1.5em;
font-weight: bold;
}
}
vn-one {
padding: 0;
&:nth-child(1) {
border-right: .1em solid white;
}
}
}

View File

@ -67,6 +67,7 @@ class Controller {
this.$scope.model.save().then(() => {
this.$scope.watcher.notifySaved();
this.$scope.model.refresh();
this.card.reload();
});
}
}
@ -75,5 +76,8 @@ Controller.$inject = ['$stateParams', '$scope'];
ngModule.component('vnItemTags', {
template: require('./index.html'),
controller: Controller
controller: Controller,
require: {
card: '^vnItemCard'
}
});

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-dialog.modal-form {
vn-horizontal.header{

View File

@ -1,4 +1,4 @@
@import "colors";
@import "variables";
vn-order-catalog .catalog-header {
border-color: $lines;

View File

@ -1,26 +1,27 @@
@import "colors";
@import "padding";
@import "variables";
@import "variables";
vn-catalog-filter > div {
& > .input {
@extend .pad-medium-h;
padding-left: $pad-medium;
padding-right: $pad-medium;
border-color: $lines;
border-bottom: 1px solid rgba($lines, 0.5);
}
.item-category {
@extend .pad-small;
padding: $pad-small;
justify-content: flex-start;
align-items: flex-start;
flex-wrap: wrap;
& > vn-one {
@extend .pad-small;
padding: $pad-small;
min-width: 33.33%;
text-align: center;
box-sizing: border-box;
& > vn-icon {
@extend .pad-small;
padding: $pad-small;
background-color: $secondary-font-color;
border-radius: 50%;
cursor: pointer;
@ -39,7 +40,7 @@ vn-catalog-filter > div {
}
.chips {
flex-wrap: wrap;
@extend .pad-medium;
padding: $pad-medium;
}
vn-autocomplete[vn-id="type"] .list {

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-order-prices-popover {
width: 150px;

View File

@ -81,10 +81,10 @@ module.exports = Self => {
params.clientFk,
params.shipped,
params.warehouseFk,
params.companyFk | 442,
params.companyFk || 442,
params.addressFk,
params.agencyModeFk | null,
params.routeFk | null,
params.agencyModeFk || null,
params.routeFk || null,
params.landed,
params.userId
], {options: transaction});

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
tpl-item{
&.notActive {

View File

@ -3,7 +3,7 @@
url="/ticket/api/Tickets/filter"
limit="20"
data="tickets"
order="shipped ASC"
order="shipped DESC"
auto-load="false">
</vn-crud-model>
<div class="content-block">
@ -74,7 +74,12 @@
<vn-td>{{::ticket.agencyMode}}</vn-td>
<vn-td>{{::ticket.warehouse}}</vn-td>
<vn-td number>{{::ticket.total | currency: 'EUR': 2}}</vn-td>
<vn-td>
<vn-td number>
<vn-icon-button
ng-click="$ctrl.goToLines(ticket.id)"
vn-tooltip="Preview"
icon="icon-lines">
</vn-icon-button>
<vn-icon-button
ng-click="$ctrl.preview($event, ticket)"
vn-tooltip="Preview"

View File

@ -8,7 +8,9 @@ export default class Controller {
this.$state = $state;
this.selectedTicket = null;
this.moreOptions = [
{callback: this.goToTurns, name: 'Turns', always: true},
{callback: () => {
this.goToTurns('ticket.weekly');
}, name: 'Turns', always: true},
];
if (!$stateParams.q) {
@ -42,6 +44,10 @@ export default class Controller {
this.$.model.clear();
}
goToLines(ticketFk) {
this.$state.go('ticket.card.lines', {id: ticketFk});
}
goToTurns() {
this.$state.go('ticket.weekly');
}

View File

@ -1,4 +1,4 @@
@import 'colors';
@import "variables";
vn-ticket-index{
vn-icon-menu{

View File

@ -6,44 +6,51 @@
<vn-vertical>
<vn-card pad-large>
<vn-vertical>
<vn-tool-bar margin-medium-bottom>
<vn-button
disabled="!$ctrl.isEditable"
label="Ok"
ng-click="$ctrl.onStateOkClick()"
vn-tooltip="Change ticket state to 'Ok'">
</vn-button>
<vn-button-menu
disabled="!$ctrl.isEditable"
label="State"
url="/ticket/api/States/alertLevelIs0"
on-change="$ctrl.onStateChange(value)">
</vn-button-menu>
<vn-button-menu
ng-show="$ctrl.isChecked"
vn-id="more-button"
label="More"
show-filter="false"
value-field="callback"
translate-fields="['name']"
on-change="$ctrl.onMoreChange(value)"
on-open="$ctrl.onMoreOpen()">
</vn-button-menu>
<vn-button
disabled="!$ctrl.isChecked || !$ctrl.isEditable"
ng-click="$ctrl.showRemoveLinesDialog()"
vn-tooltip="Remove lines"
tooltip-position="up"
icon="delete">
</vn-button>
<vn-button
disabled="!$ctrl.isChecked || !$ctrl.isEditable"
ng-click="$ctrl.showTransferPopover($event);"
vn-tooltip="Transfer lines"
tooltip-position="right"
icon="call_split">
</vn-button>
</vn-tool-bar>
<vn-horizontal class="header">
<vn-tool-bar margin-medium-bottom>
<vn-button
disabled="!$ctrl.isEditable"
label="Ok"
ng-click="$ctrl.onStateOkClick()"
vn-tooltip="Change ticket state to 'Ok'">
</vn-button>
<vn-button-menu
disabled="!$ctrl.isEditable"
label="State"
url="/ticket/api/States/alertLevelIs0"
on-change="$ctrl.onStateChange(value)">
</vn-button-menu>
<vn-button-menu
ng-show="$ctrl.isChecked"
vn-id="more-button"
label="More"
show-filter="false"
value-field="callback"
translate-fields="['name']"
on-change="$ctrl.onMoreChange(value)"
on-open="$ctrl.onMoreOpen()">
</vn-button-menu>
<vn-button
disabled="!$ctrl.isChecked || !$ctrl.isEditable"
ng-click="$ctrl.showRemoveLinesDialog()"
vn-tooltip="Remove lines"
tooltip-position="up"
icon="delete">
</vn-button>
<vn-button
disabled="!$ctrl.isChecked || !$ctrl.isEditable"
ng-click="$ctrl.showTransferPopover($event);"
vn-tooltip="Transfer lines"
tooltip-position="right"
icon="call_split">
</vn-button>
</vn-tool-bar>
<vn-one class="taxes" ng-if="$ctrl.sales.length > 0">
<p><vn-label translate>Subtotal</vn-label> {{$ctrl.subTotal | currency: 'EUR':2}}</p>
<p><vn-label translate>VAT</vn-label> {{$ctrl.VAT | currency: 'EUR':2}}</p>
<p><vn-label><strong>Total</strong></vn-label> <strong>{{$ctrl.total | currency: 'EUR':2}}</strong></p>
</vn-one>
</vn-horizontal>
<vn-table model="model">
<vn-thead>
<vn-tr>
@ -142,21 +149,6 @@
No results
</vn-empty-rows>
</vn-table>
<div class="totals"
ng-if="$ctrl.sales.length > 0">
<p>
<vn-label translate>Subtotal</vn-label>
<span>{{$ctrl.subTotal | currency: 'EUR':2}}</span>
</p>
<p>
<vn-label translate>VAT</vn-label>
<span>{{$ctrl.VAT | currency: 'EUR':2}}</span>
</p>
<p>
<vn-label><strong>Total</strong></vn-label>
<strong>{{$ctrl.total | currency: 'EUR':2}}</strong>
</p>
</div>
</vn-vertical>
</vn-card>
<vn-item-descriptor-popover vn-id="descriptor"

View File

@ -1,10 +1,15 @@
@import "colors";
@import "variables";
vn-ticket-sale {
.header {
justify-content: space-between !important;
align-items: center;
}
vn-popover.edit {
div.popover{
width: 200px;
}
vn-horizontal.header{
background-color: $main-01;
h5{
@ -85,13 +90,16 @@ vn-ticket-sale {
max-width: 50px;
}
}
.totals {
.taxes {
max-width: 10em;
border: .1em solid #CCC;
text-align: right;
padding: .5em !important;
& > p {
margin: 0;
margin-top: 1em;
font-size: 1.2em;
margin: .2em;
}
}
}

1349
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -4,10 +4,10 @@
"author": "Verdnatura Levante SL",
"description": "Salix backend",
"license": "GPL-3.0",
"repository": {
"type": "git",
"url": "https://gitea.verdnatura.es/verdnatura/salix"
},
"repository": {
"type": "git",
"url": "https://gitea.verdnatura.es/verdnatura/salix"
},
"dependencies": {
"compression": "^1.7.3",
"fs-extra": "^5.0.0",
@ -36,7 +36,7 @@
"@babel/register": "^7.0.0",
"angular-mocks": "^1.7.4",
"babel-loader": "^8.0.5",
"css-loader": "^0.25.0",
"css-loader": "^2.1.0",
"del": "^2.2.2",
"eslint": "^5.12.0",
"eslint-config-google": "^0.11.0",
@ -73,9 +73,9 @@
"node-sass": "^4.9.3",
"nodemon": "^1.18.5",
"plugin-error": "^1.0.1",
"raw-loader": "*",
"sass-loader": "^6.0.7",
"style-loader": "^0.20.3",
"raw-loader": "^1.0.0",
"sass-loader": "^7.1.0",
"style-loader": "^0.23.1",
"webpack": "^4.28.3",
"webpack-cli": "^3.2.1",
"webpack-dev-server": "^3.1.14",

View File

@ -37,4 +37,4 @@ body {
font-size: 32px;
color: #333;
margin: 0
}
}

View File

@ -1,7 +1,6 @@
.container {
font-family: arial, sans-serif;
font-size: 16px;
zoom: 0.55
font-family: "Roboto", "Helvetica", "Arial", sans-serif;
font-size: 16px
}
.columns {

View File

@ -0,0 +1,10 @@
body {
zoom: 0.55
}
.title {
margin-bottom: 20px;
font-weight: 100;
margin-top: 0;
font-size: 2em
}

View File

@ -11,6 +11,7 @@
{"type": "report", "name": "rpt-claim-pickup-order"},
{"type": "report", "name": "rpt-letter-debtor"},
{"type": "report", "name": "rpt-sepa-core"},
{"type": "report", "name": "rpt-informe"},
{"type": "static", "name": "email-header"},
{"type": "static", "name": "email-footer"},
{"type": "static", "name": "report-header"},

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${__dirname}/style.css`])
`${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles();

View File

@ -5,7 +5,9 @@
</head>
<body>
<section class="container">
<!-- Header component -->
<email-header></email-header>
<!-- End header component -->
<section class="main">
<!-- Title block -->
<div class="title">
@ -26,7 +28,9 @@
<p>{{$t('sections.howToBuy.stock')}}</p>
<p>{{$t('sections.howToBuy.delivery')}}</p> -->
</section>
<!-- Footer component -->
<email-footer :locale="locale"></email-footer>
<!-- End footer component -->
</section>
</body>
</html>

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${__dirname}/style.css`])
`${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles();

View File

@ -1,40 +0,0 @@
body {
background-color: #EEE
}
.container {
max-width: 600px;
min-width: 320px;
margin: 0 auto;
color: #555
}
.main {
background-color: #FFF;
padding: 20px
}
.main a {
color: #8dba25
}
.main h1 {
color: #999
}
.main h3 {
font-size: 16px
}
.title {
background-color: #95d831;
text-transform: uppercase;
text-align: center;
padding: 35px 0
}
.title h1 {
font-size: 32px;
color: #333;
margin: 0
}

View File

@ -5,7 +5,9 @@
</head>
<body>
<section class="container">
<!-- Header component -->
<email-header></email-header>
<!-- End header component -->
<section class="main">
<!-- Title block -->
<div class="title">
@ -62,7 +64,9 @@
</section>
</p>
</section>
<!-- Footer component -->
<email-footer :locale="locale"></email-footer>
<!-- End footer component -->
</section>
</body>
</html>

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${__dirname}/style.css`])
`${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles();

View File

@ -1,42 +0,0 @@
body {
background-color: #EEE
}
.container {
font-family: arial, sans-serif;
max-width: 600px;
min-width: 320px;
font-size: 16px;
margin: 0 auto;
color: #555
}
.main {
background-color: #FFF;
padding: 20px
}
.main a {
color: #8dba25
}
.main h1 {
color: #999
}
.main h3 {
font-size: 16px
}
.title {
background-color: #95d831;
text-transform: uppercase;
text-align: center;
padding: 35px 0
}
.title h1 {
font-size: 32px;
color: #333;
margin: 0
}

View File

@ -8,7 +8,6 @@
<!-- Header component -->
<email-header></email-header>
<!-- End header component -->
<section class="main">
<!-- Title block -->
<div class="title">

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${__dirname}/style.css`])
`${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles();

View File

@ -1,42 +0,0 @@
body {
background-color: #EEE
}
.container {
font-family: arial, sans-serif;
max-width: 600px;
min-width: 320px;
font-size: 16px;
margin: 0 auto;
color: #555
}
.main {
background-color: #FFF;
padding: 20px
}
.main a {
color: #8dba25
}
.main h1 {
color: #999
}
.main h3 {
font-size: 16px
}
.title {
background-color: #95d831;
text-transform: uppercase;
text-align: center;
padding: 35px 0
}
.title h1 {
font-size: 32px;
color: #333;
margin: 0
}

View File

@ -8,7 +8,6 @@
<!-- Header component -->
<email-header></email-header>
<!-- End header component -->
<section class="main">
<!-- Title block -->
<div class="title">

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${__dirname}/style.css`])
`${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles();

View File

@ -1,39 +0,0 @@
body {
background-color: #EEE
}
.container {
max-width: 600px;
min-width: 320px;
margin: 0 auto;
color: #555
}
.main {
background-color: #FFF;
padding: 20px
}
.main a {
color: #8dba25
}
.main h1 {
color: #999
}
.main h3 {
font-size: 16px
}
.title {
background-color: #95d831;
text-transform: uppercase;
text-align: center;
padding: 35px 0
}
.title h1 {
font-size: 32px;
color: #333;
margin: 0
}

View File

@ -8,7 +8,6 @@
<!-- Header component -->
<email-header></email-header>
<!-- End header component -->
<section class="main">
<!-- Title block -->
<div class="title">

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${__dirname}/style.css`])
`${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles();

View File

@ -1,40 +0,0 @@
body {
background-color: #EEE
}
.container {
max-width: 600px;
min-width: 320px;
margin: 0 auto;
color: #555
}
.main {
background-color: #FFF;
padding: 20px
}
.main a {
color: #8dba25
}
.main h1 {
color: #999
}
.main h3 {
font-size: 16px
}
.title {
background-color: #95d831;
text-transform: uppercase;
text-align: center;
padding: 35px 0
}
.title h1 {
font-size: 32px;
color: #333;
margin: 0
}

View File

@ -8,7 +8,6 @@
<!-- Header component -->
<email-header></email-header>
<!-- End header component -->
<section class="main">
<!-- Title block -->
<div class="title">

View File

@ -2,6 +2,7 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`,
`${__dirname}/style.css`])
.mergeStyles();

View File

@ -1,14 +1,3 @@
.container {
color: #000
}
.title {
font-weight: 100;
margin-top: 0;
margin-bottom: 20px;
font-size: 2em
}
table.column-oriented {
margin-top: 50px !important
}

View File

@ -2,7 +2,9 @@
<html lang="es">
<body>
<section class="container">
<report-header></report-header>
<!-- Header component -->
<report-header :locale="locale"></report-header>
<!-- End header component -->
<section class="main">
<section class="columns">
<section class="size50">
@ -72,12 +74,13 @@
<p v-html="$t('sections.agency.description')"></p>
</section>
<!-- Footer component -->
<report-footer id="pageFooter"
:left-text="$t('claim', [claimId])"
:center-text="clientName"
:locale="locale">
</report-footer>
<!-- End footer component -->
</section>
</body>
</html>

View File

@ -2,6 +2,7 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`,
`${__dirname}/style.css`])
.mergeStyles();

View File

@ -1,14 +1,3 @@
.container {
color: #000
}
.title {
font-weight: 100;
margin-top: 0;
margin-bottom: 20px;
font-size: 2em
}
table.column-oriented {
margin-top: 50px !important
}

View File

@ -1,8 +1,10 @@
<!DOCTYPE html>
<html lang="es">
<body>
<section class="container">
<report-header></report-header>
<section class="container" id="report">
<!-- Header component -->
<report-header :locale="locale"></report-header>
<!-- End header component -->
<section class="main">
<section class="columns">
<section class="size50">
@ -74,13 +76,21 @@
</tr> -->
</tfoot>
</table>
</section>
<div class="panel" style="text-align:center;background-color:red">
<div class="header">Firma digital</div>
<img width="200" src="http://windows.verdnatura.es/signatures/tickets/1161229.png"/>
<section>{{dmsCreated}}</section>
</div>
</div>
</section>
<!-- Footer component -->
<report-footer id="pageFooter"
:left-text="$t('ticket', [clientId])"
:left-text="$t('ticket', [ticketId])"
:center-text="clientName"
:locale="locale">
</report-footer>
<!-- End footer component -->
</section>
</body>
</html>

View File

@ -33,11 +33,17 @@ module.exports = {
data() {
return {totalBalance: 0.00};
},
computed: {
dmsPath() {
return `http://windows.verdnatura.es/signatures/tickets/1161229.png`;
}
},
methods: {
fetchClient(ticketFk) {
return database.pool.query(
`SELECT
c.id clientId,
t.id ticketId,
u.lang locale,
c.email AS recipient,
c.socialName AS clientName,
@ -46,12 +52,16 @@ module.exports = {
c.city,
c.fi,
p.name AS province,
ct.country
ct.country,
dt.dmsFk,
d.created AS dmsCreated
FROM ticket t
JOIN client c ON c.id = t.clientFk
JOIN account.user u ON u.id = c.id
JOIN country ct ON ct.id = c.countryFk
LEFT JOIN province p ON p.id = c.provinceFk
LEFT JOIN dmsTicket dt ON dt.ticketFk = t.id
LEFT JOIN dms d ON d.id = dt.dmsFk
WHERE t.id = ?`, [ticketFk]);
},
fetchSales(clientFk, companyFk) {

View File

@ -0,0 +1,8 @@
const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`,
`${__dirname}/style.css`])
.mergeStyles();

View File

@ -0,0 +1,3 @@
table.column-oriented {
margin-top: 50px !important
}

View File

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="es">
<body>
<section class="container" id="report">
<!-- Header component -->
<report-header :locale="locale"></report-header>
<!-- End header component -->
<section class="main">
<!-- Report start -->
<h1 class="title">{{$t('title')}}</h1>
<p>{{$t('date')}} {{dated()}}</p>
<table class="column-oriented">
<thead>
<tr>
<th>Id</th>
<th>{{$t('concept')}}</th>
<th>{{$t('quantity')}}</th>
</tr>
</thead>
<tbody>
<tr v-for="sale in sales" :key="sale.id">
<td class="font gray">{{sale.id}}</td>
<td>{{sale.concept}}</td>
<td>{{sale.quantity}}</td>
</tr>
</tbody>
</table>
<!-- Report end -->
</section>
<!-- Footer component -->
<report-footer id="pageFooter"
:left-text="$t('client', [client.id])"
:center-text="client.name"
:locale="locale">
</report-footer>
<!-- End footer component -->
</section>
</body>
</html>

View File

@ -0,0 +1,32 @@
const strftime = require('strftime');
module.exports = {
name: 'rpt-informe',
created() {
if (this.locale)
this.$i18n.locale = this.locale;
},
data() {
return {
client: {
id: 10252,
name: 'Batman',
},
sales: [
{id: 1, concept: 'My item 1', quantity: 25},
{id: 2, concept: 'My item 2', quantity: 50},
{id: 3, concept: 'My item 3', quantity: 150}
],
locale: 'es'
};
},
methods: {
dated: () => {
return strftime('%d-%m-%Y', new Date());
},
},
components: {
'report-header': require('../report-header'),
'report-footer': require('../report-footer'),
},
};

View File

@ -0,0 +1,11 @@
module.exports = {
messages: {
es: {
title: 'Sample report',
date: 'Fecha',
quantity: 'Cantidad',
concept: 'Concepto',
client: 'Cliente {0}',
},
},
};

View File

@ -2,6 +2,7 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`,
`${__dirname}/style.css`])
.mergeStyles();

View File

@ -1,14 +1,3 @@
.container {
color: #000
}
.title {
font-weight: 100;
margin-top: 0;
margin-bottom: 20px;
font-size: 2em
}
table.column-oriented {
margin-top: 50px !important
}

View File

@ -2,7 +2,9 @@
<html lang="es">
<body>
<section class="container">
<report-header></report-header>
<!-- Header component -->
<report-header :locale="locale"></report-header>
<!-- End header component -->
<section class="main">
<section class="columns">
<section class="size50">
@ -71,12 +73,13 @@
</tfoot>
</table>
</section>
<!-- Footer component -->
<report-footer id="pageFooter"
:left-text="$t('client', [clientId])"
:left-text="$t('claim', [claimId])"
:center-text="clientName"
:locale="locale">
</report-footer>
<!-- End footer component -->
</section>
</body>
</html>

View File

@ -2,6 +2,7 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([
`${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`,
`${__dirname}/style.css`])
.mergeStyles();

View File

@ -1,14 +1,3 @@
.container {
color: #000
}
.title {
margin-bottom: 10px;
font-weight: 100;
font-size: 1.5em;
margin-top: 0
}
.payment-type {
width: auto
}

View File

@ -2,7 +2,9 @@
<html lang="es">
<body>
<section class="container">
<report-header></report-header>
<!-- Header component -->
<report-header :locale="locale"></report-header>
<!-- End header component -->
<section class="main">
<h1 class="title centered">{{$t('title')}}</h1>
<section class="panel supplierPanel">
@ -139,12 +141,13 @@
<p class="font small">{{$t('mandatoryFields')}}</p>
<p class="font small">{{$t('sendOrder')}}</p>
</section>
<!-- Footer component -->
<report-footer id="pageFooter"
:left-text="$t('order', [mandateCode])"
:left-text="$t('claim', [claimId])"
:center-text="clientName"
:locale="locale">
</report-footer>
<!-- End footer component -->
</section>
</body>
</html>

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