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 => { 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} 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)`, 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)`, 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)`, 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`, selectAllSalesCheckbox: `vn-ticket-sale vn-thead vn-check label`,
secondSaleCheckbox: `vn-ticket-sale vn-tr:nth-child(2) vn-check[field="sale.checked"] 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`, 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 { vn-calendar {
display: block; display: block;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
@import "colors"; @import "./colors";
@import "font-family"; @import "./font-family";
body { body {
color: $main-font-color; color: $main-font-color;

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,5 @@
@import "./colors"; @import "./colors";
@import "./margin"; @import "./variables";
@import "./padding";
.summary { .summary {
margin: 0 auto; margin: 0 auto;
@ -8,7 +7,7 @@
& > div { & > div {
& > h5 { & > h5 {
@extend .pad-small; padding: $pad-small;
border: none; border: none;
background: $main-01; background: $main-01;
color: $color-white; color: $color-white;
@ -21,10 +20,10 @@
} }
& > vn-horizontal { & > vn-horizontal {
flex-wrap: wrap; flex-wrap: wrap;
@extend .pad-medium; padding: $pad-medium;
h4 { h4 {
@extend .margin-medium-bottom; margin-bottom: $margin-medium;
text-transform: uppercase; text-transform: uppercase;
font-size: 15pt; font-size: 15pt;
line-height: 1; line-height: 1;
@ -38,7 +37,7 @@
text-overflow: ellipsis; text-overflow: ellipsis;
} }
& > * { & > * {
@extend .margin-small; margin: $margin-small;
min-width: 14em; min-width: 14em;
overflow: hidden; overflow: hidden;
padding: 0; padding: 0;
@ -80,27 +79,3 @@
font-size: .9em 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 { h1 {
font-size: 32pt; font-size: 32pt;

View File

@ -1,4 +1,34 @@
@import "./colors";
$menu-width: 16em; $menu-width: 16em;
$topbar-height: 4em; $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 { vn-claim-index {
.Pendiente { .Pendiente {

View File

@ -5,7 +5,32 @@ vn-client-sample-create {
} }
tpl-body { 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 { vn-client-summary {
.alert span { .alert span {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,35 @@
@import "./colors";
vn-item-summary { vn-item-summary {
p { p {
margin: 0; 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.model.save().then(() => {
this.$scope.watcher.notifySaved(); this.$scope.watcher.notifySaved();
this.$scope.model.refresh(); this.$scope.model.refresh();
this.card.reload();
}); });
} }
} }
@ -75,5 +76,8 @@ Controller.$inject = ['$stateParams', '$scope'];
ngModule.component('vnItemTags', { ngModule.component('vnItemTags', {
template: require('./index.html'), 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-dialog.modal-form {
vn-horizontal.header{ vn-horizontal.header{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -6,6 +6,7 @@
<vn-vertical> <vn-vertical>
<vn-card pad-large> <vn-card pad-large>
<vn-vertical> <vn-vertical>
<vn-horizontal class="header">
<vn-tool-bar margin-medium-bottom> <vn-tool-bar margin-medium-bottom>
<vn-button <vn-button
disabled="!$ctrl.isEditable" disabled="!$ctrl.isEditable"
@ -44,6 +45,12 @@
icon="call_split"> icon="call_split">
</vn-button> </vn-button>
</vn-tool-bar> </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-table model="model">
<vn-thead> <vn-thead>
<vn-tr> <vn-tr>
@ -142,21 +149,6 @@
No results No results
</vn-empty-rows> </vn-empty-rows>
</vn-table> </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-vertical>
</vn-card> </vn-card>
<vn-item-descriptor-popover vn-id="descriptor" <vn-item-descriptor-popover vn-id="descriptor"

View File

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

1349
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -36,7 +36,7 @@
"@babel/register": "^7.0.0", "@babel/register": "^7.0.0",
"angular-mocks": "^1.7.4", "angular-mocks": "^1.7.4",
"babel-loader": "^8.0.5", "babel-loader": "^8.0.5",
"css-loader": "^0.25.0", "css-loader": "^2.1.0",
"del": "^2.2.2", "del": "^2.2.2",
"eslint": "^5.12.0", "eslint": "^5.12.0",
"eslint-config-google": "^0.11.0", "eslint-config-google": "^0.11.0",
@ -73,9 +73,9 @@
"node-sass": "^4.9.3", "node-sass": "^4.9.3",
"nodemon": "^1.18.5", "nodemon": "^1.18.5",
"plugin-error": "^1.0.1", "plugin-error": "^1.0.1",
"raw-loader": "*", "raw-loader": "^1.0.0",
"sass-loader": "^6.0.7", "sass-loader": "^7.1.0",
"style-loader": "^0.20.3", "style-loader": "^0.23.1",
"webpack": "^4.28.3", "webpack": "^4.28.3",
"webpack-cli": "^3.2.1", "webpack-cli": "^3.2.1",
"webpack-dev-server": "^3.1.14", "webpack-dev-server": "^3.1.14",

View File

@ -1,7 +1,6 @@
.container { .container {
font-family: arial, sans-serif; font-family: "Roboto", "Helvetica", "Arial", sans-serif;
font-size: 16px; font-size: 16px
zoom: 0.55
} }
.columns { .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-claim-pickup-order"},
{"type": "report", "name": "rpt-letter-debtor"}, {"type": "report", "name": "rpt-letter-debtor"},
{"type": "report", "name": "rpt-sepa-core"}, {"type": "report", "name": "rpt-sepa-core"},
{"type": "report", "name": "rpt-informe"},
{"type": "static", "name": "email-header"}, {"type": "static", "name": "email-header"},
{"type": "static", "name": "email-footer"}, {"type": "static", "name": "email-footer"},
{"type": "static", "name": "report-header"}, {"type": "static", "name": "report-header"},

View File

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

View File

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

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${__dirname}/style.css`]) `${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles(); .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> </head>
<body> <body>
<section class="container"> <section class="container">
<!-- Header component -->
<email-header></email-header> <email-header></email-header>
<!-- End header component -->
<section class="main"> <section class="main">
<!-- Title block --> <!-- Title block -->
<div class="title"> <div class="title">
@ -62,7 +64,9 @@
</section> </section>
</p> </p>
</section> </section>
<!-- Footer component -->
<email-footer :locale="locale"></email-footer> <email-footer :locale="locale"></email-footer>
<!-- End footer component -->
</section> </section>
</body> </body>
</html> </html>

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${__dirname}/style.css`]) `${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles(); .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 --> <!-- Header component -->
<email-header></email-header> <email-header></email-header>
<!-- End header component --> <!-- End header component -->
<section class="main"> <section class="main">
<!-- Title block --> <!-- Title block -->
<div class="title"> <div class="title">

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${__dirname}/style.css`]) `${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles(); .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 --> <!-- Header component -->
<email-header></email-header> <email-header></email-header>
<!-- End header component --> <!-- End header component -->
<section class="main"> <section class="main">
<!-- Title block --> <!-- Title block -->
<div class="title"> <div class="title">

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${__dirname}/style.css`]) `${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles(); .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 --> <!-- Header component -->
<email-header></email-header> <email-header></email-header>
<!-- End header component --> <!-- End header component -->
<section class="main"> <section class="main">
<!-- Title block --> <!-- Title block -->
<div class="title"> <div class="title">

View File

@ -2,5 +2,6 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${__dirname}/style.css`]) `${appPath}/common/css/email.css`,
`${appPath}/common/css/misc.css`])
.mergeStyles(); .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 --> <!-- Header component -->
<email-header></email-header> <email-header></email-header>
<!-- End header component --> <!-- End header component -->
<section class="main"> <section class="main">
<!-- Title block --> <!-- Title block -->
<div class="title"> <div class="title">

View File

@ -2,6 +2,7 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`, `${appPath}/common/css/misc.css`,
`${__dirname}/style.css`]) `${__dirname}/style.css`])
.mergeStyles(); .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 { table.column-oriented {
margin-top: 50px !important margin-top: 50px !important
} }

View File

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

View File

@ -2,6 +2,7 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`, `${appPath}/common/css/misc.css`,
`${__dirname}/style.css`]) `${__dirname}/style.css`])
.mergeStyles(); .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 { table.column-oriented {
margin-top: 50px !important margin-top: 50px !important
} }

View File

@ -1,8 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="es"> <html lang="es">
<body> <body>
<section class="container"> <section class="container" id="report">
<report-header></report-header> <!-- Header component -->
<report-header :locale="locale"></report-header>
<!-- End header component -->
<section class="main"> <section class="main">
<section class="columns"> <section class="columns">
<section class="size50"> <section class="size50">
@ -74,13 +76,21 @@
</tr> --> </tr> -->
</tfoot> </tfoot>
</table> </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" <report-footer id="pageFooter"
:left-text="$t('ticket', [clientId])" :left-text="$t('ticket', [ticketId])"
:center-text="clientName" :center-text="clientName"
:locale="locale"> :locale="locale">
</report-footer> </report-footer>
<!-- End footer component -->
</section> </section>
</body> </body>
</html> </html>

View File

@ -33,11 +33,17 @@ module.exports = {
data() { data() {
return {totalBalance: 0.00}; return {totalBalance: 0.00};
}, },
computed: {
dmsPath() {
return `http://windows.verdnatura.es/signatures/tickets/1161229.png`;
}
},
methods: { methods: {
fetchClient(ticketFk) { fetchClient(ticketFk) {
return database.pool.query( return database.pool.query(
`SELECT `SELECT
c.id clientId, c.id clientId,
t.id ticketId,
u.lang locale, u.lang locale,
c.email AS recipient, c.email AS recipient,
c.socialName AS clientName, c.socialName AS clientName,
@ -46,12 +52,16 @@ module.exports = {
c.city, c.city,
c.fi, c.fi,
p.name AS province, p.name AS province,
ct.country ct.country,
dt.dmsFk,
d.created AS dmsCreated
FROM ticket t FROM ticket t
JOIN client c ON c.id = t.clientFk JOIN client c ON c.id = t.clientFk
JOIN account.user u ON u.id = c.id JOIN account.user u ON u.id = c.id
JOIN country ct ON ct.id = c.countryFk JOIN country ct ON ct.id = c.countryFk
LEFT JOIN province p ON p.id = c.provinceFk 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]); WHERE t.id = ?`, [ticketFk]);
}, },
fetchSales(clientFk, companyFk) { 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([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`, `${appPath}/common/css/misc.css`,
`${__dirname}/style.css`]) `${__dirname}/style.css`])
.mergeStyles(); .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 { table.column-oriented {
margin-top: 50px !important margin-top: 50px !important
} }

View File

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

View File

@ -2,6 +2,7 @@ const CssReader = require(`${appPath}/lib/cssReader`);
module.exports = new CssReader([ module.exports = new CssReader([
`${appPath}/common/css/layout.css`, `${appPath}/common/css/layout.css`,
`${appPath}/common/css/report.css`,
`${appPath}/common/css/misc.css`, `${appPath}/common/css/misc.css`,
`${__dirname}/style.css`]) `${__dirname}/style.css`])
.mergeStyles(); .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 { .payment-type {
width: auto width: auto
} }

View File

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

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