This commit is contained in:
Juan Ferrer 2019-02-06 11:24:31 +01:00
commit 2bf9244770
79 changed files with 590 additions and 478 deletions

View File

@ -38,7 +38,7 @@
"Vehicle": { "Vehicle": {
"dataSource": "vn" "dataSource": "vn"
}, },
"UserTableConfiguration": { "UserConfigView": {
"dataSource": "vn" "dataSource": "vn"
} }
} }

View File

@ -1,9 +1,9 @@
{ {
"name": "UserTableConfiguration", "name": "UserConfigView",
"base": "VnModel", "base": "VnModel",
"options": { "options": {
"mysql": { "mysql": {
"table": "salix.userTableConfiguration" "table": "salix.userConfigView"
} }
}, },
"properties": { "properties": {
@ -21,10 +21,10 @@
} }
}, },
"relations": { "relations": {
"worker": { "user": {
"type": "belongsTo", "type": "belongsTo",
"model": "Worker", "model": "Account",
"foreignKey": "workerFk" "foreignKey": "userFk"
} }
} }
} }

View File

@ -164,7 +164,7 @@ export default {
newPaymentButton: `${components.vnFloatButton}`, newPaymentButton: `${components.vnFloatButton}`,
newPaymentBankInut: `vn-client-risk-create vn-textfield[field="$ctrl.receipt.bankFk"] input`, newPaymentBankInut: `vn-client-risk-create vn-textfield[field="$ctrl.receipt.bankFk"] input`,
newPaymentAmountInput: `vn-client-risk-create vn-textfield[field="$ctrl.receipt.amountPaid"] input`, newPaymentAmountInput: `vn-client-risk-create vn-textfield[field="$ctrl.receipt.amountPaid"] input`,
saveButton: `${components.vnSubmit}`, saveButton: `vn-client-risk-create vn-button[label="Save"]`,
firstRiskLineBalance: 'vn-client-risk-index vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(8)' firstRiskLineBalance: 'vn-client-risk-index vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(8)'
}, },

View File

@ -47,9 +47,6 @@ export default class Dialog extends Component {
if (this.onOpen) if (this.onOpen)
this.onOpen(); this.onOpen();
let firstFocusable = this.element.querySelector('input, textarea');
if (firstFocusable) firstFocusable.focus();
} }
/** /**

View File

@ -13,3 +13,4 @@ import './effects.scss';
import './order-product.scss'; import './order-product.scss';
import './summary.scss'; import './summary.scss';
import './descriptor.scss'; import './descriptor.scss';
import './modal-form.scss';

View File

@ -0,0 +1,38 @@
@import 'colors';
@import "./padding";
vn-dialog.modal-form {
vn-horizontal.header{
@extend .pad-small;
background-color: $main-01;
h5{
color: white;
margin: 0 auto;
}
}
tpl-body {
width: 100%;
}
table {
width: 100%
}
& > div{
padding: 0!important;
}
vn-textfield {
width: 100%;
}
.buttons{
margin-top: 0!important;
}
p{
display: none;
}
button.close > vn-icon{
color: white!important;
}
vn-ticket-sale-edit-discount > div {
padding-bottom: 0!important;
}
}

View File

@ -1,44 +1,45 @@
<mg-ajax path="/client/api/receipts" options="vnPost"></mg-ajax> <vn-dialog
<vn-watcher vn-id="dialog"
vn-id="watcher" class="modal-form">
data="$ctrl.receipt" <tpl-body>
form="form" <mg-ajax path="/client/api/receipts" options="vnPost"></mg-ajax>
save="post"> <vn-horizontal class="header">
</vn-watcher> <h5><span translate>New payment</span></h5>
<form name="form" ng-submit="$ctrl.onSubmit()" compact>
<vn-card pad-large>
<vn-horizontal>
<vn-date-picker vn-one
label="Date"
model="$ctrl.receipt.payed"
ini-options="{dateFormat: 'd-m-Y', time_24hr: true}">
</vn-date-picker>
<vn-autocomplete vn-one
url="/api/Companies"
label="Company"
show-field="code"
value-field="id"
field="$ctrl.receipt.companyFk">
</vn-autocomplete>
</vn-horizontal> </vn-horizontal>
<vn-horizontal> <div pad-medium>
<vn-textfield <vn-horizontal>
vn-one <vn-date-picker vn-one
margin-medium-right label="Date"
label="Bank" model="$ctrl.receipt.payed"
field="$ctrl.receipt.bankFk"> ini-options="{dateFormat: 'd-m-Y', time_24hr: true}">
</vn-textfield> </vn-date-picker>
<vn-textfield <vn-autocomplete vn-one
vn-one url="/api/Companies"
margin-medium-right label="Company"
label="Amount" show-field="code"
field="$ctrl.receipt.amountPaid" value-field="id"
vn-focus> field="$ctrl.receipt.companyFk">
</vn-textfield> </vn-autocomplete>
</vn-horizontal>
<vn-horizontal>
<vn-textfield
vn-one
margin-medium-right
label="Bank"
field="$ctrl.receipt.bankFk">
</vn-textfield>
<vn-textfield
vn-one
margin-medium-right
label="Amount"
field="$ctrl.receipt.amountPaid"
vn-focus>
</vn-textfield>
</vn-horizontal>
</div>
<vn-horizontal margin-medium class="buttons-bar">
<vn-button vn-one label="Save" ng-click="$ctrl.save()"></vn-button>
<vn-button vn-one ng-click="$ctrl.hide()" label="Cancel"></vn-button>
</vn-horizontal> </vn-horizontal>
</vn-card> </tpl-body>
<vn-button-bar> </vn-dialog>
<vn-submit label="Save"></vn-submit>
<vn-button ng-click="$ctrl.cancel($event)" label="Cancel"></vn-button>
</vn-button-bar>
</form>

View File

@ -1,11 +1,13 @@
import ngModule from '../../module'; import ngModule from '../../module';
import './style.scss';
class Controller { class Controller {
constructor($scope, $state, $http, $stateParams) { constructor($scope, $state, $http, vnApp, $translate) {
this.$http = $http; this.$http = $http;
this.$ = $scope; this.$ = $scope;
this.$state = $state; this.$state = $state;
this.$stateParams = $stateParams; this.vnApp = vnApp;
this.$translate = $translate;
this.receipt = { this.receipt = {
payed: new Date(), payed: new Date(),
@ -13,21 +15,26 @@ class Controller {
companyFk: window.localStorage.defaultCompanyFk, companyFk: window.localStorage.defaultCompanyFk,
bankFk: window.localStorage.defaultBankFk bankFk: window.localStorage.defaultBankFk
}; };
if (this.$stateParams.payed)
this.receipt.payed = this.$stateParams.payed;
if (this.$stateParams.bankFk)
this.receipt.bankFk = this.$stateParams.bankFk;
if (this.$stateParams.amountPaid)
this.receipt.amountPaid = this.$stateParams.amountPaid;
if (this.$stateParams.companyFk)
this.receipt.companyFk = this.$stateParams.companyFk;
} }
$onInit() { set payed(value) {
this.receipt.payed = value;
}
set bankFk(value) {
this.receipt.bankFk = value;
}
set amountPaid(value) {
this.receipt.amountPaid = value;
}
set companyFk(value) {
this.receipt.companyFk = value;
this.getAmountPaid();
}
getAmountPaid() {
let filter = { let filter = {
where: { where: {
clientFk: this.$state.params.id, clientFk: this.$state.params.id,
@ -41,25 +48,34 @@ class Controller {
}); });
} }
cancel() { show() {
this.goToIndex(); this.$.dialog.show();
} }
goToIndex() { hide() {
this.$state.go('client.card.risk.index'); this.$.dialog.hide();
} }
onSubmit() { save() {
this.$.watcher.submit().then( let query = `/client/api/receipts`;
() => { this.$http.post(query, this.receipt).then(() => {
this.goToIndex(); this.vnApp.showSuccess(this.$translate.instant('Data saved!'));
} this.hide();
); if (this.onResponse)
this.onResponse();
});
} }
} }
Controller.$inject = ['$scope', '$state', '$http', '$stateParams']; Controller.$inject = ['$scope', '$state', '$http', 'vnApp', '$translate'];
ngModule.component('vnClientRiskCreate', { ngModule.component('vnClientRiskCreate', {
template: require('./index.html'), template: require('./index.html'),
controller: Controller controller: Controller,
bindings: {
payed: '<?',
bankFk: '<?',
amountPaid: '<?',
onResponse: '&?',
companyFk: '<?'
}
}); });

View File

@ -0,0 +1,3 @@
vn-horizontal.buttons-bar{
text-align: center;
}

View File

@ -94,13 +94,16 @@
<vn-pagination model="model"></vn-pagination> <vn-pagination model="model"></vn-pagination>
</vn-card> </vn-card>
</vn-vertical> </vn-vertical>
<a ui-sref="client.card.risk.create"
<vn-float-button
vn-acl="administrative"
vn-acl-action="remove"
icon="add"
vn-tooltip="New payment" vn-tooltip="New payment"
vn-bind="+" vn-bind="+"
fixed-bottom-right> fixed-bottom-right
<vn-float-button ng-click="$ctrl.openCreateDialog()">
vn-acl="administrative" </vn-float-button>
vn-acl-action="remove"
icon="add"> <vn-client-risk-create vn-id="riskCreateDialog">
</vn-float-button> </vn-client-risk-create>
</a>

View File

@ -31,6 +31,9 @@ class Controller {
setOrder(value) { setOrder(value) {
this.params.params.companyFk = value; this.params.params.companyFk = value;
this.filter.where.companyFk = value; this.filter.where.companyFk = value;
}
refresh() {
this.$.model.refresh(); this.$.model.refresh();
this.$.riskModel.refresh(); this.$.riskModel.refresh();
} }
@ -55,6 +58,14 @@ class Controller {
return this._risks; return this._risks;
} }
openCreateDialog() {
this.$.riskCreateDialog.companyFk = this.companyFk;
this.$.riskCreateDialog.onResponse = () => {
this.refresh();
};
this.$.riskCreateDialog.show();
}
onDownload() { onDownload() {
alert('Not implemented yet'); alert('Not implemented yet');
} }

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

@ -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

@ -39,7 +39,7 @@
<vn-tr ng-repeat="entry in entries"> <vn-tr ng-repeat="entry in entries">
<vn-td number> <vn-td number>
<vn-check <vn-check
field="entries.isIgnored" field="entry.isIgnored"
disabled="true"> disabled="true">
</vn-check> </vn-check>
</vn-td> </vn-td>

View File

@ -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

@ -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,5 +1,4 @@
import ngModule from '../module'; import ngModule from '../module';
import './style.scss';
class Controller { class Controller {
constructor($state, $scope, $http, vnApp, $translate) { constructor($state, $scope, $http, vnApp, $translate) {

View File

@ -37,7 +37,7 @@ module.exports = Self => {
}, },
}); });
Self.catalogFilter = async (orderFk, orderBy, filter, tags) => { Self.catalogFilter = async(orderFk, orderBy, filter, tags) => {
let conn = Self.dataSource.connector; let conn = Self.dataSource.connector;
const stmts = []; const stmts = [];
let stmt; let stmt;

View File

@ -19,9 +19,7 @@
</vn-one> </vn-one>
</vn-horizontal> </vn-horizontal>
<vn-horizontal class="input"> <vn-horizontal class="input">
<vn-autocomplete <vn-autocomplete vn-id="type" vn-one
vn-one
vn-id="type"
data="$ctrl.itemTypes" data="$ctrl.itemTypes"
on-change="$ctrl.type = { on-change="$ctrl.type = {
id: value, id: value,

View File

@ -18,6 +18,11 @@ class Controller {
return this._order; return this._order;
} }
/**
* Sets filter values from state params
*
* @param {Object} value - Order data
*/
set order(value) { set order(value) {
if (!value.id || this._order) return; if (!value.id || this._order) return;
@ -49,20 +54,18 @@ class Controller {
this.itemTypes = []; this.itemTypes = [];
this.type = null; this.type = null;
if (!value || (this.category && this.category.id == value.id)) { if (!value || (this.category && this.category.id == value.id))
this._category = null; this._category = null;
this.updateStateParams(); else
this._category = value;
return;
}
this._category = value;
this.updateStateParams(); this.updateStateParams();
const query = `/item/api/ItemCategories/${value.id}/itemTypes`; if (this.tags.length > 0)
this.$http.get(query).then(res => { this.applyFilters();
this.itemTypes = res.data;
}); if (value)
this.updateItemTypes();
} }
get type() { get type() {
@ -83,6 +86,16 @@ class Controller {
this.applyFilters(); this.applyFilters();
} }
/**
* Refreshes item type dropdown data
*/
updateItemTypes() {
const query = `/item/api/ItemCategories/${this.category.id}/itemTypes`;
this.$http.get(query).then(res => {
this.itemTypes = res.data;
});
}
onSearch(event) { onSearch(event) {
if (event.key !== 'Enter') return; if (event.key !== 'Enter') return;
this.tags.push({ this.tags.push({
@ -145,6 +158,9 @@ class Controller {
this.$panel = null; this.$panel = null;
} }
/**
* Updates url state params from filter values
*/
updateStateParams() { updateStateParams() {
const params = {}; const params = {};

View File

@ -42,4 +42,8 @@ vn-catalog-filter > div {
flex-wrap: wrap; flex-wrap: wrap;
padding: $pad-medium; padding: $pad-medium;
} }
vn-autocomplete[vn-id="type"] .list {
max-height: 20em
}
} }

View File

@ -27,6 +27,9 @@
}, },
"checked": { "checked": {
"type": "Number" "type": "Number"
},
"externalId": {
"type": "Number"
} }
}, },
"relations": { "relations": {

View File

@ -16,8 +16,10 @@
label="Address" label="Address"
show-field="nickname" show-field="nickname"
value-field="id" value-field="id"
field="$ctrl.ticket.addressFk"> field="$ctrl.ticket.addressFk"
<tpl-item>{{::nickname}} order="isActive DESC">
<tpl-item ng-class="::{notActive: isActive === false}">
<span class="inactive" translate>{{::isActive ? '' : 'INACTIVE'}}</span> {{::nickname}}
<span ng-show="city || province || street">- {{::street}} - {{::city}} - {{::province.name}} - {{::agencyMode.name}}</span> <span ng-show="city || province || street">- {{::street}} - {{::city}} - {{::province.name}} - {{::agencyMode.name}}</span>
</tpl-item> </tpl-item>
</vn-autocomplete> </vn-autocomplete>

View File

@ -1,5 +1,6 @@
import ngModule from '../../module'; import ngModule from '../../module';
import {toJsonDate} from 'core/lib/date'; import {toJsonDate} from 'core/lib/date';
import './style.scss';
class Controller { class Controller {
constructor($scope, $http, $translate, vnApp) { constructor($scope, $http, $translate, vnApp) {

View File

@ -0,0 +1,13 @@
@import 'colors';
tpl-item{
&.notActive {
background-color: $main-bg;
color: $secondary-font-color;
width: 100%;
}
& > .inactive {
text-transform: uppercase;
}
}

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

@ -34,6 +34,6 @@
<vn-pagination model="model"></vn-pagination> <vn-pagination model="model"></vn-pagination>
</vn-card> </vn-card>
</vn-vertical> </vn-vertical>
<a ui-sref="ticket.card.tracking.edit" vn-bind="+" vn-visible-by="production, administrative, salesperson" fixed-bottom-right> <a ui-sref="ticket.card.tracking.edit" vn-bind="+" fixed-bottom-right>
<vn-float-button icon="add"></vn-float-button> <vn-float-button icon="add"></vn-float-button>
</a> </a>

View File

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

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

@ -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">
@ -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>

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: 'sample-report',
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,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

@ -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">
@ -19,10 +18,9 @@
<p>{{$t('description.dear')}},</p> <p>{{$t('description.dear')}},</p>
<p>{{$t('description.instructions')}}</p> <p>{{$t('description.instructions')}}</p>
<p>{{$t('description.conclusion')}}</p> <p>{{$t('description.conclusion')}}</p>
</section> </section>
<!-- Footer component --> <!-- Footer component -->
<email-footer></email-footer> <email-footer :locale="locale"></email-footer>
<!-- End footer component --> <!-- End footer component -->
</section> </section>
</body> </body>

View File

@ -0,0 +1,9 @@
CREATE TABLE `salix`.`userConfigView` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userFk` int(10) unsigned NOT NULL,
`tableCode` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`configuration` text COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`),
UNIQUE KEY `uniqueUser_TableCode` (`userFk`,`tableCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

View File

@ -1,18 +0,0 @@
CREATE TABLE `salix`.`userTableConfiguration` (
`id` INT NOT NULL AUTO_INCREMENT,
`workerFk` INT(11) NOT NULL,
`tableCode` VARCHAR(255) NOT NULL,
`configuration` TEXT NULL,
PRIMARY KEY (`id`));
ALTER TABLE `salix`.`userTableConfiguration`
ADD INDEX `fgn_worker_idx` (`workerFk` ASC);
ALTER TABLE `salix`.`userTableConfiguration`
ADD CONSTRAINT `fgn_worker`
FOREIGN KEY (`workerFk`)
REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`)
ON DELETE CASCADE
ON UPDATE CASCADE;

View File

@ -0,0 +1,23 @@
ALTER TABLE `vn2008`.`expeditions`
ADD COLUMN `externalId` BIGINT(25) NULL DEFAULT NULL AFTER `workerFk`;
USE `vn`;
CREATE
OR REPLACE ALGORITHM = UNDEFINED
DEFINER = `root`@`%`
SQL SECURITY DEFINER
VIEW `vn`.`expedition` AS
SELECT
`e`.`expeditions_id` AS `id`,
`e`.`agency_id` AS `agencyModeFk`,
`e`.`ticket_id` AS `ticketFk`,
`e`.`EsBulto` AS `isBox`,
`e`.`odbc_date` AS `created`,
`e`.`Id_Article` AS `itemFk`,
`e`.`counter` AS `counter`,
`e`.`checked` AS `checked`,
`e`.`workerFk` AS `workerFk`,
`e`.`externalId` AS `externalId`
FROM
`vn2008`.`expeditions` `e`;

View File

@ -211,35 +211,36 @@ INSERT INTO `vn`.`clientManaCache`(`clientFk`, `mana`, `dated`)
INSERT INTO `vn`.`address`(`id`, `nickname`, `street`, `city`, `postalCode`, `provinceFk`, `phone`, `mobile`, `isActive`, `isDefaultAddress`, `clientFk`, `agencyModeFk`, `longitude`, `latitude`, `isEqualizated`) INSERT INTO `vn`.`address`(`id`, `nickname`, `street`, `city`, `postalCode`, `provinceFk`, `phone`, `mobile`, `isActive`, `isDefaultAddress`, `clientFk`, `agencyModeFk`, `longitude`, `latitude`, `isEqualizated`)
VALUES VALUES
(101, 'address 01', 'Somewhere in Thailand', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (101, 'address 01', 'Somewhere in Thailand', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(102, 'address 02', 'Somewhere in Poland', 'Silla', 46460, 1, 3333333333, 444444444, 1, 0, 109, 2, NULL, NULL, 0), (102, 'address 02', 'Somewhere in Poland', 'Silla', 46460, 1, 3333333333, 444444444, 1, 0, 109, 2, NULL, NULL, 0),
(103, 'address 03', 'Somewhere in Japan', 'Silla', 46460, 1, 3333333333, 444444444, 1, 0, 109, 2, NULL, NULL, 0), (103, 'address 03', 'Somewhere in Japan', 'Silla', 46460, 1, 3333333333, 444444444, 1, 0, 109, 2, NULL, NULL, 0),
(104, 'address 04', 'Somewhere in Spain', 'Silla', 46460, 1, 3333333333, 444444444, 1, 0, 109, 2, NULL, NULL, 0), (104, 'address 04', 'Somewhere in Spain', 'Silla', 46460, 1, 3333333333, 444444444, 1, 0, 109, 2, NULL, NULL, 0),
(105, 'address 05', 'Somewhere in Potugal', 'Silla', 46460, 1, 5555555555, 666666666, 1, 0, 109, 2, NULL, NULL, 0), (105, 'address 05', 'Somewhere in Potugal', 'Silla', 46460, 1, 5555555555, 666666666, 1, 0, 109, 2, NULL, NULL, 0),
(106, 'address 06', 'Somewhere in UK', 'Silla', 46460, 1, 5555555555, 666666666, 1, 0, 109, 2, NULL, NULL, 0), (106, 'address 06', 'Somewhere in UK', 'Silla', 46460, 1, 5555555555, 666666666, 1, 0, 109, 2, NULL, NULL, 0),
(107, 'address 07', 'Somewhere in Valencia', 'Silla', 46460, 1, 5555555555, 666666666, 1, 0, 109, 2, NULL, NULL, 0), (107, 'address 07', 'Somewhere in Valencia', 'Silla', 46460, 1, 5555555555, 666666666, 1, 0, 109, 2, NULL, NULL, 0),
(108, 'address 08', 'Somewhere in Silla', 'Silla', 46460, 1, 5555555555, 666666666, 1, 0, 109, 2, NULL, NULL, 0), (108, 'address 08', 'Somewhere in Silla', 'Silla', 46460, 1, 5555555555, 666666666, 1, 0, 109, 2, NULL, NULL, 0),
(109, 'address 09', 'Somewhere in London', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (109, 'address 09', 'Somewhere in London', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(110, 'address 10', 'Somewhere in Algemesi', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (110, 'address 10', 'Somewhere in Algemesi', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(111, 'address 11', 'Somewhere in Carlet', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (111, 'address 11', 'Somewhere in Carlet', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(112, 'address 12', 'Somewhere in Campanar', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (112, 'address 12', 'Somewhere in Campanar', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(113, 'address 13', 'Somewhere in Malilla', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (113, 'address 13', 'Somewhere in Malilla', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(114, 'address 14', 'Somewhere in France', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (114, 'address 14', 'Somewhere in France', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(115, 'address 15', 'Somewhere in Birmingham', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (115, 'address 15', 'Somewhere in Birmingham', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(116, 'address 16', 'Somewhere in Scotland', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (116, 'address 16', 'Somewhere in Scotland', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(117, 'address 17', 'Somewhere in nowhere', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (117, 'address 17', 'Somewhere in nowhere', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(118, 'address 18', 'Somewhere over the rainbow', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (118, 'address 18', 'Somewhere over the rainbow', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(119, 'address 19', 'Somewhere in Alberic', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (119, 'address 19', 'Somewhere in Alberic', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(120, 'address 20', 'Somewhere in Montortal', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0), (120, 'address 20', 'Somewhere in Montortal', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 109, 2, NULL, NULL, 0),
(121, 'address 21', 'the bat cave', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 101, 2, NULL, NULL, 0), (121, 'address 21', 'the bat cave', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 101, 2, NULL, NULL, 0),
(122, 'address 22', 'NY roofs', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 102, 2, NULL, NULL, 0), (122, 'address 22', 'NY roofs', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 102, 2, NULL, NULL, 0),
(123, 'address 23', 'The phone box', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 103, 2, NULL, NULL, 0), (123, 'address 23', 'The phone box', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 103, 2, NULL, NULL, 0),
(124, 'address 24', 'Stark tower', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 104, 2, NULL, NULL, 0), (124, 'address 24', 'Stark tower', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 104, 2, NULL, NULL, 0),
(125, 'address 25', 'The plastic cell', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 105, 2, NULL, NULL, 0), (125, 'address 25', 'The plastic cell', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 105, 2, NULL, NULL, 0),
(126, 'address 26', 'Many places', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 106, 2, NULL, NULL, 0), (126, 'address 26', 'Many places', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 106, 2, NULL, NULL, 0),
(127, 'address 27', 'Your pocket', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 107, 2, NULL, NULL, 0), (127, 'address 27', 'Your pocket', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 107, 2, NULL, NULL, 0),
(128, 'address 28', 'Cerebro', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 108, 2, NULL, NULL, 0), (128, 'address 28', 'Cerebro', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 108, 2, NULL, NULL, 0),
(129, 'address 29', 'Luke Cages Bar', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 110, 2, NULL, NULL, 0); (129, 'address 29', 'Luke Cages Bar', 'Silla', 46460, 1, 1111111111, 222222222, 1, 0, 110, 2, NULL, NULL, 0),
(130, 'address 30', 'Non valid address', 'Silla', 46460, 1, 1111111111, 222222222, 0, 0, 101, 2, NULL, NULL, 0);
INSERT INTO `vn`.`clientCredit`(`id`, `clientFk`, `workerFk`, `amount`, `created`) INSERT INTO `vn`.`clientCredit`(`id`, `clientFk`, `workerFk`, `amount`, `created`)
VALUES VALUES